# Protected Spans > 本文件是解释、示例与操作细则;行为合同的单源是 `SKILL.md`,两处表述不一致时以 `SKILL.md` 为准。 > 在追求“更像人”之前,先把不能漂的片段保护住。 这份文档把 `SKILL.md` 里的 no-touch 原则展开成一个可执行的预检清单。 `v1.7.0` 先采用 prompt 内 checklist,不要求额外输出 `facts ledger` 格式。 使用顺序: 1. 判场景 2. 先扫一遍 protected spans 3. 再做删句、并句、换主语、降调 4. 回读时逐类核对 protected spans 是否还在 ## 1. Protect first 先保护,再改写。默认要先划出来的内容有: ### 1.1 Numbers, dates, ranges, units - 数字 - 百分比 - 时间 - 日期 - 版本号 - 区间 - 时间范围与时间跨度(如“未来十年”“over the next decade”“三个月内”) - 单位 默认规则: - 不改数值 - 不随手四舍五入 - 不把精确说法改成模糊说法 - 不放大、缩小或模糊化时间跨度 - 不补原文没有的比较项 - 删除整句时按无源引用规则处理;如果保留相关论断,不得把原时间跨度改成另一个跨度 ### 1.2 Names and attribution - 人名 - 组织名 - 产品名 - 模块名 - 服务名 - issue / PR / RFC 编号 - 责任主体和观点归属 默认规则: - 不换主体 - 不模糊“谁做的 / 谁说的 / 谁负责” - 不把原来的判断改成像是别人已经证明过 ### 1.3 Quoted text and titles - 引号内原文 - 引用规范 - 文章标题 - 报告名 - 原话里的关键词 默认规则: - 引号内容默认原样保留 - 只在用户明确要求时改引号内正文 - 不把引用改写成概述后再塞回引号 ### 1.4 Commands, code, params, fields, paths - 命令 - 代码块 - 接口名 - 参数名 - 字段名 - 配置项 - 文件路径 - 环境变量 默认规则: - 拼写、大小写、符号、下划线、连字符都保留 - 不翻译代码语义 - 不把注释外的技术片段改成人话 ### 1.5 Errors, logs, statuses, metrics - 报错信息 - 日志原文 - HTTP 状态码 - 指标名 - 实验结果 - 监控数值 - 结论里的度量关系 默认规则: - 不换错误类型 - 不丢时间范围、样本范围、比较基线 - 不把“观察到”改成“已经证明” ## 2. What may change around them protected spans 外面的这些内容通常可以改: - 开场套话 - 总结式收尾 - 商业黑话 - narrator 腔 - 姿态层 - 空洞判断包装 可以做的动作: - 删掉 span 前后的废话 - 调整句序,但不改变事实关系 - 把抽象结论压回具体动作 - 合并重复句,但不要吞掉保护项 如果一句话只有靠改 protected span 才能变自然,优先保真,宁可保留一点生硬。 ## 3. Scene notes ### `status` 重点保护: - 时间线 - 当前判断 - 下一步 - 风险归属 - 指标和范围 不要为了更顺,把“风险”“阻塞”“未确认”改轻。 ### `docs` 重点保护: - 术语 - 条件 - 顺序 - 命令 - 配置 - 系统主语 不要为了口语化牺牲可检索性。 ### `code-context` 重点保护: - 代码本体 - 注释里描述的真实行为 - 参数 - 返回值 - 约束条件 可以改注释的 AI 腔,但不能把函数行为改错。 ### `mixed` 重点保护: - 引用边界 - 局部场景切换点 - 引号、代码块、复盘块、公告块里的原有格式 先判哪里是正文,哪里是引用或嵌入块,再决定哪些区域能动。 ## 4. Worked examples ### A. `status` 原文: > 昨天把连接池上限从 20 调到 100,504 先压下来了。后面再观察 24 小时,如果错误率还在 0.1% 以下就全量。 保护项: - `20` - `100` - `504` - `24 小时` - `0.1%` 可改部分: - `先压下来了` - `后面再观察` ### B. `docs` 原文: > 运行 `bin/migrate --tenant=prod` 后,如果日志出现 `schema mismatch`,先检查 `DB_SCHEMA_VERSION` 是否和线上一致。 保护项: - `bin/migrate --tenant=prod` - `schema mismatch` - `DB_SCHEMA_VERSION` 可改部分: - `先检查` - 前后解释层 ### C. `mixed` 原文: > 用户说“别改我这句,原样保留”。正文里只要把“值得注意的是”这类套话清掉就行。 保护项: - `“别改我这句,原样保留”` 可改部分: - 引号外的正文说明 ## 5. Final check 回读时至少核对这 5 件事: 1. 数字、日期、单位、版本号有没有漂 2. 主体、归属、责任关系有没有被换掉 3. 引号、代码、命令、路径、参数有没有被改坏 4. 错误、状态码、指标和比较关系有没有被写松 5. 有没有为了“更像人”补进原文没有的事实、来源或判断 看不准时,优先保留 protected span,不要赌。