Commit Graph
72 Commits
Author SHA1 Message Date
Ziya ba4e39f10d docs(i18n): adopt jingtingxiang's calibrated terminology table and five gold pairs
术语表整体采用 jingtingxiang 的重构版(PR #244):按缩写类/英文类/
双语类分节、通用规则前置、首次出现与不要译作独立列;保留本 stack
的 mock/package/counterpart 与 agent 组合词裁定行。五组金标译文按
其定稿采用(development、i18n README、translation-rules、双语 RFC、
根 README),README.zh 吸收 PR #249 的两处措辞(「智能体辔架」括注
与其自身新表冲突,未采用)。translation-prompt.md 增补 Few-shot 金
标一节:声明这 5 组配对即流水线的整文档级 few-shot,注入方式为多轮
示例对话。style-samples 的 blob hash 译法按新表回改为保留英文。

Supersedes the .zh.md content of #244/#249/#264.
2026-07-12 21:07:45 -07:00
Ziya c74cc5a609 docs(i18n): credit the prompt and few-shot examples to jingtingxiang 2026-07-12 20:41:10 -07:00
Ziya 8ad6dbc359 docs(i18n): commit the pipeline translation prompt as a repo asset
自动翻译流水线的 prompt 模板进仓(docs/i18n/translation-prompt.md):
占位符契约(source_lang/target_lang/terminology 三个,旧 %% 分段协议
废弃)+ 逐字模板正文(三段 XML 输出、分类自审、8 组正误例)。列入
配对排除清单;skill 与流水线自此共用同一套规则文件。
2026-07-12 20:34:19 -07:00
Ziya 1a4ef8c8d9 docs(i18n): restructure terminology table — 首次出现/不要译作 as real columns
自由文本备注里的「首次出现可写:」「不要译作:」提为独立列,机器可
直接按列执行;表头补各列语义。按评审意见收录 counterpart、sidecar
record(禁「旁挂记录」)、source of truth 裁定行,agent 组合词与
seam 括注规则细化。
2026-07-12 20:34:05 -07:00
Ziya b43a9e9ab1 docs(i18n): package stays English per ruling 2026-07-05 06:41:04 -07:00
Ziya 60cfec6073 docs(i18n): retarget sample-excerpt links to resolve from docs/i18n
Relative links copied into an excerpt resolve from the excerpt's home,
not the source doc's — verify-md-links caught the moved-directory break.
2026-07-05 06:33:24 -07:00
Ziya daaddcaaf3 docs(i18n): absorb round-4 gold samples, terminology-corrected
Architecture pointer paragraph, two defensive patterns, and the
prefer-real-over-mock rule join the samples. Recorded per the
table-wins rule: agent/mock/LLM stay English, registry renders 注册表,
and code-spanned identifiers (event names, status values, package
names) survive verbatim — that boundary is now a stated sample note.
orphan row notes the process-context rendering 孤儿进程.
2026-07-05 06:24:56 -07:00
Ziya 74699d25ba docs(i18n): mock stays English per ruling; sample corrected to match 2026-07-05 06:18:08 -07:00
Ziya 4f85274237 docs(i18n): absorb the with-key-testing gold sample; table rules mock and real-API
Gold sample recorded terminology-corrected per the table-wins rule (agent
stays English, cancellation renders 取消), and that rule itself lands in
the samples' notes. New table rows: mock -> 模拟; API row notes real-API
as 真实接口 when attributive.
2026-07-05 06:17:14 -07:00
Ziya abb145d99f docs(i18n): translation capability — style samples, voice rules, two-pass skill
Human-annotated gold pairs land as docs/i18n/style-samples.md (bilingual
by construction, excluded from pairing) and outrank prose tone rules.
translation-rules gains a Voice section; shape stays gate-owned so the
writer optimizes for natural Chinese. The skill's translate step becomes
two passes: native-author writing, then clause-level fidelity check.
Terminology rulings: hash -> 哈希 (blob 哈希/提交哈希), HMR and fiber
confirmed as tabled.
2026-07-05 06:03:14 -07:00
Ziya 0bccb483a5 docs(i18n): state the requiredSince grandfather semantics explicitly
Files dated before the cutoff are the grandfathered backlog by
definition (including cutoff-eve creations); backdating is a
review-visible RFC-convention violation, not a loophole.
2026-07-04 05:54:22 -07:00
Ziya f5774a2a26 feat(i18n): new documents merge bilingual — the requiredSince date frontier
New docs must not enlarge the translation backlog: any date-named
document (yyyy-mm-dd-*.md, i.e. an RFC) dated on/after the manifest's
requiredSince cutoff must merge with its complete pair, independent of
the required back-catalog list. Cutoff ships at 2026-07-05, so the
existing 2026-07-04 RFC wave is grandfathered into the batch backlog
and everything after is bilingual from birth.

