Repository navigation
docs: public README, CHANGELOG, CONTRIBUTING; mixed typing on by default - #6
Merged
Merged
Conversation
Everything here is a private trace, not a behavior change: the maintainer's name, local absolute paths, the out-of-repo private corpus location, and a planning document that only ever existed on one machine. - Person: "Lman" -> "the maintainer" / 「維護者」 in comments, .gitignore, tools/eval docs, and the review reports. Copyright lines keep the real name; so do the lmanchu GitHub URLs and the bundle id. - Paths: /Users/lman/... -> ~/... or a description; a scratch-directory script reference loses its path. - Design notes: ~/.claude/plans/zhuyin-ime-personal.md (and its bare filename) never existed in this repo, so every reference now reads "the design notes". The README sentence citing it is gone. - Eval corpus: the two XCTest eval measurements read BOPOMIX_EVAL_CORPUS and XCTSkip when it is unset or missing, instead of hardcoding ~/Dev/mixime-private/eval200.tsv. check_plist_unchanged.sh forwards the variable as TEST_RUNNER_BOPOMIX_EVAL_CORPUS, which is the only spelling xcodebuild passes to the test host. build_corpus.py defaults to the gitignored eval-corpus/ directory; .gitignore's comment no longer names a private repo path. docs/REVIEW-* and docs/REVERIFY-* keep their content and conclusions verbatim -- only the private details inside them changed. Verified: xcodebuild build succeeds; the suite is 255 tests green under check_plist_unchanged.sh both with and without BOPOMIX_EVAL_CORPUS (2 skipped without it), PLIST_UNCHANGED and DATA_FOLDER_UNCHANGED each time, and BASELINE.md's numbers regenerate identically apart from latency. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…odenames Follow-up to the previous scrub. The review reports quote samples of the maintainer's private eval corpus verbatim, which leaked colleague names and the customers/partners those notes are about; the shipped tech word list carried the maintainer's own product codenames. - Corpus token dumps and frequency counts in docs/REVIEW-P3-2026-09-11.md and docs/REVERIFY-P3-2026-09-12.md now use stable placeholders: people become <name-N>, the maintainer's company/customers/partners become <company-N>, their products become <product-N>. The same word always maps to the same placeholder, so the counts and the "how many of these are real proper nouns" conclusions still read correctly. Generic global brands already in the shipped lexicon (google, computex, Stripe, Apple, Electron) stay as they are. - Source/Data/latin-tech-seed.txt: dropped irisgo, tachikoma, hermes, gloria, apollo, argus, wells and magi. The first two are private names that exist nowhere else; the other six are internal system codenames that were outranking the whole dictionary for words a public user has no reason to want boosted. All six remain available from latin-words.txt. Ranks are explicit per row, so the resulting gaps change nothing. - tools/eval/build_corpus.py: the synthetic-padding token list no longer names the maintainer's company, and says to swap in your own. Verified: xcodebuild build succeeds; 255 tests green under check_plist_unchanged.sh without BOPOMIX_EVAL_CORPUS (2 skipped), with PLIST_UNCHANGED and DATA_FOLDER_UNCHANGED; the built app's bundled latin-tech-seed.txt no longer contains any of the removed terms. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
README.markdown becomes README.md and is rewritten for someone deciding whether to try Bopomix: one sentence on what it does, a three-step install (dmg, installer app, add the input source once in System Settings), what it does, the four defaults switches, privacy, current limits, where to contribute. Chinese first with an English summary. Every number, threshold experiment, learning rule and migration detail that used to live in the README moves to CHANGELOG.md. CONTRIBUTING.md covers building, running the two test suites (serially, wrapped in check_plist_unchanged.sh), building a private eval corpus and what a PR must carry, and points at AGENTS.md for the rest. 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Mixed typing is what Bopomix is for; shipping it off would make the product name a lie. `defaults write io.github.lmanchu.inputmethod.bopomix MixedScriptEnabled -bool false` still turns it off, and every mixedScript code path still short-circuits to upstream behaviour when it is off. No test depended on the old default (255 XCTest + 87 Swift Testing pass unchanged, PLIST_UNCHANGED). 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
The CHANGELOG said mixed typing "adds 2.6 ms per sentence"; 2.6 ms is the headless CLI's total per-sentence time, not a delta. The only on/off comparison on record (BASELINE.md, pure-Chinese rows) puts the difference at about 0.3 ms, so say that and cite it. AGENTS.md still carried upstream's macOS 14.7 / Xcode 15.3 floor while CONTRIBUTING.md and the old README said macOS 26 / Xcode 26; state the toolchain actually used and note that the older floor is unverified for this fork. 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
The README read as "McBopomofo plus two features". Reworded so the product is described on its own terms: what it does, what stays familiar, and one line saying the engine and Chinese dictionary come from McBopomofo. Upstream is now named three times in each language: that line, the first-launch import note, and the credits. Also tells first-time installers to log out and back in if the input source list does not show Bopomix, which is when macOS rescans ~/Library/Input Methods. 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Stacked on #5. The README a visitor sees, plus the one product default that has to match it.
README.md(wasREADME.markdown): what Bopomix is in one sentence, a three-step install with no Terminal (dmg → installer app → add the input source once in System Settings), what it does, the fourdefaultsswitches, privacy, current limits, how to contribute. Chinese first, English summary at the end.CHANGELOG.md: everything technical that used to sit in the README — the P1 rules, the 4-letter completion threshold and the measurement behind it, the learning rules, the rename and migration behaviour, the eval numbers, known issues.CONTRIBUTING.md: build, the two test suites (serial, wrapped incheck_plist_unchanged.sh), building a private eval corpus withBOPOMIX_EVAL_CORPUS, what a PR should carry; defers toAGENTS.mdfor architecture.MixedScriptEnablednow defaults totrue. It was opt-in during dogfooding; a product called 混打注音 that does not mix by default would be misleading. Turning it off still restores upstream behaviour exactly.The install section describes the signed-and-notarized dmg that the release tooling (next PR) will produce; until v0.1.0 ships, building from source per CONTRIBUTING.md is the way in.
Verification
Full suite, serial, with the new default: 255 XCTest (2 corpus tests skipped) + 87 Swift Testing,
PLIST_UNCHANGED/DATA_FOLDER_UNCHANGED. README links checked against the tree.🤖 Generated with Claude Code