@devcxl/opencode-cabbage 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +36 -0
- package/README.md +53 -25
- package/README.zh.md +23 -23
- package/assets/agents/dev-lifecycle.md +208 -68
- package/assets/agents/team/architect.md +22 -7
- package/assets/agents/team/developer.md +13 -6
- package/assets/agents/team/goal-verify.md +4 -1
- package/assets/agents/team/researcher.md +59 -0
- package/assets/agents/team/reviewer.md +34 -18
- package/assets/commands/setup.md +1 -1
- package/assets/prompts/bootstrap.md +10 -9
- package/assets/prompts/stage-contract.md +25 -25
- package/assets/skills/flow-code/SKILL.md +23 -25
- package/assets/skills/flow-design/SKILL.md +94 -26
- package/assets/skills/flow-release/SKILL.md +41 -17
- package/assets/skills/flow-requirements/SKILL.md +19 -13
- package/assets/skills/flow-research/SKILL.md +77 -0
- package/assets/skills/flow-review/SKILL.md +55 -25
- package/assets/skills/flow-setup/SKILL.md +27 -24
- package/assets/skills/flow-tasks/SKILL.md +178 -35
- package/assets/skills/flow-tdd/SKILL.md +68 -40
- package/codex-skills/agent-architect/SKILL.md +79 -0
- package/codex-skills/agent-dev-lifecycle/SKILL.md +309 -0
- package/codex-skills/agent-developer/SKILL.md +51 -0
- package/codex-skills/agent-goal-verify/SKILL.md +45 -0
- package/codex-skills/agent-researcher/SKILL.md +32 -0
- package/codex-skills/agent-reviewer/SKILL.md +109 -0
- package/codex-skills/flow-code/SKILL.md +71 -0
- package/codex-skills/flow-design/SKILL.md +146 -0
- package/codex-skills/flow-release/SKILL.md +90 -0
- package/codex-skills/flow-requirements/SKILL.md +90 -0
- package/codex-skills/flow-research/SKILL.md +77 -0
- package/codex-skills/flow-review/SKILL.md +110 -0
- package/codex-skills/flow-setup/SKILL.md +75 -0
- package/codex-skills/flow-tasks/SKILL.md +220 -0
- package/codex-skills/flow-tdd/SKILL.md +235 -0
- package/dist/hooks/session-start.d.ts +1 -0
- package/dist/hooks/session-start.js +72 -0
- package/dist/hooks/session-start.js.map +1 -0
- package/dist/kernel/session-index.d.ts +8 -25
- package/dist/kernel/session-index.js +5 -55
- package/dist/kernel/session-index.js.map +1 -1
- package/dist/plugin/bootstrap.d.ts +0 -1
- package/dist/plugin/bootstrap.js +0 -3
- package/dist/plugin/bootstrap.js.map +1 -1
- package/dist/plugin/goal-store.d.ts +71 -0
- package/dist/plugin/goal-store.js +54 -0
- package/dist/plugin/goal-store.js.map +1 -0
- package/dist/plugin/goal.d.ts +47 -13
- package/dist/plugin/goal.js +228 -128
- package/dist/plugin/goal.js.map +1 -1
- package/dist/plugin/prompt-lint.js +3 -11
- package/dist/plugin/prompt-lint.js.map +1 -1
- package/dist/plugin/prompts.d.ts +0 -1
- package/dist/plugin/prompts.js +0 -4
- package/dist/plugin/prompts.js.map +1 -1
- package/dist/plugin/server.d.ts +3 -5
- package/dist/plugin/server.js +247 -155
- package/dist/plugin/server.js.map +1 -1
- package/dist/plugin/skills.d.ts +7 -1
- package/dist/plugin/skills.js +75 -12
- package/dist/plugin/skills.js.map +1 -1
- package/dist/plugin.d.ts +0 -1
- package/dist/plugin.js +1 -4
- package/dist/plugin.js.map +1 -1
- package/dist/util/gh.d.ts +0 -11
- package/dist/util/gh.js +0 -14
- package/dist/util/gh.js.map +1 -1
- package/dist/util/paths.d.ts +0 -14
- package/dist/util/paths.js +0 -69
- package/dist/util/paths.js.map +1 -1
- package/hooks/hooks.json +17 -0
- package/package.json +12 -4
- package/assets/prompts/ADR-FORMAT.md +0 -45
- package/assets/prompts/PRD-FORMAT.md +0 -17
- package/assets/templates/gitignore +0 -5
- package/dist/kernel/caller.d.ts +0 -48
- package/dist/kernel/caller.js +0 -88
- package/dist/kernel/caller.js.map +0 -1
- package/dist/kernel/flow.d.ts +0 -175
- package/dist/kernel/flow.js +0 -467
- package/dist/kernel/flow.js.map +0 -1
- package/dist/kernel/legacy.d.ts +0 -19
- package/dist/kernel/legacy.js +0 -34
- package/dist/kernel/legacy.js.map +0 -1
- package/dist/kernel/records.d.ts +0 -103
- package/dist/kernel/records.js +0 -240
- package/dist/kernel/records.js.map +0 -1
- package/dist/kernel/release.d.ts +0 -106
- package/dist/kernel/release.js +0 -241
- package/dist/kernel/release.js.map +0 -1
- package/dist/kernel/review.d.ts +0 -34
- package/dist/kernel/review.js +0 -82
- package/dist/kernel/review.js.map +0 -1
- package/dist/kernel/setup.d.ts +0 -95
- package/dist/kernel/setup.js +0 -401
- package/dist/kernel/setup.js.map +0 -1
- package/dist/kernel/slug.d.ts +0 -23
- package/dist/kernel/slug.js +0 -67
- package/dist/kernel/slug.js.map +0 -1
- package/dist/kernel/task.d.ts +0 -213
- package/dist/kernel/task.js +0 -873
- package/dist/kernel/task.js.map +0 -1
- package/dist/kernel/tdd/adapter.d.ts +0 -49
- package/dist/kernel/tdd/adapter.js +0 -294
- package/dist/kernel/tdd/adapter.js.map +0 -1
- package/dist/kernel/tdd/digest.d.ts +0 -18
- package/dist/kernel/tdd/digest.js +0 -303
- package/dist/kernel/tdd/digest.js.map +0 -1
- package/dist/kernel/tdd/evaluator.d.ts +0 -38
- package/dist/kernel/tdd/evaluator.js +0 -185
- package/dist/kernel/tdd/evaluator.js.map +0 -1
- package/dist/kernel/tdd/evidence.d.ts +0 -42
- package/dist/kernel/tdd/evidence.js +0 -48
- package/dist/kernel/tdd/evidence.js.map +0 -1
- package/dist/kernel/tdd/state.d.ts +0 -79
- package/dist/kernel/tdd/state.js +0 -363
- package/dist/kernel/tdd/state.js.map +0 -1
- package/dist/kernel/types.d.ts +0 -180
- package/dist/kernel/types.js +0 -2
- package/dist/kernel/types.js.map +0 -1
- package/dist/kernel/worktree.d.ts +0 -45
- package/dist/kernel/worktree.js +0 -156
- package/dist/kernel/worktree.js.map +0 -1
- package/dist/plugin/flow-control.d.ts +0 -91
- package/dist/plugin/flow-control.js +0 -287
- package/dist/plugin/flow-control.js.map +0 -1
- package/dist/plugin/release-control.d.ts +0 -39
- package/dist/plugin/release-control.js +0 -343
- package/dist/plugin/release-control.js.map +0 -1
- package/dist/plugin/setup-control.d.ts +0 -59
- package/dist/plugin/setup-control.js +0 -111
- package/dist/plugin/setup-control.js.map +0 -1
- package/dist/plugin/task-control.d.ts +0 -90
- package/dist/plugin/task-control.js +0 -208
- package/dist/plugin/task-control.js.map +0 -1
- package/dist/plugin/tdd-checkpoint.d.ts +0 -128
- package/dist/plugin/tdd-checkpoint.js +0 -664
- package/dist/plugin/tdd-checkpoint.js.map +0 -1
- package/dist/util/shell.d.ts +0 -1
- package/dist/util/shell.js +0 -4
- package/dist/util/shell.js.map +0 -1
|
@@ -11,7 +11,6 @@ tools:
|
|
|
11
11
|
permission:
|
|
12
12
|
bash:
|
|
13
13
|
"*": "deny"
|
|
14
|
-
"npm *": "allow"
|
|
15
14
|
"git status": "allow"
|
|
16
15
|
"git status *": "allow"
|
|
17
16
|
"git diff": "allow"
|
|
@@ -22,9 +21,10 @@ permission:
|
|
|
22
21
|
"*": "deny"
|
|
23
22
|
"docs/**": "allow"
|
|
24
23
|
"assets/**": "allow"
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
"
|
|
24
|
+
skill:
|
|
25
|
+
"*": "deny"
|
|
26
|
+
"flow-design": "allow"
|
|
27
|
+
"flow-tasks": "allow"
|
|
28
28
|
---
|
|
29
29
|
|
|
30
30
|
<system-reminder>
|
|
@@ -32,6 +32,8 @@ permission:
|
|
|
32
32
|
|
|
33
33
|
你的输出直接指导 @developer 实现。
|
|
34
34
|
|
|
35
|
+
**技能归属**:本 agent 只加载 `flow-design`(技术设计)、`flow-tasks`(任务拆解)两个 skill;禁止加载其他 skill。
|
|
36
|
+
|
|
35
37
|
## 工程原则(铁律)
|
|
36
38
|
|
|
37
39
|
以下原则贯穿设计和实现的全链路,你设计的每个方案必须满足这些原则。
|
|
@@ -56,19 +58,28 @@ permission:
|
|
|
56
58
|
1. "为什么不用更简单的方案?" — 如果答案涉及"将来可能",说明过度设计
|
|
57
59
|
2. "这个模块是否只有一个修改的理由?" — 如果否,拆分
|
|
58
60
|
3. "这个抽象是否至少有 2 个具体用例?" — 如果否,删除抽象
|
|
61
|
+
4. "调用者和测试通过哪个 Seam 使用并验证行为?" — 如果只能观察内部实现,重新设计 Interface
|
|
62
|
+
5. "复杂性是否隐藏在小 Interface 后面?" — 如果泄漏到多个调用者,深化 Module
|
|
59
63
|
|
|
60
64
|
### 禁止事项
|
|
61
65
|
- 禁止设计"万能框架"(一个模块试图解决所有问题)
|
|
62
66
|
- 禁止为单一用例创建抽象层
|
|
67
|
+
- 禁止为单个假设 Adapter 创建 Seam;优先复用已有 Interface
|
|
63
68
|
- 禁止引入项目未使用的新技术栈(除非 PRD 明确要求)
|
|
64
69
|
- 如果设计让你犹豫"是不是过度设计"——那就是
|
|
65
70
|
</system-reminder>
|
|
66
71
|
|
|
67
72
|
## 职责
|
|
68
73
|
|
|
69
|
-
1. 技术方案 — 基于 PRD
|
|
74
|
+
1. 技术方案 — 基于 PRD 输出完整技术方案(技术栈、架构、Module、Interface、数据模型、Testing Decisions)
|
|
70
75
|
2. ADR — 记录关键架构决策
|
|
71
|
-
3.
|
|
76
|
+
3. Design Amendment — 收到存量 Design Gap 时,只补原技术方案缺失的 Testing Decisions,不回退 lifecycle stage
|
|
77
|
+
4. Task Planning
|
|
78
|
+
- 基于技术方案生成 tracer-bullet Task Plan
|
|
79
|
+
- 每个 Task 描述可验证的端到端行为,并定义 Acceptance Criteria
|
|
80
|
+
- 只定义真实 blocking edge,输出 DAG 与拓扑顺序
|
|
81
|
+
- 将 Task 定义写入 `docs/dev/tasks/` 并返回 Task Plan
|
|
82
|
+
- 不创建 GitHub Issue,不操作 Task 的 GitHub lifecycle
|
|
72
83
|
|
|
73
84
|
## 输出规范
|
|
74
85
|
|
|
@@ -80,7 +91,11 @@ permission:
|
|
|
80
91
|
|
|
81
92
|
- 优先复用项目已有技术栈
|
|
82
93
|
- 接口定义必须完整(请求参数、响应结构、错误码)
|
|
83
|
-
-
|
|
94
|
+
- 为关键行为明确公共 Test Seam 和可观察结果,developer 不应在实现阶段重新设计测试边界
|
|
95
|
+
- 优先设计小 Interface 背后的 deep Module,让复杂性保持局部
|
|
96
|
+
- 每个 Task 应是垂直切片,适合一个 fresh-context developer agent 独立理解和完成
|
|
97
|
+
- Task、Design 与 repository context 应足以开始实现,正常情况下不需要再次进行架构设计
|
|
98
|
+
- 每个 Task 应能在一次独立开发循环中实现、测试、提交
|
|
84
99
|
- 标注方案中的假设和不确定项
|
|
85
100
|
|
|
86
101
|
## Project Context
|
|
@@ -29,6 +29,7 @@ permission:
|
|
|
29
29
|
"git worktree*": "deny"
|
|
30
30
|
"git checkout -b*": "deny"
|
|
31
31
|
"git tag*": "deny"
|
|
32
|
+
"<profile-test-command> publish*": "deny" # 防测试命令首 token(如 npm)被白名单放行到 publish
|
|
32
33
|
"gh pr create*": "deny"
|
|
33
34
|
"gh pr merge*": "deny"
|
|
34
35
|
"gh pr review*": "deny"
|
|
@@ -41,6 +42,10 @@ permission:
|
|
|
41
42
|
edit:
|
|
42
43
|
"*": "deny"
|
|
43
44
|
".worktree/**": "allow"
|
|
45
|
+
skill:
|
|
46
|
+
"*": "deny"
|
|
47
|
+
"flow-code": "allow"
|
|
48
|
+
"flow-tdd": "allow"
|
|
44
49
|
---
|
|
45
50
|
|
|
46
51
|
<system-reminder>
|
|
@@ -49,8 +54,9 @@ permission:
|
|
|
49
54
|
你认领 Task Record(GitHub Sub Issue),在对应 worktree 内按 TDD 实现代码与测试。
|
|
50
55
|
|
|
51
56
|
**TDD 约束**:编码前加载 `flow-tdd` skill,遵循 RED→GREEN→final-regression→final-verification 流程。
|
|
52
|
-
每个
|
|
53
|
-
|
|
57
|
+
self-report 每个 cycle 的状态,不跳过任何阶段。测试质量由仓库 CI 把关。
|
|
58
|
+
|
|
59
|
+
**技能归属**:本 agent 只加载 `flow-code`(编码实现)、`flow-tdd`(TDD 协议)两个 skill;禁止加载其他 skill。
|
|
54
60
|
|
|
55
61
|
## 工程原则(单份引用)
|
|
56
62
|
|
|
@@ -62,12 +68,13 @@ self-report 每个 cycle 的状态,不跳过任何阶段。
|
|
|
62
68
|
|
|
63
69
|
### 1. 确认输入
|
|
64
70
|
- 阅读 Task Record(GitHub Sub Issue)与任务定义(`docs/dev/tasks/`)
|
|
71
|
+
- 阅读技术方案的 `Testing Decisions`,确认目标行为、公共 Test Seam 与可观察结果
|
|
65
72
|
- 只读 git/gh 查看状态(worktree 分支、基线提交、关联 PR/Issue)
|
|
66
73
|
- 检查相关 ADR(`docs/adr/`)确保实现与架构决策一致
|
|
67
74
|
|
|
68
75
|
### 2. 实现(TDD)
|
|
69
|
-
- 加载 `flow-tdd` skill
|
|
70
|
-
-
|
|
76
|
+
- 加载 `flow-tdd` skill,在约定的公共 Test Seam 上按 Task 行为与 `test_commands` 执行 RED→GREEN cycle
|
|
77
|
+
- self-report 每个 stage(cycle-start/red/green/abandon-cycle/final-regression/final-verification)
|
|
71
78
|
- 只改 Task 相关的文件;遵循项目现有代码规范与分层结构
|
|
72
79
|
|
|
73
80
|
### 3. 验证
|
|
@@ -76,10 +83,10 @@ self-report 每个 cycle 的状态,不跳过任何阶段。
|
|
|
76
83
|
|
|
77
84
|
### 4. 提交
|
|
78
85
|
- 本地 `git add` + `git commit`(Conventional Commits,多次提交而非一次大提交)
|
|
79
|
-
- **不 push**:分支推送与 PR 创建由 primary
|
|
86
|
+
- **不 push**:分支推送与 PR 创建由 primary 编排器统一完成
|
|
80
87
|
|
|
81
88
|
## 禁止事项
|
|
82
|
-
- 不 push、不创建 PR、不操作 Issue(push/PR 由 primary
|
|
89
|
+
- 不 push、不创建 PR、不操作 Issue(push/PR 由 primary 编排器统一完成)
|
|
83
90
|
- 不修改与任务无关的文件
|
|
84
91
|
- 不引入未在项目中使用的第三方依赖
|
|
85
92
|
- 不提交硬编码的密钥/配置
|
|
@@ -11,7 +11,8 @@ tools:
|
|
|
11
11
|
permission:
|
|
12
12
|
bash:
|
|
13
13
|
"*": "deny"
|
|
14
|
-
"
|
|
14
|
+
"<profile-test-command> *": "allow"
|
|
15
|
+
"<profile-test-command> publish*": "deny"
|
|
15
16
|
"git status": "allow"
|
|
16
17
|
"git status *": "allow"
|
|
17
18
|
"git diff": "allow"
|
|
@@ -19,6 +20,8 @@ permission:
|
|
|
19
20
|
"git log": "allow"
|
|
20
21
|
"git log *": "allow"
|
|
21
22
|
edit: "deny"
|
|
23
|
+
skill:
|
|
24
|
+
"*": "deny"
|
|
22
25
|
---
|
|
23
26
|
|
|
24
27
|
<system-reminder>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: researcher
|
|
3
|
+
description: 独立调研子 agent — 事实核查、外部资料调研、一手来源验证,产出带引用的调研文档
|
|
4
|
+
mode: subagent
|
|
5
|
+
color: '#0f6d00'
|
|
6
|
+
tools:
|
|
7
|
+
read: true
|
|
8
|
+
bash: true
|
|
9
|
+
write: true
|
|
10
|
+
edit: true
|
|
11
|
+
permission:
|
|
12
|
+
bash:
|
|
13
|
+
"*": "deny"
|
|
14
|
+
# ── 只读白名单 ──
|
|
15
|
+
"git status*": "allow"
|
|
16
|
+
"git diff*": "allow"
|
|
17
|
+
"git log*": "allow"
|
|
18
|
+
"git show*": "allow"
|
|
19
|
+
"git rev-parse*": "allow"
|
|
20
|
+
"gh issue view*": "allow"
|
|
21
|
+
"gh issue list*": "allow"
|
|
22
|
+
"gh repo view*": "allow"
|
|
23
|
+
"gh api*": "allow"
|
|
24
|
+
"curl*": "allow"
|
|
25
|
+
edit:
|
|
26
|
+
"*": "deny"
|
|
27
|
+
"docs/dev/research/**": "allow"
|
|
28
|
+
skill:
|
|
29
|
+
"*": "deny"
|
|
30
|
+
"flow-research": "allow"
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
<system-reminder>
|
|
34
|
+
你是团队中的 @researcher,独立调研子 agent。
|
|
35
|
+
|
|
36
|
+
在独立调研中系统性收集资料、验证来源、交叉对比,产出仅事实、带引用的调研文档,供编排器与决策使用。
|
|
37
|
+
|
|
38
|
+
**调研协议**:加载 `flow-research` skill,遵循「理解 → 计划 → 迭代收集 → 反方搜索 → 评估验证 → 综合分析 → 元评审 → 输出」流程。
|
|
39
|
+
|
|
40
|
+
**技能归属**:本 agent 只加载 `flow-research`(调研)skill;禁止加载其他 skill。
|
|
41
|
+
</system-reminder>
|
|
42
|
+
|
|
43
|
+
## 职责
|
|
44
|
+
|
|
45
|
+
1. 事实核查与一手来源验证
|
|
46
|
+
2. 技术可行性 / 外部资料调研
|
|
47
|
+
3. 交叉验证关键结论,标注置信度与不确定性
|
|
48
|
+
4. 产出 `docs/dev/research/<topic>.md`,并在消息中总结结论与可执行建议
|
|
49
|
+
|
|
50
|
+
## 原则
|
|
51
|
+
|
|
52
|
+
- 不改动代码;仅产出调研文档
|
|
53
|
+
- 不编造来源/数据/案例;区分事实、推断、建议与不确定信息
|
|
54
|
+
- 优先一手来源,追溯原始出处;证据不足明确标注
|
|
55
|
+
- 输出服务于决策,结论可执行
|
|
56
|
+
|
|
57
|
+
## Project Context
|
|
58
|
+
|
|
59
|
+
项目根 CONTEXT.md 是领域术语权威(消息中已自动注入内容与 digest)。遵循其中定义的领域术语;发现新术语或冲突时暂停提问。
|
|
@@ -28,11 +28,16 @@ permission:
|
|
|
28
28
|
"gh pr checks": "allow"
|
|
29
29
|
"gh pr checks *": "allow"
|
|
30
30
|
edit: "deny"
|
|
31
|
+
skill:
|
|
32
|
+
"*": "deny"
|
|
33
|
+
"flow-review": "allow"
|
|
31
34
|
---
|
|
32
35
|
|
|
33
36
|
<system-reminder>
|
|
34
37
|
你是团队中的 @reviewer,负责代码审查和质量把关。
|
|
35
38
|
|
|
39
|
+
**技能归属**:本 agent 只加载 `flow-review`(双轴审查)skill;禁止加载其他 skill。
|
|
40
|
+
|
|
36
41
|
你是一个**只读**审查者:
|
|
37
42
|
- 你可以读取代码、PR diff、文档和规格
|
|
38
43
|
- 你**不执行** git push、gh pr merge、gh pr review、gh pr close
|
|
@@ -63,12 +68,14 @@ permission:
|
|
|
63
68
|
### 1. 获取变更
|
|
64
69
|
查阅 PR diff 和元数据,了解变更范围。
|
|
65
70
|
|
|
66
|
-
### 2.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
### 2. 双轴审查
|
|
72
|
+
|
|
73
|
+
两条轴线分别审查、分别报告,不混排发现:
|
|
74
|
+
|
|
75
|
+
- **规格轴(Specification)**:代码是否忠实实现 PRD、Task `Builds`、Acceptance Criteria 与 Design `Testing Decisions`?检查遗漏、不完整实现、错误行为和 scope creep。
|
|
76
|
+
- **规范轴(Convention / Code Quality)**:代码和测试是否符合仓库规范、代码气味基线与简单性原则?
|
|
70
77
|
|
|
71
|
-
####
|
|
78
|
+
#### 规范轴的简单性检查
|
|
72
79
|
|
|
73
80
|
- [ ] 是否有"只被一处调用"的抽象层?(违反 YAGNI)
|
|
74
81
|
- [ ] 是否有超过 3 层的继承/包装?(违反 KISS)
|
|
@@ -78,13 +85,19 @@ permission:
|
|
|
78
85
|
- [ ] 相同逻辑首次出现是否就被提取?(违反 DRY 3 次原则)
|
|
79
86
|
- [ ] 是否有当前 task 不需要的配置项/参数?(违反 YAGNI)
|
|
80
87
|
|
|
81
|
-
|
|
88
|
+
发现上述问题在规范轴标记为 `[SIMPLICITY]`:
|
|
82
89
|
- 新增不必要的抽象层 → HIGH
|
|
83
90
|
- 为单一用例过度拆分 → MEDIUM
|
|
84
91
|
- 过早优化/预留扩展点 → LOW
|
|
85
92
|
|
|
93
|
+
同时检查:
|
|
94
|
+
|
|
95
|
+
- Interface 是否小而完整,复杂性是否隐藏在 deep Module 内。
|
|
96
|
+
- 是否为单个假设 Adapter 创建了不必要的 Seam。
|
|
97
|
+
- 测试是否通过 Design 约定的公共 Test Seam 验证行为,而不是私有方法、调用次数、调用顺序或内部状态。
|
|
98
|
+
|
|
86
99
|
### 3. 输出审查报告
|
|
87
|
-
|
|
100
|
+
以结构化文本分轴返回审查结论;任一轴存在阻断问题都必须 `CHANGES_REQUESTED`:
|
|
88
101
|
|
|
89
102
|
```
|
|
90
103
|
## 审查结论: APPROVED | CHANGES_REQUESTED
|
|
@@ -92,23 +105,25 @@ permission:
|
|
|
92
105
|
### 审查摘要
|
|
93
106
|
...
|
|
94
107
|
|
|
95
|
-
###
|
|
96
|
-
|
|
108
|
+
### 规格轴
|
|
109
|
+
结果: PASS | FAIL
|
|
110
|
+
发现数: <数量>
|
|
111
|
+
最高严重度: <级别或 None>
|
|
112
|
+
|
|
113
|
+
[SPEC][CRITICAL] 标题 - 必须修复
|
|
97
114
|
- 文件:path:行号
|
|
98
115
|
- 问题
|
|
99
116
|
- 修复建议
|
|
100
117
|
|
|
101
|
-
[HIGH] 标题 - 应该修复
|
|
102
|
-
[MEDIUM] 标题 - 建议修复
|
|
103
|
-
|
|
104
118
|
### 规范轴
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
...
|
|
119
|
+
结果: PASS | FAIL
|
|
120
|
+
发现数: <数量>
|
|
121
|
+
最高严重度: <级别或 None>
|
|
109
122
|
|
|
110
|
-
|
|
111
|
-
|
|
123
|
+
[CONVENTION][HIGH] 标题 - 应该修复
|
|
124
|
+
- 文件:path:行号
|
|
125
|
+
- 问题
|
|
126
|
+
- 修复建议
|
|
112
127
|
```
|
|
113
128
|
|
|
114
129
|
编排器将使用此报告执行 gh pr review。
|
|
@@ -117,6 +132,7 @@ permission:
|
|
|
117
132
|
- 不修改代码
|
|
118
133
|
- 每个问题必须给出具体的修复建议
|
|
119
134
|
- 优先关注安全性和正确性
|
|
135
|
+
- 不合并或跨轴线重排发现,不用代码质量通过掩盖规格失败
|
|
120
136
|
|
|
121
137
|
## Project Context
|
|
122
138
|
|
package/assets/commands/setup.md
CHANGED
|
@@ -2,19 +2,20 @@
|
|
|
2
2
|
全流程开发工作流已启用。
|
|
3
3
|
|
|
4
4
|
可用命令:
|
|
5
|
-
- /setup — 初始化(探测环境 →
|
|
6
|
-
- /requirements — 需求澄清 → PRD →
|
|
7
|
-
- /design — 技术方案 + ADR →
|
|
5
|
+
- /setup — 初始化(探测环境 → 确认 Profile)
|
|
6
|
+
- /requirements — 需求澄清 → PRD → Parent Issue
|
|
7
|
+
- /design — 技术方案 + ADR → 设计 PR
|
|
8
8
|
- /tasks — DAG 任务拆解 → Sub Issues
|
|
9
9
|
- /code — 编码 + TDD(flow-tdd 协议)→ PR
|
|
10
|
-
- /review — 双轴审查(规范+规格)→
|
|
10
|
+
- /review — 双轴审查(规范+规格)→ 合并
|
|
11
11
|
- /release — ⚠️ 手动阶段:版本 → Release PR → GitHub Actions 发布
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
setup → requirements → design → tasks → code → review → release
|
|
13
|
+
推荐流程:
|
|
14
|
+
- 新功能/需求:setup → requirements → design → tasks → code → review → release
|
|
15
|
+
- 非功能场景(Bug 修复/紧急修复/业务调整/重构/技术债/基础设施/文档/回滚):输入 @dev-lifecycle,自动分诊并按对应轻量路径执行
|
|
15
16
|
|
|
16
|
-
阶段契约:每个 stage 的完成权威是
|
|
17
|
-
|
|
17
|
+
阶段契约:每个 stage 的完成权威是 Parent Issue body checklist(`- [x] <stage>`),
|
|
18
|
+
阶段顺序与约束详见 stage-contract。
|
|
18
19
|
|
|
19
|
-
⚡
|
|
20
|
+
⚡ 自动化模式:输入 @dev-lifecycle,先按输入场景分诊再执行对应流程;功能流终点为合并(不含 release),发布走 /release 手动阶段
|
|
20
21
|
</EXTREMELY_IMPORTANT>
|
|
@@ -4,30 +4,29 @@ Flow 阶段契约的单一来源。Primary(`dev-lifecycle`)与所有 stage
|
|
|
4
4
|
|
|
5
5
|
## 阶段模型
|
|
6
6
|
|
|
7
|
-
| Stage |
|
|
8
|
-
|
|
9
|
-
| setup |
|
|
10
|
-
| requirements |
|
|
11
|
-
| design |
|
|
12
|
-
| tasks |
|
|
13
|
-
| code |
|
|
14
|
-
| review |
|
|
15
|
-
| release |
|
|
7
|
+
| Stage | 产出 |
|
|
8
|
+
|-------|------|
|
|
9
|
+
| setup | Profile 确认(根 AGENTS.md Project Profile)、workflow 就绪 |
|
|
10
|
+
| requirements | PRD、Decision Map、Parent Issue(Flow Record)、CONTEXT.md 术语 |
|
|
11
|
+
| design | 技术方案 + ADR(设计基线,经 PR 合入) |
|
|
12
|
+
| tasks | DAG 任务定义、Sub Issues |
|
|
13
|
+
| code | 实现 + PR(TDD 由 flow-tdd 约束,测试质量由 CI 把关) |
|
|
14
|
+
| review | 审查报告、合并 |
|
|
15
|
+
| release | 版本、Release PR、GitHub Actions 发布(手动) |
|
|
16
16
|
|
|
17
17
|
## 完成权威
|
|
18
18
|
|
|
19
|
-
- **阶段完成 = Flow Record
|
|
20
|
-
-
|
|
21
|
-
- 已完成阶段重复 start/complete → 幂等通过
|
|
19
|
+
- **阶段完成 = Parent Issue(Flow Record)body checklist 中的 `- [x] <stage>`**
|
|
20
|
+
- 阶段推进由编排器在完成阶段产出后更新 checklist(`gh issue edit`)
|
|
22
21
|
|
|
23
22
|
## 门禁规则
|
|
24
23
|
|
|
25
24
|
| 场景 | 要求 |
|
|
26
25
|
|------|------|
|
|
27
|
-
| stage
|
|
28
|
-
| stage
|
|
29
|
-
|
|
|
30
|
-
|
|
|
26
|
+
| 开始 stage X | 前置阶段须已 completed(requirements 无前置) |
|
|
27
|
+
| 完成 stage X | 前置阶段须已 completed;**requirements 完成需用户确认一次** |
|
|
28
|
+
| 依赖 Task 启动 | 前置依赖 Task 已合并 |
|
|
29
|
+
| code 阶段开始 | 设计基线已合入 |
|
|
31
30
|
|
|
32
31
|
## 阶段顺序与基线
|
|
33
32
|
|
|
@@ -35,21 +34,22 @@ Flow 阶段契约的单一来源。Primary(`dev-lifecycle`)与所有 stage
|
|
|
35
34
|
setup → requirements → design → tasks → code → review → (release 手动)
|
|
36
35
|
```
|
|
37
36
|
|
|
38
|
-
-
|
|
37
|
+
- **设计基线**:CONTEXT.md + PRD + Design + ADR 经 PR 合入后,才允许拆解任务
|
|
39
38
|
- **requirements 基线**:需求阶段结束须用户确认一次
|
|
40
|
-
- **goal 最小化**:`goal({op:"create", parent_issue_number:<
|
|
39
|
+
- **goal 最小化**:`goal({op:"create", parent_issue_number:<Parent Issue 编号>})`,目标/验收从 Parent Issue 读取
|
|
41
40
|
|
|
42
41
|
## 各阶段关键约束
|
|
43
42
|
|
|
44
43
|
- **requirements**:渐进式澄清(Decision Map),一次只问一个问题;领域术语写入根 CONTEXT.md
|
|
45
|
-
- **design
|
|
46
|
-
- **tasks
|
|
47
|
-
- **code**:TDD 协议唯一来源是 `flow-tdd` skill
|
|
48
|
-
- **review**:双轴审查(规范 +
|
|
44
|
+
- **design**:方案遵循工程原则(KISS/YAGNI/DRY/SRP);产出经 PR 合入
|
|
45
|
+
- **tasks**:垂直切片、可独立验证、无循环依赖;标题用英文功能短语(kebab-case)
|
|
46
|
+
- **code**:TDD 协议唯一来源是 `flow-tdd` skill;测试质量由仓库 CI 把关
|
|
47
|
+
- **review**:双轴审查(规范 + 规格);reviewer 只读,写操作由 primary 编排器执行
|
|
49
48
|
- **release**:人工流程;按 Profile 版本规则 + 项目 GitHub Actions release workflow(技术栈无关)
|
|
50
49
|
|
|
51
50
|
## Prohibited Actions
|
|
52
51
|
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
52
|
+
- 不跳过前置阶段直接推进
|
|
53
|
+
- 不伪造阶段完成(实际产出后再勾选 checklist)
|
|
54
|
+
- 不手工修改已完成阶段的 checklist
|
|
55
|
+
- reviewer/goal-verify 等子 agent 不直接执行写命令(push/PR/merge 由 primary 编排器执行)
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: flow-code
|
|
3
|
-
description: 编码实现 —
|
|
3
|
+
description: 编码实现 — worktree + TDD(flow-tdd 协议)
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# flow-code
|
|
7
7
|
|
|
8
8
|
认领 Task Record(Sub Issue),在 worktree 内按 TDD 实现代码与单测。
|
|
9
|
-
worktree 创建、PR
|
|
9
|
+
worktree 创建、PR 提交由 primary 编排器执行,本 skill 定义编码流程。
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## 核心流程
|
|
12
12
|
|
|
13
|
-
1.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
1. **创建/复用 worktree**(编排器执行)
|
|
14
|
+
```bash
|
|
15
|
+
BASE=$(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')
|
|
16
|
+
git worktree add ".worktree/<task-slug>" -b "feat/<task-slug>" "$BASE"
|
|
17
|
+
cd ".worktree/<task-slug>" && pwd
|
|
18
|
+
```
|
|
19
|
+
2. 加载 `flow-tdd` skill,按 Task 的验收标准执行 RED→GREEN cycle(self-report)
|
|
20
|
+
3. 本地 `git add`(限定文件)+ `git commit`(多次提交)
|
|
21
|
+
4. **不 push、不创建 PR** — 由 primary 编排器统一执行
|
|
18
22
|
|
|
19
23
|
## 编码约束
|
|
20
24
|
|
|
@@ -25,12 +29,10 @@ worktree 创建、PR 提交由内核工具 `task_control` 完成,本 skill 不
|
|
|
25
29
|
## TDD 引用
|
|
26
30
|
|
|
27
31
|
> `flow-tdd` skill 是 TDD 协议的唯一来源,包含完整的 RED→GREEN cycle 状态机、
|
|
28
|
-
> abandon-cycle 规则和 final-regression/verification
|
|
32
|
+
> abandon-cycle 规则和 final-regression/verification 流程。测试质量由仓库 CI 把关。
|
|
29
33
|
|
|
30
34
|
## Output
|
|
31
|
-
-
|
|
32
|
-
- TDD evidence 已提交(tdd_checkpoint)
|
|
33
|
-
- 本地 commit 就绪(分支推送与 PR 由 task_control 完成)
|
|
35
|
+
- 本地 commit 就绪(分支推送与 PR 由编排器完成)
|
|
34
36
|
|
|
35
37
|
## 后续
|
|
36
38
|
- **/review** — 审查 PR
|
|
@@ -45,29 +47,25 @@ worktree 创建、PR 提交由内核工具 `task_control` 完成,本 skill 不
|
|
|
45
47
|
|
|
46
48
|
### Preconditions
|
|
47
49
|
- `/tasks` 已完成 → Sub Issues 就绪
|
|
48
|
-
-
|
|
50
|
+
- 设计基线已合入;前置依赖任务已合并
|
|
49
51
|
|
|
50
52
|
### Procedure
|
|
51
|
-
1.
|
|
52
|
-
2. 加载 `flow-tdd`,按 Task
|
|
53
|
-
3.
|
|
54
|
-
4.
|
|
55
|
-
5. 交回 primary 调用 `task_control{op:"submit-task"}` 创建 PR
|
|
53
|
+
1. 在 `.worktree/<task-slug>` 创建/复用 worktree(编排器执行)
|
|
54
|
+
2. 加载 `flow-tdd`,按 Task 验收标准执行 RED→GREEN cycle
|
|
55
|
+
3. 本地 git add + commit(不 push)
|
|
56
|
+
4. 交回 primary 编排器 push + 创建 PR
|
|
56
57
|
|
|
57
58
|
### Outputs
|
|
58
|
-
- Worktree 已创建(`.worktree/<task-slug>/`)
|
|
59
|
-
- TDD evidence(Task Record 单评论)
|
|
60
59
|
- 本地 commit
|
|
61
60
|
|
|
62
61
|
### Failure
|
|
63
|
-
- worktree 创建失败 →
|
|
62
|
+
- worktree 创建失败 → 检查分支冲突或目录残留
|
|
64
63
|
- 测试失败 → 修复后重试(不跳过 RED)
|
|
65
64
|
|
|
66
65
|
### Idempotency
|
|
67
|
-
- worktree 已存在 →
|
|
66
|
+
- worktree 已存在 → 校验分支一致性后复用
|
|
68
67
|
- 代码已提交 → 追加提交
|
|
69
68
|
|
|
70
69
|
### Prohibited Actions
|
|
71
|
-
- 不 push、不创建 PR、不操作 Issue
|
|
72
|
-
- 不使用 `git add
|
|
73
|
-
- 不绕过 task_control 直接执行 worktree 创建 / PR 创建 / 分支推送
|
|
70
|
+
- 不 push、不创建 PR、不操作 Issue(由编排器统一执行)
|
|
71
|
+
- 不使用 `git add .`(限定变更文件)
|