The date comes from the filename, deliberately: it is deterministic
from tree content alone — no git history (shallow CI checkouts hold),
no PR base ref — matching the gate's pure-content design. A proposal
dated before the cutoff that merges later escapes the rule; that is
the graceful grandfathering of in-flight work, not a hole.

--list marks such files (required by date); contract and RFC updated
in both languages and the pairs re-recorded.
2026-07-04 05:41:18 -07:00
Ziya ec05295a0c docs: equal-authority pairing with sidecar consistency records
Redesign per review: neither language is canonical. A pair is three
sibling files — foo.md, foo.zh.md, foo.i18n.yaml — and either language
may be authored first (a Chinese-first RFC is as legitimate as an
English-first one). The sidecar record holds the FULL git blob hash of
both sides as of the last confirmed-consistent state, replacing the
in-file one-directional fingerprint; editing either side without
re-confirming the pair goes red. New --write mode re-records a pair
after both sides are brought in line, making the confirmation a
reviewable yaml diff. Pairs merge whole (completeness enforced).

- gate rewritten around pair anchors (union of .zh.md and .i18n.yaml
  remnants) so half-deleted pairs are caught from either side; red/green
  proven for en-only edit, zh-only edit, missing record, and a record
  for an excluded file
- verify-rfc-classification now skips .zh.md counterparts (same RFC,
  indexed via its English filename; the pairing gate owns consistency)
- docs/i18n/README.md + translation-rules.md reframed bidirectionally
  (terminology table binds both directions; typography section governs
  the Chinese side); zh counterparts updated; skill workflow updated
- RFC amended to the shipped design, records the English-canonical
  in-file-fingerprint model as considered-and-revised; RFC translated
  (docs/rfc/.../2026-07-02-bilingual-docs-and-pairing-gate.zh.md) and
  added to the required frontier
- generated docs stay excluded with the follow-up recorded: teach the
  generators to emit Chinese, then de-list
2026-07-03 07:41:24 -07:00
Ziya bb10931478 docs: apply translation-review findings across the four zh files
A four-way parallel review of every EN<->ZH pair (one reviewer per pair,
findings verified before applying) surfaced:

- terminology: stale-sense 过期 -> 陈旧 in development.zh.md (the table
  reserves 过期 for expired); GitHub workflow -> GitHub 工作流 per the
  table; dropped the invented 质量 in 'CI gates' -> CI 门禁; taxonomy ->
  分类体系 in translation-rules.zh.md; skill first-occurrence annotation
  added in the i18n README
- verbatim spans: <current-blob> restored inside an inline code span the
  translation had localized
- typography: full-width dashes normalized to no surrounding spaces
  across all four files (the rules' own MUST); one 顿号 between clauses
  -> comma; 顿号 before 以及 dropped
- fidelity/wording: must-not rendered 不得 (not 不应); local setup ->
  本地环境搭建; enforce -> 强制执行; verified surface -> 受验证的范围;
  batch-lands-before-neighbors nuance restored; 更新粘贴内容
2026-07-03 02:53:08 -07:00
Ziya 0282778126 docs: one more stale-sense 过期 -> 陈旧 in the i18n README translation 2026-07-03 02:33:42 -07:00
Ziya f508ff2bf5 docs: freshness/stale renderings per MDN HTTP-caching zh precedent
freshness -> 新鲜度 confirmed against MDN's zh HTTP caching docs (freshness
lifetime -> 新鲜度生命周期); precedent now cited in the table. The same
source pairs stale with 陈旧, not 过期 (过期 maps to expired), so the stale
entry and the i18n README translation now say 陈旧译文.
2026-07-03 02:32:54 -07:00
Ziya 50a32cdcb1 docs: extend terminology table with i18n mechanism terms
Every new term the bilingual-docs work introduced, with precedented
renderings where precedent exists:

