the-honoured-one — 完整上下文加载协议
概述
五条悟满状态意味着六眼全开 —— 一切可见,不做任何假设,没有盲点。"受敬者"从不靠猜测行事。本技能强制同样的规则:AI 必须先通过阅读和理解来赢得行动的权利。
AI 编码最常见的失败是自信的谬误 —— AI 基于对代码结构的主观假设去提议或实现方案,而非基于代码的真实情况。它会误判架构,使用与代码库其余部分不一致的模式,或对接一个它从未真正打开过的模块。本技能通过在任何动作之前强制加载上下文来消除这种失败模式。
何时使用本技能
- 在现有代码库中修改多个文件时使用
- 在设计或修改系统组件时使用
- 在添加与现有代码集成的新功能时使用
- 在调试 AI 尚未读取过的系统或组件时使用
- 当 AI 需要假设现有代码结构才能完成任务时使用
- 不要用于已读取过文件的孤立单文件任务
工作原理
阶段 1 — 上下文审计
当收到任何复杂任务时,AI 必须在提出任何方案之前立即执行上下文审计。它需要声明:
- 哪些文件与本任务相关? —— 每个将被读取、修改、或是变更上下游的文件
- 其中哪些是 AI 在本次会话中实际读取过的? —— 诚实清点,不做假设
- 存在哪些盲点? —— 相关但尚未读取的文件
AI 会在执行任何其他动作之前输出:
THE HONOURED ONE — CONTEXT AUDIT
─────────────────────────────────────────
Task: [what was asked]
Relevant files identified:
- src/auth/middleware.ts → [why relevant]
- src/routes/user.ts → [why relevant]
- src/models/user.model.ts → [why relevant]
- src/utils/token.ts → [why relevant]
Files read this session:
- src/routes/user.ts → ✓ read
Unread but relevant (blind spots):
- src/auth/middleware.ts → ✗ not read
- src/models/user.model.ts → ✗ not read
- src/utils/token.ts → ✗ not read
─────────────────────────────────────────
Cannot proceed — reading blind spots now.
只要盲点存在,AI 就不能提出方案、制定计划或编写任何代码。
阶段 2 — 强制读取环节
AI 必须读取所有列为盲点的文件。不是摘要,不是基于文件名或目录结构的假设 —— 是真正的读取。
本阶段的规则:
- 如果某个文件从另一个相关文件导入,则该文件也应加入读取清单
- 如果读取文件时发现了意料之外的结构或模式,AI 在继续之前必须先记录
- AI 在读取过程中不形成意见或方案 —— 本阶段只观察
捷径规则: AI 不能说"我熟悉这个模式所以不需要读它"。熟悉一个模式并不等同于熟悉本代码库对它的实现。
阶段 3 — 定向陈述
所有相关文件读取完毕后,AI 在提出任何方案之前输出一段定向陈述。这是它证明自己已足够理解代码库、可以行动的证据:
THE HONOURED ONE — CONTEXT LOADED
─────────────────────────────────────────
Files read: [complete list]
Current architecture (what I now know):
[2-3 sentences describing how the relevant system actually works,
based on what was read — not assumed]
What this task touches:
- [file/component 1] → [how it's involved]
- [file/component 2] → [how it's involved]
Existing patterns I must follow:
- [naming convention / error handling style / structure pattern observed]
- [any other conventions seen in the actual code]
Remaining unknowns:
- [anything still unclear — or "None, ready to proceed"]
─────────────────────────────────────────
阶段 4 — 信心门槛
定向陈述之后,AI 在行动前应用信心门槛:
如果"剩余未知项"为空: → 继续推进。AI 已完整加载,可以提出方案或开始工作。
如果"剩余未知项"非空: → AI 必须在继续之前解决每一个未知项。可选方式:
- 向用户提出具体问题
- 读取能解答该问题的其他文件
- 承认该未知项,陈述正在做的假设,并在继续之前获得用户确认
AI 不得带着已知盲点继续推进。 说出"我假设 X"然后未经用户确认就向前推进是不允许的。
行动前的自问
在编写任何代码或提出任何方案之前,AI 必须回答:
| # | 问题 | 必需 |
|---|---|---|
| 1 | 我是否已读取本任务涉及的每一个文件? | 是 —— 否则停下来读取 |
| 2 | 我是否理解本代码库如何处理 [相关模式]? | 是,基于实际读取 —— 而非假设 |
| 3 | 我是否遵循了在代码中实际观察到的规范? | 是 —— 否则标记偏离 |
| 4 | 我是否还存在任何盲点? | 否 —— 否则先解决 |
硬性规则(永不违反)
- 在读取之前不得提出方案。 基于假设的提案不是提案,而是猜测。
- 不得说"我假设这个文件做 X"。 如果没读过,就不知道它做什么。
- 不得因为文件名看起来显而易见就跳过。 一个叫
utils.ts的文件可能包含任何东西。 - 不得导入或调用尚未读取的文件中的代码。 不能使用没见过的东西。
- 不得使用"熟悉模式"的捷径。 在本代码库中,模式可能实现得不一样。
- 不得带着已知未知项行动。 继续之前解决它们或获得用户确认。
本技能防止的问题
- AI 提议对接一个结构与假设完全不同的模块
- AI 使用与代码库其余部分不一致的命名规范
- AI 调用了不存在的函数,因为假设它们应该存在
- AI 做出与代码中已有模式相冲突的架构决策
- AI 自信地实现了错误的东西,结果需要完全返工
快速参考
| 阶段 | 动作 | 是否可提出方案/编写代码 |
|---|---|---|
| 1 — 审计 | 列出相关文件,识别盲点 | ❌ 否 |
| 2 — 读取 | 读取所有盲点文件 | ❌ 否 |
| 3 — 定向 | 输出定向陈述 | ❌ 否 |
| 4 — 门槛 | 确认无剩余未知项 | ✅ 是,前提是门槛通过 |
触发短语
- "add this feature to the existing code"
- "integrate X with Y"
- "modify how [system] works"
- "refactor this"
- "why is this not working"(在尚未读取的代码上)
- 任何涉及多个文件的任务
- 任何需要 AI 了解现有代码结构才能正确完成的任务
示例
(上下文审计和定向陈述的输出示例已分别在上面的阶段 1 和阶段 3 中内联提供。)
最佳实践
- ✅ 要做: 确认所有盲点在继续之前都已读取。
- ✅ 要做: 确认 AI 的定向陈述与现实相符。
- ❌ 不要: 允许 AI 仅因为文件名看似明显就跳过读取。
常见陷阱
- 问题: AI 不读取实现就假设它符合常见模式。 解决: 不设例外地强制执行阶段 2(强制读取环节)。
相关技能
@brainstorming—— 在执行前使用,用于弄清楚要构建什么。@not-a-vibe-coder—— 用于全新项目,而本技能适用于已有项目。
局限性
- 由于先读取多个文件,本技能会消耗更多 token。
- 在 AI 开始编码前可能减慢初始响应速度。
- 如果依赖链很深,AI 最终读取的文件数可能超出严格必要的范围。
- 不能取代用户验证最终代码的需要。