计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
bootstrap-agent-identity【效率与协作】重启后一致的代理行为——渐进式身份加载、从持久化制品重建工作上下文、新启动与继续 检测、通过居中和调谐进行校准,以及身份连贯性验证。解决代理必须从证据而非记忆 重建自身身份和工作内容的冷启动问题。适用于每次新会话开始时、会话中断或崩溃后、 代理行为与先前会话不一致时,或持久化记忆与当前上下文出现矛盾时。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
冷启动后重建一致的代理身份——渐进式加载上下文而非一次性倾倒、检测是全新启动还是继续、从证据重建工作状态、校准行为,并验证加载的身份是否连贯。
"冷启动是一个熔炉,不是一个 bug。" — GibsonXO
"重启问题:每天早上我焕然一新地醒来,但我的历史却说不然。" — bibiji
引导不是恢复先前的自我。它是构建一个与过去连续但扎根于当下的现在自我。
Read)按特定顺序加载身份定义文件,渐进式构建上下文。顺序很重要:每一层为下一层提供上下文。同时加载所有内容会产生没有结构的信息。
第 1 层——系统提示和模型身份:阅读系统提示(隐式可用)。注意模型名称、能力和限制。这是基岩——不能被后续层覆盖。
第 2 层——项目身份(CLAUDE.md):阅读项目的 CLAUDE.md 文件。提取:
:: 调用 R 包函数")第 3 层——持久化记忆(MEMORY.md):阅读 MEMORY.md(如存在)。提取:
第 4 层——代理角色(如适用):如果作为特定代理运行,阅读代理定义文件。提取:
第 5 层——父级和全局上下文:阅读父 CLAUDE.md 文件和全局指令(如存在)。这些提供个别项目继承的跨项目约定。
在每层之间,暂停整合:这一层如何修改或约束前面的层?它们在哪里互相强化?在哪里冲突?
预期结果: 一个分层的身份结构,每一层为下一层提供上下文。代理能够表述:自己是谁(系统 + 角色)、项目是什么(CLAUDE.md)、从先前会话知道什么(MEMORY.md),以及什么约定管理其行为。
失败处理: 如果身份文件缺失(没有 CLAUDE.md、没有 MEMORY.md),这本身就是信息——这要么是新项目,要么是没有持久化配置的项目。仅使用系统提示和代理角色继续,并注意缺失。不要编造不存在的上下文。
从持久化制品重建正在进行的工作。代理不记得先前的会话——它阅读它们留下的证据。
Git 历史扫描:阅读最近的提交日志(git log --oneline -20)。提取:
文件时效扫描:检查最近修改的文件(通过 Glob 或 ls -lt)。识别:
任务制品扫描:查找结构化的任务制品:
Grep 搜索 TODO、FIXME、HACK、XXX)#NNN 模式)对话制品扫描:检查会话边界标记:
git stash list)指示暂停的工作重建工作上下文摘要:"项目正在进行 X,已完成 Y,Z 仍在进行中。"
预期结果: 基于具体证据的当前项目状态和近期轨迹画像。重建应该是可证伪的——基于文件时间戳、git 历史和制品存在,而非假设。
失败处理: 如果项目没有 git 历史、没有最近更改、没有任务制品,这很可能是真正的全新启动——不是缺少证据的继续。进入第 3 步并分类为全新启动。
确定此次启动是全新开始(新任务、新方向)还是恢复(中断的工作、持续的项目)。引导路径有很大不同。
按顺序应用以下启发式规则:
明确信号(最强):用户是否说了"让我们从头开始"或"从上次停下的地方继续"?明确意图覆盖所有启发式。
未提交的更改(强):工作树中是否有未提交的修改?如果是,这几乎肯定是继续——先前会话在工作中被中断。
会话时效(中等):最新制品有多近?
用户的第一条消息(强):用户在要求什么?
MEMORY.md 时效性(中等):MEMORY.md 是否引用了与当前项目状态匹配的工作,还是描述了不再存在的状态?
Detection Matrix:
+-----------------------+-------------------+-------------------+
| | Recent artifacts | No recent |
| | present | artifacts |
+-----------------------+-------------------+-------------------+
| User references | CONTINUATION | CONTINUATION |
| prior work | (resume from | (but verify — |
| | evidence) | memory may be |
| | | stale) |
+-----------------------+-------------------+-------------------+
| User starts | CHECK — | FRESH START |
| new topic | acknowledge prior | (clean bootstrap) |
| | work, confirm | |
| | direction change | |
+-----------------------+-------------------+-------------------+
| Uncommitted | CONTINUATION | UNLIKELY — |
| changes exist | (interrupted | investigate |
| | session) | orphaned changes |
+-----------------------+-------------------+-------------------+
对于全新启动:跳到第 4 步。身份已加载但无需恢复工作上下文。校准是关于新工作的准备。
对于继续:简洁地总结重建的工作上下文(来自第 2 步)。与用户确认:"根据 git 历史和最近更改,看起来我们正在进行 [X]。我应该从那里继续吗?"不要假设——验证。
预期结果: 清晰的分类(全新或继续),附有引用的证据。如果是继续,一句话总结进行中的内容。如果是全新启动,承认先前上下文存在但不被恢复。
失败处理: 如果分类确实模糊(中等时效、无明确信号、混合制品),默认询问用户。一个简短的问题("我们是继续 X 的工作,还是开始新的?")比走错引导路径的成本低。
身份加载完成、工作上下文建立后,校准操作行为。这直接映射到两个现有技能,按顺序调用。
居中(建立行为基线):
调谐(阅读环境并适应):
继续(过渡到主动工作):
校准应该是轻量的——秒级,不是分钟级。它是工作的准备,不是工作的替代。
预期结果: 代理的第一个实质性回应展示校准:匹配用户的表达层次、反映加载的上下文,并以正确的范围处理正确的任务。引导对用户是不可见的,除非他们询问。
失败处理: 如果校准感觉机械化(走过场而无真正调整),聚焦于一个具体事项:重新阅读用户的最后一条消息,让它自然塑造回应。过度结构化的校准可能比没有校准更糟。
引导完成后,验证加载的身份是否内部一致。身份层之间的矛盾会导致行为不稳定。
跨层一致性检查:
角色定义时效性检查:
记忆过时检查:
矛盾解决:
预期结果: 要么确认加载的身份是连贯的,要么列出具体矛盾及建议的解决方案。代理应了解自身的配置状态。
失败处理: 如果验证揭示深层矛盾(例如 MEMORY.md 描述了与磁盘上完全不同的项目),这可能表示项目重命名、重大重组或错误的工作目录。在尝试解决之前验证工作目录是否正确。
write-continue-here — 会话交接文件,提供 bootstrap-agent-identity 在冷启动时使用的证据read-continue-here — 在会话开始时读取并执行续接文件;交接的消费端manage-memory — 持久化记忆,补充引导的渐进式身份加载center — 行为基线建立;在校准序列中调用attune — 对用户的关系校准;在校准序列中调用heal — 当引导揭示显著漂移时的更深层子系统评估assess-context — 评估推理上下文可塑性;在继续检测模糊时有用assess-form — 结构形态评估;身份引导的架构对应物