Skip to content

📄 门禁类操作补充就地检查清单与流程合规证据要求 (针对 Claude 的行为偏差) - #1761

Open
cyfung1031 wants to merge 1 commit into
mainfrom
docs-gate-colocation-and-evidence
Open

cyfung1031 wants to merge 1 commit into
mainfrom
docs-gate-colocation-and-evidence

Conversation

@cyfung1031

Copy link
Copy Markdown
Collaborator

Checklist / 检查清单

  • Fixes mentioned issues / 修复已提及的问题 — N/A — 源自本次会话内的讨论,未关联到已归档的 issue
  • Code reviewed by human / 代码通过人工检查
  • Changes tested / 已完成测试 — 见下方「验证」:链接完整性脚本 + 两轮独立静态审阅子代理

背景

在一次修复 npm 依赖漏洞的会话中,创建/更新 PR 前本应先读 docs/pull-request.md 与
docs/develop.md#revision-scope-and-publication-binding(AGENTS.md 路由表已列出这一行),但实际
上下文里虽然装着这张表,却在真正调用 gh pr create 那一刻没有回头核对——表在会话早期读过一次,
到动作真正发生时已经过了很多轮工具调用,显著性衰减了。事后复盘发现 AGENTS.md 自己已经在用近似
的措辞提醒过这种失效模式("Routing is continuous, not a classification you make once"),但纯说明性、
只读一次的提醒本身就有上限——这不是措辞不够好的问题,而是结构性的:没有在动作真正触发的那一刻
重新提示。

