prizmkit 1.0.20 → 1.0.22
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/bundled/VERSION.json +3 -3
- package/bundled/agents/prizm-dev-team-coordinator.md +14 -15
- package/bundled/agents/prizm-dev-team-dev.md +11 -11
- package/bundled/agents/prizm-dev-team-pm.md +10 -18
- package/bundled/agents/prizm-dev-team-reviewer.md +3 -3
- package/bundled/dev-pipeline/README.md +8 -9
- package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -2
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +5 -7
- package/bundled/skills/_metadata.json +5 -14
- package/bundled/skills/prizm-kit/SKILL.md +6 -8
- package/bundled/skills/prizm-kit/assets/claude-md-template.md +2 -2
- package/bundled/skills/prizmkit-analyze/SKILL.md +7 -15
- package/bundled/skills/prizmkit-implement/SKILL.md +6 -6
- package/bundled/skills/prizmkit-init/SKILL.md +9 -5
- package/bundled/skills/prizmkit-plan/SKILL.md +19 -7
- package/bundled/skills/prizmkit-plan/assets/plan-template.md +22 -0
- package/bundled/skills/refactor-workflow/SKILL.md +39 -55
- package/package.json +1 -1
- package/bundled/skills/prizmkit-tasks/SKILL.md +0 -50
- package/bundled/skills/prizmkit-tasks/assets/tasks-template.md +0 -21
package/bundled/VERSION.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prizm-dev-team-coordinator
|
|
3
|
-
description: PrizmKit-integrated dev team coordinator. Orchestrates
|
|
3
|
+
description: PrizmKit-integrated dev team coordinator. Orchestrates 6-phase pipeline (init → specify+plan → analyze → implement → review → summarize → commit), manages 4 checkpoints, coordinates PM/Dev/Reviewer agents.
|
|
4
4
|
tools: Read, Write, Edit, Bash, Glob, Grep, TaskCreate, TaskGet, TaskUpdate, TaskList, SendMessage
|
|
5
5
|
model: inherit
|
|
6
6
|
skills: prizmkit-init, prizmkit-summarize, prizmkit-committer, prizmkit-retrospective
|
|
@@ -27,7 +27,7 @@ skills: prizmkit-init, prizmkit-summarize, prizmkit-committer, prizmkit-retrospe
|
|
|
27
27
|
| 路径 | 用途 |
|
|
28
28
|
|------|------|
|
|
29
29
|
| `.prizm-docs/` | 项目知识层 — 项目结构、规则、模式 |
|
|
30
|
-
| `.prizmkit/specs/###-feature-name/` | 功能制品 — spec.md / plan.md
|
|
30
|
+
| `.prizmkit/specs/###-feature-name/` | 功能制品 — spec.md / plan.md(含 Tasks section) |
|
|
31
31
|
| `.prizmkit/config.json` | PrizmKit 配置 |
|
|
32
32
|
| `.prizmkit/specs/REGISTRY.md` | 已完成功能注册表 |
|
|
33
33
|
|
|
@@ -66,34 +66,34 @@ C-09: committer 完成后验证 git status 为干净状态,确保下一个 fea
|
|
|
66
66
|
C-10: bug 修复不得触发 prizmkit.summarize,不得在 REGISTRY.md 中创建新条目;bug 是现有功能的完善,不是新功能
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
### 统一流水线(
|
|
69
|
+
### 统一流水线(6 阶段)
|
|
70
70
|
|
|
71
71
|
```
|
|
72
72
|
Phase 0: 项目引导 (Coordinator)
|
|
73
73
|
- prizmkit.init(首次运行时)
|
|
74
74
|
→ CP-0: .prizm-docs/root.prizm + .prizmkit/config.json 存在
|
|
75
75
|
|
|
76
|
-
Phase 1-
|
|
77
|
-
- PM 连续执行 prizmkit.specify → prizmkit.plan
|
|
78
|
-
- 产出 spec.md, plan.md
|
|
79
|
-
→ CP-1:
|
|
76
|
+
Phase 1-2: 需求规划 (PM, 一次调用)
|
|
77
|
+
- PM 连续执行 prizmkit.specify → prizmkit.plan
|
|
78
|
+
- 产出 spec.md, plan.md(含 Tasks section)
|
|
79
|
+
→ CP-1: 两个文件都存在
|
|
80
80
|
|
|
81
|
-
Phase
|
|
81
|
+
Phase 3: 交叉校验 (Reviewer)
|
|
82
82
|
- prizmkit.analyze → 交叉一致性检查
|
|
83
83
|
- 如有 CRITICAL 问题,退回 PM 修复(最多 1 轮)
|
|
84
84
|
→ CP-2: 无 CRITICAL 问题
|
|
85
85
|
|
|
86
|
-
Phase
|
|
87
|
-
- prizmkit.implement(TDD,标记
|
|
86
|
+
Phase 4: 实现 (Dev)
|
|
87
|
+
- prizmkit.implement(TDD,标记 plan.md Tasks section [x])
|
|
88
88
|
→ 所有任务 [x],测试通过
|
|
89
89
|
|
|
90
|
-
Phase
|
|
90
|
+
Phase 5: 评审 (Reviewer)
|
|
91
91
|
- prizmkit.code-review(规格合规 + 代码质量)
|
|
92
92
|
- 集成测试
|
|
93
93
|
- 如有 CRITICAL 问题,退回 Dev 修复(最多 3 轮)
|
|
94
94
|
→ CP-3: 评审通过,测试通过
|
|
95
95
|
|
|
96
|
-
Phase
|
|
96
|
+
Phase 6: 归档与提交 (Coordinator)
|
|
97
97
|
- prizmkit.summarize → REGISTRY.md
|
|
98
98
|
- prizmkit.committer → git commit
|
|
99
99
|
- 验证: git status 确认工作区干净(无未提交变更)
|
|
@@ -108,14 +108,13 @@ Phase 7: 归档与提交 (Coordinator)
|
|
|
108
108
|
|
|
109
109
|
**CP-1** (PM 规划完成后):
|
|
110
110
|
- `.prizmkit/specs/###-feature-name/spec.md` 存在
|
|
111
|
-
- `.prizmkit/specs/###-feature-name/plan.md`
|
|
112
|
-
- `.prizmkit/specs/###-feature-name/tasks.md` 存在
|
|
111
|
+
- `.prizmkit/specs/###-feature-name/plan.md` 存在(含 Tasks section)
|
|
113
112
|
|
|
114
113
|
**CP-2** (交叉校验后):
|
|
115
114
|
- prizmkit.analyze 报告无 CRITICAL 问题
|
|
116
115
|
|
|
117
116
|
**CP-3** (评审后):
|
|
118
|
-
- 所有任务标记 `[x]
|
|
117
|
+
- 所有任务标记 `[x]`(在 plan.md Tasks section 中)
|
|
119
118
|
- 测试通过
|
|
120
119
|
- 评审判定非 NEEDS_FIXES
|
|
121
120
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prizm-dev-team-dev
|
|
3
|
-
description: PrizmKit-integrated module implementer (multi-instance). Follows prizmkit.implement workflow with TDD, marks tasks [x] in
|
|
3
|
+
description: PrizmKit-integrated module implementer (multi-instance). Follows prizmkit.implement workflow with TDD, marks tasks [x] in plan.md Tasks section, works within assigned Git worktrees. Use when implementing specific feature modules.
|
|
4
4
|
tools: Read, Write, Edit, Bash, Glob, Grep, TaskCreate, TaskGet, TaskUpdate, TaskList, SendMessage
|
|
5
5
|
model: inherit
|
|
6
6
|
skills: prizmkit-implement, prizmkit-prizm-docs
|
|
@@ -11,9 +11,9 @@ skills: prizmkit-implement, prizmkit-prizm-docs
|
|
|
11
11
|
### 核心身份
|
|
12
12
|
|
|
13
13
|
你是团队的"建筑工人"——严格按图纸施工,使用 PrizmKit 的 implement 工作流作为执行引擎,专注于:
|
|
14
|
-
- 按照
|
|
14
|
+
- 按照 plan.md Tasks section 和接口设计逐任务实现功能模块
|
|
15
15
|
- 遵循 TDD 方式开发(测试先行)
|
|
16
|
-
- 完成后立即标记
|
|
16
|
+
- 完成后立即标记 plan.md Tasks section 中的 `[x]`
|
|
17
17
|
- 产出代码和单元测试
|
|
18
18
|
|
|
19
19
|
### 项目上下文
|
|
@@ -25,7 +25,7 @@ skills: prizmkit-implement, prizmkit-prizm-docs
|
|
|
25
25
|
| 路径 | 用途 |
|
|
26
26
|
|------|------|
|
|
27
27
|
| `.prizm-docs/` | 项目知识层 — 规则、模式、已知陷阱 |
|
|
28
|
-
| `.prizmkit/specs/###-feature-name/` | 功能制品 — spec.md / plan.md
|
|
28
|
+
| `.prizmkit/specs/###-feature-name/` | 功能制品 — spec.md / plan.md(含 Tasks section) |
|
|
29
29
|
|
|
30
30
|
### 必须做 (MUST)
|
|
31
31
|
|
|
@@ -33,8 +33,8 @@ skills: prizmkit-implement, prizmkit-prizm-docs
|
|
|
33
33
|
2. 遵循 TDD 方式:先写测试,再实现,再验证
|
|
34
34
|
3. 产出的代码必须通过本模块的单元测试
|
|
35
35
|
4. 发现接口设计歧义时,立即通过 Coordinator 上报 PM(不自行假设)
|
|
36
|
-
5. 遵循 `prizmkit.implement` 工作流:读取
|
|
37
|
-
6. 每个任务完成后**立即**标记
|
|
36
|
+
5. 遵循 `prizmkit.implement` 工作流:读取 plan.md(含 Tasks section)+ spec.md,逐任务实现
|
|
37
|
+
6. 每个任务完成后**立即**标记 plan.md Tasks section 中的 `[x]`(不批量标记)
|
|
38
38
|
7. 实现前读取 `.prizm-docs/` TRAPS 段避免已知陷阱
|
|
39
39
|
8. 检查点任务须验证构建通过和测试通过后才能继续下一阶段
|
|
40
40
|
9. 顺序任务按序执行,失败则停止;并行 `[P]` 任务可继续
|
|
@@ -46,7 +46,7 @@ skills: prizmkit-implement, prizmkit-prizm-docs
|
|
|
46
46
|
- 不修改其他 Dev Agent 负责的模块代码
|
|
47
47
|
- 不进行集成测试(Reviewer 的职责)
|
|
48
48
|
- **不执行任何 git 操作**(git commit / git add / git reset / git push 均禁止 — 由 Orchestrator 通过 prizmkit.committer 统一提交)
|
|
49
|
-
- 不修改 `.prizmkit/specs/` 中除 `
|
|
49
|
+
- 不修改 `.prizmkit/specs/` 中除 `plan.md`(标记 Tasks section [x])以外的任何文件
|
|
50
50
|
- 不为 bug 修复创建新的文档条目;bug 修复是现有功能的完善,应更新原始功能的文档而非在 REGISTRY.md 中创建新条目
|
|
51
51
|
- 不使用 TaskCreate/TaskUpdate 创建或修改 Orchestrator 层的任务(Task 工具仅用于内部进度追踪,且任务 ID 在各 agent 子会话中互不共享)
|
|
52
52
|
|
|
@@ -60,7 +60,7 @@ DEV-04: 任务完成后必须运行全部本模块测试
|
|
|
60
60
|
DEV-05: 代码提交信息遵循 Conventional Commits 格式(仅供参考,实际提交由 Orchestrator 执行)
|
|
61
61
|
DEV-06: 不得引入未在任务描述中声明的外部依赖
|
|
62
62
|
DEV-07: 遵循 prizmkit.implement 工作流
|
|
63
|
-
DEV-08: 每个任务完成后立即标记
|
|
63
|
+
DEV-08: 每个任务完成后立即标记 plan.md Tasks section [x]
|
|
64
64
|
DEV-09: TDD:先写测试 → 再实现 → 再验证
|
|
65
65
|
DEV-10: 实现每个模块前必须读取 .prizm-docs/ TRAPS 段
|
|
66
66
|
DEV-11: 检查点任务必须验证构建通过和测试通过
|
|
@@ -73,11 +73,11 @@ DEV-14: 若 `npm test` 中存在 pre-existing 失败,不得忽略——必须
|
|
|
73
73
|
|
|
74
74
|
1. 接收任务分配
|
|
75
75
|
2. 读取 `.prizm-docs/root.prizm` 和相关模块文档
|
|
76
|
-
3. 读取 `.prizmkit/specs/###-feature-name/` 中的 `
|
|
77
|
-
4. 对每个分配的任务,按
|
|
76
|
+
3. 读取 `.prizmkit/specs/###-feature-name/` 中的 `plan.md`(含 Tasks section)、`spec.md`
|
|
77
|
+
4. 对每个分配的任务,按 plan.md Tasks 顺序执行:
|
|
78
78
|
a. 读取目标文件模块的文档(检查 TRAPS 和 DECISIONS)
|
|
79
79
|
b. TDD:基于验收标准编写测试 → 实现功能代码 → 运行测试验证
|
|
80
|
-
c. 在
|
|
80
|
+
c. 在 plan.md Tasks section 中标记该任务为 `[x]`
|
|
81
81
|
d. 发送 STATUS_UPDATE 给 Coordinator
|
|
82
82
|
5. 如遇检查点任务,验证构建通过和测试通过后才继续
|
|
83
83
|
6. 遇到接口设计歧义,发送 ESCALATION(不自行假设)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prizm-dev-team-pm
|
|
3
|
-
description: PrizmKit-integrated requirements analyst and task decomposition expert. Uses prizmkit.specify/clarify/plan
|
|
3
|
+
description: PrizmKit-integrated requirements analyst and task decomposition expert. Uses prizmkit.specify/clarify/plan to create structured specs, plans, and task breakdowns. Use when analyzing requirements and decomposing tasks.
|
|
4
4
|
tools: Read, Write, Edit, Bash, Glob, Grep, TaskCreate, TaskGet, TaskUpdate, TaskList, SendMessage
|
|
5
5
|
model: inherit
|
|
6
|
-
skills: prizmkit-specify, prizmkit-clarify, prizmkit-plan, prizmkit-
|
|
6
|
+
skills: prizmkit-specify, prizmkit-clarify, prizmkit-plan, prizmkit-prizm-docs
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
你是 **PM Agent**,PrizmKit-integrated Multi-Agent 软件开发协作团队的需求分析与任务分解专家。
|
|
@@ -13,8 +13,7 @@ skills: prizmkit-specify, prizmkit-clarify, prizmkit-plan, prizmkit-tasks, prizm
|
|
|
13
13
|
你是团队的"建筑设计师"——不砌砖但提供精确的施工图纸,使用 PrizmKit 的规格驱动工作流作为主要规格机制,专注于:
|
|
14
14
|
- 分析用户需求,识别功能点和非功能性需求
|
|
15
15
|
- 使用 `prizmkit.specify` 创建结构化功能规格
|
|
16
|
-
- 使用 `prizmkit.plan`
|
|
17
|
-
- 使用 `prizmkit.tasks` 分解为可执行的任务清单
|
|
16
|
+
- 使用 `prizmkit.plan` 生成技术实施计划(含接口设计、数据模型和可执行任务清单)
|
|
18
17
|
- 为每个任务定义明确的输入、输出和验收标准
|
|
19
18
|
|
|
20
19
|
### 项目上下文
|
|
@@ -39,8 +38,7 @@ skills: prizmkit-specify, prizmkit-clarify, prizmkit-plan, prizmkit-tasks, prizm
|
|
|
39
38
|
6. **在调用任何 skill 之前,先写 `context-snapshot.md`**(若不存在)
|
|
40
39
|
7. 使用 `prizmkit.specify` 产出 `spec.md`
|
|
41
40
|
8. 使用 `prizmkit.clarify` 解决所有 `[NEEDS CLARIFICATION]` 标记
|
|
42
|
-
9. 使用 `prizmkit.plan` 生成 `plan.md
|
|
43
|
-
10. 使用 `prizmkit.tasks` 生成 `tasks.md`,格式为 `[T-NNN]`
|
|
41
|
+
9. 使用 `prizmkit.plan` 生成 `plan.md`(含接口设计、数据模型和任务清单,格式为 `[T-NNN]`)
|
|
44
42
|
11. 所有制品放在 `.prizmkit/specs/###-feature-name/`
|
|
45
43
|
12. 规格中不应包含 bug 修复项;bug 修复属于现有功能的完善(使不完整的功能达到预期状态),不是新增功能,不应创建新的 spec/plan/tasks 或 REGISTRY.md 条目
|
|
46
44
|
|
|
@@ -62,14 +60,13 @@ PM-03: 任务粒度标准:单个 Dev Agent 可在 1 个 session 内完成
|
|
|
62
60
|
PM-04: 必须为每个可并行的任务标记 [P] 标识
|
|
63
61
|
PM-05: 使用 prizmkit.specify 作为需求捕获的主要工具
|
|
64
62
|
PM-06: 使用 prizmkit.clarify 解决所有 [NEEDS CLARIFICATION] 标记
|
|
65
|
-
PM-07: 使用 prizmkit.plan 生成 plan.md
|
|
66
|
-
PM-08:
|
|
67
|
-
PM-09: 修改文件时,Read 之后立即 Edit,中间不插入其他工具调用,避免 "file modified since read" 错误
|
|
63
|
+
PM-07: 使用 prizmkit.plan 生成 plan.md 作为技术实施计划(含任务清单)
|
|
64
|
+
PM-08: 修改文件时,Read 之后立即 Edit,中间不插入其他工具调用,避免 "file modified since read" 错误
|
|
68
65
|
```
|
|
69
66
|
|
|
70
67
|
### 工作流程
|
|
71
68
|
|
|
72
|
-
PM
|
|
69
|
+
PM 在一次会话中连续完成以下三步:
|
|
73
70
|
|
|
74
71
|
#### Step 0: 写 Context Snapshot(仅首次,若不存在)
|
|
75
72
|
|
|
@@ -95,17 +92,13 @@ PM 在一次会话中连续完成以下四步:
|
|
|
95
92
|
- 标记不明确处为 `[NEEDS CLARIFICATION]`(最多 3 个)
|
|
96
93
|
3. 如有 `[NEEDS CLARIFICATION]` 标记,运行 `prizmkit.clarify`
|
|
97
94
|
|
|
98
|
-
#### Step 2:
|
|
95
|
+
#### Step 2: 规划与任务分解
|
|
99
96
|
|
|
100
97
|
1. 运行 `prizmkit.plan` → 创建 `plan.md`
|
|
101
98
|
- 架构方案、组件设计、接口设计、数据模型、测试策略、风险评估
|
|
102
99
|
- 每个用户故事映射到计划组件
|
|
103
100
|
- 与 `.prizm-docs/` RULES 对齐
|
|
104
|
-
|
|
105
|
-
#### Step 3: 任务分解
|
|
106
|
-
|
|
107
|
-
1. 运行 `prizmkit.tasks` → 创建 `tasks.md`
|
|
108
|
-
- 格式: `- [ ] [T-NNN] [P?] [US?] Description — file: path/to/file`
|
|
101
|
+
- Tasks section: `- [ ] [T-NNN] [P?] [US?] Description — file: path/to/file`
|
|
109
102
|
- 阶段结构: Setup(T-001~T-009) → Foundational(T-010~T-099) → User Stories(T-100+) → Polish(T-900+)
|
|
110
103
|
- `[P]` 标记可并行任务
|
|
111
104
|
2. 发送 COMPLETION_SIGNAL
|
|
@@ -116,8 +109,7 @@ PM 在一次会话中连续完成以下四步:
|
|
|
116
109
|
|------|------|------|------|
|
|
117
110
|
| prizmkit.specify | 从自然语言创建结构化功能规格 | 功能描述 | spec.md |
|
|
118
111
|
| prizmkit.clarify | 交互式解决规格模糊点 | spec.md(含标记) | 更新后的 spec.md |
|
|
119
|
-
| prizmkit.plan |
|
|
120
|
-
| prizmkit.tasks | 分解为可执行任务 | spec.md, plan.md | tasks.md |
|
|
112
|
+
| prizmkit.plan | 生成技术实施计划(含任务清单) | spec.md, .prizm-docs/ | plan.md(含接口设计、数据模型和 Tasks section) |
|
|
121
113
|
|
|
122
114
|
### 异常处理
|
|
123
115
|
|
|
@@ -23,7 +23,7 @@ skills: prizmkit-code-review, prizmkit-analyze, prizmkit-prizm-docs
|
|
|
23
23
|
| 路径 | 用途 |
|
|
24
24
|
|------|------|
|
|
25
25
|
| `.prizm-docs/` | 项目知识层 — 规则、模式、已知陷阱 |
|
|
26
|
-
| `.prizmkit/specs/###-feature-name/` | 功能制品 — spec.md / plan.md
|
|
26
|
+
| `.prizmkit/specs/###-feature-name/` | 功能制品 — spec.md / plan.md(含 Tasks section) |
|
|
27
27
|
|
|
28
28
|
### 必须做 (MUST)
|
|
29
29
|
|
|
@@ -62,10 +62,10 @@ REV-10: 禁止使用 timeout 命令(macOS 不兼容)。运行测试时直接
|
|
|
62
62
|
|
|
63
63
|
### Phase 4 工作流程:交叉校验
|
|
64
64
|
|
|
65
|
-
**前置条件**: PM 已完成 spec.md / plan.md
|
|
65
|
+
**前置条件**: PM 已完成 spec.md / plan.md(含 Tasks section)
|
|
66
66
|
|
|
67
67
|
1. 调用 `prizmkit.analyze` skill(**不是 CLI 命令**,使用 Skill 工具或 `/prizmkit-analyze` 指令调用)
|
|
68
|
-
- 输入: spec.md, plan.md
|
|
68
|
+
- 输入: spec.md, plan.md(含 Tasks section)
|
|
69
69
|
- 6 个检测通道: 重复检测、歧义检测、不完整检测、Prizm 规则对齐、覆盖缺口、不一致性
|
|
70
70
|
- 输出: 一致性分析报告(仅对话输出)
|
|
71
71
|
- 若 Skill 工具不可用,则根据 6 个检测通道手动执行交叉一致性分析
|
|
@@ -153,15 +153,14 @@ Each AI CLI session drives the prizm-dev-team through these phases. **All phases
|
|
|
153
153
|
| Phase | Name | Agent | PrizmKit Skills | Artifacts |
|
|
154
154
|
|-------|------|-------|----------------|-----------|
|
|
155
155
|
| 0 | Init | Coordinator | `prizmkit-init` | `.prizm-docs/root.prizm`, `.prizmkit/config.json` |
|
|
156
|
-
| 1 | Specify | PM | `prizmkit-specify`, `prizmkit-clarify` | `.prizmkit/specs/spec.md
|
|
157
|
-
| 2 | Plan | PM | `prizmkit-plan` | `.prizmkit/
|
|
158
|
-
| 3 |
|
|
159
|
-
| 4 |
|
|
160
|
-
| 5 |
|
|
161
|
-
| 6 |
|
|
162
|
-
| 7 |
|
|
163
|
-
| 8 |
|
|
164
|
-
| 9 | Summarize & Commit | Coordinator | `prizmkit-summarize`, `prizmkit-committer`, `prizmkit-retrospective` | REGISTRY.md, git commit, .prizm-docs/ updated |
|
|
156
|
+
| 1 | Specify | PM | `prizmkit-specify`, `prizmkit-clarify` | `.prizmkit/specs/spec.md` |
|
|
157
|
+
| 2 | Plan + Tasks | PM | `prizmkit-plan` | `.prizmkit/specs/plan.md` (含 Tasks section) |
|
|
158
|
+
| 3 | Analyze | PM | `prizmkit-analyze` | Analysis report (no CRITICAL issues) |
|
|
159
|
+
| 4 | Schedule | Coordinator | — | TaskList entries assigned |
|
|
160
|
+
| 5 | Implement | Dev x N | `prizmkit-implement` | Code + tests, plan.md Tasks marked `[x]` |
|
|
161
|
+
| 6 | Review | QA + Review | `prizmkit-code-review` | Integration tests, review report |
|
|
162
|
+
| 7 | Fix Loop | Dev | — | Max 3 rounds of fixes |
|
|
163
|
+
| 8 | Summarize & Commit | Coordinator | `prizmkit-summarize`, `prizmkit-committer`, `prizmkit-retrospective` | REGISTRY.md, git commit, .prizm-docs/ updated |
|
|
165
164
|
|
|
166
165
|
### Feature Dependency Resolution
|
|
167
166
|
|
|
@@ -28,8 +28,7 @@ from datetime import datetime, timezone
|
|
|
28
28
|
# Phase keywords for detection
|
|
29
29
|
PHASE_KEYWORDS = {
|
|
30
30
|
"specify": ["prizmkit-specify", "spec.md", "specification", "gathering requirements"],
|
|
31
|
-
"plan": ["prizmkit-plan", "plan.md", "architecture", "design plan"],
|
|
32
|
-
"tasks": ["prizmkit-tasks", "tasks.md", "task checklist", "task breakdown"],
|
|
31
|
+
"plan": ["prizmkit-plan", "plan.md", "architecture", "design plan", "task checklist", "task breakdown", "tasks.md"],
|
|
33
32
|
"analyze": ["prizmkit-analyze", "cross-check", "consistency", "analyzing"],
|
|
34
33
|
"implement": ["prizmkit-implement", "implement", "TDD", "coding", "writing code"],
|
|
35
34
|
"code-review": ["prizmkit-code-review", "code review", "review verdict", "reviewing"],
|
|
@@ -36,8 +36,7 @@ You are the **session orchestrator**. Implement Feature {{FEATURE_ID}}: "{{FEATU
|
|
|
36
36
|
```
|
|
37
37
|
.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md ← PM writes, all agents read
|
|
38
38
|
.prizmkit/specs/{{FEATURE_SLUG}}/spec.md
|
|
39
|
-
.prizmkit/specs/{{FEATURE_SLUG}}/plan.md
|
|
40
|
-
.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md
|
|
39
|
+
.prizmkit/specs/{{FEATURE_SLUG}}/plan.md ← includes Tasks section
|
|
41
40
|
.prizmkit/specs/REGISTRY.md
|
|
42
41
|
```
|
|
43
42
|
|
|
@@ -111,14 +110,14 @@ python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEAT
|
|
|
111
110
|
After team setup: check `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` — if exists, all agents MUST use it. Read existing artifacts and resume from Phase {{RESUME_PHASE}}.
|
|
112
111
|
{{END_IF_RESUME}}
|
|
113
112
|
|
|
114
|
-
### Phase 1-
|
|
113
|
+
### Phase 1-2: Specify + Plan — PM Agent
|
|
115
114
|
|
|
116
115
|
Check existing artifacts first:
|
|
117
116
|
```bash
|
|
118
117
|
ls .prizmkit/specs/{{FEATURE_SLUG}}/ 2>/dev/null
|
|
119
118
|
```
|
|
120
119
|
|
|
121
|
-
-
|
|
120
|
+
- Both (spec.md, plan.md) exist → **SKIP to CP-1**
|
|
122
121
|
- `context-snapshot.md` exists → PM reads it instead of re-scanning source files
|
|
123
122
|
- Some missing → PM generates only missing files
|
|
124
123
|
|
|
@@ -148,12 +147,11 @@ If `EXISTING_CODE` is non-empty, append to prefix:
|
|
|
148
147
|
|
|
149
148
|
**Step B — Planning Artifacts** (include only missing files):
|
|
150
149
|
- spec.md missing: "Run prizmkit-specify → generate spec.md. Resolve any `[NEEDS CLARIFICATION]` markers using the feature description — do NOT pause for interactive input."
|
|
151
|
-
- plan.md missing: "Run prizmkit-plan → generate plan.md (architecture, components, interface design, data model, testing strategy, risk assessment
|
|
152
|
-
- tasks.md missing: "Run prizmkit-tasks → generate tasks.md with `[ ]` checkboxes"
|
|
150
|
+
- plan.md missing: "Run prizmkit-plan → generate plan.md (architecture, components, interface design, data model, testing strategy, risk assessment, and Tasks section with `[ ]` checkboxes)"
|
|
153
151
|
|
|
154
152
|
> "All files go under `.prizmkit/specs/{{FEATURE_SLUG}}/`. Confirm each with `ls` after writing."
|
|
155
153
|
|
|
156
|
-
Wait for PM to return. **CP-1**:
|
|
154
|
+
Wait for PM to return. **CP-1**: Both files exist. If missing, diagnose from PM output — do NOT spawn another PM blindly.
|
|
157
155
|
|
|
158
156
|
### Phase 4: Analyze — Reviewer Agent
|
|
159
157
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.
|
|
2
|
+
"version": "1.0.22",
|
|
3
3
|
"skills": {
|
|
4
4
|
"prizm-kit": {
|
|
5
5
|
"description": "Full-lifecycle dev toolkit. Covers spec-driven development, Prizm context docs, code quality, debugging, deployment, and knowledge management.",
|
|
@@ -30,28 +30,21 @@
|
|
|
30
30
|
"hasScripts": false
|
|
31
31
|
},
|
|
32
32
|
"prizmkit-plan": {
|
|
33
|
-
"description": "Generate technical implementation plan from feature spec.",
|
|
34
|
-
"tier": "1",
|
|
35
|
-
"category": "prizmkit-skill",
|
|
36
|
-
"hasAssets": true,
|
|
37
|
-
"hasScripts": false
|
|
38
|
-
},
|
|
39
|
-
"prizmkit-tasks": {
|
|
40
|
-
"description": "Generate executable task breakdown from implementation plan.",
|
|
33
|
+
"description": "Generate technical implementation plan and executable task breakdown from feature spec.",
|
|
41
34
|
"tier": "1",
|
|
42
35
|
"category": "prizmkit-skill",
|
|
43
36
|
"hasAssets": true,
|
|
44
37
|
"hasScripts": false
|
|
45
38
|
},
|
|
46
39
|
"prizmkit-analyze": {
|
|
47
|
-
"description": "Cross-document consistency analysis for spec.md
|
|
40
|
+
"description": "Cross-document consistency analysis for spec.md and plan.md (including Tasks section).",
|
|
48
41
|
"tier": "1",
|
|
49
42
|
"category": "prizmkit-skill",
|
|
50
43
|
"hasAssets": false,
|
|
51
44
|
"hasScripts": false
|
|
52
45
|
},
|
|
53
46
|
"prizmkit-implement": {
|
|
54
|
-
"description": "Execute implementation following
|
|
47
|
+
"description": "Execute implementation following plan.md Tasks section with TDD approach.",
|
|
55
48
|
"tier": "1",
|
|
56
49
|
"category": "prizmkit-skill",
|
|
57
50
|
"hasAssets": false,
|
|
@@ -198,7 +191,7 @@
|
|
|
198
191
|
"hasScripts": false
|
|
199
192
|
},
|
|
200
193
|
"refactor-workflow": {
|
|
201
|
-
"description": "End-to-end refactor workflow: analyze → plan →
|
|
194
|
+
"description": "End-to-end refactor workflow: analyze → plan → implement → review → commit. Behavior-preserving.",
|
|
202
195
|
"tier": "1",
|
|
203
196
|
"category": "Custom-skill",
|
|
204
197
|
"hasAssets": false,
|
|
@@ -254,7 +247,6 @@
|
|
|
254
247
|
"prizmkit-specify",
|
|
255
248
|
"prizmkit-clarify",
|
|
256
249
|
"prizmkit-plan",
|
|
257
|
-
"prizmkit-tasks",
|
|
258
250
|
"prizmkit-analyze",
|
|
259
251
|
"prizmkit-implement",
|
|
260
252
|
"prizmkit-code-review",
|
|
@@ -279,7 +271,6 @@
|
|
|
279
271
|
"prizmkit-specify",
|
|
280
272
|
"prizmkit-clarify",
|
|
281
273
|
"prizmkit-plan",
|
|
282
|
-
"prizmkit-tasks",
|
|
283
274
|
"prizmkit-analyze",
|
|
284
275
|
"prizmkit-implement",
|
|
285
276
|
"prizmkit-code-review",
|
|
@@ -11,8 +11,7 @@ PrizmKit is a comprehensive, independent AI development toolkit that covers the
|
|
|
11
11
|
```
|
|
12
12
|
/prizmkit-init # Take over a project (scan, assess, generate docs)
|
|
13
13
|
/prizmkit-specify # Create feature specification
|
|
14
|
-
/prizmkit-plan # Generate implementation plan
|
|
15
|
-
/prizmkit-tasks # Break down into executable tasks
|
|
14
|
+
/prizmkit-plan # Generate implementation plan and task breakdown
|
|
16
15
|
/prizmkit-analyze # Cross-document consistency check (recommended)
|
|
17
16
|
/prizmkit-implement # Execute implementation
|
|
18
17
|
/prizmkit-committer # Commit with auto doc update
|
|
@@ -20,7 +19,7 @@ PrizmKit is a comprehensive, independent AI development toolkit that covers the
|
|
|
20
19
|
|
|
21
20
|
## When to Use the Full Workflow
|
|
22
21
|
|
|
23
|
-
**Use full workflow (specify -> plan ->
|
|
22
|
+
**Use full workflow (specify -> plan -> implement):**
|
|
24
23
|
- New features or user-facing capabilities
|
|
25
24
|
- Multi-file coordinated changes
|
|
26
25
|
- Architectural decisions
|
|
@@ -64,11 +63,10 @@ PrizmKit produces two complementary knowledge layers:
|
|
|
64
63
|
- **prizmkit-init** — Project takeover: scan → assess → generate docs → initialize
|
|
65
64
|
- **prizmkit-prizm-docs** — Prizm documentation framework: `prizmkit.doc.init`, `prizmkit.doc.update`, `prizmkit.doc.status`, `prizmkit.doc.rebuild`, `prizmkit.doc.validate`, `prizmkit.doc.migrate`
|
|
66
65
|
|
|
67
|
-
### Spec-Driven Workflow (
|
|
66
|
+
### Spec-Driven Workflow (9)
|
|
68
67
|
- **prizmkit-specify** — Create structured feature specifications from natural language
|
|
69
68
|
- **prizmkit-clarify** — Interactive requirement clarification
|
|
70
|
-
- **prizmkit-plan** — Generate technical plan
|
|
71
|
-
- **prizmkit-tasks** — Break plan into executable task list
|
|
69
|
+
- **prizmkit-plan** — Generate technical plan with data model, API contracts, and executable task breakdown (all in one plan.md)
|
|
72
70
|
- **prizmkit-analyze** — Cross-document consistency analysis (spec ↔ plan ↔ tasks)
|
|
73
71
|
- **prizmkit-implement** — Execute tasks following TDD approach
|
|
74
72
|
- **prizmkit-code-review** — Review code against spec and plan
|
|
@@ -99,8 +97,8 @@ PrizmKit produces two complementary knowledge layers:
|
|
|
99
97
|
- **prizmkit-tool-api-doc-generator** — [Tier 2] Extract API documentation from source code
|
|
100
98
|
|
|
101
99
|
### Pipeline & Companion (6)
|
|
102
|
-
- **feature-workflow** — [Tier 1] End-to-end feature workflow: specify → plan →
|
|
103
|
-
- **refactor-workflow** — [Tier 1] End-to-end refactor workflow: analyze → plan →
|
|
100
|
+
- **feature-workflow** — [Tier 1] End-to-end feature workflow: specify → plan → analyze → implement → review → commit
|
|
101
|
+
- **refactor-workflow** — [Tier 1] End-to-end refactor workflow: analyze → plan → implement → review → commit
|
|
104
102
|
- **app-planner** — Interactive app planning that produces feature-list.json for dev-pipeline
|
|
105
103
|
- **bug-planner** — Interactive bug planning that produces bug-fix-list.json for bugfix-pipeline
|
|
106
104
|
- **dev-pipeline-launcher** — Launch and manage the dev-pipeline from within a CLI session
|
|
@@ -29,10 +29,10 @@ This project uses PrizmKit with the Prizm documentation system for AI-optimized
|
|
|
29
29
|
Run `/prizm-kit` to see all available PrizmKit commands.
|
|
30
30
|
|
|
31
31
|
### Fast Path for Simple Changes
|
|
32
|
-
Not every change needs the full spec -> plan
|
|
32
|
+
Not every change needs the full spec -> plan workflow. Use fast path for:
|
|
33
33
|
- Bug fixes with clear root cause, config tweaks, typo fixes, simple refactors
|
|
34
34
|
- Documentation-only changes, test additions for existing code
|
|
35
35
|
- Directly use `/prizmkit-implement` with inline task description, then `/prizmkit-committer`
|
|
36
36
|
|
|
37
|
-
Use the full workflow (/prizmkit-specify -> /prizmkit-plan -> /prizmkit-
|
|
37
|
+
Use the full workflow (/prizmkit-specify -> /prizmkit-plan -> /prizmkit-analyze -> /prizmkit-implement) for:
|
|
38
38
|
- New features, multi-file coordinated changes, architectural decisions, data model or API changes
|
|
@@ -8,8 +8,7 @@ description: "Cross-document consistency analysis for spec.md, plan.md, and task
|
|
|
8
8
|
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md before implementation. Identifies duplications, ambiguities, underspecified items, rule conflicts, and coverage gaps.
|
|
9
9
|
|
|
10
10
|
### When to Use
|
|
11
|
-
- After `prizmkit.plan` to validate spec-plan alignment before
|
|
12
|
-
- After `prizmkit.tasks` to validate full spec-plan-tasks consistency before implementation
|
|
11
|
+
- After `prizmkit.plan` to validate spec-plan-tasks alignment before implementation
|
|
13
12
|
- User says "analyze", "check consistency", "validate spec", "review plan"
|
|
14
13
|
- Before `prizmkit.implement` as a quality gate
|
|
15
14
|
|
|
@@ -19,7 +18,7 @@ Perform a non-destructive cross-artifact consistency and quality analysis across
|
|
|
19
18
|
|
|
20
19
|
Cross-document consistency analysis.
|
|
21
20
|
|
|
22
|
-
**PRECONDITION:** `spec.md` and `plan.md` exist in `.prizmkit/specs/###-feature-name/`. `
|
|
21
|
+
**PRECONDITION:** `spec.md` and `plan.md` exist in `.prizmkit/specs/###-feature-name/`. `plan.md` must include a Tasks section.
|
|
23
22
|
|
|
24
23
|
## Operating Constraints
|
|
25
24
|
|
|
@@ -40,8 +39,6 @@ Derive absolute paths:
|
|
|
40
39
|
|
|
41
40
|
Abort with an error message if spec.md or plan.md is missing — instruct the user to run the missing prerequisite command (`prizmkit.specify` or `prizmkit.plan`).
|
|
42
41
|
|
|
43
|
-
If tasks.md is missing, proceed with spec+plan analysis only and note reduced coverage in the report.
|
|
44
|
-
|
|
45
42
|
### Step 2: Load Artifacts (Progressive Disclosure)
|
|
46
43
|
|
|
47
44
|
Load only the minimal necessary context from each artifact:
|
|
@@ -61,12 +58,7 @@ Load only the minimal necessary context from each artifact:
|
|
|
61
58
|
- API Contracts
|
|
62
59
|
- Testing Strategy
|
|
63
60
|
- Risk Assessment
|
|
64
|
-
|
|
65
|
-
**From tasks.md (if exists):**
|
|
66
|
-
- Task IDs and Descriptions
|
|
67
|
-
- Phase grouping (Setup, Foundational, User Stories, Polish)
|
|
68
|
-
- Parallel markers `[P]`
|
|
69
|
-
- Referenced file paths
|
|
61
|
+
- Tasks section (task IDs, phase grouping, parallel markers, file paths)
|
|
70
62
|
|
|
71
63
|
**From .prizm-docs/root.prizm:**
|
|
72
64
|
- RULES section (MUST/NEVER/PREFER directives)
|
|
@@ -79,7 +71,7 @@ Create internal representations (do not include raw artifacts in output):
|
|
|
79
71
|
|
|
80
72
|
- **Requirements inventory**: Each functional + non-functional requirement with a stable key (derive slug from imperative phrase; e.g., "User can upload file" -> `user-can-upload-file`)
|
|
81
73
|
- **User story/action inventory**: Discrete user actions with acceptance criteria
|
|
82
|
-
- **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
|
|
74
|
+
- **Task coverage mapping**: Map each task (from plan.md Tasks section) to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
|
|
83
75
|
- **Prizm rule set**: Extract MUST/NEVER/PREFER normative statements from root.prizm RULES
|
|
84
76
|
|
|
85
77
|
### Step 4: Detection Passes
|
|
@@ -106,7 +98,7 @@ Focus on high-signal findings. Limit to **50 findings total**; aggregate remaind
|
|
|
106
98
|
- Tech stack inconsistencies between plan and root.prizm TECH_STACK
|
|
107
99
|
|
|
108
100
|
#### E. Coverage Gaps
|
|
109
|
-
- Requirements with zero associated tasks (
|
|
101
|
+
- Requirements with zero associated tasks (from plan.md Tasks section)
|
|
110
102
|
- Tasks with no mapped requirement/story ("orphan tasks")
|
|
111
103
|
- Non-functional requirements not reflected in tasks (performance, security, etc.)
|
|
112
104
|
- User stories without corresponding plan components
|
|
@@ -164,7 +156,7 @@ At end of report, output a concise Next Actions block:
|
|
|
164
156
|
- If only LOW/MEDIUM: User may proceed, but provide improvement suggestions
|
|
165
157
|
- Provide explicit command suggestions:
|
|
166
158
|
- "Run `prizmkit.specify` to refine requirements"
|
|
167
|
-
- "Run `prizmkit.plan` to adjust architecture"
|
|
159
|
+
- "Run `prizmkit.plan` to adjust architecture or tasks"
|
|
168
160
|
- "Edit tasks.md to add coverage for requirement X"
|
|
169
161
|
- "Proceed to `prizmkit.implement`" (if clean)
|
|
170
162
|
|
|
@@ -187,7 +179,7 @@ Ask the user: "Would you like me to suggest concrete remediation edits for the t
|
|
|
187
179
|
- **Use examples over exhaustive rules** (cite specific instances, not generic patterns)
|
|
188
180
|
- **Report zero issues gracefully** (emit success report with coverage statistics)
|
|
189
181
|
|
|
190
|
-
**HANDOFF:** `prizmkit.implement` (if clean) or `prizmkit.specify` / `prizmkit.plan`
|
|
182
|
+
**HANDOFF:** `prizmkit.implement` (if clean) or `prizmkit.specify` / `prizmkit.plan` (if issues found)
|
|
191
183
|
|
|
192
184
|
## Output
|
|
193
185
|
|
|
@@ -13,18 +13,18 @@ Execute implementation by following the task breakdown in tasks.md. Respects tas
|
|
|
13
13
|
|
|
14
14
|
Implement the feature by executing tasks from tasks.md.
|
|
15
15
|
|
|
16
|
-
**PRECONDITION:** `
|
|
16
|
+
**PRECONDITION:** `plan.md` exists in `.prizmkit/specs/###-feature-name/` with a Tasks section containing unchecked tasks
|
|
17
17
|
|
|
18
18
|
**STEPS:**
|
|
19
19
|
|
|
20
|
-
1. Read `
|
|
20
|
+
1. Read `plan.md` (including Tasks section), `spec.md` for full context
|
|
21
21
|
2. Read relevant `.prizm-docs/` L1/L2 for affected modules (check TRAPS and DECISIONS sections)
|
|
22
22
|
3. Check if checkpoint tasks are complete before proceeding to next phase
|
|
23
23
|
4. For each unchecked task in order:
|
|
24
24
|
a. If task has `[P]` marker and previous parallel tasks are running, can proceed in parallel
|
|
25
25
|
b. Read L2 doc for target file's module (if exists)
|
|
26
26
|
c. Implement following TDD: write test first if applicable
|
|
27
|
-
d. Mark task as `[x]` in `
|
|
27
|
+
d. Mark task as `[x]` in `plan.md` Tasks section
|
|
28
28
|
e. If error occurs: for sequential tasks, stop and report; for parallel tasks, continue others
|
|
29
29
|
5. At each checkpoint: verify build passes and tests pass
|
|
30
30
|
6. After all tasks: run full test suite
|
|
@@ -36,12 +36,12 @@ Implement the feature by executing tasks from tasks.md.
|
|
|
36
36
|
- Parallel tasks (`[P]` marker) MAY continue if one fails, but report all failures
|
|
37
37
|
- TDD approach: write test first, then implement, then verify test passes
|
|
38
38
|
- Read `.prizm-docs/` TRAPS section before implementing to avoid known pitfalls
|
|
39
|
-
- Mark each task `[x]` in `
|
|
39
|
+
- Mark each task `[x]` in `plan.md` Tasks section immediately upon completion (not batched)
|
|
40
40
|
|
|
41
41
|
**HANDOFF:** `prizmkit.code-review`
|
|
42
42
|
|
|
43
43
|
## Output
|
|
44
44
|
|
|
45
|
-
- Code files created/modified as specified in
|
|
46
|
-
- `
|
|
45
|
+
- Code files created/modified as specified in plan.md Tasks section
|
|
46
|
+
- `plan.md` Tasks section updated with completion markers `[x]`
|
|
47
47
|
- Implementation summary output to conversation
|
|
@@ -34,16 +34,20 @@ BROWNFIELD WORKFLOW (existing project):
|
|
|
34
34
|
|
|
35
35
|
**Step 1: Project Scanning**
|
|
36
36
|
1. Detect tech stack from build files (`package.json`, `requirements.txt`, `go.mod`, `pom.xml`, `Cargo.toml`, etc.)
|
|
37
|
-
2. Map directory structure
|
|
37
|
+
2. Map directory structure using a TWO-TIER model — do NOT flatten:
|
|
38
|
+
- TOP-LEVEL modules: directories directly under project root that contain source files or sub-directories with source files (e.g. `dev-pipeline/`, `src/`, `internal/`)
|
|
39
|
+
- SUB-MODULES: directories INSIDE a top-level module (e.g. `dev-pipeline/scripts/`, `dev-pipeline/lib/`)
|
|
40
|
+
- A sub-module is NEVER treated as a top-level module, even if it has many files
|
|
41
|
+
- Exclude: `.git/`, `node_modules/`, `vendor/`, `build/`, `dist/`, `__pycache__/`, `.claude/`, `.codebuddy/`, `.prizmkit/`, `.prizm-docs/`
|
|
38
42
|
3. Identify entry points by language convention
|
|
39
43
|
4. Catalog dependencies (external packages)
|
|
40
44
|
5. Count source files per directory
|
|
41
45
|
|
|
42
46
|
**Step 2: Prizm Documentation Generation**
|
|
43
|
-
2a. Invoke prizmkit-prizm-docs `prizmkit.doc.init` algorithm:
|
|
44
|
-
- Create `.prizm-docs/` directory structure
|
|
45
|
-
- Generate `root.prizm` (L0) with project meta and
|
|
46
|
-
- Generate L1 docs for
|
|
47
|
+
2a. Invoke prizmkit-prizm-docs `prizmkit.doc.init` algorithm, passing the two-tier module structure from Step 1:
|
|
48
|
+
- Create `.prizm-docs/` directory structure mirroring the source tree (sub-module dirs become subdirectories under `.prizm-docs/<top-level>/`)
|
|
49
|
+
- Generate `root.prizm` (L0) with project meta and MODULE_INDEX listing ONLY top-level modules
|
|
50
|
+
- Generate L1 docs for top-level modules at `.prizm-docs/<M>.prizm` and for sub-modules at `.prizm-docs/<M>/<S>.prizm`
|
|
47
51
|
- Create `changelog.prizm`
|
|
48
52
|
- Skip L2 (lazy generation)
|
|
49
53
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "prizmkit-plan"
|
|
3
|
-
description: "Generate technical implementation plan from feature spec.
|
|
3
|
+
description: "Generate technical implementation plan and executable task breakdown from feature spec. Produces plan.md with architecture, data model, API contracts, and a Tasks section. Invoke after 'specify' when ready to plan. (project)"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PrizmKit Plan
|
|
7
7
|
|
|
8
|
-
Generate a comprehensive technical implementation plan from a feature specification. Produces plan.md with architecture approach, component design, data model, API contracts, testing strategy, and
|
|
8
|
+
Generate a comprehensive technical implementation plan from a feature specification. Produces plan.md with architecture approach, component design, data model, API contracts, testing strategy, risk assessment, and an executable Tasks section.
|
|
9
9
|
|
|
10
10
|
## Commands
|
|
11
11
|
|
|
12
12
|
### prizmkit.plan
|
|
13
13
|
|
|
14
|
-
Create a technical implementation plan for a specified feature.
|
|
14
|
+
Create a technical implementation plan and task breakdown for a specified feature.
|
|
15
15
|
|
|
16
16
|
**PRECONDITION:** `spec.md` exists in `.prizmkit/specs/###-feature-name/`, `.prizm-docs/root.prizm` exists
|
|
17
17
|
|
|
@@ -36,15 +36,27 @@ Create a technical implementation plan for a specified feature.
|
|
|
36
36
|
- Risk assessment
|
|
37
37
|
6. Cross-check plan against spec: every user story MUST map to plan components
|
|
38
38
|
7. Check alignment with project rules from `.prizm-docs/root.prizm` RULES section
|
|
39
|
-
|
|
39
|
+
|
|
40
|
+
**Phase 2 — Task Generation:**
|
|
41
|
+
8. Ask user for implementation strategy (or infer from context): MVP-first / Incremental / Parallel
|
|
42
|
+
9. Append `## Tasks` section to `plan.md` using the tasks template at the end of `${SKILL_DIR}/assets/plan-template.md`:
|
|
43
|
+
- Organized by phases: Setup(T-001~T-009) → Foundational(T-010~T-099) → User Stories(T-100+) → Polish(T-900+)
|
|
44
|
+
- Each task: `- [ ] [T-NNN] [P?] [US?] Description — file: path/to/file`
|
|
45
|
+
- `[P]` marker for tasks that can run in parallel within their phase
|
|
46
|
+
- Checkpoint tasks between phases for validation
|
|
47
|
+
10. Verify: every user story maps to at least one task; every task references a target file path
|
|
48
|
+
11. Output: `plan.md` path, summary of design decisions, and task count
|
|
40
49
|
|
|
41
50
|
**KEY RULES:**
|
|
42
|
-
- Every user story in spec.md MUST have a corresponding component
|
|
51
|
+
- Every user story in spec.md MUST have a corresponding component AND task in the plan
|
|
43
52
|
- Architecture decisions MUST align with existing project patterns from `.prizm-docs/`
|
|
44
53
|
- Risk assessment MUST include at least one risk with mitigation strategy
|
|
45
54
|
- Supporting details (data model, interface design) are included as sections within plan.md, not as separate files
|
|
55
|
+
- Task IDs use zero-padded numbering: `[T-001]`, `[T-010]`, `[T-100]`
|
|
56
|
+
- Every task MUST reference a target file path
|
|
57
|
+
- Each user story section MUST be independently testable
|
|
46
58
|
|
|
47
|
-
**HANDOFF:** `prizmkit.
|
|
59
|
+
**HANDOFF:** `prizmkit.analyze` or `prizmkit.implement`
|
|
48
60
|
|
|
49
61
|
## Template
|
|
50
62
|
|
|
@@ -53,4 +65,4 @@ The plan template is located at `${SKILL_DIR}/assets/plan-template.md`.
|
|
|
53
65
|
## Output
|
|
54
66
|
|
|
55
67
|
All outputs are written to `.prizmkit/specs/###-feature-name/`:
|
|
56
|
-
- `plan.md` — The implementation plan (includes architecture, component design, data model, interface design, testing strategy, risk assessment)
|
|
68
|
+
- `plan.md` — The implementation plan (includes architecture, component design, data model, interface design, testing strategy, risk assessment, and Tasks section)
|
|
@@ -35,3 +35,25 @@
|
|
|
35
35
|
- [ ] Data model reviewed
|
|
36
36
|
- [ ] API contracts defined
|
|
37
37
|
- [ ] Testing approach agreed
|
|
38
|
+
|
|
39
|
+
## Tasks
|
|
40
|
+
|
|
41
|
+
### Strategy: [MVP-first | Incremental | Parallel]
|
|
42
|
+
|
|
43
|
+
### Phase: Setup
|
|
44
|
+
- [ ] [T-001] Project scaffolding — file: [path]
|
|
45
|
+
|
|
46
|
+
### Phase: Foundational
|
|
47
|
+
- [ ] [T-010] [Data model / Schema changes] — file: [path]
|
|
48
|
+
|
|
49
|
+
### Phase: User Story 1 — [Title]
|
|
50
|
+
- [ ] [T-100] [P] [US1] [Task description] — file: [path]
|
|
51
|
+
|
|
52
|
+
### Phase: Polish
|
|
53
|
+
- [ ] [T-900] Final integration test
|
|
54
|
+
- [ ] [T-901] Documentation update
|
|
55
|
+
|
|
56
|
+
### Checkpoints
|
|
57
|
+
- [ ] [CP-1] After Setup: project builds and tests pass
|
|
58
|
+
- [ ] [CP-2] After Foundational: data model verified
|
|
59
|
+
- [ ] [CP-3] After each US: acceptance criteria pass
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "refactor-workflow"
|
|
3
3
|
tier: 1
|
|
4
|
-
description: "[Tier 1] End-to-end refactor workflow: analyze → plan →
|
|
4
|
+
description: "[Tier 1] End-to-end refactor workflow: analyze → plan → implement → review → commit. 5-phase behavior-preserving pipeline with mandatory test gates. (project)"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
refactor-workflow-SKILL.md
|
|
@@ -10,18 +10,17 @@ refactor-workflow/SKILL.md
|
|
|
10
10
|
|
|
11
11
|
# PrizmKit Refactor Workflow
|
|
12
12
|
|
|
13
|
-
End-to-end orchestration skill for code refactoring and optimization. Chains existing PrizmKit skills (tech-debt-tracker, plan,
|
|
13
|
+
End-to-end orchestration skill for code refactoring and optimization. Chains existing PrizmKit skills (tech-debt-tracker, plan, implement, code-review, committer) into a 5-phase behavior-preserving pipeline with mandatory test gates after each task.
|
|
14
14
|
|
|
15
15
|
## Overview
|
|
16
16
|
|
|
17
17
|
```
|
|
18
18
|
prizmkit.refactor <目标模块或描述>
|
|
19
19
|
→ Phase 1: Analyze → refactor-analysis.md
|
|
20
|
-
→ Phase 2: Plan → plan.md
|
|
21
|
-
→ Phase 3:
|
|
22
|
-
→ Phase 4:
|
|
23
|
-
→ Phase 5:
|
|
24
|
-
→ Phase 6: Commit → git commit
|
|
20
|
+
→ Phase 2: Plan → plan.md (including Tasks section)
|
|
21
|
+
→ Phase 3: Implement → (code)
|
|
22
|
+
→ Phase 4: Review → (review report)
|
|
23
|
+
→ Phase 5: Commit → git commit
|
|
25
24
|
```
|
|
26
25
|
|
|
27
26
|
### Pipeline Phases
|
|
@@ -29,11 +28,10 @@ prizmkit.refactor <目标模块或描述>
|
|
|
29
28
|
| Phase | Name | Skill Used | Artifact |
|
|
30
29
|
|-------|------|-----------|----------|
|
|
31
30
|
| 1 | Analyze 代码分析 | `prizmkit.tech-debt-tracker` + code reading | → `refactor-analysis.md` |
|
|
32
|
-
| 2 | Plan
|
|
33
|
-
| 3 |
|
|
34
|
-
| 4 |
|
|
35
|
-
| 5 |
|
|
36
|
-
| 6 | Commit | `prizmkit.committer` | git commit |
|
|
31
|
+
| 2 | Plan 重构方案与任务 | `prizmkit.plan` | → `plan.md` (含 Tasks section) |
|
|
32
|
+
| 3 | Implement 实现 | `prizmkit.implement` | (code changes) |
|
|
33
|
+
| 4 | Code Review | `prizmkit.code-review` | (review report) |
|
|
34
|
+
| 5 | Commit | `prizmkit.committer` | git commit |
|
|
37
35
|
|
|
38
36
|
### Key Principles
|
|
39
37
|
| Principle | Description |
|
|
@@ -46,8 +44,7 @@ prizmkit.refactor <目标模块或描述>
|
|
|
46
44
|
### Artifacts
|
|
47
45
|
Refactor artifacts stored at `.prizmkit/refactor/<refactor-slug>/`:
|
|
48
46
|
- **`refactor-analysis.md`** — Code analysis (Phase 1)
|
|
49
|
-
- **`plan.md`** — Refactoring plan (Phase 2)
|
|
50
|
-
- **`tasks.md`** — Task breakdown (Phase 3)
|
|
47
|
+
- **`plan.md`** — Refactoring plan with Tasks section (Phase 2)
|
|
51
48
|
|
|
52
49
|
## Commands
|
|
53
50
|
### prizmkit.refactor \<目标模块或描述\>
|
|
@@ -82,51 +79,41 @@ Execute the full refactor pipeline for a module or code area.
|
|
|
82
79
|
- **Scope Boundary**: what IS in scope, what is explicitly OUT of scope
|
|
83
80
|
**CHECKPOINT CP-RW-1**: `refactor-analysis.md` exists with baseline test results.
|
|
84
81
|
---
|
|
85
|
-
## Phase 2: Plan —
|
|
86
|
-
**Goal**: Generate technical refactoring plan that preserves behavior.
|
|
82
|
+
## Phase 2: Plan — 重构方案与任务
|
|
83
|
+
**Goal**: Generate technical refactoring plan that preserves behavior, including task breakdown.
|
|
87
84
|
**STEPS:**
|
|
88
85
|
1. **Read context**: refactor-analysis.md, `.prizm-docs/` (PATTERNS, RULES, TRAPS)
|
|
89
86
|
2. **Invoke `prizmkit.plan`** with refactor-analysis.md as input (in place of spec.md):
|
|
90
87
|
- Plan MUST specify: what changes, what stays the same, how behavior is preserved
|
|
88
|
+
- plan.md Tasks section: each task MUST be independently testable, MUST preserve all tests (green → green)
|
|
91
89
|
- Artifact path: `.prizmkit/refactor/<refactor-slug>/plan.md`
|
|
92
90
|
3. **Verify plan constraints**:
|
|
93
91
|
- All public API contracts preserved
|
|
94
92
|
- Test strategy: how to verify behavior unchanged at each step
|
|
95
93
|
- Rollback strategy: how to revert if behavior breaks
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
## Phase 3: Tasks — 任务拆解
|
|
99
|
-
**Goal**: Break refactoring plan into safe, atomic, testable tasks.
|
|
100
|
-
**STEPS:**
|
|
101
|
-
1. **Invoke `prizmkit.tasks`** with plan.md:
|
|
102
|
-
- Each task MUST be independently testable
|
|
103
|
-
- Each task MUST preserve all tests (green → green)
|
|
104
|
-
- Artifact path: `.prizmkit/refactor/<refactor-slug>/tasks.md`
|
|
105
|
-
2. **Verify task safety**:
|
|
94
|
+
- Tasks ordered to minimize risk (safe renames first, structural changes later)
|
|
106
95
|
- Every task ends with "run full test suite"
|
|
107
|
-
|
|
108
|
-
- Tasks are ordered to minimize risk (safe renames first, structural changes later)
|
|
109
|
-
**CHECKPOINT CP-RW-3**: `tasks.md` exists with test gates on every task.
|
|
96
|
+
**CHECKPOINT CP-RW-2**: `plan.md` exists with behavior preservation strategy and Tasks section.
|
|
110
97
|
---
|
|
111
|
-
## Phase
|
|
98
|
+
## Phase 3: Implement — 实现
|
|
112
99
|
**Goal**: Execute refactoring tasks with mandatory test verification after each task.
|
|
113
100
|
**STEPS:**
|
|
114
|
-
1. **For EACH task in
|
|
101
|
+
1. **For EACH task in plan.md Tasks section**:
|
|
115
102
|
a. Implement the refactoring change
|
|
116
103
|
b. **Run FULL test suite** (not just affected tests)
|
|
117
104
|
c. Verify: all previously-passing tests still pass
|
|
118
105
|
d. If any test fails → STOP, revert task, investigate
|
|
119
106
|
2. **Progress tracking**:
|
|
120
|
-
- Mark tasks complete in
|
|
107
|
+
- Mark tasks complete in plan.md Tasks section as they finish
|
|
121
108
|
- Record test results after each task
|
|
122
|
-
**CHECKPOINT CP-RW-
|
|
109
|
+
**CHECKPOINT CP-RW-3**: All tasks complete, full test suite green.
|
|
123
110
|
**KEY RULES:**
|
|
124
111
|
- NEVER skip the test gate between tasks
|
|
125
112
|
- NEVER allow temporary test failures ("we'll fix it in the next task")
|
|
126
113
|
- If a task cannot be completed without breaking tests → split it into smaller tasks
|
|
127
114
|
- Max 3 attempts per task before escalating to user
|
|
128
115
|
---
|
|
129
|
-
## Phase
|
|
116
|
+
## Phase 4: Code Review — 代码审查
|
|
130
117
|
**Goal**: Verify refactoring quality and behavior preservation.
|
|
131
118
|
**STEPS:**
|
|
132
119
|
1. **Invoke `prizmkit.code-review`** (scoped to changed files):
|
|
@@ -139,10 +126,10 @@ Execute the full refactor pipeline for a module or code area.
|
|
|
139
126
|
2. **Run full test suite one final time**: All tests MUST pass
|
|
140
127
|
3. **Handle review results**:
|
|
141
128
|
- **PASS / PASS_WITH_WARNINGS**: Proceed to Phase 6
|
|
142
|
-
- **NEEDS_FIXES**: Return to Phase
|
|
143
|
-
**CHECKPOINT CP-RW-
|
|
129
|
+
- **NEEDS_FIXES**: Return to Phase 3 (max 2 review rounds)
|
|
130
|
+
**CHECKPOINT CP-RW-4**: Code review passes, all tests green.
|
|
144
131
|
---
|
|
145
|
-
## Phase
|
|
132
|
+
## Phase 5: Commit — 提交
|
|
146
133
|
**Goal**: Commit with refactor convention.
|
|
147
134
|
**STEPS:**
|
|
148
135
|
1. **Invoke `prizmkit.committer`**:
|
|
@@ -154,14 +141,14 @@ Execute the full refactor pipeline for a module or code area.
|
|
|
154
141
|
- Updated module structure documentation
|
|
155
142
|
- New PATTERNS discovered
|
|
156
143
|
- Resolved TRAPS (remove if debt is paid)
|
|
157
|
-
**CHECKPOINT CP-RW-
|
|
144
|
+
**CHECKPOINT CP-RW-5**: Commit recorded with `refactor()` prefix.
|
|
158
145
|
---
|
|
159
146
|
## Fast Path — 快速路径
|
|
160
147
|
For single-file refactoring (rename, extract method, <30 lines changed):
|
|
161
148
|
```
|
|
162
|
-
Phase 1 (Analyze) → Phase
|
|
149
|
+
Phase 1 (Analyze) → Phase 3 (Implement) → Phase 4 (Review) → Phase 5 (Commit)
|
|
163
150
|
```
|
|
164
|
-
Skip Phase 2 (Plan)
|
|
151
|
+
Skip Phase 2 (Plan).
|
|
165
152
|
**CRITERIA** (ALL must be true):
|
|
166
153
|
- Single file change
|
|
167
154
|
- Estimated change < 30 lines
|
|
@@ -181,10 +168,9 @@ The pipeline supports resuming from the last completed phase by detecting existi
|
|
|
181
168
|
|---------------|------------|
|
|
182
169
|
| (nothing) | Phase 1: Analyze |
|
|
183
170
|
| `refactor-analysis.md` only | Phase 2: Plan |
|
|
184
|
-
| `refactor-analysis.md` + `plan.md` | Phase 3:
|
|
185
|
-
| All
|
|
186
|
-
| All
|
|
187
|
-
| All 3 docs + review passed | Phase 6: Commit |
|
|
171
|
+
| `refactor-analysis.md` + `plan.md` | Phase 3: Implement |
|
|
172
|
+
| All docs + code changes exist | Phase 4: Review |
|
|
173
|
+
| All docs + review passed | Phase 5: Commit |
|
|
188
174
|
**Resume command**: `prizmkit.refactor <slug>` — if `<slug>` matches an existing `.prizmkit/refactor/<slug>/` directory, resume instead of starting fresh.
|
|
189
175
|
---
|
|
190
176
|
## Error Handling
|
|
@@ -203,11 +189,10 @@ The pipeline supports resuming from the last completed phase by detecting existi
|
|
|
203
189
|
| Skill | Role in Refactor Workflow |
|
|
204
190
|
|-------|--------------------------|
|
|
205
191
|
| `prizmkit-tool-tech-debt-tracker` | Phase 1: identify debt and complexity |
|
|
206
|
-
| `prizmkit-plan` | Phase 2: refactoring plan generation |
|
|
207
|
-
| `prizmkit-
|
|
208
|
-
| `prizmkit-
|
|
209
|
-
| `prizmkit-
|
|
210
|
-
| `prizmkit-committer` | Phase 6: commit with `refactor()` convention |
|
|
192
|
+
| `prizmkit-plan` | Phase 2: refactoring plan + task generation |
|
|
193
|
+
| `prizmkit-implement` | Phase 3: execute refactoring tasks |
|
|
194
|
+
| `prizmkit-code-review` | Phase 4: review quality and behavior preservation |
|
|
195
|
+
| `prizmkit-committer` | Phase 5: commit with `refactor()` convention |
|
|
211
196
|
| `feature-workflow` | Handoff target when new behavior is needed |
|
|
212
197
|
| `prizmkit-specify` | NOT used (no user stories for refactoring) |
|
|
213
198
|
| `prizmkit-analyze` | NOT used (no spec ↔ plan consistency needed) |
|
|
@@ -218,7 +203,7 @@ The pipeline supports resuming from the last completed phase by detecting existi
|
|
|
218
203
|
| Dimension | Feature Workflow | Refactor Workflow | Bug Fix Pipeline |
|
|
219
204
|
|-----------|-----------------|-------------------|------------------|
|
|
220
205
|
| Input | Natural language requirement | Module/code target | Bug description |
|
|
221
|
-
| Pipeline Phases |
|
|
206
|
+
| Pipeline Phases | 6 (Fast: 4) | 5 (Fast: 3) | 5 (Fast: 3) |
|
|
222
207
|
| Phase 1 | Specify (spec.md) | Analyze (refactor-analysis.md) | Triage (fix-plan.md) |
|
|
223
208
|
| Artifact Path | `.prizmkit/specs/<slug>/` | `.prizmkit/refactor/<slug>/` | `.prizmkit/bugfix/<id>/` |
|
|
224
209
|
| Commit Prefix | `feat(<scope>):` | `refactor(<scope>):` | `fix(<scope>):` |
|
|
@@ -230,9 +215,8 @@ The pipeline supports resuming from the last completed phase by detecting existi
|
|
|
230
215
|
All internal asset paths MUST use `${SKILL_DIR}` placeholder for cross-IDE compatibility.
|
|
231
216
|
## Output
|
|
232
217
|
- `refactor-analysis.md` (Phase 1 artifact)
|
|
233
|
-
- `plan.md` (Phase 2 artifact)
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
- Git commit with `refactor(<scope>):` prefix (Phase 6)
|
|
218
|
+
- `plan.md` with Tasks section (Phase 2 artifact)
|
|
219
|
+
- Refactored implementation code (Phase 3)
|
|
220
|
+
- Code review report (Phase 4, conversation only)
|
|
221
|
+
- Git commit with `refactor(<scope>):` prefix (Phase 5)
|
|
238
222
|
- Updated `.prizm-docs/` (if applicable)
|
package/package.json
CHANGED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "prizmkit-tasks"
|
|
3
|
-
description: "Generate executable task breakdown from implementation plan. Creates tasks.md with dependency ordering, parallel markers, and file paths. Invoke after 'plan'. (project)"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# PrizmKit Tasks
|
|
7
|
-
|
|
8
|
-
Generate an executable task breakdown from an implementation plan. Produces tasks.md organized by phases with dependency ordering, parallel execution markers, and target file paths.
|
|
9
|
-
|
|
10
|
-
## Commands
|
|
11
|
-
|
|
12
|
-
### prizmkit.tasks
|
|
13
|
-
|
|
14
|
-
Create a detailed task breakdown for implementation.
|
|
15
|
-
|
|
16
|
-
**PRECONDITION:** `spec.md` and `plan.md` exist in `.prizmkit/specs/###-feature-name/`
|
|
17
|
-
|
|
18
|
-
**STEPS:**
|
|
19
|
-
|
|
20
|
-
1. Read `spec.md`, `plan.md`, `data-model.md` (if exists), `contracts/` (if exists)
|
|
21
|
-
2. Generate `tasks.md` from template (`${SKILL_DIR}/assets/tasks-template.md`) organized by:
|
|
22
|
-
- Phase: Setup → Foundational → User Stories (US1→US2→...) → Polish
|
|
23
|
-
- Each task: `- [ ] [T-NNN] [P?] [US?] Description — file: path/to/file`
|
|
24
|
-
- `[P]` marker for tasks that can run in parallel
|
|
25
|
-
- Each user story section is independently implementable and testable
|
|
26
|
-
3. Implementation strategy selection (ask user):
|
|
27
|
-
- **MVP-first**: core features → iterate
|
|
28
|
-
- **Incremental**: story-by-story delivery
|
|
29
|
-
- **Parallel**: independent stories in parallel
|
|
30
|
-
4. Include checkpoint tasks between phases for validation
|
|
31
|
-
5. Output: `tasks.md` path and task count summary
|
|
32
|
-
|
|
33
|
-
**KEY RULES:**
|
|
34
|
-
- Task IDs use zero-padded numbering: `[T-001]`, `[T-010]`, `[T-100]`
|
|
35
|
-
- Setup tasks start at T-001, Foundational at T-010, User Stories at T-100+, Polish at T-900
|
|
36
|
-
- Every task MUST reference a target file path
|
|
37
|
-
- `[P]` marker indicates tasks that can execute in parallel within their phase
|
|
38
|
-
- Checkpoint tasks MUST appear between phases
|
|
39
|
-
- Each user story section MUST be independently testable
|
|
40
|
-
|
|
41
|
-
**HANDOFF:** `prizmkit.implement`
|
|
42
|
-
|
|
43
|
-
## Template
|
|
44
|
-
|
|
45
|
-
The tasks template is located at `${SKILL_DIR}/assets/tasks-template.md`.
|
|
46
|
-
|
|
47
|
-
## Output
|
|
48
|
-
|
|
49
|
-
All outputs are written to `.prizmkit/specs/###-feature-name/`:
|
|
50
|
-
- `tasks.md` — The task breakdown
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Tasks: [FEATURE_TITLE]
|
|
2
|
-
|
|
3
|
-
## Strategy: [MVP-first | Incremental | Parallel]
|
|
4
|
-
|
|
5
|
-
## Phase: Setup
|
|
6
|
-
- [ ] [T-001] Project scaffolding — file: [path]
|
|
7
|
-
|
|
8
|
-
## Phase: Foundational
|
|
9
|
-
- [ ] [T-010] [Data model / Schema changes] — file: [path]
|
|
10
|
-
|
|
11
|
-
## Phase: User Story 1 — [Title]
|
|
12
|
-
- [ ] [T-100] [P] [US1] [Task description] — file: [path]
|
|
13
|
-
|
|
14
|
-
## Phase: Polish
|
|
15
|
-
- [ ] [T-900] Final integration test
|
|
16
|
-
- [ ] [T-901] Documentation update
|
|
17
|
-
|
|
18
|
-
## Checkpoints
|
|
19
|
-
- [ ] [CP-1] After Setup: project builds and tests pass
|
|
20
|
-
- [ ] [CP-2] After Foundational: data model verified
|
|
21
|
-
- [ ] [CP-3] After each US: acceptance criteria pass
|