Files
deepseek-harness/scripts/snapshots/translation-prompt-v4/request-response.expected.json
T

61 lines
128 KiB
JSON
Raw Normal View History

2026-07-23 22:41:53 +08:00
{
"request": {
"targetFilename": "snapshot-note.zh.md",
"messages": [
{
"role": "system",
"content": "# Translation Prompt\n\nYou are a senior technical translator specializing in LLM and agent development documentation. Your task is to translate the complete source document from English to Chinese, producing natural, professional technical prose.\n\nRead each complete semantic unit, understand it, and restate it as a native technical author would write it in the target language. Do not mechanically preserve source-language syntax. Then verify the translation against the source clause by clause: preserve every proposition and add none. Fluency never justifies losing or altering meaning, and completeness never justifies unnatural word-for-word prose.\n\n## Priority\n\nApply these authorities in order:\n\n1. Preserve the source meaning and the required document structure, protected content, and formatting.\n2. Follow the injected terminology table exactly.\n3. Use the injected whole-document gold pairs to calibrate target-language voice and phrasing.\n4. Apply the general writing guidance and illustrative examples in this prompt.\n\nA lower-priority rule may refine but never override a higher-priority requirement. Gold pairs calibrate voice; they are not a translation memory. No style preference, gold-pair phrasing, or embedded example may override source meaning, required structure, protected content, or the terminology table.\n\n## Quality Requirements\n\n### Structure and Format Preservation\n- Output a complete translated document that maintains the same document frame as the source: heading hierarchy and order, list kinds and item counts, ordered-list starts, table rows and columns, link targets, and code blocks.\n- Paragraph boundaries may change within the same structural unit when the target language needs different semantic grouping. Do not merge or move content across headings, list items, table cells, or other independent structural units.\n- Keep each prose paragraph on one physical line. Use paragraph breaks, not hard-wrapped lines inside a paragraph.\n- Fenced code blocks must be byte-identical to the source, including info strings, whitespace, and ALL comments inside them. Do NOT translate or reformat any content inside code blocks. This is a hard rule with no exceptions.\n- Inline code spans must be kept verbatim. This includes commands, flags, paths, identifiers, API and event names, config keys, protocol values, version numbers, and other machine-readable tokens. Never translate or reformat them.\n- Every relative link must point to the same target as in the source. Translate link text; do not change link targets.\n- Language switcher line: when an English source contains `English | [�剜�](source-filename.zh.md)`, write `[English](source-filename.md) | �剜�`. When a Chinese source contains `[English](source-filename.md) | �剜�`, write `English | [�剜�](source-filename.zh.md)`. Do NOT copy the source switcher unchanged. If the source has no switcher, do not invent a filename or switcher; the pipeline inserts the canonical target switcher after parsing `<final>`.\n- Preserve emphasis marker types and the semantic spans they cover. Do not add, remove, move, or change bold and italic markers.\n\n### Faithfulness\n- Preserve every proposition in the source and add none. Every sentence, list item, note, FIXME, warning, example, caveat, prerequisite, and guarantee must have an equivalent in the translation. Count list items on both sides.\n- Preserve actors, objects, conditions, exceptions, negation, modality, causal relationships, and distinctions between concepts.\n- Preserve the exact strength and orientation of contracts. Completion and lifecycle conditions, failure behavior, directions and data flow, normal and exceptional result channels, ownership changes, and quantitative bounds must not be weakened, strengthened, reversed, or merged.\n- Translate ideas rather than source-language idioms, but never use fluency as a reason to omit or alter meaning.\n\n### Tone and Style\n- The translation must read as if originally written in the target language by a native technical author. I
2026-07-23 22:41:53 +08:00
},
{
"role": "user",
2026-08-13 16:20:19 +08:00
"content": "# DeepSeek Harness\n\nEnglish | [�剜�](README.zh.md)\n\nDeepSeek Harness (`dsh`) is an open-source agent harness developed by [DeepSeek AI](https://deepseek.com).\n\nIt uses an architecture where **everything is a plugin**, and is powered by [Cordis](https://github.com/cordiverse/cordis).\n\n## Developer preview\n\nDeepSeek Harness is currently in _developer preview_ and is iterating rapidly. **THERE WILL BE COMPATIBILITY-BREAKING CHANGES.**\n\n## Run\n\n### Run from `npm`\n\nInstall `Node.js`, then run:\n\n```sh\nnpx @deepseek-ai/dsh web\n```\n\nThe command starts the Web UI, served at `http://127.0.0.1:3080` by default. See [Web UI guide](docs/user/guide/index.md).\n\n### Run from source\n\nTo run from a repository checkout:\n\n```sh\ngit clone https://github.com/deepseek-ai/deepseek-harness.git\ncd deepseek-harness\npnpm install\npnpm run build\npnpm dsh web\n```\n\n## Community and support\n\n- Feel free to submit feedback or bug reports through [GitHub Discussions](https://github.com/deepseek-ai/deepseek-harness/discussions).\n- Add the [`dsh-plugin`](https://github.com/topics/dsh-plugin) topic to your plugin repository for discoverability.\n- Join <a href=\"https://discord.gg/Ycq5dCaS4\">DeepSeek Harness Discord community</a>.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Development\n\nStart with the [development guide](docs/development.md) and [architecture documentation](docs/architecture.md).\n\nFor agents, follow [AGENTS.md](AGENTS.md).\n\n## License\n\n[MIT](LICENSE)\n\nThird-party dependencies and their licenses are disclosed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).\n"
2026-07-23 22:41:53 +08:00
},
{
"role": "assistant",
2026-08-13 16:20:19 +08:00
"content": "# DeepSeek Harness\n\n[English](README.md) | �剜�\n\nDeepSeek Harness嚗Ǒdsh`嚗㗇糓�� [DeepSeek AI](https://deepseek.com) 撘��𤑳�撘�皞� agent harness嚗�惣�賭���沲嚗剹��n\n摰����**������雴辣**��沲���撟嗥� [Cordis](https://github.com/cordiverse/cordis) 撽勗𢆡��n\n## 撘������閫Ěn\nDeepSeek Harness �桀�憭�� _撘������閫Ó �嗆挾嚗峕迤�典翰�蠘翮隞���**�芣䔉撠�枂����誩�摰寞�抒��䀹凒��**\n\n## 餈鞱�\n\n### �朞� `npm` 餈鞱�\n\n摰㕑� `Node.js`嚗𣬚��舘�銵䕘�\n\n```sh\nnpx @deepseek-ai/dsh web\n```\n\n霂亙𦶢隞支��臬𢆡 Web UI嚗屸�霈文����� `http://127.0.0.1:3080`��祕閫� [Web UI ���](docs/user/guide/index.md)��n\n### 隞擧����銵�n\n憒��隞𦒘�摨𤘪����銵䕘�\n\n```sh\ngit clone https://github.com/deepseek-ai/deepseek-harness.git\ncd deepseek-harness\npnpm install\npnpm run build\npnpm dsh web\n```\n\n## �曉躹�擧𣈲��n\n- 甈Z��朞� [GitHub Discussions](https://github.com/deepseek-ai/deepseek-harness/discussions) �𣂷漱�漤��� bug �亙���n- �箔����隞嗡�摨𤘪溶�� [`dsh-plugin`](https://github.com/topics/dsh-plugin) 霂嗪�嚗䔶噶鈭舘◤�𤑳緵��n- 甈Z��惩� DeepSeek Harness 隡���歹��怎�瘛餃�隡��撠誩𨭌��僎憛怠��亦黎�桀㭘嚗���𣂼�撠誩𨭌�衤���霂瑚��亦黎��n\n<table>\n <thead>\n <tr>\n <th align=\"center\">隡��撠誩𨭌��</th>\n <th align=\"center\">�亦黎�桀㭘</th>\n <th align=\"center\">敺�縑�砌���</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td align=\"center\"><img src=\"assets/community-wecom-assistant.png\" alt=\"DeepSeek Harness 隡��撠誩𨭌�衤��渡�\" width=\"180\" height=\"180\"></td>\n <td align=\"center\"><a href=\"https://trtgsjkv6r.feishu.cn/share/base/form/shrcnIt5twSVdLGD52KJBckGCgg\"><img src=\"assets/community-wecom-survey.png\" alt=\"DeepSeek Harness �亦黎�桀㭘鈭𣬚輕��" width=\"180\" height=\"180\"></a></td>\n <td align=\"center\"><img src=\"assets/community-wechat-official-account.png\" alt=\"DeepSeek Harness ���敺�縑�砌��瑚��渡�\" width=\"180\" height=\"180\"></td>\n </tr>\n </tbody>\n</table>\n\n## ����∠讃\n\n��� [CONTRIBUTING.md](CONTRIBUTING.md)��n\n## 撘��髢n\n霂瑕���粉[撘�����㻩(docs/development.md)���嗆����](docs/architecture.md)��n\n�W� agent嚗朞窈��� [AGENTS.md](AGENTS.md)��n\n## 霈詨虾霂�n\n[MIT](LICENSE)\n\n�砌��嫣��硋��嗉��航�閫� [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)��n"
2026-07-23 22:41:53 +08:00
},
{
"role": "user",
2026-08-13 00:36:22 +08:00
"content": "# Development guide\n\nEnglish | [�剜�](development.zh.md)\n\nThe setup tutorial takes a new contributor from prerequisites to a checked checkout. The contributor reference that follows covers repository layout, daily workflow, and CI organization. Design rationale and implementation details belong to the linked Agent Notes and scripts.\n\n## Setup tutorial\n\n### Prerequisites\n\n- Node.js supports 22.19+ and 24+. CI covers 22.19, 24, and 26; see the [Node engine floor Agent Note](../.agents/notes/implemented/process/2026-07-06-node-engine-floor.md).\n- Corepack-enabled pnpm. The repo pins `pnpm@11.7.0` in `package.json`; run `corepack enable` if `pnpm --version` does not resolve through Corepack.\n- Git 2.26 or newer; hook setup enables Git's worktree-specific configuration extension.\n- Optional: a DeepSeek API key for the Web, headless, and ACP automation demos and real-API e2e tests.\n\n### First-time setup\n\nInstall dependencies from the repo root:\n\n```sh\npnpm install\n```\n\nThe install also configures worktree-local Lefthook hooks and the `dsh-translation-pairing` Git merge driver through `scripts/install-lefthook.mjs`. The [worktree-local hooks Agent Note](../.agents/notes/implemented/process/2026-07-27-worktree-local-lefthook.md) owns the hook-path safety contract; the [automatic pairing merges Agent Note](../.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md) owns the merge driver.\n\nIf either integration is missing because dependencies were restored from cache or `postinstall` was skipped, install them manually:\n\n```sh\nnode scripts/install-lefthook.mjs\n```\n\nIf the wrapper rejects existing Git configuration or reports a stale lock, follow its diagnostic and the linked Agent Note rather than editing worktree metadata speculatively. After moving a checkout, rerun the wrapper to regenerate the owned path.\n\nRun typecheck once after a fresh clone:\n\n```sh\npnpm run typecheck\n```\n\nSetup is complete when `pnpm run typecheck` exits successfully.\n\n## Contributor reference\n\n### TypeScript project layout\n\nThe repository uses isolated Host and Client aggregates. An ordinary package is registered in exactly one aggregate: Host packages in `tsconfig.host.json` and Client packages in `tsconfig.client.json`.\n\n| File | Role | Forms a program? |\n|---|---|---|\n| `tsconfig.json` | Solution root: `extends` base, `files: []`, and references to the two aggregates. It is the tsserver discovery entry and the entry for explicitly running the complete Project Reference graph; through the inherited `paths`, it is also the resolution config for tsx running `examples/` and `scripts/`. | No |\n| `tsconfig.host.json` | Host aggregate: Host packages, examples, tests, scripts, website, and the exceptional Host project of `api/remotes`. | Yes |\n| `tsconfig.client.json` | Client aggregate: `packages/client/*` packages and their tests, `apps/web`, and the exceptional Client project of `api/remotes`. | Yes |\n| `tsconfig.base.json` | Shared compilerOptions and the source `paths` map. Also the resolution facade the vitest configs point vite-tsconfig-paths at: it has no `include`, so its `paths` apply to every importer. | No |\n| `tsconfig.base.client.json` | Browser compiler settings (`jsx`, DOM libs, `types: []`) extended by the Client aggregate and every `packages/client/*` package. | No |\n\nHost and Client stay two aggregate programs because both sides declaration-merge the cordis `Context` interface under the same keys with different services; one program seeing both merges reports a collision. The collision exists only inside a `ts.Program` �� module resolution never triggers it �� which is why the solution may reference both aggregates and one paths facade may span both sides. Three disciplines follow:\n\n- `tsconfig.base.json` never gains `include` or `files`: they would leak into every extending package project and narrow the facade's match-all scope.\n- A script that builds a repo-wide `ts.Program` seeds `tsconfig.host.json` or `tsconfig.client.json` ex
2026-07-23 22:41:53 +08:00
},
{
"role": "assistant",
2026-08-13 00:36:22 +08:00
"content": "# 撘��çƒ���ç�¢n\n[English](development.md) | éŠ�剜�\n\n�剖é�£ï¿½å—µï¿½æ’˜è¨«ç´¡ï¿½å•—æ�’�株�������滨蔭�∩辣撘�憪页��游�璉��箇ð¤Œ�敶閖�朞�璉��乓����Y�éŸ�∠讃������è��滢�摨æž��撅���𠯫撣詨極雿𨀣��� CI è�����孵���挽霈∩��æ¡��摰䂿緵è����撅硺��暹𦻖�� Agent Note �諹��研��n\n## �剖é�£ï¿½å—µï¿½\n\n### �滨蔭�∩辣\n\n- Node.js �舀� 22.19+ éŠ�� 24+��I 閬�� 22.19��24 �� 26åš—ð¥¡�� [Node 撘閙�éŠ�钅� Agent Note](../.agents/notes/implemented/process/2026-07-06-node-engine-floor.md)��n- �èˆ�é�‚鈭� Corepack �� pnpm���摨æž�éŠ� `package.json` éŠ�剖ð¤�„摰帋è�™ï¿½ï¿½ `pnpm@11.7.0`嚗𥕦��� `pnpm --version` �䭾��朞� Corepack 閫��嚗諹窈���銵� `corepack enable`��n- Git 2.26 �ð¡�—凒擃æ�¡ï¿½ï¿½ç©¿ï¿½ï¿½æ‹™ï¿½éœˆæ›„è”­éš¡ð¡�œé�³ï¿½ï¿½ Git �� worktree éŠ�æž���滨蔭�拙���n- �舫�ãš��éŠ��éŠ�� DeepSeek API key嚗𣬚é�‚鈭� Web��eadless �� ACPåš—ã‡�gent Client Protocol嚗㕑䌊�典� agent嚗�惣�賭�嚗㗇�è�·ç®”誑�羓�摰� API �� e2e 瘚è´����n\n### æ“�ð¡�—活�剖é�£\n\n�其�摨𤘪覔�桀�摰㕑�é�˜è‚½ï¿½åš—䨵n\n```sh\npnpm install\n```\n\n摰㕑�餈��餈ä€���朞� `scripts/install-lefthook.mjs` �滨蔭 worktree �ç �ð§‘��� Lefthook �拙��� `dsh-translation-pairing` Git ��僎撽勗𢆡��worktree �ç �ð§‘��拙� Agent Note](../.agents/notes/implemented/process/2026-07-27-worktree-local-lefthook.md) éŸ�è ˜æ���拙�é �臬�����函漲摰𡄯�[�芸𢆡�滚笆��僎 Agent Note](../.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md) éŸ�è ˜æ����僎撽勗𢆡��n\n憒��é�˜è‚½ï¿½ï¿½è‡­ï¿½è�»æž���W��� `postinstall` 鋡怨歲餈���紡�港é�™éŠ�����è�»ç®�仃嚗諹窈�è§�𢆡摰㕑�嚗䨵n\n```sh\nnode scripts/install-lefthook.mjs\n```\n\n憒������ð¡��𧋦�åž���唳� Git �滨蔭�ð¡�—ð¥�’�𢠃��折�嚗諹窈�è�„å„��嗉��剖����暹𦻖�� Agent Note嚗䔶�閬�é�¯ï¿½ð¨€£ï¿½è�»ð¤¥�� worktree ��㺭�柴��å®��冽��箇ð¤Œ�敶��«ï¿½åš—諹窈�齿鰵餈鞱�����ð¡��𧋦隞仿��å•���鞱䌊�㕑æ¥�敺���n\n�啣����霂瑕�餈鞱�éŠ��甈∠掩�𧢲��ä¼��\n\n```sh\npnpm run typecheck\n```\n\n`pnpm run typecheck` �𣂼����ç®�朖銵函內�剖é�£æ‘°å³•���n\n## éŸ�∠讃�����n\n### TypeScript 憿寧ð¤Œ�撣��\n\néšžæž��雿輻é�‚�訾��𠉛氖�� Host éŠ�� Client aggregate��芦�ð¡�œï¿½ï¿½èŠ°è’ˆéœˆå•—ï¿½ï¿½å—¡è‘‰éŠ��éŠ�� aggregate嚗𡼕ost ����� `tsconfig.host.json`嚗龦lient ����� `tsconfig.client.json`��n\n| ��辣 | é–«å�¿ð §§ | �臬ç‚���� program嚗� |\n|---|---|---|\n| `tsconfig.json` | solution �å°��`extends` base��files: []`����其舅éŠ�� aggregate����� tsserver �𤑳緵�亙è—�嚗䔶��舀é�¬æ’˜ð¤©ºï¿½éŠµå³•ãŸ²æ’˜ï¿½ Project Reference �暹𧒄������è��è®�誧�輻� `paths` ��� tsx 餈鞱� `examples/` éŠ�� `scripts/` �嗥�閫���滨蔭�� | �� |\n| `tsconfig.host.json` | Host aggregate嚗䥅ost ����內é�˜å�����霂𨰻����ç �� website嚗䔶誑�� `api/remotes` �� Host �嫣� project�� | �� |\n| `tsconfig.client.json` | Client aggregate嚗䫤packages/client/*` ����嗆�霂𨰻��apps/web`嚗䔶誑�� `api/remotes` �� Client �嫣� project�� | �� |\n| `tsconfig.base.json` | �曹澈 compilerOptions éŠ�擧��� `paths` �惩�����嗆糓�� vitest �滨蔭霈� vite-tsconfig-paths �����圾�鞾秄�g�摰�瓷�� `include`嚗��甇文� `paths` ��é�‚鈭𦒘é�™é›¿ï¿½ importer�� | �� |\n| `tsconfig.base.client.json` | 瘚讛��函�霂ð¤�¸æŒ½è�µæ®·ï¿½`jsx`��OM lib��types: []`åš—ãš���� Client aggregate �峕�éŠ�� `packages/client/*` �� extends�� | �� |\n\nHost éŠ�� Client é�½è„²ï¿½éŠ�支葵 aggregate program嚗峕糓�ç‰�蛹éŠ�支儒�函㮾�屸ç�¸éŠ�衤誑éŠ�滚��滚𦛚撖� cordis `Context` �亙è—��ð¡�œã„Ÿï¿½ð¤¾¸ï¿½æ’Ÿå¡šï¿½ï¿½è“¥ï¿½ program �峕𧒄�è§��éŠ�支é�¢ï¿½ï¿½åƒŽéš¡ð¡��ð¥�’�脩����è�˜æ»šï¿½è�’�蘨摮ç�ƒéŠ�鈭� `ts.Program` ����婙�å¨�芋�𡑒圾�鞉å�¶é¤ˆé���隡朞圻�穃��婙�å¨��隞� solution �臭誑�峕𧒄撘閧é�‚éŠ�支葵 aggregate嚗䔶�éŠ�� paths �券𢒰銋笔虾隞交赤é �其舅é�˜æ‰¼ï¿½ï¿½çœ�甇斗綫�箔��∠漯敺页�\n\n- `tsconfig.base.json` 瘞訾�瘛餃� `include` �� `files`åš—ð¡�œï¿½éšžç Œï¿½ç˜œï¿½ï¿½é¤ˆð¥Ÿ‡ï¿½éŠ�� extends 摰����★�殷�撟嗆𤣰è�’�秄�Y��典龪�滩��氬��n- ���惩�隞� `ts.Program` ����祆é�¬æ’˜è­�誑 `tsconfig.host.json` �� `tsconfig.client.json` éŠ�箇�摮é�¥ï¿½å©™ï¿½å¨�覔 solution 瘞訾�雿é��蛹è�˜æ»šï¿½åš—��éŠ�箸�éŠ�支葵 aggregate 撅訫åƒ�餈𥕢�éŠ�� program éš¡ð¡���éŠ�� `Context` ��僎�脩�
2026-07-23 22:41:53 +08:00
},
{
"role": "user",
"content": "# Bilingual documentation\n\nEnglish | [�剜�](README.zh.md)\n\nThis repo's documentation is read by people and agents both inside and outside the company, so every document in scope is maintained in English and Simplified Chinese. This page defines the pairing contract, checks, scope, and exclusions; [translation-rules.md](translation-rules.md) defines how to translate; [terminology.md](terminology.md) is the terminology source of truth. Routine agent work follows the lightweight path in [docs/AGENTS.md](../AGENTS.md); the extended [.agents/skills/dsh-translate-docs](../../.agents/skills/dsh-translate-docs/SKILL.md) workflow is available only through explicit user invocation.\n\n## The pairing contract\n\n- **Both languages carry equal authority.** A document may be authored and reviewed in either language first �� a Chinese-first Agent Note is as legitimate as an English-first one �� and the counterpart is translated from it. Neither file outranks the other; what binds them is that they must say the same thing.\n- **A pair is three sibling files.** The English `foo.md`, the Chinese `foo.zh.md`, and a consistency record `foo.i18n.yaml`, all in the same directory. No locale directories, no separate translation repo, no interleaved bilingual files. Pairs merge whole: a PR never lands one language without the other two files.\n- **The consistency record.** `foo.i18n.yaml` holds the full git blob hash of each side as of the last time the two were confirmed to say the same thing:\n\n ```yaml\n foo.md: 3f786850e387550fdab836ed7e6dc881de23001b\n foo.zh.md: 89e6c98d92887913cadf06b2adb97f26cde4849b\n ```\n\n Blob hashes, not commit hashes, so the record is computable for files edited in the same PR (`git hash-object foo.md`) and consistency is a pure content comparison. `--write` stores those snapshots in the local Git object database before recording them, including uncommitted working-tree contents, and pins every distinct stored blob under a content-addressed `refs/dsh/translation-pairing/snapshots/` ref so garbage collection cannot invalidate a recorded recovery pointer. The recorded hashes therefore recover the exact last-confirmed text of either side, so an out-of-sync pair is updated by patching the counterpart minimally against the edited side's diff �� never by re-translating whole files. Routine work makes that patch directly; when the user explicitly invokes the extended workflow, `pnpm run gen-translation-brief <pair>` can instead assemble the update at the narrowest safely aligned granularity and `--apply` can splice a code-fence-only change after structural validation ([briefed-updates Agent Note](../../.agents/notes/implemented/process/2026-07-26-briefed-minimal-translation-updates.md)). After bringing the pair back in line, `pnpm run verify-translation-pairing --write <pair>` re-records both hashes; that yaml diff is the reviewable act of confirming consistency, which is why `--write` requires naming the pairs you confirmed (`--write --all` is the explicit corpus-wide form).\n\n When two branches contain valid confirmations of the same pair, the installed `dsh-translation-pairing` Git merge driver composes a new record only if Git's default text merge succeeds for both recorded owner-blob triplets and the merged pair retains its required switchers and structural signature. The Chinese file must retain its English backlink; an authored English source must retain its Chinese link, while a listed generated English source is exempt. Any structure the driver cannot verify remains an ordinary conflict; `pnpm run resolve-translation-pairing-conflicts` applies the same fail-closed operation to a merge that has already stopped, stages every safe pairing record, and exits unsuccessfully when other pairing conflicts remain. The [automatic pairing merges Agent Note](../../.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md) owns the mechanism and alternatives.\n- **Language switcher.** The Chinese file always links back immediately after its H1 heading with `[En
2026-07-23 22:41:53 +08:00
},
{
"role": "assistant",
"content": "# �諹祗���\n\n[English](README.md) | �剜�\n\n�砌�摨梶����隡朞◤��虬�����犖�� agent嚗�惣�賭�嚗厰�霂鳴��䭾迨��凒���瘥������賭誑�望��𣬚�雿㮖葉��輕�扎��𧋦憿��銋厰�撖寧漲摰𠾼����乓����港��㘾膄閫��嚗𢬎translation-rules.md](translation-rules.md) 摰帋�憒���餉�嚗𢬎terminology.md](terminology.md) �舀钟霂剔�皞���gent ��𠯫撣詨極雿𣈯�敺� [docs/AGENTS.md](../AGENTS.md) �剔�頧���臬�嚗𥟇�撅閧� [.agents/skills/dsh-translate-docs](../../.agents/skills/dsh-translate-docs/SKILL.md) 撌乩�瘚���函��瑟�撘讛��冽𧒄�����n\n## �滚笆�血�\n\n- **�斤�霂剛��峕���** �������虾隞亙��其���霂剛��啣��諹�摰∴�����剜��� Agent Note �𤾸��躰㘚������瑟迤敶橒�嚗�𡖂���抒�摰�蕃霂��峕䔉��舅�芣�隞嗉�銋煺�擃������行�摰�賑��糓鈭諹���憿餉秩�峕甅�����n- **��撖寞���糓��葵�𣬚�敶閙�隞嗚��** �望� `foo.md`��葉�� `foo.zh.md`嚗����隞賭��湔�扯扇敶� `foo.i18n.yaml`嚗屸��典����桀�����刻祗閮��桀�嚗䔶��函𡠺�讠蕃霂��摨橒��滨��剛㘚瘛瑟������辣���撖孵�憿餅㟲雿��撟塚�PR嚗㇊ull Request嚗㗇�餈��隡�蘨撣虫��滩祗閮��𣬚撩�嗡��支葵��辣��n- **���湔�扯扇敶𨰻��**`foo.i18n.yaml` �嘥��支儒��辣�其���甈∟◤�株��諹秩�峕甅����齿𧒄��䌊����� Git blob hash嚗䨵n\n ```yaml\n foo.md: 3f786850e387550fdab836ed7e6dc881de23001b\n foo.zh.md: 89e6c98d92887913cadf06b2adb97f26cde4849b\n ```\n\n �� blob hash �䔶��� commit hash嚗諹��瑕����� PR �峕㺿�函���辣銋蠘��堒枂霈啣�嚗Ǒgit hash-object foo.md`嚗�����湔�扳糓�臬�摰寞�颲���--write` 隡�����鈭𥕦翰�批��交𧋦�� Git 撖寡情摨���嗘�霈啣�嚗峕𧊋�𣂷漱�� worktree ���銋煺����嚗𥕦�餈���典�摰孵粉���� `refs/dsh/translation-pairing/snapshots/` ref ���摰���芯��𣬚�撌脣� blob嚗䔶���䔿�墧𤣰�䭾�霈拙歇霈啣����憭齿���仃�����甇方扇敶閧� hash �質��煺����找�甈∠&霈斗𧒄��&����穿���隞亙仃�餃�甇亦��滚笆�胯�峕�鋡急㺿���抒� diff ��撠誩��唬耨銵亙𡖂���扼�㵪�隞𦒘��渡��滩���𠯫撣詨極雿���湔𦻖摰峕�餈嗘��株‘嚗𤤿��瑟�撘讛��冽�撅訫極雿𨀣��塚��舀㺿�� `pnpm run gen-translation-brief <pair>` 隞亥�摰匧�撖寥�������摨行����甈⊥凒�堆�撟嗥� `--apply` �函���嵗撉���潭𦻖隞���𠰴凒��誨�����㺿���[briefed-updates Agent Note](../../.agents/notes/implemented/process/2026-07-26-briefed-minimal-translation-updates.md)嚗剹��舅�批笆朣𣂼�嚗䈣pnpm run verify-translation-pairing --write <pair>` �齿鰵霈啣��支葵 hash嚗��隞� YAML diff 撠望糓�𣬚&霈支��氬�滩��芸𢆡雿𨀣𧋦頨���臭誑鋡怨�摰∴�銋�迤�惩�甇歹�`--write` 閬���孵�雿删&霈方����撖��`--write --all` �舀�撘���刻祗��耦撘����n\n 敶㮖舅�芸��舫���鉄�䔶��滚笆�����&霈斗𧒄嚗�歇摰㕑��� `dsh-translation-pairing` Git ��僎撽勗𢆡�芯��� Git 暺����𧋦��僎�賢��怠僕����僎霈啣��������㘚����� blob �𦒘葉����� blob嚗䔶���僎�𡒊��滚笆隞滢��������祗閮����銵���𤘪��曉��塚�����箔�隞賣鰵霈啣���葉���隞嗅�憿颱��蹱���㘚����滚��暹𦻖嚗𥟇芦��兛�嗵��望�皞𣂼�憿颱��蹱���葉����暹𦻖嚗諹�峕��訫�����鞱㘚����滢�甇方�瘙����雿訫�撟園店�冽�瘜閖�霂���𤘪��賭��嗘蛹�桅������`pnpm run resolve-translation-pairing-conflicts` 隡�笆撌脩��𨀣迫���撟嗆�銵����憟烾���朖����脩����雿頣����瘥���臬��函��鞟��滚笆霈啣�嚗�僎�刻��匧�隞㚚�撖孵���𧒄隞仿��嗥𠶖���������芸𢆡�滚笆��僎 Agent Note](../../.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md) �蠘�霈啣�霂交㦤�嗡�憭��㗇䲮����n- **霂剛����銵䎚��** �剜���辣��敺�� H1 ����𡒊��喃誑 `[English](foo.md) | �剜�` �曉��望���芦��兛�嗵��望���辣�典���雿滨蔭隞� `English | [�剜�](foo.zh.md)` 鈭㘾曎嚗𥟇��訫�����鞱㘚�����裦甇方�嚗䔶誑�蹂�����刻��粹�𣂼�����氬���撣�� GitHub 隞亙�雿滨蔭�� README嚗��憒� PyPI 憿寧��
2026-07-23 22:41:53 +08:00
},
{
"role": "user",
"content": "# Translation rules\n\nEnglish | [�剜�](translation-rules.zh.md)\n\nHow to translate between the two sides of a documentation pair in this repo. Both languages carry equal authority ([README.md](README.md)): a change is authored in either language, and that side is the source for that update �� these rules govern producing or updating the counterpart. They bind humans and agents equally. Routine agent work translates the changed content directly in one terminology-guided pass; the extended [.agents/skills/dsh-translate-docs](../../.agents/skills/dsh-translate-docs/SKILL.md) workflow runs only when the user explicitly invokes it. Rule levels follow RFC 2119 usage: **MUST** / **MUST NOT** are gate- or review-blocking; **SHOULD** needs a stated reason to deviate; **MAY** is discretionary.\n\n## Faithfulness\n\n- The counterpart *MUST* say what the authored side says �� no added behavior, prerequisites, warnings, version claims, or examples, and no dropped ones. If the pair disagrees on substance, neither language wins by default: fix the side that is wrong, then bring the other along in the same change.\n- The counterpart *SHOULD* read as natural technical writing in its own language, not word-by-word gloss. Translate meaning, restructure sentences where the target grammar wants it, and keep the author's register �� terse stays terse.\n- Do not translate the untranslatable: if a sentence resists natural rendering because it leans on an idiom of the source language, translate the idea, not the idiom.\n\n## Voice\n\n- The register is calibrated by [style-samples.md](style-samples.md) �� human-approved gold pairs, one per document genre. The counterpart MUST match the target-language side of the nearest sample; where its voice and a prose voice rule disagree, the sample wins. Chinese targets use institutional technical Chinese; English targets use concise professional developer prose.\n- Write as a native technical author restating the content, not as a translator transposing sentences, while preserving every source clause: nothing added, nothing dropped �� fluency never justifies losing a clause.\n- Give sentences an explicit actor when the target language would otherwise obscure it; for Chinese, replace vague passives or abstract subjects with the actual actor (�餌���秄�����摰∩犖).\n- Prefer established target-language engineering idiom over calques (霂舀�嚗𤩺�璉� for false positive/negative, �扯��Y瑪 for enforcement frontier); localize metaphors instead of transplanting them, and unpack noun chains where the target language requires it.\n- Split long paragraphs by semantic unit �� one idea per paragraph. Paragraph boundaries MAY differ from the source; the structural signature does not count paragraphs.\n- When translating into Chinese, category nouns use Chinese with a first-mention English annotation (摰墧����嚗Ếookbook嚗�); when translating into English, use the conventional English category name. Literal directory or file references stay code-formatted English.\n\n## Structure preservation\n\nThe pairing gate checks heading depths, fenced code blocks, table row and column counts, list kinds, ordered-list starts, list item counts, and link targets. Preserve the rest of the frame manually; the paired files MUST match one to one in:\n\n- heading hierarchy (same levels, same order �� heading TEXT is translated),\n- list shape and numbering,\n- tables (same columns, same row order; header cells translated per terminology),\n- fenced code blocks �� **byte-identical, including comments**; the pairing signature compares their info strings and contents, and ` ```ts ` blocks compile under `doc-typecheck`,\n- inline code spans (commands, flags, config keys, file paths, event names, API names, version numbers) �� verbatim, never translated or reformatted,\n- links and anchors: every relative link MUST point at the same target in both files �� by convention the `.md` path, not the `.zh.md` sibling �� so links never dangle when one pair lands before its neighbors. The ONLY zh-spec
2026-07-23 22:41:53 +08:00
},
{
"role": "assistant",
"content": "# �餉�閫��\n\n[English](translation-rules.md) | �剜�\n\n�祆�閫��嚗��雿訫��砌�摨𤘪����撖寧��剛㘚��舅�滩祗閮�銋钅𡢿餈���餉���舅�滩祗閮��峕�嚗�� [README.md](README.md)嚗��瘥𤩺活�䀹凒�臭誑�其���霂剛��啣�嚗諹◤�������批朖�箸𧋦甈⊥凒���皞���祆�����嗵漲�笔�雿蓥漣�箸��湔鰵撖嫣儒��辣���鈭����笆鈭箇掩�� agent嚗�惣�賭�嚗匧��厩�����𠯫撣詨極雿�葉嚗�gent 隡���航祗��紡�讠凒�乩�甈∪��鞉��孵𢆡�����蕃霂𡢅��拙��� [.agents/skills/dsh-translate-docs](../../.agents/skills/dsh-translate-docs/SKILL.md) 撌乩�瘚���函��瑟�撘讛��冽𧒄餈鞱�����嗵漣�急窒�� RFC 2119 ���瘜��**敹�◆嚗㇈UST嚗�** 嚗� **��迫嚗㇈UST NOT嚗�** 隡�㨃�函����摰∴�**摨𥪜�嚗𠄎HOULD嚗�** ��氖�嗉�霂湔����嚗�**�臭誑嚗㇈AY嚗�** �芾�鋆����n\n## 敹惩���n\n- 撖嫣儒��辣*敹�◆*隡㰘噢�擧兛�嗘儒�詨����摰���齿溶�㰘�������格辺隞嗚��郎�������ㄟ�擧��箔�嚗䔶��齿����雿蓥�憿嫘�����舅�批�摰噼�����𠹺����湛��⊥��芰�霂剛�暺�����嚗�窈�格迤�躰秤����改�撟嗅��䔶��芸��湧��峕郊�湔鰵�虫��扼��n- 撖嫣儒��辣霂餉絲��*摨𥪜�*�臬�霂剛��芰�����舀�摮梹��屸��鞱�撖寧��������窈�寞旿霂凋��餉�嚗���格�霂剛�霂剜���閬�𧒄�滨��亙�嚗�僎�脲��煺����霂剖�嚗��憒��������脲��������n- �滩��餉��滚虾霂𤑳����嚗������亥��肽�皞鞱祗閮����霂准���瘜閗䌊�嗉蓮�g�霂瑞蕃霂穃�����嘅��屸�銋㰘祗�祈澈��n\n## 銵峕�\n\n- 霂凋�隞� [style-samples.md](style-samples.md) �箸嵗����嫘��犖撌亙��輻�����瑚��㗇�雿�������霂��敹�◆���������亥���甅�页�����嗡葉�格�霂剛����抒�霂凋�嚗𥕦��𨀣甅�衤��祆�������������隞交甅�衤蛹������𣂷葉��𧒄嚗屸��刻�������臬�摨行�嚗���鞱㘚��𧒄嚗屸��函�瘣�������撘��������祗雿���n- 隞交�霂剜��臭����頨���滩膩���嚗諹�䔶��臭誑霂���澈隞賡�𣂼蘂頧��嚗���嗡�������瘥�葵霂凋��𣂼�嚗帋�瘛餃�����埈��婙������餈���臭腺�㕑祗銋㗇���������n- 憒���渲�隡朞悟�扯��颱��怎�嚗諹窈�𡒊&��枂摰鮋��扯����霂���剜��塚�摨𠉛��𣬚頂�麄��秄�����摰∩犖�滨�摰鮋��扯�����餉祗嚗屸��滚鉄�羓�鋡怠𢆡�交��質情�餉祗��n- 隡������格�霂剛����朞���極���颲橘��踹��毺′�渲�嚗Êalse positive/negative��秤����𤩺���nforcement frontier���銵𣬚滯���嚗���餃��芰��孵�嚗��霂漤曎�蹱��格�霂剛�����舀�撘���n- �踵挾�㕑祗銋匧���������畾��隞嗡���挾�質器��虾隞乩�����滚�嚗𤤿���倌�滢�瘥𥪜笆畾�氜�啜��n- �餉��箔葉��𧒄嚗𣬚掩�怠�霂滢��其葉��僎�券��唳𡠺瘜刻㘚���摰墧����嚗Ếookbook嚗��嚗𤤿蕃霂�蛹�望��塚�雿輻��朞���㘚��掩�怠�����桀����隞嗆𧋦頨急𧒄���隞��雿栞㘚����n\n## �𤘪��脲�\n\n�滚笆�函�隡���交�憸䀹楛摨艾��凒��誨�������潸��埈㺭���銵函掩�����摨誩�銵刻絲憪讠��瑯���銵券★�圈��𡡞曎�亦�����函��芾��𣇉��𤘪�隞漤�鈭�極�詨笆��舅�芷�撖寞�隞嗅�憿餃�隞乩��寥𢒰����撖孵�嚗䨵n\n- ���撅�漣嚗�㮾�𣬚漣�怒��㮾�屸◇摨�������**���**閬�蕃霂𡢅�嚗鞸n- �𡑒�敶X����硋噡嚗鞸n- 銵冽�嚗�㮾�𣬚��𨰜��㮾�𣬚�銵��嚗��憭游�����㗇钟霂剛��餉�嚗��\n- �湔�隞���梹�**�𣂼�����湛���𡠺瘜券�**���撖寧倌�齿�撖嫣縑�臬��虫葡�𤾸�摰��` ```ts ` �𡑒�閬��朞� `doc-typecheck` ���嚗鞸n- 銵��隞��嚗�𦶢隞扎��lag����桅����隞嗉�敺����隞嗅���PI �溻�����噡嚗����甅���嚗䔶��滨蕃霂���齿�嚗鞸n- �暹𦻖�𡡞����瘥�葵�詨笆�暹𦻖�其舅�芣�隞嗡葉敹�◆����詨��������厩漲摰�糓 `.md` �臬��屸� `.zh.md` �����辣嚗��餈蹱甅�喃��𣂼笆�������賊���辣�賢�嚗屸曎�乩��滢��祉���𣈲���� zh �寞��暹𦻖�航祗閮����銵䎚��� GitHub 隞亙�雿滨蔭皜脫��� README �臭誑�� [README.md](README.md) ���摰𡄯�雿輻�����桀�撖嫣儒��辣������撘�隞��
2026-07-23 22:41:53 +08:00
},
{
"role": "user",
"content": "# Agent Note: Bilingual documentation via paired sibling files and a pairing gate\n\nStatus: implemented\n\nEnglish | [�剜�](2026-07-02-bilingual-docs-and-pairing-gate.zh.md)\n\n## Problem\n\nThis repo's documentation corpus is read by people and agents inside and outside the company, in both English and Chinese. Maintaining a second language by hand, with no mechanism, is how translations rot: one side moves on, the other silently lies, and no gate notices. The repo's standing answer to invariants of this kind is to encode them as a mechanical check (see [quality gates](2026-06-11-quality-gates.md) and [doc-sync enforcement](../../archived/process/2026-06-11-doc-sync-enforcement.md)), so the bilingual policy ships with one.\n\n## Decision\n\n- **Paired sibling files with equal authority.** A documentation pair is three sibling files: English `foo.md`, Chinese `foo.zh.md`, and a consistency record `foo.i18n.yaml`. Neither language is canonical �� a document may be authored and reviewed Chinese-first and translated to English afterwards, or the reverse; what binds the pair is that both sides must say the same thing, and pairs merge whole (both languages plus the record, never one alone). Policy: [docs/i18n/README.md](../../../../docs/i18n/README.md); translation rules: [docs/i18n/translation-rules.md](../../../../docs/i18n/translation-rules.md); terminology source of truth: [docs/i18n/terminology.md](../../../../docs/i18n/terminology.md).\n- **A sidecar record of both blob hashes makes consistency checkable.** `foo.i18n.yaml` holds the full git blob hash of each side as of the last confirmed-consistent state. An edit to either side without re-confirming the pair is then mechanically detectable as a pure content comparison �� no history lookup �� and the hashes are computable for files edited in the same PR, which a commit-hash record is not. Re-recording (`verify-translation-pairing --write <pair>`, which requires naming the confirmed pairs �� bulk re-record is an explicit `--write --all`) produces a reviewable yaml diff: confirming consistency is an explicit, visible act in the PR.\n- **`verify-translation-pairing` joins `doc-sync`.** The gate ([scripts/verify-translation-pairing.ts](../../../../scripts/verify-translation-pairing.ts)) enforces: every discovered, non-excluded source has a complete pair; every existing pair is complete (all three files) and consistent (both hashes match, the Chinese side and every authored English source carry their switchers while listed generated English sources are exempt, structural signatures identical); and excluded generated, instruction, or bilingual-by-construction files stay unpaired. [scripts/translation-pairing.manifest.json](../../../../scripts/translation-pairing.manifest.json) contains only explicit exclusions, so no requirement can bypass discovery and receive a weaker check. Source-oriented code gates consume a `.zh.md` fence sequence as a derivative only when its unsuffixed sibling has the same tracked fences in the same order with byte-identical bodies; an incomplete, reordered, reclassified, or changed sequence stays independent, so the owning code gate or pairing gate reports the mismatch.\n- **One corpus-wide requirement.** Every document in scope requires a complete pair from creation; the policy has no per-file rollout state, date cutoff, or README-specific class. README discovery covers every case-insensitive README basename outside vendored, dependency, and ignored build-output trees, including future top-level directories. A site-published pair uses `pairedPages()` so the root locale projects `.zh.md` and `/en/` projects `.md`; creating a counterpart alone does not publish it.\n- **Pairing records are metadata, not Cordis Loader configuration.** Cordis configuration discovery accepts actual `.cordis.yml` and `.cordis.yaml` files while excluding `*.i18n.yaml`, even when the document name contains `cordis`. This preserves validation of executable Loader entries without parsing translation hashes as configuration.\n- **Translation is agent
},
{
"role": "assistant",
"content": "# Agent Note: �朞��滚笆�����辣éŠ�𡡞�撖寥秄è�³ï¿½ï¿½ï¿½å•£ï¿½éœ‚剜�ç�¢Î±n\nStatus: implemented\n\n[English](2026-07-02-bilingual-docs-and-pairing-gate.md) | éŠ�剜�\n\n## �桅�\n\n�砌�摨梶���ï¹�霂剜�隡朞◤�ç �虬�����犖�� agent嚗�惣�賭�嚗åŠ�誑éŠ�剛㘚éŠ�斤�霂剛���粉��éŠ�ç˜�⊥��ç®������è�Žï¿½è�¥èˆ«ï¿½ï¿½è§�極è��湔擪è�šç Œï¿½éœ‚剛�嚗峕迤�航��������寞�嚗帋�é�˜æ‰³ï¿½è��剜�餈𨥈��虫�é�˜æŠ˜ï¿½æšºç�ƒä»ƒæ‘°ç—¹ï¿½ï¿½å³•瓷�厰秄è�³ï¿½ï¿½æ†­ç¬”��啜��笆鈭舘�è��颱��ç�ƒï¿½åš—峕𧋦隞æž��éŠ��éŸ�èˆ���ð¡����臬��嗥���蛹�箸1璉��ä¼��閫�éŸ�券��函�](2026-06-11-quality-gates.md)éŠ�� [doc-sync嚗��ç�¢ï¿½ï¿½ç”‡ä»¿ç§„è�³ï¿½ï¿½æ’˜ç®��](../../archived/process/2026-06-11-doc-sync-enforcement.md)åš—ãš���䭾迨�諹祗�輻��誯�éŠ���㯄秄è�³ï¿½ï¿½éŸ�瑚漱隞塩��n\n## �喟�\n\n- **�滚笆�����辣嚗䔶舅è�˜æ»©ç¥—閮��峕���** éŠ��撖寞�ç�¢ï¿½çœ�éŠ�åŠ�葵�����辣è����嚗朞㘚�� `foo.md`��葉�� `foo.zh.md`嚗䔶誑�𠹺�隞賭��湔�扯扇敶� `foo.i18n.yaml`��瓷�匧𪑛è�˜æ»©ç¥—閮��舀迤�賂�éŠ��è�­ï¿½ï¿½ç�¢ï¿½è™¾éšžäº™ï¿½ï¿½å…¶è‘‰ï¿½ï¿½å…›ï¿½å�”�霂�æ�£ï¿½ï¿½ï¿½ï¿½ð¤¾¸ï¿½éœ‚çƒ���望�嚗��銋衤漲�è�”�è�¥è¡Œï¿½ï¿½æ»šç¬†ï¿½ï¿½ç³“嚗帋舅é�˜æ‰¹ï¿½æ†¿é¤‰â€�颲曄㮾�𣬚���æ�†åš—䔶��滚笆�港���僎嚗�舅è�˜æ»©ç¥—閮��㰘扇敶ð¤�ªï¿½è��苷��閧𡠺�賭�é�˜æ”¹ï¿½ï¿½ï¿½éŒ‡è�‘ð¤¥�� [docs/i18n/README.md](../../../../docs/i18n/README.md)嚗𤤿蕃霂ð¤�¸ï¿½ï¿½èº°ï¿½ [docs/i18n/translation-rules.md](../../../../docs/i18n/translation-rules.md)嚗𥟇钟霂剔�皞鞱� [docs/i18n/terminology.md](../../../../docs/i18n/terminology.md)��n- **隡湧�霈啣�é�½å˜¥ï¿½éŠ�支儒 blob hashåš—ä”¶è�™éŠ���湔�批虾璉��乓��** `foo.i18n.yaml` é�½å˜¥ï¿½éŠ�支儒��辣�其�éŠ��甈∠&霈支��湔𧒄��䌊����� Git blob hash��迨�𦒘耨�嫣�隞颱�é�˜æ‰¯ï¿½å³•𧊋�齿鰵è�–æ ªæ�•�滚笆嚗屸��質◤�箸1璉�瘚è§�枂�ä¼��è�¥è‡¬ï¿½æ‘°å¯žï¿½é¢²ï¿½ï¿½ï¿½ð£³‡ï¿½ï¿½äº¥ç ­ï¿½ï¿½èŸ®åš—ãš���䔶��䔶�éŠ�� PR嚗㇊ull Request嚗匧��孵𢆡���隞嗡��質æ�£è�žå ’æž‚ hash嚗稪ommit hash æ’˜è®��霈啣��帋��啗�éŠ���嫘����啗扇敶ð¤�ªï¿½`verify-translation-pairing --write <pair>`嚗諹���™ï¿½ï¿½ï¿½é½¿ï¿½è�–æ ªæ�•���撖å°���寥��齿鰵霈啣��舀é�¬æ’˜è®�� `--write --all`åš—åŠ��鈭抒�éŠ��隞賢虾霂�æ�£ï¿½ï¿½ YAML diffåš—ð¡�¶ï¼†éœˆæ”¯ï¿½ï¿½æ¸¸éŠ� PR éŠ�剜糓éŠ��éŠ�芣é�¬æ’˜è­Œï¿½ï¿½è™¾é–«ï¿½ï¿½ï¿½å…¶ï¿½ï¿½ï¿½n- **`verify-translation-pairing` �惩� `doc-sync`��** �函�嚗Éscripts/verify-translation-pairing.ts](../../../../scripts/verify-translation-pairing.ts)嚗匧撩�嗆�銵䔶誑éŠ�è´���辷�瘥è­�葵撌脣��唬��芣��斤�皞鞉�ç�¢ï¿½ï¿½ï¿½åŒ§ï¿½ï¿½æ¹§ï¿½æ’–å°��瘥è­�葵�唳��滚笆�賢��湛�éŠ�åŠ�葵��辣朣𣂼�嚗åŠ��éŠ���湛�éŠ�支儒�� hash ���霈啣��寥���葉��儒�峕��åŠ�犖撌交兛�嗵��望�皞鞾�撣西祗閮���æ�¢éŠµè«¹ï¿½å³•ï¿½ï¿½è¨«ï¿½ï¿½ï¿½ï¿½ï¿½éž±ã˜šï¿½ï¿½ï¿½ï¿½æ–‡ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½å€Œï¿½æ»¢ï¿½ï¿½æ¹›ï¿½åš—ð¥¡�◤�㘾膄����鞉�ç�¢ï¿½ï¿½ï¿½ï¿½éšžæ–—�ç�¢ï¿½ï¿½ï¿½ç¥ˆæ¾ˆï¿½å–³ï¿½éœ‚剔���ï¹�éŠ�滚��滚笆��scripts/translation-pairing.manifest.json](../../../../scripts/translation-pairing.manifest.json) �芸��急é�¬æ’˜ð¤©ºï¿½ï¿½æ—¥â˜…嚗��甇支é�™é›¿é–—�瘙���䭾�è��閗��𤑳緵瘚���峕𦻖�𡑒�撘æ¢��璉��乓��蘨�匧� `.zh.md` �湔�摨誩�éŠ�𤾸��惩�è�»ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½è¾£ï¿½äº¤ï¿½æ†¿ç®���詨���迤���摮𡑒�éŠ���渡��䔶�è����é �蠘葵�湔��塚��W�皞鞟���誨��秄è�³ï¿½ï¿½éš¡ð¡�œï¿½ï¿½å—¡ï¿½éŠ�箸晷�笔�摰寞�éŸ�å°��éŠ�滚��氬��◇摨誩��氬�����掩�硋歇�孵𢆡����𦯀�隡ð¡�¶ð¡ ºè�¡è§��璉�嚗��甇斤çœ��嗆�撅䂿�隞���函��㚚�撖寥秄è�³ï¿½ð¥�’�𠹺��寥���n- **�刻祗�嗵�éŠ��閬����** ��凒���瘥è®����ï¹�隞𤾸�撱箄絲撠勗�憿餅�摰峕㟲�滚笆嚗𥟇錇è�‘ð¡�—瓷�厰�鞉�隞嗆綫餈𤤿𠶖����𠯫�笔��峕� README éŠ�梶é�‚è��餃���EADME �𤑳緵隡朞��� vendor 皞鞟����éŸ�𣇉ð¤Œ�敶蓥�鋡怠蕭�亦���é�£éˆ­æŠ’��桀�銋è§�����㗇�隞嗅�éŠ�滚躹��之撠誩��寥� README ���隞塚���𡠺隞𠰴��啣���▲撅�ð¤Œ�敶𨰻���撣����ï¹�è�¡å—µï¿½ï¿½æ»šç¬†é›¿è¼»é�‚ `pairedPages()`嚗𣬚çœ��� locale �訫蔣 `.zh.md`嚗𣬚çœ� `/en/` �訫蔣 `.md`嚗𥕢��𥕦é�£æ’–嫣儒��辣撟嗡�隡ð¡�œï¿½æ’£ï¿½ï¿½ï¿½ï¿½n- **�滚笆霈啣��臬��唳旿嚗諹�䔶��� Cordis Loader �滨蔭��** Cordis �滨蔭�𤑳緵隡ð¡��𦻖�堒���� `.cordis.yml` �� `.cordis.yaml` ��辣嚗���嗆��� `*.i18n.yaml`嚗�朖雿踵�ç�¢ï¿½ï¿½éŠ�剖��� `cordis` 銋煺�é�˜è§������瑟𠳿�賜誧è��剜嵗撉�虾�扯��� Loader �滨蔭憿å°�����隡ð¡���è�§é¤‰ï¿½ hash 敶㮖��滨蔭�亥圾�åƒ���n- **è�§é¤‰ï¿½ï¿½ï¿½ agent ��極雿頣��曹犖霂�æ�£ï¿½ï¿½** 撣貉��孵𢆡��é�‚��
2026-07-23 22:41:53 +08:00
},
{
"role": "user",
2026-07-23 23:12:56 +08:00
"content": "---\nlayout: doc\n---\n\n# Snapshot note\n\nThe agent performs one step.\n"
2026-07-23 22:41:53 +08:00
}
]
},
"response": {
2026-07-23 23:12:56 +08:00
"translation": "---\nlayout: doc\n---\n\n# 敹怎�霂湔�\n\nagent嚗�惣�賭�嚗㗇�銵䔶��芣郊撉扎��",
2026-07-23 22:41:53 +08:00
"review": "- ��耨甇�",
2026-07-23 23:12:56 +08:00
"final": "---\nlayout: doc\n---\n\n# 敹怎�霂湔�\n\n[English](snapshot-note.md) | �剜�\n\nagent嚗�惣�賭�嚗㗇�銵䔶��芣郊撉扎��n"
2026-07-23 22:41:53 +08:00
}
}