本次改动

  • AGENTS.md「Route the task before acting」:在路由表后新增一段面向执行时的行为准则——路由表
    的一行只是指向所有者文档,真正的门禁是该文档里紧邻动作机制描述之处的检查清单(以
    docs/develop.md#revision-scope-and-publication-binding 为范例),而非表项本身;当环境提供在动作
    触发那一刻生效的机制(前置钩子、强制确认、lint/CI 门禁)时,优先接入该机制而非依赖这张表的显
    著性。
  • docs/DOC-MAINTENANCE.md「Checklist 1 — Organization」:新增一条面向文档维护者的检查项——新增
    一条门禁类路由表行时,须在其所有者文档里同步补充就地检查清单,而非只留一个指回表格的指针。
  • AGENTS.md「Completion checksum → Owners/facts」:将"每个任务部分遵循其路由所有者"收紧为可证
    伪的要求——需要点名具体文档并复述实际套用的约束或绑定的路径,不能让"我照着路由表做了"成为一句
    无法验证的断言,统一到本文件已经对代码类声明设下的同一证据标准(Match claim strength to evidence)。

实现考虑

  • docs/DOC-MAINTENANCE.md 明确说明 CLAUDE.md 只是指向 AGENTS.md 的兼容性符号链接,AGENTS.md
    才是实际所有者,因此改动只落在 AGENTS.md,未触碰 CLAUDE.md。
  • 按照 docs/DOC-MAINTENANCE.md「Instruction budget」的要求(优先收紧已有规则而非新增,一条规则
    只在其所有者文档里说一次),"新增门禁行时如何撰写就地检查清单"这条指令放进
    docs/DOC-MAINTENANCE.md,不放进 AGENTS.md——因为它只在文档维护时才用得到,不应成为每个任务
    都要加载的标准成本;AGENTS.md 里只保留与"执行任务时如何跟随门禁行"直接相关的行为准则。
  • Owners/facts 一条选择"收紧既有 bullet"而不是新增一条 bullet,同样是为了避免同一原则在文件里
    被复述两次。
  • 未在本 PR 里落地任何具体的钩子/CI 实现:三条原则里"倾向在动作触发时接入提醒机制"只写成条件句
    ("当环境提供……时"),不指定具体钩子文件,因为 AGENTS.md 是要能被任意智能体工具链读取的通用
    契约,不应假定某一种特定的 hook 机制存在。

已知限制

  • 本 PR 只是补充一条通用原则,并未把这条原则逐行套用到路由表里的其余 6 行(架构、设计、测试、
    本地化、验证等)——那些行是否需要各自所有者文档补一份就地检查清单,留给各自文档在下次改动时
    按新加的 Checklist 1 检查项处理。
  • 未在本仓库新增任何 hook 或 CI 校验脚本来强制执行"动作触发时提醒"这条原则;这是纯文档改动。

建议审查重点

  • AGENTS.md 新增段落是否真的只停留在"执行任务时的行为"这一层,没有滑向"如何撰写新路由行"的
    文档维护指令(这正是第一轮自我审查抓到的问题)。
  • Owners/facts 新措辞对协作者(人类或智能体)是否可操作——"点名文档 + 复述约束或绑定路径"是否
    足够具体。
  • 两处新增文字之间、以及和 docs/develop.md#revision-scope-and-publication-binding 之间是否有事
    实重复(而不只是呼应)。

验证

  • 链接完整性:运行 docs/DOC-MAINTENANCE.md「One-shot verification」给出的链接检查脚本,分别对
    改动前的 origin/main(0 处 broken)和改动后的最终树(0 处 broken)执行,diff 结果为空。
  • 策略一致性:运行 docs/DOC-MAINTENANCE.md「Policy-consistency check」给出的绝对化措辞 grep,
    新增文字里唯一命中的 "must not" 已确认是有意为之的强规则,未被放宽。
  • 静态审阅:用两个相互独立的子代理(一个核对 docs/DOC-MAINTENANCE.md 合规性与文风一致性,一个
    核对是否忠实覆盖会话里提出的三条原则)分三轮审阅最终 diff。第一轮发现真实问题(一条应属于
    docs/DOC-MAINTENANCE.md 的文档维护指令被误放进 AGENTS.md,以及两处文风瑕疵),已在第二轮修
    正;第二轮又指出一处冗余指针句,已在第三轮(即本次提交)删除。两个子代理在最终版本上均给出
    PASS。
  • docs/README.md 索引核对:未新增/改名/删除任何文档文件,其对 AGENTS.md、
    docs/DOC-MAINTENANCE.md 的条目均为整篇摘要,不因本次改动失真,无需更新。
  • 未运行构建/测试套件:纯文档改动,不影响任何运行时行为。

🤖 Generated with Claude Code

AGENTS.md 的路由表本身会随会话变长而在显著性上衰减:表中一行读过之后,真正
触发该行所指向动作(命令、发布调用、破坏性操作)可能是几十次工具调用之后
的事,单靠"表里写了"不足以保证该动作发生时仍会被正确执行前置条件。

- AGENTS.md「Route the task before acting」:补充一段面向执行时的行为
  准则——路由表的一行只是指向所有者文档,真正的门禁是该文档里紧邻动作
  机制描述之处的检查清单(以 docs/develop.md#revision-scope-and-publication-binding
  为范例),而非表项本身;当环境提供在动作触发那一刻生效的机制(前置钩子、
  强制确认、lint/CI 门禁)时,优先接入该机制而非依赖这张表的显著性。
- docs/DOC-MAINTENANCE.md「Checklist 1 — Organization」:补充一条面向文档
  维护者的检查项——新增一条门禁类路由表行时,须在其所有者文档里同步补充
  就地检查清单,而非只留一个指回表格的指针;这条"如何撰写"指令按照该文件
  自身的所有权边界放在这里,而非 AGENTS.md,避免每个任务都承担一条只有
  文档维护时才用得到的规则。
- AGENTS.md「Completion checksum → Owners/facts」:将"每个任务部分遵循其
  路由所有者"收紧为可证伪的要求——需要点名具体文档并复述实际套用的约束
  或绑定的路径,而不是让"我照着路由表做了"成为一句无法验证的断言,统一到
  本文件已经对代码类声明设下的同一证据标准。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@cyfung1031

Copy link
Copy Markdown
Collaborator Author

@CodFrm 对Claude来说是必须。详见上述背景

@cyfung1031 cyfung1031 changed the title 📄 门禁类操作补充就地检查清单与流程合规证据要求 📄 门禁类操作补充就地检查清单与流程合规证据要求 (针对 Claude 的行为偏差) Sep 21, 2026
@CodFrm

CodFrm commented Sep 21, 2026 •

Copy link
Copy Markdown
Member

@CodFrm 对Claude来说是必须。详见上述背景

我感觉不如加hook去限制和约束,加提示词依旧概率性发生,而且又浪费上下文,

不如整理一下规则,看看哪些可以由hook/lint去处理,然后删掉相关的提示词,让lint去约束

这文档越加越大了,已经快来到300行

用 tiktoken 的 o200k_base 对 PR #1761 的提交内容实际计数,结果如下:

文档 PR 前 PR 后
AGENTS.md 5,298 5,517
docs/develop.md 4,375 4,375
docs/pull-request.md 2,108 2,108
docs/DOC-MAINTENANCE.md 4,284 4,425
四份合计 16,065 16,425

@cyfung1031

cyfung1031 commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator Author

@CodFrm 对Claude来说是必须。详见上述背景

我感觉不如加hook去限制和约束,加提示词依旧概率性发生,而且又浪费上下文,

不如整理一下规则,看看哪些可以由hook/lint去处理,然后删掉相关的提示词,让lint去约束

这文档越加越大了,已经快来到300行

用 tiktoken 的 o200k_base 对 PR #1761 的提交内容实际计数,结果如下:

文档 PR 前 PR 后
AGENTS.md 5,298 5,517
docs/develop.md 4,375 4,375
docs/pull-request.md 2,108 2,108
docs/DOC-MAINTENANCE.md 4,284 4,425
四份合计 16,065 16,425

我认为那些 Engineering Principles 都可以或已经放到 references 里
或者你用AI 整体精简一下吧

我不想乱改你的文件

可以加一个 contract.md 之类的做处理

@cyfung1031

cyfung1031 commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator Author

我感觉不如加hook去限制和约束,加提示词依旧概率性发生,而且又浪费上下文,

这个 PR 就是去约束Agent的思考行为。不是针对单一行为。
这比 Agent.md 里面其他内容都重要。智能愈高愈易偏离要求。
没有hook 能做

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants