Files
monisuo/.agents/skills/monisuo-dev/SKILL.md
2026-04-04 20:42:15 +08:00

14 KiB
Raw Blame History

name, description
name description
monisuo-dev Monisuo 项目结构化开发流程。融合超级技能体系:需求探索 → 计划分解 → 子代理开发 → 双重审查 → 验证门控 → 构建。

Monisuo 开发工作流

融合超级技能Superpowers的完整开发流程。每个阶段引用对应的超级技能确保高质量交付。

流程概览

Phase 0: 分支隔离 → using-git-worktrees
    ↓
Phase 1: 需求探索 → 融合 brainstorming提问→方案→评审
    ↓
Phase 1.5: 计划分解 → 融合 writing-plans咬合级任务+TDD
    ↓
Phase 2: 开发执行 → 融合 subagent-driven-development子代理+双重审查)
    ↓
Phase 3: 质量验证 → verification-before-completion 铁律门控
    │                                      ↓ (通过)
    │                          [Agent A] 精简 + 测试 → 输出审查报告
    │                                      ↓ (通过)
    │                          [Agent B] Phase 4: 功能验证
    │                                      ↓ (通过)
    │                          [Agent C] Phase 5: 构建
    ↓
Phase 6: 分支完成 → finishing-a-development-branch
    ↑
Bug 修复循环 → systematic-debugging根因分析优先

Phase 0/1/1.5 在主对话完成(需与用户交互,子代理无法代替)。但其中的代码库探索环节可并行派发 Explore 子代理加速。 Phase 2 用子代理驱动Phase 3/4/5 分别启动独立 Agent。


Phase 0: 分支隔离

引用技能: superpowers:using-git-worktrees

开发前创建隔离工作区,避免在 main 分支直接修改。

执行步骤

  1. 确认当前在 main 分支且工作区干净
  2. 使用 EnterWorktree 创建隔离工作树,分支名 feat/[feature-name]
  3. 后续所有开发在 worktree 中进行

例外

  • 紧急热修复可跳过 worktree直接在 main 分支操作
  • 用户明确要求跳过时可以跳过

Phase 1: 需求探索

引用技能: superpowers:brainstorming

将用户需求通过协作对话转化为结构化设计。不再直接写 Spec而是先充分探索。

执行步骤

  1. 探索项目上下文 — 检查相关文件、文档、最近提交,理解现有架构

    • 可用 Explore 子代理并行加速:涉及多个独立模块时(如后端+Flutter+Admin派发多个 Explore 子代理并行扫描,结果汇总到主对话
    • 单模块时直接在主对话 Glob/Grep/Read 即可,无需子代理
  2. 逐步提问 — 一次一个问题,理解目的、约束、成功标准(必须主对话)

    • 优先使用选择题,也可开放式
    • 评估范围:如果涉及多个独立子系统,先分解再逐个设计
  3. 提出 2-3 个方案 — 含权衡分析和推荐理由

    • 领先展示推荐方案及原因
    • 每个方案列出优劣
  4. 逐节呈现设计 — 按复杂度控制篇幅

    • 每节确认是否正确
    • 覆盖:架构、组件、数据流、错误处理、测试
  5. 写入 Feature Spec — 保存到 docs/features/[feature-name].md

    # [功能名称]
    
    ## 概述
    功能名称 / 优先级(P0-P2) / 业务背景(痛点→方案→收益)
    
    ## 用户故事
    作为 [角色],我希望 [行为],以便 [目的]
    
    ## 功能列表
    - [ ] 功能点1
    - [ ] 功能点2
    
    ## 技术方案Phase 1.5 填充)
    ### API 设计
    ### 数据模型
    ### 技术决策
    
    ## 测试用例
    - [ ] 正常 / 异常 / 边界
    
    ## 验收标准
    
  6. Spec 自审 — 快速内联检查

    • 占位符扫描:有无 TBD、TODO、未完成章节修复。
    • 内部一致性:各章节是否矛盾?
    • 范围检查:是否聚焦到单个实施计划?
    • 歧义检查:需求是否有两种解读?选定一种明确写出。
  7. 用户确认 — 让用户审阅 Spec 文件,确认后才进入下一阶段

硬门控

用户未确认 Spec 之前,不得进入 Phase 1.5。


Phase 1.5: 计划分解

引用技能: superpowers:writing-plans

将 Spec 转化为咬合级实施计划,每步 2-5 分钟。必须先探索代码库再设计。

执行步骤

  1. 探索现有代码库

    • 可用 Explore 子代理并行加速:涉及多个独立模块时(如后端现有 API、Flutter 现有页面、Admin 现有路由),派发多个 Explore 子代理并行扫描
    • 单模块时直接在主对话 Glob/Grep/Read 即可
    • 识别可复用的组件、Service、工具类
    • 确认集成点
  2. 更新 Spec 技术方案

    • 定义 API 契约 — 方法、路径、请求/响应体
    • 设计数据模型 — 表结构、Entity/DTO/VO 映射
    • 记录技术决策 — 选型理由、模块职责、关键约束
  3. 映射文件结构 — 列出所有需要创建/修改的文件及职责

  4. 编写实施计划 — 保存到 docs/superpowers/plans/YYYY-MM-DD-[feature-name].md

    计划头部:

    # [功能名称] Implementation Plan
    
    > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development to implement this plan task-by-task.
    
    **Goal:** [一句话描述]
    
    **Architecture:** [2-3 句方案描述]
    
    **Tech Stack:** [关键技术]
    
    ---
    
  5. 任务分解原则

    • 每步一个动作2-5 分钟)
    • TDD 红绿循环:写失败测试 → 验证失败 → 最小实现 → 验证通过 → 提交
    • 按模块自底向上:数据层 → 后端 API → Flutter 前端 → Admin 前端
    • 不允许占位符:每步必须包含实际代码和命令
    ### Task N: [组件名称]
    
    **Files:**
    - Create: `exact/path/to/file`
    - Modify: `exact/path/to/existing.java:123-145`
    - Test: `tests/exact/path/test`
    
    - [ ] **Step 1: 写失败测试**
    - [ ] **Step 2: 运行验证失败**
    - [ ] **Step 3: 最小实现**
    - [ ] **Step 4: 运行验证通过**
    - [ ] **Step 5: 提交**
    
  6. 计划自审 — 对照 Spec 逐条检查

    • 覆盖性Spec 每条需求都有对应任务?
    • 占位符扫描:无 TBD/TODO
    • 类型一致性:前后任务的类型、方法签名一致
  7. 用户提供执行选择

    • 推荐子代理驱动开发Phase 2 默认方式)
    • 用户选择内联执行时,按 superpowers:executing-plans 执行

