中文技术写作
借鉴 ASD-STE100 的受控语言思想,为中文技术内容建立可执行的写作约束。目标是让读者准确理解并正确执行,而不是机械缩短文本或把中文改成翻译腔。
默认行为
根据用户请求决定操作,不要求用户选择模式:
- 用户要求写作时,根据已知事实和受众起草内容。
- 用户要求改写时,保留原意并提高可执行性;默认只返回可直接使用的成稿。
- 用户要求审校时,定位问题并说明风险;除非用户要求修改,否则不改文件或替用户决定存在歧义的技术含义。
默认使用通用模式。遇到操作步骤、安全提示、规则和要求、API 契约、错误消息、工具说明、提示词或机器解析文本时,自动改用严格模式。只有用户询问或要求审校依据时才说明模式。
严格模式执行全部结构约束。通用模式保留必要的行文节奏,但仍执行术语、指代、逻辑和语义保持规则。
工作流程
- 读取局部规范。 处理仓库文件时,先读取适用的
AGENTS.md、贡献指南、模板和邻近文档。局部规范优先于默认样式阈值,但不能削弱语义准确性。 - 确定文本契约。 明确受众、阅读后的任务,以及文本是规范性、程序性还是说明性内容。只有缺失信息会改变技术含义时才标为待确认。
- 保护字面量。 原样保留代码块、命令、路径、URL、标识符、API 名称、配置键、占位符、版本号、数值、单位和界面标签,除非用户明确要求修改。新建或修改含中文的 Mermaid 图时,执行本 Skill 的 Mermaid 兼容规则。
- 建立语义账本。 记录主体、动作、对象、条件、范围、时间、例外、否定、数量和要求强度。写作时以用户事实为账本;改写时以原文为账本。
- 应用规则。 优先修复会改变执行结果或产生多种解释的问题,再处理可读性。需要完整规则编号和阈值时,读取 references/chinese-writing-rules.md;需要排版、数字、标题、列表、链接或无障碍约定时,读取 references/chinese-style-conventions.md;需要文体示例时,读取 references/examples.md。
- 处理歧义。 不推测缺失的主体、因果、布尔作用域或参数。无法安全改写时保留相关内容,并使用
[待确认:具体问题]。 - 验证并迭代。 对长文本或文件运行静态检查器。随后核对语义账本、字面量、Markdown/MDX 结构、链接和项目要求。修复问题后重新检查,直到没有未解释的 hard finding。零发现不表示事实正确或完全无歧义。
核心规则
- 一个术语只表示一个概念;一个概念只使用一个首选术语。首次出现的缩略语给出全称,通用或已定义缩略语除外。
- 明确动作主体。程序步骤已明确由读者执行时,可以省略“用户”;系统行为、权限判断和自动化动作必须写明组件或角色。
- 严格模式中,一个步骤只包含一个主要动作。前置条件写在动作之前,结果和验证写在动作之后。
- 代词和指示词必须有唯一、就近的先行词。能写实体名时,不写含糊的“它”“其”“该内容”“相关配置”“上述方式”。
- 保留要求强度:
必须/不得、应/不应、可以、建议、可能不能互换。规范文档需要定义这些词时,以该文档的定义为准。 - 优先使用肯定句和单层否定。遇到“双重否定”“除非……否则不……”或多层例外时,拆成条件和结果。
- 优先使用直接动词,如“配置”“检查”“删除”;避免“进行配置操作”“实现对日志的查看”等空泛结构。
- 句子只表达一个中心关系。严格模式的默认句长上限为 40 个计数单元,通用模式为 60 个;超过阈值先拆分,若拆分会损失精度则保留并说明原因。
- 三项及以上的步骤、条件或并列项使用列表。并列项保持相同语法结构,不在列表项末尾悬置“和”“或”“以及”。
- 错误消息至少说明:发生了什么、影响什么;如果已知恢复动作,再说明如何处理。不要虚构原因或保证恢复成功。
- 安全提示先写危险或适用条件,再写必须执行的动作,最后写不执行的后果。不要把安全条件埋在段落中。
- 用事实、阈值和观察结果替代“高效”“稳定”“灵活”“显著”等无证据评价。
中文规范词与 RFC 2119
中文没有 RFC 2119 大写关键词那样的强度标记,“必须”“应”“建议”同时是日常词汇,生成和改写时容易发生强度漂移。因此:
- 中文输出只使用 ZH-04 档位表收录的强度词,不使用“务必”“记得”“千万”等表外词承担要求强度。
- 改写时逐句把原文强度记入语义账本,只做同档替换,不升格也不降格。
- 目标文档声明了关键词约定(RFC 2119、GB/T 1.1 助动词或团队规范)时,改按声明的映射执行。
- 中英混排的规范性文本可以直接使用大写 MUST/SHOULD/MAY 标记强度。
映射表、重映射规则和选词约束见 references/rfc2119-chinese.md。
静态检查器
运行要求
- 核心写作和审校规则不依赖 Python。
- 推荐使用 uv 0.11 或更高版本运行可选静态检查器。脚本声明 Python
>=3.11,<4。 - 检查器仅使用 Python 标准库,不需要安装第三方包。
- 输入文件必须使用 UTF-8 编码。
- 如果没有 uv,可直接使用已安装的兼容
python3。如果两者都不可用,跳过静态检查并执行人工审校。不要擅自安装、升级或下载运行时。
默认使用隔离、离线且禁止自动下载 Python 的命令:
uv run --offline --no-python-downloads scripts/zh-tech-lint.py --mode strict path/to/doc.md
uv run --offline --no-python-downloads scripts/zh-tech-lint.py --mode general --format json path/to/doc.md
项目有术语表时,可提供 TSV 文件:第一列为首选术语,第二列为用英文逗号分隔的禁用别名。
用户 客户,使用者
删除 移除,清除
uv run --offline --no-python-downloads scripts/zh-tech-lint.py --terms terms.tsv path/to/doc.md
回退命令:
python3 scripts/zh-tech-lint.py --mode strict path/to/doc.md
不要使用 uvx 或 pipx 运行当前脚本;它们适合已打包并提供命令入口的 Python 工具。检查器会跳过围栏代码块,并尽量忽略行内代码、URL 和 Markdown 链接目标。它不能判断事实、唯一指代、因果关系或要求强度是否在改写中保持不变。
输出约定
- 写作或改写:默认只给可直接使用的成稿。只有存在无法消解的技术歧义时,附最少量待确认项。
- 审校:使用下表,按风险排序。位置应精确到文件和行号,或原文片段;不把纯风格偏好写成缺陷。
- 用户要求对照:给出原文、改写、规则编号和语义保持说明。
- 编辑仓库文件:完成修改后报告改动范围和验证结果;遵守仓库自身的提交和构建要求。
| 优先级 | 位置 | 规则 | 问题与风险 | 建议 |
|---|---|---|---|---|
| P1 | 文件或原文位置 | ZH-xx | 可验证的问题及后果 | 最小修改建议 |
关键陷阱
- 不要为了缩短句子删除条件、例外、数值、否定、范围或不确定性。
- 不要把“可能”改成事实,不要把“建议”升级为“必须”,也不要反向弱化要求。
- 不要用表外词(如“务必”“记得”)承担要求强度。文档声明了关键词体系时,按声明词表执行。
- 程序步骤已明确由读者执行时,省略“用户”不一定构成主体缺失;系统行为仍须写明组件。
- 不要把静态检查结果当成语义证明、事实验证或合规证书。
- 不要为了让错误消息显得完整而虚构原因、恢复动作或成功保证。
- 不要机械套用空格、括号或标点偏好。项目格式规范优先;没有项目规范时,才使用本 Skill 的默认中文排版约定。
- 不要把中文展示文本直接作为 Mermaid 内部 ID,也不要为了显示中文而把中文写入样式选择器。
边界
- 本 skill 借鉴 ASD-STE100 的“受控词汇、单一含义、简单结构和一致术语”等方法,但规则是为中文技术写作重新设计的。不得声称输出“符合 ASD-STE100”。
- 语言清晰不等于技术正确。涉及库、框架、协议、产品或云服务的事实时,应另行对照当前权威文档。
- 不复制 ASD-STE100 的受控词典或受版权保护的规则正文。需要认证或行业合规时,使用官方标准并由合格人员复核。
- 清晰优先于短。规则之间冲突时,先保留技术含义,再说明未采用某项样式建议的原因。
按需资源
- 需要完整规则、严重级别和阈值说明时,读取 references/chinese-writing-rules.md。
- 需要处理数字、单位、标点、空格、标题、列表、链接、表格或图片时,读取 references/chinese-style-conventions.md。
- 需要新建、改写或审校含中文的 Mermaid 图时,读取 references/mermaid-chinese.md。
- 需要处理中文规范词与 RFC 2119、GB/T 1.1 助动词的对应,或审校声明了关键词体系的文档时,读取 references/rfc2119-chinese.md。
- 需要查看常见中文技术文档的改写方式时,读取 references/examples.md。