diff --git a/.claude/commands/yarn-text-audit.md b/.claude/commands/yarn-text-audit.md new file mode 100644 index 000000000..7bef4a529 --- /dev/null +++ b/.claude/commands/yarn-text-audit.md @@ -0,0 +1,72 @@ +--- +name: yarn-text-audit +description: 全量审校 Yarn 文本,生成可追溯问题台账并可导出飞书多维表格 +--- + +对用户指定的 Yarn 目录执行全量文本审校。确定性覆盖与安全门禁由 `Tools/yarn_text_audit.py` 提供;语言和叙事判断必须保持可复核。 + +## 执行流程 + +1. 明确目标目录、参考目录、是否包含注释、是否只出报告。 +2. 对所有目标目录运行: + +```powershell +python Tools/yarn_text_audit.py scan ` + --root ` + --output Temp/YarnTextAudit ` + --review-memory <可选:上次飞书审阅导出的 reviewed-base.json> +``` + +3. 检查 `Temp/YarnTextAudit/summary.json`,必须满足: + - `unknown_active_lines == 0` + - `unreviewed_records == 0` + - `active_records == ledger.jsonl` 实际行数 +4. 分文件、分节点复核 `ledger.jsonl`。活动文本包括命名对白、无角色旁白、系统文本、选项和 option prompt;排除首个非空白字符为 `//` 的注释、节点元数据和 Yarn 命令。 +5. 将确定性错误标为“建议修改”,语义、节奏、专名和重要信息等判断标为“需确认”;不以自动规则冒充绝对正确。 +6. 交付 `issues.csv` 和 `coverage.csv`。用户要求飞书时,先运行 `python Tools/yarn_text_audit.py lark-payloads --output Temp/YarnTextAudit`,再创建 `问题清单`、`覆盖报告`、`术语与样式` 三张表;单批不超过 200 条并核对返回数量。 +7. 用户完成多维表格审阅后,导出完整记录并执行: + +```powershell +python Tools/yarn_text_audit.py apply-review ` + --reviews Temp/YarnTextAudit/reviewed-base.json ` + --manifest Temp/YarnTextAudit/manifest.json ` + --report Temp/YarnTextAudit/apply-report.json + +# 预览无误后才实际写入 +python Tools/yarn_text_audit.py apply-review ` + --reviews Temp/YarnTextAudit/reviewed-base.json ` + --manifest Temp/YarnTextAudit/manifest.json ` + --report Temp/YarnTextAudit/apply-report.json ` + --apply +``` + +8. 修改后重新扫描并运行 `verify`。不得新增、重生成或修改 `#line:` 标签;不得增加文本显示行数。 + +## 人工反馈优先级 + +- 后续扫描使用 `--review-memory`;脚本会按原文或已应用后的预期文本重建稳定 ID,不重复报告已经人工决策的记录。 +- “按照备注修改”高于分类和脚本建议;只执行备注明确要求的断行、颜色、文字或效果。 +- 不因 `Task` 说话者、`role="Aside"` 或专有名词出现本身自动判定颜色。必须结合是否为玩家行动目标、真实内心表达及当前叙事重点逐处判断。 +- 专有名词不要求每次出现都标蓝;检查/拆除/短接/装回等玩家下一步操作可以按上下文标黄。 +- 笑话效果优先只包裹双关或谐音落点,不默认包裹整句。 +- `#autonext` 不应一律修正为 `#auto_next`;若审阅备注要求移除,则直接移除。 +- 长行断点以约 18 个全角字符的实际 UI 宽度估算自动折行数,优先在逗号处显式控制;已有断行未经批准不重排。 + +## AIBIS 审校规则 + +- 检查错别字、错误重复、缺字候选、的地得、全半角和标点、标签配对及换行舒适度。 +- 换行优先考虑逗号附近;只有在不增加显示行数时才建议调整。逗号停顿只用于调整后的断点或明确节奏位置。 +- `[[aside]]...[[/aside]]`:实际自言自语、念文本或小声说话;斜体本身不是充分条件。 +- `[[term]]...[[/term]]`:游戏专有名词,默认蓝色 `#52B6FF`。 +- `[[key]]...[[/key]]`:玩家必须关注的信息,优先级高于专名。 +- `[[comma-pause]]`:可配置的 0.2 秒逗号停顿。 +- `[[ulm]]`:FP_Peipei2 中每条活动 `ULM自训练进程:` 文本。 +- `[[joke]]...[[/joke]]`:火山实际讲出的笑话,不包括讨论笑话的说明对白。 +- 本地输出放入已忽略的 `Temp/YarnTextAudit`;修改前保存文件 SHA-256,应用时必须精确匹配原文与哈希。 + +## 自检 + +```powershell +python Tools/yarn_text_audit.py self-test +python Tools/yarn_text_audit.py verify --output Temp/YarnTextAudit +```