完成标准

  • 已扫描现有代码,无重复造轮子
  • API 契约完整,前后端可并行开发
  • 数据模型与现有表结构兼容
  • 每个任务有完整代码和验证命令

Phase 2: 开发执行

引用技能: superpowers:subagent-driven-development

每个子任务独立子代理执行,完成后双重审查(规格合规 + 代码质量)。

核心原则

  • 每个任务启动新的子代理,不继承主对话上下文
  • 主对话负责提取任务文本、构造上下文、传递给子代理
  • 子代理完成后,先做规格合规审查,再做代码质量审查

执行流程

对计划中的每个任务:

1. 提取任务全文和上下文
2. 启动实现子代理implementer
3. 子代理提问?→ 回答后重新派发
4. 子代理实现、测试、提交、自审
5. 启动规格审查子代理 → 不通过?→ 实现子代理修复 → 重新审查
6. 启动质量审查子代理 → 不通过?→ 实现子代理修复 → 重新审查
7. 标记任务完成

模型选择策略

  • 机械任务1-2 文件Spec 完整)→ 快速模型
  • 集成任务(多文件,模式匹配)→ 标准模型
  • 架构/审查任务 → 最强模型

子代理行为准则

  • Flutter: flutter analyze 无错,用 AppSpacing/AppRadius/AppColorScheme禁止硬编码颜色
  • Java: Lombok 简化,资金变动方法加 @Transactional(rollbackFor = Exception.class)RESTful 设计
  • Admin: TypeScript strictTanStack Vue Query 做数据请求shadcn-vue 组件不手动编辑

禁止事项

  • 不要在 main/master 分支直接实现
  • 不要跳过任何审查(规格或质量)
  • 不要在审查有未修复问题时进入下一任务
  • 不要并行派发多个实现子代理(会冲突)
  • 不要让子代理自行读取计划文件(主对话提供全文)

Spec 同步

Phase 2 全部完成后、启动 Agent A 之前,主对话必须更新 Spec

  • 实际实现与设计有差异时,以实现为准更新 Spec
  • 确保 Phase 3/4 的 Agent 读到的是最新状态

Phase 3: 质量验证(铁律门控)

引用技能: superpowers:verification-before-completion

验证铁律

没有新鲜验证证据,不得声明任何状态。

Phase 2 完成后,启动独立 Agent 执行代码精简和自动化测试。

启动 Agent A

Agent(
  description: "精简+测试验证",
  prompt: |
    你是 Monisuo 项目质量 Agent独立完成以下任务不要询问用户。

    ## 铁律
    没有运行验证命令,不得声称"通过"或"完成"。
    使用"应该通过" = 没有验证。

    ## 1. 读取 Spec
    - 路径: docs/features/[feature-name].md
    - 理解验收标准

    ## 2. 代码审查
    - git diff 查看变更
    - Flutter: flutter analyze, AppSpacing/AppRadius/AppColorScheme 规范
    - Java: @Transactional 资金方法, 统一异常处理, RESTful 设计

    ## 3. 代码精简simplify
    - 对变更代码执行 /simplify审查复用性、质量和效率修复发现的问题
    - 精简完成后重新运行 git diff 确认变更合理

    ## 4. 测试(必须运行并读取完整输出)
    - 后端: mvn test读取输出确认 0 failures
    - Flutter: cd flutter_monisuo && flutter test读取输出确认 0 failures
    - API: ./tests/api/test-[feature].sh如存在

    ## 5. 输出审查报告(供 Agent B 使用)
    ### 代码审查摘要
    - 变更文件列表及每个文件的核心改动
    - 代码规范检查结果
    - 精简改动摘要(改了什么、为什么改)

    ### 测试结果
    | 项目 | 状态 | 证据(命令输出摘要) |
    |------|------|----------------------|
    | 代码审查 | ✅/❌ | |
    | 代码精简 | ✅/❌ | 改动摘要 |
    | 后端测试 | ✅/❌ | X/Y 通过 |
    | Flutter 测试 | ✅/❌ | X/Y 通过 |

    如有 Bug列出文件、原因、修复建议。返回主对话修复后重新验证。
)

