plugins/tools/task/skills/plan/SKILL.md
任务分解规划。基于 align.json 将任务拆解为原子子任务 DAG,自我验证后写入 task.json
npx skillsauth add lazygophers/ccplugin plugins/tools/task/skills/planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
基于对齐结果,将任务分解为可执行的子任务。自我验证、自动修复、迭代优化,无需用户确认。
读取以下文件获取规划所需的全部上下文:
.lazygophers/tasks/{task_id}/align.json — 任务目标、验收标准、边界、锁定风格.lazygophers/tasks/{task_id}/context.json — 相关模块、文件、代码风格、工具链从 align.json 中提取 code_style_follow 作为锁定风格,所有子任务必须遵循。
如果 .lazygophers/lessons.json 存在,读取并筛选与当前任务相关的经验:
筛选出的经验作为规划参考约束(非硬规则),避免重蹈覆辙。
基于 align.json 的目标和验收标准,将任务拆解为原子子任务。如果任务类型匹配已知模板(见下方"任务模板"),优先以模板为拆分起点。
每个子任务必须包含:id、description、goal、acceptance_criteria、files、dependencies、agent、estimated_complexity。
对生成的子任务列表进行验证,验证规则见 validation.md。
每次迭代:
发现问题时自动修复(拆分过大任务、合并文件冲突、消除循环依赖等),然后重新验证。
如果 10 次迭代后仍未通过,返回 status: "上下文缺失" 并说明原因。
验证通过后,构建完整执行计划并写入 .lazygophers/tasks/{task_id}/task.json:
{
"subtasks": [...],
"code_style": {...},
"metadata": {
"total_tasks": 3,
"generated_at": "ISO8601"
}
}
输出 [flow·{task_id}·plan] 任务规划已完成,共 N 个子任务。
{
"id": "AuthMiddleware",
"description": "实现认证中间件",
"goal": "验证请求头中的JWT令牌",
"acceptance_criteria": [
"无效令牌返回401",
"有效令牌解析用户信息"
],
"files": ["src/middleware/auth.py"],
"dependencies": ["JWTUtils"],
"agent": "general-purpose",
"estimated_complexity": "medium",
"on_failure": {
"test-failure": "retry_with_fix",
"missing-dependency": "add_dependency_first",
"timeout": "simplify_goal"
}
}
| 恢复策略 | 含义 | worker 行为 |
|---------|------|------------|
| retry_with_fix | 注入失败原因后重试 1 次 | 将错误信息加入 prompt 重新执行 |
| add_dependency_first | 缺少前置依赖 | 标记当前任务 blocked,等待依赖补充 |
| simplify_goal | 目标过于复杂 | 用简化版 goal 重试 |
| skip | 非关键任务可跳过 | 标记 skipped,不阻塞后继 |
未定义 on_failure 或恢复失败的子任务,仍按原逻辑标记 failed 进入 adjust。
详细的验证函数定义和自动修复逻辑见 validation.md。
预定义的任务类型拆分模式见 templates/ 目录:
| 文件 | 类型 | 适用场景 |
|------|------|---------|
| bug-fix.json | Bug 修复 | 定位→修复→验证 |
| new-feature.json | 新功能开发 | 设计→实现→测试 |
| refactor.json | 代码重构 | 分析→重构→验证行为不变 |
| security-fix.json | 安全修复 | 审计→修复→加固 |
| performance.json | 性能优化 | 分析→优化→基准验证 |
| migration.json | 迁移升级 | 评估→迁移→全量验证 |
development
Go 数据库规范——GORM Model 命名 ModelXxx、表名单数、枚举 uint8 + 常量、索引 idx_ 前缀 + deleted_at leading column、禁 time.Time 统一 int64 unix、禁指针/nullable 字段、TEXT/BLOB/JSON 禁 default、AutoMigrate 禁改主键。设计 DB model、写 GORM tag、建索引、做 migration 审查时触发。
development
Go HTTP API 规范——响应始终 200 + body code 字段、路由 /api/* 全 POST 单段 <Action><Model>、中间件逐路由注册禁 Group(prefix,mw...)、handler 仅返回 (rsp,error)、认证走 header。设计 HTTP API、写路由/handler/中间件时触发。
development
Go 项目结构规范——三层架构(API → Impl → State)、全局状态模式、internal/ 私有包、cmd/ 仅 main.go、go.work 多模块、禁止 Repository 接口和 DI 容器、struct 公共字段开头全 omitempty、handler var rsp 顶声明、禁 legacy migration。设计项目骨架、新建目录、组织包、做架构评审时触发。
development
Go 命名规范——Id/Uid 字段(非 ID)、IsActive/HasMFA 布尔前缀、CreatedAt 时间字段、接收者统一用 p、包名全小写无下划线、泛型类型参数描述性命名、集合字段 xxx_list 禁 xxxs 复数、Enum 0 值 XxxNil 禁 Unknown、禁 Status 统一 State、Set/Update 语义区分。定义结构体字段、函数、变量、包、接收者名、泛型、枚举时触发。