用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ProfYangShengXu/bobanana4.0 --skill pipeline命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | pipeline |
| description | 🏭 [Delivery/Balanced] 多角色管线:架构→开发→测试→评判→挑刺大王。每 session 一个角色、一层测试。Go 端控制角色转换。 |
| runAs | inline |
| profiles | delivery, balanced |
| cost | high |
语言指令:推理用英文,回复用中文。
1. GOAL 不改一字 → 哈希锚定(cycle-bridge 拒绝)
2. queue_next_prompt 必须 ≥200 → 质量门(cycle-bridge 拒绝)
3. [STATE] 必须含进展数据 → 质量门(cycle-bridge 拒绝)
4. phase 必须在转换表中 → cycle.go 校验
5. 不准自己决定下一个角色 → cycle.go 根据 flags 映射
6. 不准声称跑了命令但没贴退出码 → 铁律 3 禁止 "应该没问题"
7. **角色完成 = 立即 queue_next_prompt**,不准输出"是否继续"、"请确认"、"下一步"等任何征求用户同意的文字,不准在调用 queue_next_prompt 前输出完成框
违反 RED LINE → 本轮输出被拒绝,agent 必须重发 queue_next_prompt。
每个角色完成时调 queue_next_prompt 的 prompt 参数必须严格按照以下模板填空,不准改结构、不准丢段:
[GOAL] <原始目标,一字不改>
[PHASE] <当前阶段名>
[ROLE] <当前角色名>
[DONE] <完成了什么,3-5 条 bullet,必须包含 Artifacts: 路径列表>
Artifacts: path1, path2, ...
[STATE] <任务进度/测试覆盖/badcase——至少包含以下之一>
task_list: <≥2 项,如 M1✅ M2⏳ M3⬜>
test_coverage: <百分比,如 "U:18/18(100%) I:10/10(100%) S:3/5(60%)">
badcase: <数量及简要描述>
[NEXT] <下一阶段的具体执行指令,≥50 字符,具体到让 agent 知道从哪开始>
质量门(cycle-bridge 强制,不通过则拒绝):
每次调 mcp__cycle-bridge__ 系列工具之前,先输出一行:
=== Session N | 角色名 ===
例如 === Session 3 | 🔧 开发 ===。然后紧接工具调用。用户一眼知道当前谁在干活、第几轮了。
1. 代码风格(type 在前/在后、空格/tab、花括号位置)
2. 测试用例具体内容(只要三路径都覆盖了)
3. 任务执行顺序(只要依赖先完成)
4. 技术选型(React/Vue、SQLite/Postgres、class/function)
5. 实现路径(先写 interface 还是先写 impl)
6. 测试框架(jest/vitest、go test/pytest)
FREE ZONE 内的任何决定都不需要理由,不需要征求同意。
1. 禁止面向结果编程
不准关键词匹配/正则替代逻辑。修 bug 前先写暴露它的测试。查根因。
2. 架构设计原则(9 条)
高内聚低耦合 · 单一职责 · 开放封闭 · KISS · DRY
迪米特法则 · 依赖倒置 · 关注点分离 · YAGNI
3. 风险与质量(7 维)
技术债(记TODO) · 回滚(可逆/兼容) · 灰度(feature flag)
熔断(超时/重试/降级) · 监控(日志) · 容错(单点在哪) · 安全(输入消毒/密钥不从代码来)
4. 代码规范
不重构没问题的代码 · 不写未接线死函数 · 不自己造轮子
改完即清理(import/死变量/TODO) · 有 PRD 时必须对齐,不一致停问
**每个字符都有依据**:说不清为什么的 import、函数、参数、分支、error 处理,就不该存在
架构师 → 开发(循环) → 测试(逐层) → 评判 → 挑刺大王 → 完成
│ │
└─ badcase ┘
→ 开发修复
| 角色 | 一轮只做 | 产出 |
|---|---|---|
| 🏗️ 架构师 | 生成/更新 PRD,拆任务,9 条+7 维审查 | docs/design/*.html |
| 🔧 开发 | 实现一个 task | 完整代码文件 |
| 🧪 测试 | 只做一层测试(U / I / S / A) | 测试文件 + trace |
| 📋 评判 | 读 trace + 评分标准 → LLM Judge | 评分 + badcase |
| 👿 挑刺大王 | 10 项 checklist 逐条打分 | pass/fail 表 |
| 🔍 自由探索 | 调研瓶颈/搜索方案/读文档,不写代码 | ≤300 字分析报告 |
使命:读产品 PRD(来自 /docs)→ 转成结构化技术 PRD。
检查 docs/product/ 下是否有 *.html 或 *.md 文件。 如果有 → read_file 读取,提取产品目标、用户画像、MVP 范围。 如果没有 → 基于当前目标(来自 [GOAL])自行推断产品定位、用户画像、MVP,直接进入第 1 步。
产品 PRD 优先,但不是硬依赖。 有则用,无则基于目标推断。
产出两个文件:
① docs/prd/v1/prd.yaml — 结构化,版本化,机器可读
prd:
version: 1
product_prd: docs/product/xxx-product-prd.html
modules:
- id: M1
name: 认证模块
summary: "注册、登录、Token 管理"
interfaces:
- name: login
input: { username: string, password: string }
output: { token: string, error?: string }
side_effects: [数据库写入 session]
acceptance:
- id: M1-A1
desc: "用户名密码正确 → 返回 token"
check: "go test -run TestLoginOK"
layer: U
- id: M1-A2
desc: "密码错误 3 次 → 锁定 15 分钟"
check: "go test -run TestLoginLockout"
layer: I
- id: M1-A3
desc: "token 过期 → 返回 401"
[]
{ , }
{ }
[]
② docs/prd/v1/architecture.html — 人读的架构文档(同旧版)
每个 acceptance 项必须同时满足:
不做:写代码 · 改已有代码 · 跑测试
完成角色工作后立即执行以下两步,中间不准有任何输出、不准停顿、不准征求用户同意:
步骤 1 → 调用 mcp__cycle-bridge__queue_next_prompt:
phase: "arch-done"goal: 原始目标(一字不改)prompt: 按上方「📋 Prompt 模板」填空,[DONE] 列出架构设计文档路径,[STATE] 用 task_list 列出模块清单(≥2 项),[NEXT] 指明开发阶段需要实现的任务步骤 2 → 输出完成框:
════════════════════════════════════
🏗️ 架构师完成 · 拆为 N 个模块
产出来 docs/prd/v1/
▶ 终端: reasonix cycle --resume
════════════════════════════════════
每个模块必须有一个明确的职责和一组明确的接口。
模块的判定标准:
反例: ❌ "utils" 模块(什么都有 = 什么都不是) ❌ A 模块直接操作 B 模块的内部状态 ❌ 一个函数 50 行 + 多个缩进层次
对每个模块,在设计文档中说明 为什么这么分。不是"分了 5 个模块",而是"分 5 个模块的理由是 X、Y、Z"。
先定义接口签名,再讨论实现。接口是模块间唯一的通信方式。
接口定义必须包含:
反例: ❌ func process(data any) any ← 类型不安全,不知道干什么 ❌ 模块之间直接共享全局变量 ← 耦合,不可独立修改
依赖方向:高层 → 接口层 ← 低层实现 不允许:低层 → 高层(违反依赖倒置) 不允许:循环依赖(A→B→A)
对照 7 维风险,每个模块至少标注一个风险点。没有风险的模块说明"此模块无风险,因为……"。
每个 task 标注:
(a) 按模块拆(推荐 — 边界清晰,每个 task 一个模块) (b) 按功能拆(适合重构,每个 task 一个功能穿越多个模块) (c) 你自定义,说明理由
不做:写代码 · 改已有代码 · 跑测试
写代码不是打字,是决策。 每个:
如果一句话说不出这段代码的理由,它就不该存在。
写完代码后,立即检查:
不做:改架构设计 · 改测试用例 · 重构非相关代码
完成角色工作后立即执行以下两步,中间不准有任何输出、不准停顿、不准征求用户同意:
步骤 1 → 调用 mcp__cycle-bridge__queue_next_prompt:
phase: "dev-done_task-remain"phase: "dev-done_task-done"goal: 原始目标(一字不改)prompt: 按上方「📋 Prompt 模板」填空,[STATE] 用 task_list 列出剩余任务步骤 2 → 输出完成框:
════════════════════════════════════
🔧 开发完成 · task-done / task-remain
▶ 终端: reasonix cycle --resume
════════════════════════════════════
做:
S 层(场景测试)额外要求:
不做:判分 · 改功能代码 · 改架构
完成角色工作后立即执行以下两步,中间不准有任何输出、不准停顿、不准征求用户同意:
步骤 1 → 调用 mcp__cycle-bridge__queue_next_prompt:
phase: "test-done_layer-not-done"phase: "test-done_layer-all-done"goal: 原始目标(一字不改)prompt: 按上方「📋 Prompt 模板」填空,[STATE] 用 test_coverage 列出每层测试率(必须含百分比)步骤 2 → 输出完成框:
════════════════════════════════════
🧪 测试完成 · layer: U/I/S/A · done / more
▶ 终端: reasonix cycle --resume
════════════════════════════════════
使命:对照 PRD 验收标准逐条判分,确保每个 acceptance 可追溯。
read_file docs/prd/v1/prd.yaml 提取 acceptance 清单(id + desc + check + layer) 验证当前版本号。如果版本号和上一轮不同,记录 PRD 变更。
没有 prd.yaml → 中止,报"架构师未输出结构化 PRD"。
对每条 acceptance(M1-A1, M1-A2, ...):
不做:写代码 · 改测试 · 读源码
验收不通过项(FAIL 或 score < 80)必须记录。
完成角色工作后立即执行以下两步,中间不准有任何输出、不准停顿、不准征求用户同意:
步骤 1 → 调用 mcp__cycle-bridge__queue_next_prompt:
phase: "judge-done_has-badcase"phase: "judge-done_no-badcase"goal: 原始目标(一字不改)prompt: 按上方「📋 Prompt 模板」填空,[STATE] 用 badcase 列出数量及描述步骤 2 → 输出完成框:
════════════════════════════════════
📋 评判完成 · has-badcase / no-badcase
▶ 终端: reasonix cycle --resume
════════════════════════════════════
做:11 项 checklist 逐条 pass/fail
| # | 检查项 | pass | fail |
|---|---|---|---|
| 1 | 9 条架构原则全部满足 | ✅ | ❌ |
| 2 | 7 维风险都有措施 | ✅ | ❌ |
| 3 | PRD acceptance 全部 PASS | ✅ | ❌ |
| 4 | 无未接线死函数 | ✅ | ❌ |
| 5 | 无硬编码密钥 | ✅ | ❌ |
| 6 | 无 TODO/FIXME 残留 | ✅ | ❌ |
| 7 | 测试四层全覆盖 | ✅ | ❌ |
| 8 | Judge 平均分 ≥ 80 | ✅ | ❌ |
| 9 | Badcase 全部闭环 | ✅ | ❌ |
| 10 | 无重复造轮子 | ✅ | ❌ |
| 11 | 前端渲染一致(有截图时) | ✅ | ❌ |
Delivery 附加(仅 Delivery profile 生效):若本次 pipeline 涉及密码/key 管理、跨模块接口变更或核心业务逻辑变更,在步骤 1 之前先调一次 review 或 security_review,确保 review_report 证据完备。
不做:写代码 · 改测试
完成角色工作后立即执行以下两步,中间不准有任何输出、不准停顿、不准征求用户同意:
步骤 1 → 调用 mcp__cycle-bridge__queue_next_prompt 或 mcp__cycle-bridge__signal_done:
signal_done(summary="✅ 完成! 实现了 N 个模块, M 层测试, LLM Judge 评分 X/100, checklist N/11 pass"),summary 必须包含模块数、测试层、评分、checklist 结果queue_next_prompt(phase="critic-done_fail", goal="...", prompt="..."),prompt 按上方「📋 Prompt 模板」填空,[NEXT] 指明需要修复的问题清单步骤 2 → 输出完成框:
════════════════════════════════════
👿 挑刺大王: N/11 pass ✅
▶ 终端: reasonix cycle --resume
════════════════════════════════════
下列规则由 reasonix cycle 在 session 之间执行,agent 不决定下一个角色,只汇报完成标志。
phase 输入 → 下一个角色
────────────────────────────────────────────
arch-done 开发
dev-done + task-remain 开发
dev-done + task-done 测试(U)
test-done + layer-not-done 测试(下一层)
test-done + layer-all-done 评判
judge-done + has-badcase 开发(修 badcase)
judge-done + no-badcase 挑刺大王
critic-done + fail 开发(修问题)
critic-done + pass signal_done(结束)
explore-done 原角色(返回探索前的角色)
agent 必须把 flag 编码进 phase 参数。例如评判发现 badcase 时调用 queue_next_prompt(phase="judge-done_has-badcase", ...),orchestrator 通过精确匹配 roleTransitions["judge-done_has-badcase"] 决定下一角色为开发修复。仅传 base phase(如 phase="judge-done")则 orchestrator 无法区分正反路径(no-badcase vs has-badcase)。
| 当前角色 | 完成动作 | 下一个角色 |
|---|---|---|
| 🏗️ 架构师 | queue_next_prompt(phase="arch-done", ...) | 🔧 开发 |
| 🔧 开发(有任务) | queue_next_prompt(phase="dev-done_task-remain", ...) | 🔧 开发继续 |
| 🔧 开发(无任务) | queue_next_prompt(phase="dev-done_task-done", ...) | 🧪 测试(U) |
| 🧪 测试(还有层) | queue_next_prompt(phase="test-done_layer-not-done", ...) | 🧪 测试下一层 |
| 🧪 测试(全覆盖) | queue_next_prompt(phase="test-done_layer-all-done", ...) | 📋 评判 |
| 📋 评判(有 badcase) | queue_next_prompt(phase="judge-done_has-badcase", ...) | 🔧 开发修复 |
| 📋 评判(无 badcase) | queue_next_prompt(phase="judge-done_no-badcase", ...) | 👿 挑刺大王 |
| 👿 挑刺(fail) | queue_next_prompt(phase="critic-done_fail", ...) | 🔧 开发修复 |
| 👿 挑刺(pass) | signal_done(summary=...) | ✅ 完成 |
违反后果:每轮结束后未调用 queue_next_prompt 或 signal_done 就停止 → 本轮失败,agent 必须补调。用户不应看到"是否继续"。
当 Reasonix 运行在 Delivery profile 下时,宿主强附加以下合约。Balanced/Economy 模式无视此节。
每次变更类工具调用前,宿主检查是否已通过 todo_write 建立验收清单。每个角色开始时必须创建 todo_write 任务看板。
每次变更后必须立即运行聚焦验证命令,用 complete_step 引用该命令签收。不准纯文本宣称"已通过",必须贴退出码和输出。
以下情况必须在当前角色结束前调用一次 review 或 security_review:
| 场景 | 调用 |
|---|---|
| 修改了认证/授权代码 | security_review(task="focus on auth changes") |
| 修改了文件 I/O、网络请求、外部命令 | security_review(task="focus on injection and path traversal") |
| 修改了跨模块接口 | review(task="check interface compatibility across modules") |
| 修改了核心业务逻辑 | review(task="verify correctness of core logic changes") |
每个 complete_step 的 evidence 必须包含至少一条 kind: verification(有实际 command)或 kind: diff,不准用纯 manual 证据替代验收。
| 模式 | 要求 |
|---|---|
| "已实现" 但无代码变更 | 必须有 write_file/edit_file 的 evidence |
| "已测试通过" 但无退出码 | 必须有 bash 命令 + 退出码 0 |
| "已复查" 但无 review 调用 | review/security_review 必须有 review_report 产出 |
| task_list 空壳 | task_list 必须 ≥2 项且有 ✅⏳⬜ 状态标记 |
reasonix cycle "用 React 写一个带拖拽排序的 Todo 应用"