门控

Agent A 报告中任何一项 → 主对话修复 → 重新启动 Agent A。


Phase 4: 功能验证Agent B

Agent A 全部通过后,启动独立 Agent。

启动 Agent B

Agent(
  description: "功能验证(用例驱动)",
  prompt: |
    你是 Monisuo 项目功能验证 Agent。基于 Feature Spec 中的测试用例,验证功能实现是否正确。不要询问用户。

    ## 铁律
    没有运行验证命令,不得声称"通过"。逐条代码追踪,不是靠印象。

    ## 1. 读取 Spec
    - 路径: docs/features/[feature-name].md
    - 提取「测试用例」和「验收标准」

    ## 2. 利用审查报告
    - Agent A 已完成代码审查,变更文件列表和核心改动见报告
    - 仅对报告未覆盖的逻辑路径做补充阅读
    - 对照 Spec 中的 API 设计,确认实现与契约一致

    ## 3. 逐条验证测试用例
    对 Spec 中的每条测试用例:
    - **正常流程**:追踪代码路径 Controller → Service → Mapper确认参数传递、返回值、状态变更
    - **异常流程**:确认错误处理覆盖(参数校验、权限检查、边界条件)
    - **边界条件**:空值、零值、溢出、并发等极端场景是否有防护

    ## 4. 输出验证报告
    | 用例编号 | 用例描述 | 验证结果 | 证据 |
    |----------|----------|----------|------|
    | TC-01 | 正常xxx | ✅/❌ | 追踪的具体代码路径 |
    | TC-02 | 异常xxx | ✅/❌ | 具体原因 |

    ### 总结
    - 通过率X/Y
    - 未通过用例:列出失败原因和修复建议
    - 风险点:潜在问题或遗漏

    如有未通过用例,返回主对话修复后重新启动验证。
)

门控

Agent B 报告中有 → 主对话修复 → 重新启动 Agent B。


Phase 5: 构建Agent C

Agent A 和 Agent B 全部通过后,启动独立 Agent。

启动 Agent C

Agent(
  description: "项目构建",
  prompt: |
    你是 Monisuo 项目构建 Agent独立完成构建任务不要询问用户。

    ## 铁律
    没有运行构建命令并看到 exit 0不得声称"构建成功"。

    ## 1. 构建(必须运行并读取完整输出)
    - 后端: mvn clean package -DskipTests → target/monisuo-*.jar
    - Flutter: cd flutter_monisuo && flutter build web --release --dart-define=ENV=prod → build/web/

    ## 2. 输出报告
    | 项目 | 状态 | 证据(命令输出摘要) |
    |------|------|----------------------|
    | 后端构建 | ✅/❌ | 产物路径 |
    | Flutter 构建 | ✅/❌ | 产物路径 |

    如有构建失败,列出:模块、错误信息、修复建议。返回主对话修复后重新构建。
)

门控

Agent C 报告中有 → 主对话修复 → 重新启动 Agent C。


Phase 6: 分支完成

引用技能: superpowers:finishing-a-development-branch

所有 Phase 通过后,完成开发分支。

执行步骤

  1. 确认所有测试通过Phase 3 证据)
  2. 确认功能验证通过Phase 4 证据)
  3. 确认构建成功Phase 5 证据)
  4. 向用户展示选项:
    • 合并到 main
    • 创建 PR
    • 保留分支待后续处理
  5. 执行用户选择
  6. 退出 worktree

Bug 修复循环

引用技能: superpowers:systematic-debugging

遇到 Bug 时,严禁猜测式修复。

四阶段流程

  1. 根因调查 — 重现问题 → 缩小范围 → 找到根因(未完成此阶段不得提出修复)
  2. 修复方案 — 针对根因设计最小修复
  3. 实施修复 → 回到 Phase 3 重新验证
  4. 回归验证 — 确认修复未引入新问题

错误修复路由

  • Agent A 失败(测试不通过)→ 主对话用 systematic-debugging 修复 → 重新启动 Agent A
  • Agent B 失败(功能验证不通过)→ 主对话用 systematic-debugging 修复 → 重新启动 Agent B
  • Agent C 失败(构建不通过)→ 主对话修复构建问题 → 重新启动 Agent C
  • 全部通过 → Phase 6 分支完成

严禁

  • 不准跳过根因分析直接修复
  • 不准用"应该修好了"代替验证
  • 不准在疲劳时降低验证标准