refactor: clarify skill completion and require verified local commits

This commit is contained in:
mujing
2026-09-16 14:11:00 +08:00
parent e126bd4f00
commit f2443a4855
3 changed files with 15 additions and 11 deletions
+3 -1
View File
@@ -50,7 +50,7 @@ Codex 默认根据 `description` 隐式选择 skill;本仓库在每个 skill
更新已有安装时须同步整个 skill 目录,包括 `agents/openai.yaml`,不能只替换 SKILL.md。若仍出现旧行为,检查项目级、用户级同名副本,重启 Codex 并在新会话验证;更新配置不会撤回旧会话已加载的正文。其他宿主是否支持此策略需单独确认,不保证仅靠描述就能禁止自动加载。 更新已有安装时须同步整个 skill 目录,包括 `agents/openai.yaml`,不能只替换 SKILL.md。若仍出现旧行为,检查项目级、用户级同名副本,重启 Codex 并在新会话验证;更新配置不会撤回旧会话已加载的正文。其他宿主是否支持此策略需单独确认,不保证仅靠描述就能禁止自动加载。
执行时允许增加必要测试或配置文件并说明理由;涉及业务、接口、架构或其他范围扩展时,需更新计划并确认。验证和 review 通过后创建本地提交,不 push 执行时允许增加必要测试或配置文件并说明理由;涉及业务、接口、架构或其他范围扩展时,需更新计划并确认。批准范围内连续完成实现、必要检查、问题修复和 review,再执行本地 `git commit`,不逐步询问是否继续、不 push。存在本任务变更时,只有核实实际 commit hash 与提交内容后才算完成;提交阻塞须明确报告未完成,不能只说“可提交”。无任务差异时提供目标已满足的证据,不创建空提交
实施时核实引用与兼容用途,移除范围内无用的死代码和被替代的遗留实现。若核心假设、业务语义或架构边界与决策有重大出入,立即停止执行并记录现场,建议回到 align-plan 重新对齐范围和边界;重新确认前不继续实现。 实施时核实引用与兼容用途,移除范围内无用的死代码和被替代的遗留实现。若核心假设、业务语义或架构边界与决策有重大出入,立即停止执行并记录现场,建议回到 align-plan 重新对齐范围和边界;重新确认前不继续实现。
@@ -115,6 +115,8 @@ npx skills add . --list
## 参考来源 ## 参考来源
参考 [OpenAI 关于 GPT-6 Astra 的 skill 与提示设计建议](https://developers.openai.com/blog/rethinking-skills-and-prompts-for-gpt-6-astra):精确描述触发条件,按任务读取资料,以交付结果和决策边界约束工作,避免固定步骤造成过早停止。两个 skill 各自只有一个工作流,保持自包含,不为拆分而新增路由文件;显式调用、用户审阅及范围约束继续保留。
独立编写本仓库指令,借鉴以下机制,不复制其完整工作流,也不要求安装这些项目: 独立编写本仓库指令,借鉴以下机制,不复制其完整工作流,也不要求安装这些项目:
- [Ponytail](https://github.com/DietrichGebert/ponytail):理解问题后,优先复用并选择满足目标的最小实现。 - [Ponytail](https://github.com/DietrichGebert/ponytail):理解问题后,优先复用并选择满足目标的最小实现。
+4 -4
View File
@@ -1,11 +1,11 @@
--- ---
name: align-plan name: align-plan
description: 用户明确要求使用 align-plan 时启用。通过调查和多轮问答对齐工程目标,生成待审阅计划不实施代码。 description: 仅用户指定 align-plan 时启用对齐工程目标与边界,生成待审阅计划不实施代码。
--- ---
# 对齐目标并生成计划 # 对齐目标并生成计划
先调查、再决策;产出新会话仅凭计划和代码库即可执行的文件 完成条件:目标和关键决策已对齐,自包含的 plan.md 已保存并经用户确认,可交给新会话执行。具体调查方法与深度按任务选择,不要求完整仓库扫描
## 定位与资产 ## 定位与资产
@@ -34,11 +34,11 @@ Markdown 正文按内容排版:代码、命令及多行配置用带语言标
- `CONTEXT.md`:只按业务约束、技术约束记录当前有效规则,可注明适用模块及必要原因。确认且无需实施的约束直接更新;尚未生效的改造只留在当前讨论和计划中。冲突先确认,替换时删除废弃内容,不保留决策过程、历史计划路径、任务、代码、日志或局部实现偏好。目标为“保存系统当前业务与技术约束”,时间为最近确认决策日期。 - `CONTEXT.md`:只按业务约束、技术约束记录当前有效规则,可注明适用模块及必要原因。确认且无需实施的约束直接更新;尚未生效的改造只留在当前讨论和计划中。冲突先确认,替换时删除废弃内容,不保留决策过程、历史计划路径、任务、代码、日志或局部实现偏好。目标为“保存系统当前业务与技术约束”,时间为最近确认决策日期。
- `<计划目录>/current.md`:每轮更新目标、验收、确认决策与原因、事实来源、约束、不做事项、未确认假设和问题;删除失效内容,不累计讨论历史。 - `<计划目录>/current.md`:每轮更新目标、验收、确认决策与原因、事实来源、约束、不做事项、未确认假设和问题;删除失效内容,不累计讨论历史。
- 新会话压缩恢复或出现矛盾时重读 CONTEXT当前状态和相关代码;其余时候复用无变化内容。确认状态以真实回答为准,沉默和推荐都不算批准。 - 新会话压缩恢复时读取 CONTEXT当前状态,按未决问题补读相关代码;出现矛盾时只复核相关资料,其余复用无变化内容。确认状态以真实回答为准,沉默和推荐都不算批准。
## 调查与提问 ## 调查与提问
- 先查相关代码、调用链和测试。仅为当前决策查证开源实现或官方资料,保留来源和必要版本;无法查证的事实标为待验证 - 调查限于当前目标所需的代码、调用链和测试;只有涉及架构、数据或上线时才补读相应资料。外部查证须能解决具体未决问题,保留来源和必要版本,不为走流程搜索
- 每轮共 1–3 个影响目标、验收或取舍的问题,不能用子问题变相扩充。可查事实不问用户,依赖未决答案的问题后置;有提问工具则使用,否则直接问。 - 每轮共 1–3 个影响目标、验收或取舍的问题,不能用子问题变相扩充。可查事实不问用户,依赖未决答案的问题后置;有提问工具则使用,否则直接问。
- 简述证据与推荐理由,不用装饰性 emoji。纠正错误事实,区分假设与偏好;用户提出想法不等于确认方案。 - 简述证据与推荐理由,不用装饰性 emoji。纠正错误事实,区分假设与偏好;用户提出想法不等于确认方案。
- 优先复用现有能力,选择满足目标的最小方案。出现独立子目标或明显扩大的改造时,说明扩大点、建议分阶段,由用户选择;未确认前保持原范围。 - 优先复用现有能力,选择满足目标的最小方案。出现独立子目标或明显扩大的改造时,说明扩大点、建议分阶段,由用户选择;未确认前保持原范围。
+8 -6
View File
@@ -1,15 +1,17 @@
--- ---
name: execute-plan name: execute-plan
description: 用户明确要求使用 execute-plan 时启用。执行已批准工程计划,验证目标与范围并完成本地 Git 提交。 description: 仅用户指定 execute-plan 时启用;实施已批准计划,验证、review 并完成本地 Git 提交。
--- ---
# 执行已确认计划 # 执行已确认计划
在新会话按计划实施;不依赖旧讨论,也不强制子代理、worktree、TDD 或新依赖 完成条件:批准目标已实现,必要验证及 review 通过,本次变更已完成本地 Git 提交,并给出真实 commit hash。首次实现或测试通过不是终点,不以“可提交”或询问是否提交代替执行
在批准范围内自主完成实现、检查、修复和提交,不在各步骤间重复索要许可。保留下述范围变更与重大偏差的确认边界;具体实现和工具安排自行决定,不强制子代理、worktree 或 TDD。按新会话约定执行,不依赖旧讨论。
## 读取与核对 ## 读取与核对
1. 完整读取用户指定计划;路径不明则询问,不猜最新文件。从计划定位或 `.agent/MEMORY.md` 确定资产根目录,读取根目录 `CONTEXT.md`,再核实项目约束、相关代码和测试。不推断根目录、不扫描历史计划;定位冲突或系统不符先澄清无 CONTEXT 时依靠计划与代码,不编造约束 1. 完整读取用户指定计划;路径不明则询问。从计划定位或 `.agent/MEMORY.md` 确定根目录并读 `CONTEXT.md`,再按任务核实代码、测试与项目约束;架构、数据、部署资料仅在涉及对应改动时读取,不扫描历史计划,避免无关的全仓库扫描。定位冲突或系统不符先澄清,不猜根目录;无 CONTEXT 时依靠计划与代码。
2. 核对计划批准依据、目标、范围与验收。基线变化先调查影响,无关更新不阻塞;关键缺口、未批准或实质冲突先澄清。已批准的规则迁移按计划执行,不因仍有旧规则重复确认。 2. 核对计划批准依据、目标、范围与验收。基线变化先调查影响,无关更新不阻塞;关键缺口、未批准或实质冲突先澄清。已批准的规则迁移按计划执行,不因仍有旧规则重复确认。
3. 记录仓库身份、分支、HEAD(或无提交)及暂存/未暂存/未跟踪状态,足以区分用户已有修改。保护用户内容;重叠且不能隔离时先解决,不回退或混合提交。 3. 记录仓库身份、分支、HEAD(或无提交)及暂存/未暂存/未跟踪状态,足以区分用户已有修改。保护用户内容;重叠且不能隔离时先解决,不回退或混合提交。
@@ -51,8 +53,8 @@ Markdown 正文中代码、命令和多行配置用带语言标记的围栏代
1. 完成后重新完整读取原目标与批准计划,对照任务 diff:验收是否满足、保留行为是否成立、是否越界、是否影响调用方与错误路径。 1. 完成后重新完整读取原目标与批准计划,对照任务 diff:验收是否满足、保留行为是否成立、是否越界、是否影响调用方与错误路径。
2. 先从原始目标和验收推导正常、边界、异常及保留行为测试,断言依据需求而非复制实现逻辑;核对用例能否发现目标偏离,不只验证修改的代码是否按自身逻辑运行。复用已有测试、补真实缺口,不堆重复用例或追求覆盖率数字。运行计划要求及必要回归检查,文档变更用适当结构检查;记录实际证据,无变化且无新疑点时不重复运行。 2. 先从原始目标和验收推导正常、边界、异常及保留行为测试,断言依据需求而非复制实现逻辑;核对用例能否发现目标偏离,不只验证修改的代码是否按自身逻辑运行。复用已有测试、补真实缺口,不堆重复用例或追求覆盖率数字。运行计划要求及必要回归检查,文档变更用适当结构检查;记录实际证据,无变化且无新疑点时不重复运行。
3. Review 范围、正确性、模块职责/依赖边界及失效代码清理,修复本任务问题后重跑受影响检查。越界内容仅撤销能可靠隔离的自身改动。解决失败或环境阻碍如实报告,不宣称通过、不绕过检查提交;用户调整验证要求时记录差异。 3. 自行完成范围、正确性、模块边界及失效代码清理的 review;范围内问题直接修复,再跑受影响检查,不把首次 review 当作等待用户的关卡。越界内容仅撤销能可靠隔离的自身改动。无法在范围内解决失败或环境阻碍报告为未完成,不绕过检查提交;用户调整验证要求时记录差异。
根据实际 diff 与证据复核接口、数据、配置及新旧版本兼容性。需要特殊上线操作时列出前置条件、步骤顺序、验证点及必要回退限制;否则明确“无需特殊上线步骤或顺序”。未知或未验证部分如实标注,不把本地测试通过等同于上线兼容。涉及计划外迁移或行为变化时先更新计划并确认;评估不授权实际部署。 根据实际 diff 与证据复核接口、数据、配置及新旧版本兼容性。需要特殊上线操作时列出前置条件、步骤顺序、验证点及必要回退限制;否则明确“无需特殊上线步骤或顺序”。未知或未验证部分如实标注,不把本地测试通过等同于上线兼容。涉及计划外迁移或行为变化时先更新计划并确认;评估不授权实际部署。
4. 仅暂存本任务文件/片段,检查完整暂存 diff,确保不含用户原有改动、MEMORY 或讨论资产。无法隔离或 MEMORY 已被跟踪时先解决,不擅自取消跟踪。 4. 仅暂存本任务文件/片段,检查完整暂存 diff,确保不含用户原有改动、MEMORY 或讨论资产。无法隔离或 MEMORY 已被跟踪时先解决,不擅自取消跟踪。
5. 按项目规范创建本地 commit;不 push、amend、跳过 hooks 或改 Git 身份。Hook 改动须重新检查验证。无差异不空提交,非 Git 项目不自行初始化;提交失败报告原因 5. 检查通过后,必须按项目规范执行本地 `git commit`;不 push、amend、跳过 hooks 或改 Git 身份。Hook 改动须重新检查验证。可在范围内修复的提交失败应修复重试;身份、权限等需用户处理的阻碍报告为“未完成提交”,保留现场。非 Git 项目不自行初始化;确实无任务差异时说明目标已满足及证据,不创建空提交
6. 核实 commit hash提交文件工作区残余更新外部记录;简报交付、验证、兼容性结论、特殊上线步骤及顺序(或无需)、配套变化/批准偏差、限制及 hash(或未提交原因)。详细上线说明留在记录中并给链接。 6. 读取实际 commit hash提交文件,确认本次变更均已提交、无混入用户内容;检查工作区残余更新外部记录。最终简报结果、验证、兼容性及上线顺序、偏差与 hash。若有本任务变更未提交,不得宣称执行完成;无关用户改动不影响本任务完成。详细结果给记录链接。