AI Coding Agent 的完整软件开发工作流框架 — 基于可组合的 "Skills",让你的 AI 智能体真正自主高效地写代码
永远先写测试,再写代码。红-绿-重构循环。
用流程代替猜测,有章法地推进。
简单是第一目标,能不多就不多(YAGNI)。
声明成功前必须验证,跑过测试才算数。
你说"我想做一个 XX",AI 不会直接写代码,而是先问你问题,理清真正想做什么,探索替代方案,逐段展示设计让你确认。最终保存设计文档。
设计确认后,自动创建隔离工作区和新分支,跑项目初始化,验证干净的测试基线。不影响主分支。
把工作拆成 2-5 分钟的小任务,每个任务有精确的文件路径、完整代码、验证步骤。清晰到"笨蛋都能照着做"。
启动子代理逐个完成任务,两轮审查(先看是否符合 spec,再看代码质量)。Claude 通常能自主跑 2 小时不偏离计划。
严格执行 RED-GREEN-REFACTOR:先写失败测试 → 确认失败 → 写最少代码 → 确认通过 → 提交。如果先写了代码再写测试,AI 会删掉重来。
每个任务之间自动审查,按严重程度报告问题。严重问题会阻断进度,不给蒙混过关。
全部完成后验证测试,给你选项:合并 / 提 PR / 保留分支 / 丢弃。清理 worktree,干净利落。
最简单的方式,一行命令搞定:
/plugin install superpowers@claude-plugins-official
先注册第三方市场,再安装:
/plugin marketplace add obra/superpowers-marketplace /plugin install superpowers@superpowers-marketplace
在 Agent Chat 中输入:
/add-plugin superpowers
或在插件市场搜索 "superpowers"
直接用扩展命令安装:
gemini extensions install https://github.com/obra/superpowers # 更新 gemini extensions update superpowers
让 Codex 自己装:
Fetch and follow instructions from: https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.codex/INSTALL.md
同样让 agent 自行处理:
Fetch and follow instructions from: https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.opencode/INSTALL.md
每个 skill 在对应场景自动触发,无需手动调用
红-绿-重构循环,包含测试反模式参考。强制先写失败测试。
4 阶段根因分析,包含根因追踪、纵深防御、条件等待技术。
确保问题真的被修好了,不是看起来修好了。
苏格拉底式设计提问,在写代码前先想清楚。
详细实现计划,每个任务 2-5 分钟,精确到文件路径。
子代理并行推进任务,两阶段审查(规范合规 + 代码质量)。
批量执行任务,带人工检查点。可暂停、可调整。
并发子代理工作流,多任务同时推进。
预审查清单,按严重度分级报告。Critical 问题阻断进度。
并行开发分支,隔离工作区互不干扰。
完成后验证测试,合并/PR/保留/丢弃四选一。
创建新 skill 的最佳实践,包含测试方法论。想贡献就看这个。
假设你要给一个 Python Web 项目加一个「用户登录」功能,完整流程如下:
$ # 在 Claude Code 里输入: > /plugin marketplace add obra/superpowers-marketplace ✓ Marketplace added > /plugin install superpowers@superpowers-marketplace ✓ Installed superpowers v2.x # 重启 Claude Code,开始使用 $ claude --resume
# 你不需要任何特殊命令,直接说需求: > 我想给我的 Flask 项目加一个用户登录功能 🧠 Superpowers 自动触发 brainstorming skill... Claude: 在写代码之前,让我先确认几个问题: 1. 用户存储用什么?数据库?文件?还是接第三方(OAuth)? 2. 需要记住密码的 hash 方案吗?推荐 bcrypt 3. 需要"记住我"功能吗? 4. 密码重置流程需要吗? > 用 SQLite 存储,需要 bcrypt,不要记住我,先不要密码重置 Claude: 好的,我整理一下设计: 📋 设计文档概要: - 用户表: id, username, password_hash, created_at - 登录接口: POST /login (username, password) - 注册接口: POST /register (username, password) - Session 管理: Flask-Login - 密码存储: bcrypt hash 可以吗?确认后我会制定实施计划。 > 可以,搞 ✓ 设计文档已保存到 docs/login-feature-design.md
🧠 Superpowers 触发 using-git-worktrees... # 你什么也不用做,Claude 自动执行: $ git worktree add ../myapp-login-feature -b feature/user-login Preparing worktree (new branch 'feature/user-login') $ cd ../myapp-login-feature $ pip install -r requirements.txt ✓ Dependencies installed $ pytest --tb=short ✓ Clean test baseline: 0 failures Claude: 好了,隔离环境准备完毕,主线代码不受影响。
🧠 Superpowers 触发 writing-plans... Claude: 以下是实施计划,每个任务 2-5 分钟: ┌─────────────────────────────────────────────────┐ │ Task 1: 创建用户模型和数据库 │ │ 📁 models.py │ │ - User 类,id/username/password_hash/created_at │ │ - bcrypt hash 密码 │ │ - ✅ 验证: pytest tests/test_models.py │ ├─────────────────────────────────────────────────┤ │ Task 2: 注册接口 │ │ 📁 routes/auth.py │ │ - POST /register │ │ - 输入校验 + 重复检查 │ │ - ✅ 验证: pytest tests/test_register.py │ ├─────────────────────────────────────────────────┤ │ Task 3: 登录接口 + Session │ │ 📁 routes/auth.py │ │ - POST /login, Flask-Login 集成 │ │ - ✅ 验证: pytest tests/test_login.py │ ├─────────────────────────────────────────────────┤ │ Task 4: 登出 + 受保护路由装饰器 │ │ 📁 routes/auth.py + decorators.py │ │ - POST /logout, @login_required │ │ - ✅ 验证: pytest tests/test_protected.py │ └─────────────────────────────────────────────────┘ > 没问题,开搞
🧠 Superpowers 触发 subagent-driven-development... 📡 Dispatching Task 1 to subagent... # ─── 子代理执行 RED-GREEN-REFACTOR ─── 🔴 RED: 先写失败测试 $ cat tests/test_models.py def test_user_password_hash(): user = User(username="alice", password="secret123") assert user.password_hash != "secret123" assert user.check_password("secret123") == True assert user.check_password("wrong") == False $ pytest tests/test_models.py FAILED — ModuleNotFoundError: No module named 'models' ✗ 测试失败(符合预期) 🟢 GREEN: 写最少代码让它通过 $ cat models.py from flask_sqlalchemy import SQLAlchemy from bcrypt import hashpw, checkpw, gensalt db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) password_hash = db.Column(db.String(128)) def __init__(self, username, password): self.username = username self.password_hash = hashpw( password.encode(), gensalt() ).decode() def check_password(self, password): return checkpw( password.encode(), self.password_hash.encode() ) $ pytest tests/test_models.py PASSED ✓ 3/3 tests pass 🔵 REFACTOR: 代码已够简洁,跳过 $ git add -A && git commit -m "feat: user model with bcrypt" ✓ Task 1 完成,已提交 📡 Dispatching Task 2 to subagent... ... (Task 2-4 重复 RED-GREEN-REFACTOR 循环) ...
🧠 每个任务完成后自动触发 requesting-code-review... 📡 Dispatching code-reviewer subagent... 📋 审查报告: ├── Task 1 (User Model) │ ✅ Critical: 无 │ ⚠️ Warning: 密码长度未限制上限 (低风险) │ ✅ 通过 ├── Task 2 (Register) │ ✅ Critical: 无 │ 💡 Suggestion: 可以加邮箱验证(YAGNI,先跳过) │ ✅ 通过 ├── Task 3 (Login) │ 🔴 Critical: 登录失败没有 rate limiting! │ ⛔ 阻断 — 修复后才能继续 └── Task 4 (Logout) ⏳ 等待 Task 3 修复后审查 Claude: Task 3 有安全问题,我在修复... ✓ 已添加 rate limiting (5次/分钟) ✓ 重新审查通过
🧠 Superpowers 触发 finishing-a-development-branch... $ pytest ============================= 12 passed in 0.34s ============================= ✓ 全部测试通过 Claude: 全部完成!你怎么处理这些代码? [A] 合并到主分支 (git merge) [B] 创建 GitHub Pull Request [C] 保留分支,我稍后处理 [D] 丢弃 > B $ gh pr create --title "feat: user login" --body "..." ✓ https://github.com/you/myapp/pull/42 $ git worktree remove ../myapp-login-feature ✓ Worktree 清理完毕 🎉 Done! 一个完整的开发周期,从想法到 PR。
# ===== 安装(一次性) ===== > /plugin install superpowers@claude-plugins-official # ===== 日常使用(不需要记命令!) ===== # 直接说你要什么,Superpowers 自动触发: > "帮我做个用户系统" # → 自动 brainstorm → plan → TDD > "这个 API 报错了帮我看看" # → 自动 systematic-debugging > "帮我 review 一下这段代码" # → 自动 requesting-code-review # ===== 更新 ===== > /plugin update superpowers # ===== 你不需要做的事 ===== # ✗ 手动调用 skill 名字 # ✗ 记忆任何命令 # ✗ 管理 worktree / branch # ✗ 写测试(agent 自己写) # ===== 唯一的"规则" ===== # 当 Claude 问你问题时,认真回答 # 当 Claude 给你选项时,选一个 # 其他的,全都交给它
两者不冲突 — Superpowers 管"怎么写代码",OpenClaw 管"怎么当助手"