7.5 KiB
name, description
| name | description |
|---|---|
| align-plan | 通过代码调查和每轮 1–3 个问题对齐工程目标,纠正错误假设,维护当前决策,并经用户确认生成供新会话执行的计划。适用于需要先讨论需求、改造边界和实现取舍的任务;本 skill 不实施代码。 |
对齐目标并生成计划
产出一份新会话仅凭它和代码库就能实施的计划。调查服务于当前目标;不要把访谈变成遍历所有可能性的设计会议。
资产位置
-
先读取项目约束、Git 状态和项目根目录的
.agent/MEMORY.md。优先采用用户本次明确指定的资产目录,否则复用 MEMORY 中的讨论资产目录;已有会话中明确指定的位置也有效,不重复询问。 -
没有位置时,在首轮 1–3 个问题中询问外部资产根目录。等待期间可只读调查,不自行选择目录或把讨论写进项目代码目录。
-
用户给出位置后,解析为绝对路径,确认不在当前代码库内;若用户明确要求例外,遵从其选择。确认目录可用后记录到 MEMORY,保留其中其他内容。不可写或路径失效时说明具体问题,请用户提供可用位置,不静默回退。
-
MEMORY 只保存必要定位信息,例如:
<!-- 决策日期:YYYY-MM-DD --> ## 讨论资产 - 讨论资产目录:/用户指定的绝对路径写入前检查 MEMORY 是否被 Git 跟踪;已跟踪则说明与“不提交本地记忆”的冲突,先解决冲突,不自行取消跟踪。未跟踪时在
git rev-parse --git-path info/exclude指向的本地排除文件中幂等加入/.agent/MEMORY.md,不改共享.gitignore。非 Git 项目仍保留本地记忆,并说明当前无法设置 Git 排除。 -
在外部根目录中建立
<项目标识>/<日期-任务主题>/。项目标识结合仓库名和路径区分同名项目,任务目录冲突时使用新名称,不覆盖其他任务。核心文件为current.md和确认后生成的plan-v1.md;后续确认版本另存,不覆盖旧批准版本。
每份生成资产(当前决策、计划、实施记录及其他讨论文档,包括 MEMORY)第一行使用 Markdown 支持的 HTML 注释:<!-- 决策日期:YYYY-MM-DD -->。填入用户当地日期,表示该资产所依据决策的日期;尚无确认决策的草稿先记创建日期,正文仍标记待确认。确认或新决策改变当前资产内容时更新日期;纯排版、补证据或执行进度更新不改变决策日期。已批准计划保留原日期,新版本记录新确认日期;实施记录使用其所依据的计划决策日期。
宿主限制写入时,遵从限制,在对话中维护当前状态并明确尚未落盘;不要把未保存资产说成已保存。资产维护是规划阶段唯一的写入范围,不能开始项目实现。
调查与问答
- 先读相关代码、调用链、现有测试与项目约束,再提出问题。需要外部证据时,针对影响当前决策的开源实现或官方资料查证,记录链接、版本或提交以及相关结论;不进行无边界的生态调研。无法查证的内容标记为待验证。
- 每轮提问共 1–3 个,只问影响目标、验收或实现选择的问题。能从环境查明的事实自己查。需要先前答案的问题留到下一轮;不要用一个问题包装大量独立子问题。
- 提问前给出必要的调查结论;存在真实取舍时给出简短选项、推荐及原因。使用宿主的提问工具(若可用),否则直接提问;不依赖特定工具,不使用装饰性 emoji。
- 对用户的判断区分事实、假设与偏好。事实有误时指出冲突证据、影响和替代建议;证据不足则说明不确定性。尊重明确的偏好,不为反驳而反驳,也不把用户提出的想法自动视作已批准方案。
- 优先复用现有能力、标准库和平台机制,选择满足已确认目标的最小实现。不用“简化”省略用户要求或必要的正确性保障。
- 新想法先核对当前目标。若出现多个可独立交付的目标、跨子系统的大幅改造,或明显超出原验收条件,说明扩大点,提出分阶段建议并让用户选择。未确认前保留原目标,旁支放入范围外事项。
当前决策是状态
每轮吸收回答后更新 current.md,保持简短、可独立理解;下一轮基于它和新证据提问。包含:
- 原始目标与当前已确认目标;目标改变时保留改变原因。
- 验收条件、已确认决策及简短理由。
- 已查明事实及来源;尚待确认的建议或假设单独列出。
- 约束、保留行为、不做事项、未决问题。
用新决定替换已失效决定;被否决方案只保留防止重提所需的一句原因,不累积聊天全文。用户未回答、沉默或模型自己的推荐都不算确认。恢复会话、上下文压缩或出现矛盾时,重新读取当前决策和相关代码;不能从压缩摘要猜测确认状态。
收敛、确认与交接
当目标、边界、关键实现选择和验收都明确,且没有影响实施的未决问题时停止提问。不为凑问题继续访谈。
展示完整候选计划,一次让用户确认。计划以文件的修改目标、原因和验收要求为主,不写完整函数、逐行补丁或详细实现代码。仅当核心算法需要代码帮助用户审查时,保留少量代码或伪代码片段,并说明其表达的算法约束;片段不是必须照抄的实现。具体编码、内部组织等细节交给执行 agent 在已批准边界内决策,不把缺少详细代码当作计划未完成。
计划至少包含以下信息,简单任务可合并段落,不填充无意义章节:
<!-- 决策日期:YYYY-MM-DD -->
# 任务名称
## 定位与确认
- 项目:仓库绝对路径;有远程时附仓库标识
- 基线:分支、提交;无初始提交则明确注明
- 工作区:与计划相关的未提交变化
- 版本:v1;状态:待确认 / 已确认;确认日期与确认依据
## 目标与边界
原始目标、当前行为、目标行为、保留行为、不做事项。
## 决策与影响
已确认选择及原因;业务行为、公共接口、架构的前后变化。
无变化的类别明确注明;必要事实来源;已确认的假设。
## 文件与步骤
预计新增、修改、删除的仓库相对路径、修改目标与原因。
按必要依赖顺序列目标级任务,每项关联验收条件,不预写详细代码。
允许为已批准目标补充必要测试或配置文件,须记录理由;
其他范围扩展、业务行为、公共接口或架构变化需重新确认。
## 验收与验证
可判定的验收条件;对应现有或待补测试、运行目录、命令与预期结果。
必要环境和依赖;无法验证的部分不能伪装为通过。
确认前自查:新会话是否还需要聊天历史才能理解,是否有占位符、互相矛盾的决定、漏写的文件目的或隐含的业务变化。修复事实遗漏;涉及新决策则回到提问。
用户确认完整候选计划后,保存对应内容并记录真实的确认依据,不能把未展示的新内容夹入已批准版本。实质变化另行展示、确认并保存新版本。最终计划必须自包含,不要求执行者继续读取访谈记录。
提供已保存计划的绝对路径,以及新会话提示词:使用 execute-plan 执行 /绝对路径/plan-v1.md。结束本次规划,不自动调用执行 skill。新会话是使用约定,不能声称已替用户清空上下文。