Move the agent-spine bundle and the stdio/ACP/JSON-RPC app packages out of
core/ and ui/ into a new packages/examples/ group, renamed with a -demo
suffix so the npm name marks them as non-product surface:
core/agent-core -> examples/agent-spine-demo (dsh-agent-spine-demo)
ui/stdio-agent -> examples/stdio-demo (dsh-stdio-demo)
ui/acp-agent -> examples/acp-demo (dsh-acp-demo)
ui/jsonrpc-agent -> examples/jsonrpc-demo (dsh-jsonrpc-demo)
Update every code/config/test reference and reference-only doc mentions, and
regenerate module-graph, config-catalog, and doc-graphs. The jsonrpc bin
(dsh-jsonrpc-agent) and single-file exe (dsh-jsonrpc-agent-pkg) keep their
names; the SDK runtime-startup surface is reconciled separately.
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 孤儿进程.
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.
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.