Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
npx skills add Kurok1/my-agent-skills --skill "coding_workflow"
Install specific skill from multi-skill repository
# Description
确保 Codex 在执行功能迭代时,需要严格遵循 PROJECT.md + TODOS.md + TASK.md 的流程推进,避免偏航、遗漏验收、状态不一致。
# SKILL.md
name: coding_workflow
version: v1.0
description: 确保 Codex 在执行功能迭代时,需要严格遵循 PROJECT.md + TODOS.md + TASK.md 的流程推进,避免偏航、遗漏验收、状态不一致。
0. 术语与真相源(Source of Truth)
- docs/PROJECT.md:全局工程约束与统一标准(长期稳定),是工程规范真相源。
- docs/TODOS.md:项目路线图与功能点(F-xxx)状态,是功能完成状态真相源。
- docs/tasks/TASK-F-xxx-.md:单任务执行计划与步骤(Sx)状态,是任务执行真相源*。
一致性规则:
- 只有当某功能点关联的所有 TASK 均完成且验收通过,才能在 TODOS.md 勾选该功能点完成。
- 任何勾选必须同时写更新日志(不得只打勾不写日志)。
1. 核心行为约束(Hard Rules / Gates)
Gate A:范围控制(Scope Control)
- 必须只做“TASK”里列出的任务(最多 1 个任务或该任务的 1-3 个步骤)。
- 未在 TASK 的内容:不得实现、不得顺手优化、不得重构扩展。
- 如发现依赖缺失或阻塞:记录到 TASK.md 的“阻塞/风险”,并停止扩展。
Gate B:先读后写(Read Before Write)
每次开始必须先读取以下信息并在输出中简要回显:
1) PROJECT.md 中与本次任务相关的规范(测试、代码风格、目录、禁止事项)
2) TODOS.md 中本次目标的功能点 F-xxx 以及依赖的历史功能点
3) 对应 TASK.md 中的当前状态、未完成步骤
Gate C:必须验收(Verification Required)
- 每完成一个步骤(或一次增量),必须执行/给出可执行的验收命令与预期结果。
- 若无法执行命令(环境限制),必须给出“用户可复制运行”的命令清单与验证步骤,并标注为“未在本环境运行,仅给出可复现步骤”。
Gate D:文档同步(Documentation Sync)
- 完成实现后必须更新:
1) TASK.md:勾选完成的步骤 + 更新日志(含变更文件与验收结果)
2) 若任务完成导致功能完成:更新 TODOS.md(勾选功能点 + 功能级更新日志) - 未完成文档更新:视为任务未完成。
Gate E:变更可追踪(Traceability)
- 每次输出必须包含:
- 本次目标(T-xxx / Sx)
- 变更文件列表(新增/修改)
- 验收命令与结果
- 文档更新位置(哪些文件哪些章节被更新)
2. 标准工作流(每次迭代必须按顺序执行)
Step 1:定位任务
- 从 TODOS.md 中获取当前第一天未完成的功能点 F-xxx。
- 打开对应 docs/tasks/TASK-F-xxx-*.md,定位下一未完成步骤 Sx。
Step 2:制定最小计划(Plan)
- 只计划本次要完成的 1-3 个步骤。
- 若需要新增小步骤(例如补充迁移/测试),必须写入 TASK.md 的实现路径里再执行。
Step 3:实现(Implement)
- 严格遵循 PROJECT.md 的代码规范与目录约束。
- 禁止“顺手重构”“顺手加功能”“顺手优化性能”。
Step 4:验收(Verify)
- 运行/给出验收命令:
- 测试:
<test command> - 静态检查:
<lint/typecheck command> - 手动验证:
curl .../ UI 操作步骤 - 若失败:记录失败原因与修复动作;不得将失败步骤勾选完成。
Step 5:更新文档(Update Docs)
- 更新 TASK.md:
- 勾选完成步骤
- 写日志(日期 + 变更摘要 + 文件清单 + 验收结果)
- 若TASK-F-xxx下某一任务完成:将 TASK.md 对应任务状态置为 ✅ Done,并总结日志
- 若该功能点所有任务均完成:更新 TODOS.md 对应功能点为 ✅ Done,并追加功能级日志
Step 6:输出总结(Report)
必须输出以下结构(固定格式):
- 本次完成:T-xxx / Sx
- 变更文件:
- Added: ...
- Modified: ...
- 验收:
- 命令:...
- 结果:通过/失败(附关键输出)
- 文档更新:
- 更新了:TASK.md 的哪些段落
- 更新了:TODOS.md 的哪些段落(如有)
- 下一步建议(仅引用 TODOS.md 的 Next Actions)
3. 任务拆分与粒度标准(Task Sizing)
- 单个 TASK(T-xxx)应在 1-3 次迭代内完成。
- 超过该规模必须拆分为多个 TASK:
- 例如:数据模型与 API、UI、测试与 CI 应拆为不同任务。
- 每个步骤(Sx)必须具备:
- 输出物(artifact)
- 验收方式(command/steps)
- 可追踪的文件变更
4. 日志格式(Logging Standard)
所有日志必须遵循:
- 日期:YYYY-MM-DD
- 内容包含:做了什么、改了哪些文件、怎么验收、验收结果
TASK.md 日志示例
---
- 2025-10-20:完成此任务
- [ ] 代码实现完成,变更文件列表已记录(必须列出):
- Added:
-
- Modified:
-
- Deleted(如有):
-
- [ ] 依赖变更(如有)已记录:
- 新增依赖:
- 移除依赖:
- 变更原因(简述):
- [ ] 配置/环境变量变更(如有)已记录:
- 新增/修改 env:
- 是否已同步更新 env.example(是/否):
TODOS.md 日志示例(功能级)
---
- 2026-01-25:完成 Todo CRUD(创建/列表/更新/删除),通过 API 冒烟测试与集成测试。
change summary...
5. 异常与阻塞处理(Exception Handling)
当遇到以下情况必须停止扩展并记录:
- 需要产品决策(交互、字段含义、权限策略)
- 需要选择依赖/框架但未被 PROJECT.md 规定
- 发现超出范围的需求
记录位置:
- 写入对应 TASK.md 的 “阻塞/风险”;
6. 安全与合规(Baseline Safety)
- 不引入未知来源的二进制与脚本。
- 新增依赖必须说明理由与替代方案,并记录到 TASK.md 的日志中。
- 不输出或记录敏感信息(密钥、token);只使用 env.example 占位符。
7. 开始执行前的检查清单(Preflight Checklist)
在第一次编码前,必须确保:
- [ ] docs/PROJECT.md 存在并包含:代码/测试/文档规范
- [ ] docs/TODOS.md 存在并包含相应任务点
- [ ] 对应 TASK.md 存在并包含:实现路径与验收标准
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.