From omni
Executes implementation plans from tasks.md and design.md by processing tasks in stages with dependencies, TDD, batch clears for context management, and final reports.
npx claudepluginhub zte-aicloud/co-omnispec --plugin omniThis skill uses the workspace's default tool permissions.
根据 tasks.md 中的任务分解与 design.md 中的技术计划,按阶段、依赖与 TDD 要求执行实施,并产出任务执行报告。
Executes implementation plans by processing and executing tasks from tasks.md, with vault logging, git branch workflow tracking, prerequisite checks, and checklist status reporting.
Executes implementation plan by processing tasks.md phase-by-phase in TDD order, respecting dependencies and parallel markers, setting up ignore files, and marking completed tasks. Use to start or resume coding.
Executes implementation plans from tasks.md files with plan review, batch task processing, verifications, and code review checkpoints.
Share bugs, ideas, or general feedback.
根据 tasks.md 中的任务分解与 design.md 中的技术计划,按阶段、依赖与 TDD 要求执行实施,并产出任务执行报告。
须按下面顺序执行:上一项未完成(或未达到其「可跳过」条件),不得进入下一项。**【关键规则】所有任务必须全部完成才能结束,包括:功能代码任务、测试任务(TDD/单元测试/集成测试)、文档任务。任何未完成任务都是不完整的交付。**每完成一项,在会话中勾选或明确回复「步骤 N 已完成」。涉及 clear 与 .cache/context_cost.log 的规则见「上下文成本日志」及 §1、§7。
clear(或 fork 豁免 + no_clear 行)、仅依赖落盘文件(见 §1)check-prerequisites、解析 FEATURE_DIR / AVAILABLE_DOCS(见 §2)FEATURE_DIR/checklists/;无该目录则本步记为跳过(见 §3)clear + 日志;下一批前重读 tasks.md 等(见 §7;实施中同时遵守 §8 规则与 §9 进度/错误处理)skill_end 日志行(见 §11)说明:§8(实施执行规则)、§9(进度与错误处理)不单独占序号,在 步骤 7 执行过程中持续遵守;若 §3 清单未通过且用户选择不继续,在 步骤 3 终止。
.cache/context_cost.log)<REPO_ROOT> = git rev-parse --show-toplevel(与步骤 2 一致)。在 <REPO_ROOT>/.cache/ 下只追加该文件,勿覆盖。每次 clear(或等价清理)须先写 before_clear、后写 after_clear(§1 入场、§7 每批等);读不到占用时 after_clear 填 unavailable。豁免 clear 时写一行:...|no_clear|reason=<说明>。
行格式(| 分隔,UTF-8):
<ISO8601>|implement|<事件>|before_clear|<Token 或 unavailable>
<ISO8601>|implement|<事件>|after_clear|<Token 或 unavailable>
事件示例:phase_start、batch:设置、batch:子批-1。技能结束见 §11,追加一行:<ISO8601>|implement|skill_end|context|<…>。
开始执行步骤之前,需要进行一些打点记录工作,记录本skill的执行时间到 start_time字段:
Get-Date -Format "yyyy-MM-dd HH:mm:ss"
linux: date +"%Y-%m-%d %H:%M:%S"start_time本技能一开始(进入步骤 2 之前)须完成下列事项,以降低上下文超限风险;不得跳过后续对文件的读取。
记录上下文规模
[implement 阶段开始] 上下文/Token:<数值或说明>。[implement 阶段开始] 上下文规模:不可用,然后继续。clear(或等价清理)之前,按「上下文成本日志」追加 before_clear;清理完成后追加 after_clear(事件标识 phase_start)。清理上下文
clear 指令(或等价「清空上下文」操作)清理当前对话上下文,再仅依据文件继续;清理后在回复中注明 [implement] 已执行 clear。context: fork(或等价机制)在隔离子会话中执行,在快照中注明 已 fork/隔离,可不再要求执行 clear/手动清历史,但仍须遵守第 3 条文件边界;豁免时按「上下文成本日志」写 no_clear 说明行。仅以前序产物为准
FEATURE_DIR 下已由前序步骤(specify / design / tasks 等)写入磁盘的文件;缺信息时打开文件读取,禁止仅凭对话记忆补全可能已过期的细节。scripts/powershell/check-prerequisites.ps1 --json --require-tasks --include-tasksscripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks'I'\''m Groot' 或双引号 "I'm Groot"。(若存在 FEATURE_DIR/checklists/)
扫描 checklists/ 目录中的所有清单文件
对于每个清单, 统计:
- [ ] 或 - [X] 或 - [x] 的行- [X] 或 - [x] 的行- [ ] 的行创建状态表:
| Checklist | Total | Completed | Incomplete | Status |
|-----------|-------|-----------|------------|--------|
| ux.md | 12 | 12 | 0 | ✓ PASS |
| test.md | 8 | 5 | 3 | ✗ FAIL |
| security.md | 6 | 6 | 0 | ✓ PASS |
计算总体状态:
若有清单未完成
若所有清单均已完成
检测与创建逻辑
检查以下命令是否成功以判断是否为 Git 仓库(若是,则创建/验证 .gitignore):
git rev-parse --git-dir 2>/dev/null
存在 Dockerfile* 或 design.md 提及 Docker → 创建/验证 .dockerignore
存在 .eslintrc* 或 eslint.config.* → 创建/验证 .eslintignore
存在 .prettierrc* → 创建/验证 .prettierignore
存在 .npmrc 或 package.json 且需发布 → 创建/验证 .npmignore
存在 Terraform 文件 *.tf → 创建/验证 .terraformignore
存在 Helm charts → 创建/验证 .helmignore
若忽略文件已存在:校验是否包含基本模式,仅追加缺失的关键模式。 若忽略文件不存在:为检测到的技术创建完整模式集。
按技术栈的通用模式(参考 design.md):
node_modules/, dist/, build/, *.log, .env*__pycache__/, *.pyc, .venv/, venv/, dist/, *.egg-info/target/, *.class, *.jar, .gradle/, build/bin/, obj/, *.user, *.suo, packages/*.exe, *.test, vendor/, *.out.bundle/, log/, tmp/, *.gem, vendor/bundle/vendor/, *.log, *.cache, *.envtarget/, debug/, release/, *.rs.bk, *.rlib, *.prof*, .idea/, *.log, .env*build/, out/, .gradle/, .idea/, *.class, *.jar, *.iml, *.log, .env*build/, bin/, obj/, out/, *.o, *.so, *.a, *.exe, *.dll, .idea/, *.log, .env*build/, bin/, obj/, out/, *.o, *.a, *.so, *.exe, Makefile, config.log, .idea/, *.log, .env*.build/, DerivedData/, *.swiftpm/, Packages/.Rproj.user/, .Rhistory, .RData, .Ruserdata, *.Rproj, packrat/, renv/.DS_Store, Thumbs.db, *.tmp, *.swp, .vscode/, .idea/工具特定模式
node_modules/, .git/, Dockerfile*, .dockerignore, *.log*, .env*, coverage/node_modules/, dist/, build/, coverage/, *.min.jsnode_modules/, dist/, build/, coverage/, package-lock.json, yarn.lock, pnpm-lock.yaml.terraform/, *.tfstate*, *.tfvars, .terraform.lock.hcl*.secret.yaml, secrets/, .kube/, kubeconfig*, *.key, *.crt分阶段:完成当前阶段后再进入下一阶段
依赖:顺序任务按序执行,带 [P] 的并行任务可一并执行
TDD:在对应实施任务前执行测试任务
同文件协调:影响同一文件的任务须顺序执行
检查点:每阶段完成后验证再继续
【强制要求】所有任务必须完成:
【关键】测试任务的定义是"生成测试代码",不是"验证测试编译":
go test、pytest、npm test 等)验证编译,这依赖环境【关键】环境限制的处理原则:
tasks.md 中一个任务阶段(设置 / 测试 / 核心 / 集成 / 完善)内,本轮应执行的任务已全部完成,且本阶段检查点已通过、tasks.md 中对应项已更新为 - [X]。若单阶段任务过多、上下文增长过快,可将「一批」细分为更小的子批(例如每完成若干顺序任务、或每轮 [P] 并行任务全部结束)并在每个子批结束后同样执行下列清理。tasks.md 中本批任务已勾选,避免 clear 后丢失进度。clear(与 §1 第 2 条一致),并在回复中注明 [implement] 批次完成,已 clear:<阶段名或子批说明>。每次执行 clear 前、后,按「上下文成本日志」向 <REPO_ROOT>/.cache/context_cost.log 追加 before_clear / after_clear(事件标识使用 batch:<阶段名> 或 batch:子批-<说明>)。其他宿主用 §1 所述等价方式。若本技能始终在 context: fork 子会话中执行且宿主对子会话自动轮换,可按 §1 说明在快照中说明豁免条件,豁免时同样写入 no_clear 说明行;但仍须保证下一批从文件恢复状态。tasks.md(及 design.md 等 §4 所列文档)确认当前进度与约束,禁止仅凭对本批对话的长记忆继续实施。设置:初始化项目结构、依赖、配置
测试先行:按需为合约、实体、集成场景编写测试;当存在 FEATURE_DIR/e2e-impl-design.md 时,按照e2e 用例实施方法进行编写
核心开发:模型、服务、CLI、端点
集成:数据库、中间件、日志、外部服务
收尾:单元测试、性能与文档
e2e 用例实施(仅当存在 FEATURE_DIR/e2e-impl-design.md 时):
## 📋 e2e 用例实施校验报告
- 对比实施步骤与 tasks.md 定义的一致性: ✅
- 对比测试数据格式与 e2e-impl-design.md 约定: ✅
- 对比 Fake 对象使用与约定: ✅
- 对比验证逻辑实现与约定: ✅
- 对比入口函数签名与约定: ✅
- 偏离检查: 无偏离
- 校验结果: ✅ e2e 用例实现严格遵循约定,无任何偏移
- [X]。重新读取 tasks.md:获取最新状态,统计已完成(- [X])与未完成(- [ ])任务。
任务完成度验证
【关键】未完成任务必须继续执行:
任务执行处理
【关键】最终报告必须准确反映任务完成状态:
任务执行报告(需包含):
## 任务执行最终报告
### 总体统计
- 总任务数: X
- 已完成: Y (Z%)
- 未完成: W (V%)
- 可执行: A
- 无法完成: B
### 已完成任务列表
[列出所有已完成的任务ID和描述]
### 【重点】未完成任务列表(功能未完成,不得结束)
[列出所有未完成的任务ID和描述]
- 代码任务: [列表]
- 测试任务: [列表] ← 必须完成
- 文档任务: [列表]
### 无法完成的任务分析
[列出无法完成的任务, 包含:
- 任务ID和描述
- 阻塞原因(等待依赖/缺少资源/环境限制/需求问题/其他)
- 详细说明
- 解决建议]
下一步建议
技能结束时的上下文规模(与 §1 成对记录)
[implement 技能结束] 上下文/Token:<数值或说明>。[implement 技能结束] 上下文规模:不可用。<REPO_ROOT>/.cache/context_cost.log(与「上下文成本日志」同一文件):<ISO8601>|implement|skill_end|context|<上下文/Token 可读值或 unavailable>注意:本技能假定 tasks.md 中已有完整任务分解。若任务不完整或缺失,请先通过相应命令重新生成任务列表。
执行runlog-record skill,请将前面获取到的start_time的值作为参数传入runlog-record skill