用途:该技能用于在按 RFC、spec、ADR 或设计文档进行实现时,处理代码现实与文档决策发生冲突的情况。核心原则是“标记,而非翻转”:发现决策不再成立时应上报,而不是悄悄改走另一分支,否则代码库会与自身规格不符且无从追溯原因。若任务已在进行、没有设计文档且改动明显是承重性的,应说明情况并交给 rfc-writer,而不是在实现里自行发明决策。\n\n主要能力:按决策的 grade(LOCKED、ASSUMED、OPEN、UNLISTED)决定遇到矛盾时的动作。LOCKED 必须停机、写日志、升级;ASSUMED 可偏离但要写日志并继续;OPEN 可自行决定并记录理由;UNLISTED 视为需补一行的决定,按 OPEN 处理并回传建议行。强调先出计划、同一轮不写代码,计划需列出涉及文件、每项非平凡选择对应的决策行、以及规格未解决的决定;承重项达三项以上说明规格未就绪,应报告并停止。执行前先读被拒绝的备选方案。动作前先写日志条目,追加到 logs/<task-id>.md,只追加不修改;条目含 decision、grade、class、at、attempt、claim、evidence、action、proposal,evidence 必须可被他人定位。类分为 discovery、spec-gap、drift、irreducible,drift 应为零并每次写 Drift count: N。\n\n使用方式:可用命令 python3 scripts/log_check.py --log logs/T-0142.md --root . --task tasks/T-0142.json --base origin/main 检查 schema、grade 与动作合法性、drift 计数、引用可解析性,以及 diff 触及的 LOCKED 决策是否都有条目,可置于 CI 作为 decisions-reported 门禁。未声明路径的决策报告为 skipped 而非 passed。\n\n限制:工具无法检测锁定是否被违反,只能检测受锁定决策管辖区域内条目缺失;未安装 rfc-writer 时决策表可能缺失或未分级,应把所有决策视为 LOCKED 并在矛盾时停机。无 proposal 被接受的日志、计划表演、grade 膨胀均为失败模式。相关技能包括 rfc-writer、self-audit、distill-the-rule、ratchet-what-you-build、reading-isnt-proof。
flag-dont-flip
编程与开发
更新于 10-16 01:19