- orphan -> 孤立 (git's official zh l10n renders orphan as 孤立, e.g.
  孤立分支 — not 孤儿; the translations were corrected to match)
- info string -> 信息字符串 (CommonMark zh convention; corrected in the
  i18n README translation)
- fenced code block -> 围栏代码块 (MDN zh), staged -> 暂存 (git zh),
  event-sourced -> 事件溯源 (DDD convention), smoke test -> 冒烟测试,
  fail-fast -> 快速失败, plus fingerprint/pairing/freshness/stale/contract
- mechanism names coined by this repo, marked as such in the notes:
  language switcher -> 语言切换行, structural signature -> 结构签名,
  enforcement frontier -> 强制边界
- keep-English entries so future translators don't guess: backlog,
  blob hash, CI, doc-sync, e2e, monorepo, PR, worktree
2026-07-03 02:24:17 -07:00
Ziya a899226397 docs: harden pairing gate per review — structural signature, not counts
Review findings addressed:

- The gate compared only heading and code-block COUNTS, understating the
  contract it claims to enforce. It now compares ordered structural
  signatures: heading depths, fenced code blocks verbatim (info string +
  content), table column counts, list kinds, and every link target except
  the language switcher. Proven red on a heading demotion, a reworded
  code-block comment, and a retargeted link; green on all existing pairs.
- Stated the gate's limit explicitly (header comment + docs/i18n/README.md
  both languages): green means fresh and structurally sound, NOT verified —
  translation quality is the reviewer's half of the contract.
- first-line extraction no longer silently drops the last character of a
  newline-less file (split with limit instead of indexOf slice).
- isExcluded documents the trailing-slash-is-the-boundary invariant.
- Rollout guidance: grow the required frontier at the pace translation
  review is resourced.
- dsh-code-review's doc-sync sublist is now the exhaustive chain.

docs/i18n/README.zh.md updated via the minimal-diff workflow and
re-fingerprinted.
2026-07-03 02:06:57 -07:00
Ziya 4d89bb3e74 docs: bilingual docs contract, translation skill, and pairing gate
Establish EN->ZH bilingual documentation for the README and docs tree:

- docs/i18n/README.md — the pairing contract: sibling foo.md <-> foo.zh.md,
  English canonical, blob-hash source fingerprints, language switchers,
  scope/exclusions, and a manifest-driven rollout ratchet.
- docs/i18n/translation-rules.md — how to translate: faithfulness, structure
  preservation, terminology discipline over docs/i18n/terminology.md, and
  typography rules grounded in MDN/K8s/Vue/clreq conventions.
- .agents/skills/dsh-translate-docs — the committed agent workflow, following
  the dsh-code-review pattern of deferring to docs as sources of truth.
- scripts/verify-translation-pairing.ts + manifest — a doc-sync gate: required
  pairs exist; every existing .zh.md is fresh (fingerprint = current source
  blob), switcher-linked, structure-matched, and non-orphaned; excluded
  (generated) docs stay unpaired. --list prints the translation work list.
- RFC (implemented/process) recording the decision and the alternatives.
- Dogfood: README.zh.md and the two i18n docs translated under their own rules.

Gates: doc-sync green including the new gate; red/green proven for stale
fingerprint, orphan, and excluded-file violations.
2026-07-02 23:12:25 -07:00
Tianyi Cui 57900f9cbd docs(i18n): address round-2 terminology review
- ACP/SSE: show full English name in parens on first occurrence
- fixture: drop 测试夹具 gloss, keep descriptive note
- manifest: keep English, drop 首次出现可写 clause
2026-07-01 23:08:45 +08:00
ZiyaZhang f05717e1ac docs: address terminology review comments
Clarity-first revisions from review:
- keep English for ambiguous terms (Cordis, fork, harness, schema, spawn,
  manifest, transcript, compaction, dispose)
- first-use glosses for CLI, Function Calling, HMR, fiber
- inference/reasoning carry the English in parens to disambiguate
- memory distinguishes 记忆 (agent memory) vs 内存 (resource usage)
- plugin -> 插件; add a separate mod -> 模组 row
- 中英搭配 note on translated terms (wire format, adapter contract)
2026-06-29 00:47:29 -07:00
ZiyaZhang f962fda8c1 docs: add Chinese terminology table 2026-06-25 22:42:48 -07:00