Chinese support — implementation roadmap¶
Status: Proposed, issue-ready work decomposition
Goal: Provide tasks small and explicit enough for multiple community developers to implement in parallel without having to redesign the feature.
1. Workstream graph¶
CHN-00 design review
|
+--> CHN-10 profile model/resolver
| |
| +--> CHN-11 status derivation
| +--> CHN-12 atomic transaction
| |
| +--> CHN-13 CLI
| +--> CHN-14 Settings
| +--> CHN-15 doctor
|
+--> CHN-20 English grammar extraction
| |
| +--> CHN-21 Chinese grammar core
| +--> CHN-22 Chinese numerals
| +--> CHN-23 command vectors/native review
|
+--> CHN-30 postprocess audit
+--> CHN-31 file/meeting integration
+--> CHN-32 injection matrix
|
+--> CHN-40 benchmark harness
|
+--> CHN-41 Whisper baseline run
+--> CHN-42 alternative model probes
+--> CHN-43 native-speaker acceptance
|
+--> CHN-50 support release gate/docs
CHN-10 and CHN-20 may begin in parallel after design review. Benchmark harness can also be built independently.
2. From work package to executable contributor task¶
A CHN package in this file is not automatically a GitHub issue and not automatically safe to hand to an agent.
Current repository policy (ADR-023) separates three layers:
- This roadmap — architectural dependency graph and work packages.
- A small umbrella GitHub issue — design discussion, coordination, decisions.
campaign/tasks.json— bounded 10–30 minute contributor contracts with allowed paths, validation commands, risk lane and cloud/hardware/native-review requirements.
Before a package is advertised, split it until each task is:
- independent;
- useful;
- bounded to one sitting;
- verifiable by an existing command/schema or named human evidence;
- low-review-cost;
- limited to exact allowed paths.
L3 changes — accepted ADR semantics, dependency additions, privacy/network posture, public interfaces, default behavior — remain maintainer/experienced-contributor work and are not advertised as open first tasks.
Every executable task must record:
- ADR/spec source;
- exact allowed paths;
- paths explicitly out of scope where useful;
- risk lane;
- honest minutes estimate;
- whether a cloud agent can produce all evidence;
- exact validation command(s) that already exist;
- human evidence required;
- the negative-test failure mode that a low-effort or fabricated submission might exploit.
See agent-ready-task-contracts.md for sample campaign rows and issue-backlog.md for umbrella/milestone structure.
3. CHN-00 — Approve Chinese support architecture¶
Suggested title: design: approve first-class Mandarin language-support architecture
Type: design / maintainer
Size: M
Dependencies: none
Work¶
Review and either accept/supersede:
- ADR-v2-140 through ADR-v2-144;
specs/chinese-language-support.md;- target architecture;
- model strategy;
- validation plan.
Resolve before coding:
- exact CLI naming;
commands.language = "auto"semantics;- supported baseline model (
smallunless benchmark pre-work changes decision); - config transaction mechanism consistent with existing writer;
- whether Settings installs extras automatically on every packaging target.
Definition of done¶
- ADR statuses changed from Proposed to Accepted where agreed;
- unresolved decisions become explicit follow-up ADRs, not comments;
- no implementation issue depends on ambiguous profile semantics.
4. CHN-10 — Implement pure language profile resolver¶
Suggested title: feat(language): add pure English/Mandarin profile resolver
Type: Python core
Size: M
Dependencies: CHN-00
Can parallelize with: CHN-20, CHN-40
Files¶
New: - src/yazses/language/__init__.py - src/yazses/language/profiles.py - src/yazses/language/plan.py - tests/test_language_profiles.py
Possibly: - small engine capability helper under stt/.
Requirements¶
Implement canonical: - en; - zh-CN / zh-Hans; - zh-TW / zh-Hant.
Reject zh-HK with typed ambiguity error.
Return LanguagePlan; no I/O/network.
Preserve compatible current model by default.
Tests¶
All resolver tests from validation plan §3.
Definition of done¶
- 100% branch coverage is desirable for the small pure resolver;
- importing resolver does not import model runtimes;
- default English config resolves with zero changes;
- default -> zh plans small + zh + requested script.
5. CHN-11 — Derive language status/coherence¶
Suggested title: feat(language): report derived language profile and config coherence
Type: Python core
Size: S
Dependencies: CHN-10
Files¶
src/yazses/language/status.py- tests.
Requirements¶
Return structured: - speech language; - script; - command language; - engine/model; - exact/compatible/custom profile; - problems; - prerequisite status.
No heavy imports or network.
Definition of done¶
All coherent/incoherent cases in validation §3.7 pass.
6. CHN-12 — Atomic multi-key config application¶
Suggested title: feat(language): apply language plan atomically after artifact preflight
Type: config/reliability
Size: L
Dependencies: CHN-10
Files¶
src/yazses/language/apply.py;- existing configedit infrastructure if generalized;
tests/test_language_apply.py.
Requirements¶
- lock/re-read;
- dependency preflight;
- model cache/download preflight;
- candidate parse/validation;
- same-dir temp write;
- atomic replace;
- restart once;
- no partial writes on failure;
- preserve concurrent unrelated edits.
Special review point¶
Do not install/download after writing the target language. The old English configuration remains active until all prerequisites are ready.
Definition of done¶
Failure-injection tests prove original config byte-for-byte intact for every precommit failure.
7. CHN-13 — Add language CLI¶
Suggested title: feat(cli): add language list/status/set
Type: CLI
Size: M
Dependencies: CHN-11, CHN-12
Commands¶
language list;language status [--json];language set PROFILE.
Options per spec.
Tests¶
Click runner: - dry-run; - no-download; - JSON; - invalid zh-HK; - compatible custom model; - apply with fakes.
Docs¶
- CLI reference generator/source;
- man page source if generated separately;
- configuration how-to.
Definition of done¶
A default config can be changed to coherent zh-CN and back using only CLI in a temporary test environment.
8. CHN-14 — Settings language profile control¶
Suggested title: feat(settings): add validated dictation-language profile control
Type: desktop UI/controller
Size: M
Dependencies: CHN-11, CHN-12
Requirements¶
- high-level dictation language control;
- separate Chinese output-script control/label;
- plan preview for model/dependency;
- confirmation before download/install;
- custom-compatible state;
- no mapping duplicated in Qt layer.
Tests¶
Qt-free controller first; minimal UI smoke.
Definition of done¶
CLI and Settings produce identical LanguagePlan for same starting config and selection.
9. CHN-15 — Doctor language diagnostics¶
Suggested title: feat(doctor): diagnose language/model/script/command coherence
Type: diagnostics
Size: S/M
Dependencies: CHN-11
Checks¶
CHN-001 through CHN-006 in spec.
Definition of done¶
Doctor points an invalid base.en + zh config to yazses language set zh-CN; no duplicate compatibility rule introduced.
10. CHN-20 — Refactor Tier-1 grammar into registry with zero English change¶
Suggested title: refactor(commands): extract English Tier-1 grammar behind language registry
Type: commands / high regression sensitivity
Size: M
Dependencies: CHN-00
Can parallelize with: CHN-10
Files¶
Likely: - commands/grammar.py; - new commands/grammars/en.py; - shared types if needed; - contract generator.
Requirement¶
No Chinese rules in this PR. It is a pure behavior-preserving refactor.
Definition of done¶
- all existing grammar tests;
- contract vectors identical;
- public classify call remains compatible;
- benchmark remains <5 ms target.
11. CHN-21 — Add Chinese safe-core command grammar¶
Suggested title: feat(commands): add reviewed Mandarin edit/navigation grammar
Type: commands + localization
Size: L
Dependencies: CHN-20
Start with lower-risk actions¶
- undo;
- save;
- copy/cut/paste;
- delete last word/line;
- select;
- enter/tab/escape/backspace;
- basic navigation;
- go to line.
Defer broad terminal run ... forms until negative corpus/safety review is complete.
Requirements¶
- Simplified + Traditional reviewed phrases;
- anchored deterministic rules;
- same canonical action IDs;
- command-only normalization.
Definition of done¶
Positive vectors pass; curated Chinese prose negative set has zero Tier-1 command false positives.
12. CHN-22 — Chinese command numeral parser¶
Suggested title: feat(commands): parse bounded Chinese numerals for command arguments
Type: parsing
Size: S/M
Dependencies: CHN-20; can land before/with CHN-21
Scope¶
0–99 minimum; Arabic digits; common Chinese forms.
Pure function with exhaustive table tests.
Out of scope¶
General-purpose Chinese number normalization for dictation.
13. CHN-23 — Chinese command contract vectors and native phrase review¶
Suggested title: test(commands): add Mandarin command contract and ambiguity corpus
Type: tests/localization
Size: M
Dependencies: CHN-21, CHN-22
Deliverables¶
- positive vector file;
- negative/prose vector file;
- reviewer attribution/notes where contributors consent;
- phrase rationale for ambiguous actions.
Definition of done¶
Every shipped Chinese Tier-1 action is represented by: - positive Simplified; - positive Traditional; - punctuation variant; - relevant negative.
14. CHN-30 — Audit postprocessing for CJK assumptions¶
Suggested title: audit(i18n): classify postprocessors for Mandarin safety
Type: audit + targeted fixes
Size: L
Dependencies: CHN-00
Search¶
Every default-on text transform and quality heuristic.
Deliverable¶
Add design/chinese/postprocess-compatibility.md table:
- module;
- default state;
- language assumption;
- Chinese result;
- fix/disable decision;
- tests.
High priority¶
- meeting “word” counts;
- whitespace insertion between bursts;
- capitalization;
- filler removal;
- number normalization.
Definition of done¶
No default-on English-specific transform can silently damage Chinese output without a guard/fix.
15. CHN-31 — Verify file and meeting Chinese paths¶
Suggested title: test(multilingual): verify Mandarin file and meeting pipelines
Type: integration
Size: M/L
Dependencies: CHN-10, CHN-30
Requirements¶
- file config inheritance;
- per-file override;
- script conversion;
- metadata;
- meeting live/postpass language;
- meeting quality heuristic audit.
Definition of done¶
Chinese support matrix explicitly says supported/limited for each surface; tests back every green cell.
16. CHN-32 — Unicode injection platform matrix¶
Suggested title: test(injection): validate Han text on supported desktop backends
Type: cross-platform/hardware
Size: L distributed
Dependencies: none for test design; release depends on it
This is ideal for community parallelism: one issue/subtask per OS/session.
Subtasks¶
- CHN-32A Linux X11;
- CHN-32B Linux Wayland;
- CHN-32C macOS;
- CHN-32D Windows.
Standard fixture¶
Same Unicode string and application categories.
Deliverable¶
design/chinese/results/.../injection-matrix.md.
Definition of done¶
Every platform has verified primary path or documented clipboard fallback.
17. CHN-40 — Build reproducible Mandarin benchmark harness¶
Suggested title: bench(chinese): add reproducible CER and latency harness
Type: benchmarking/research
Size: L
Dependencies: CHN-00
Can parallelize with: core implementation
Deliverables¶
- corpus manifest format;
- scoring normalization;
- CER breakdown;
- script pre/post normalization;
- timing/RSS;
- JSON result schema;
- command to reproduce.
No corpus redistribution violations¶
Harness downloads or points to legal corpus sources; repository stores only allowed manifests/results/code.
18. CHN-41 — Establish Whisper Chinese baseline¶
Suggested title: bench(chinese): measure small, large-v3-turbo and large-v3
Type: benchmark
Size: M compute
Dependencies: CHN-40
Arms¶
At minimum: - small; - large-v3-turbo; - large-v3.
Record condition_on_previous_text where relevant.
Definition of done¶
Model strategy can name a supported baseline from measured YazSes results rather than only existing microset evidence.
If small fails release thresholds, ADR-v2-141 must be revisited before support ships.
19. CHN-42 — Prototype optional Chinese-specialized engines¶
Split into independent issues; do not block P1 unless baseline fails.
CHN-42A SenseVoiceSmall¶
Adapter prototype behind SttEngine, benchmark only first.
CHN-42B Paraformer¶
Investigate offline + streaming contract and timestamps.
CHN-42C Qwen3-ASR-0.6B¶
Measure CPU/RAM/package implications and dialect opportunity.
Each prototype must record: - exact weight license; - dependency footprint; - adapter feasibility; - benchmark result.
Do not merge a production backend solely to run the benchmark if an isolated probe suffices.
20. CHN-43 — Native-speaker acceptance¶
Suggested title: validation(chinese): Simplified and Traditional native-speaker acceptance
Type: community validation
Size: distributed
Dependencies: CHN-13, CHN-21, CHN-41
Separate reviewers for Simplified and Traditional.
Use validation checklist; private audio remains private.
Definition of done¶
- phrasing corrections landed;
- UX terminology corrections landed;
- major recognition limitations documented;
- no machine-only translation is used as the sole language-quality approval.
21. CHN-50 — Support release gate and documentation transition¶
Suggested title: release(chinese): run first-class Mandarin support gate
Type: release/evidence
Size: L
Dependencies: all release-blocking workstreams
Work¶
- collect machine artifacts;
- English regression;
- packaging;
- injection;
- native review;
- exact model/license record;
- offline test;
- final pass/fail report.
If passed: - update Chinese voice-typing page from “not claimed” wording; - add supported matrix to features/docs; - release notes; - roadmap status.
If failed: - keep experimental wording; - publish failure/limitation honestly; - create focused remediation issues.
22. Parallel contributor lanes¶
Lane A — core/config¶
CHN-10 -> 11 -> 12 -> 13/14/15
Lane B — commands/localization¶
CHN-20 -> 21/22 -> 23
Lane C — compatibility¶
CHN-30 -> 31
Lane D — platforms¶
CHN-32A/B/C/D independently
Lane E — research¶
CHN-40 -> 41 -> 42*
Lane F — community language review¶
Begins phrase review during CHN-21 and completes CHN-43.
This structure allows many contributors without multiple people editing the same core files at once.
23. Review ownership suggestions¶
These are skill requirements, not named-person assignments:
| Work | Reviewer expertise |
|---|---|
| profile/config transaction | Python + reliability/config |
| command grammar | Python parsing + command safety |
| Simplified phrases | fluent/native Simplified Chinese |
| Traditional phrases | fluent/native Traditional Chinese |
| model benchmark | ASR evaluation/statistics |
| alternative model adapter | ML inference/packaging |
| Linux injection | Linux input stack |
| macOS injection | macOS accessibility/input |
| Windows injection | Win32 input/clipboard |
| licensing | maintainer/release/legal-awareness |
No contributor should be expected to certify Mandarin naturalness solely because they implemented the parser.
24. Merge strategy¶
Prefer small PRs in dependency order.
Especially separate:
- English grammar refactor from Chinese rules.
- Profile resolver from config mutation.
- CLI from Settings.
- Benchmark harness from model recommendation.
- Alternative-engine research from production integration.
This keeps regressions bisectable and lets documentation/design contributions land before code.
25. Final milestone acceptance¶
The Mandarin milestone closes only when the release gate in ADR-v2-144 is resolved with a committed evidence report.
“Code merged” is not the milestone definition.