maestro-flow 0.3.9 → 0.3.11
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/.claude/agents/workflow-collab-planner.md +1 -1
- package/.claude/agents/workflow-executor.md +1 -1
- package/.claude/agents/workflow-plan-checker.md +1 -1
- package/.claude/agents/workflow-planner.md +1 -1
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +1 -1
- package/.claude/commands/maestro-analyze.md +46 -3
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-execute.md +14 -0
- package/.claude/commands/maestro-plan.md +16 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue-discover.md +2 -2
- package/.claude/commands/manage-issue.md +5 -5
- package/.claude/commands/spec-add.md +67 -56
- package/.claude/commands/spec-load.md +66 -64
- package/.claude/commands/spec-setup.md +5 -9
- package/.codex/skills/learn-decompose/SKILL.md +119 -0
- package/.codex/skills/learn-follow/SKILL.md +83 -0
- package/.codex/skills/learn-investigate/SKILL.md +83 -0
- package/.codex/skills/learn-retro/SKILL.md +83 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
- package/.codex/skills/maestro/SKILL.md +335 -0
- package/.codex/skills/maestro-analyze/SKILL.md +84 -75
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +233 -0
- package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
- package/.codex/skills/maestro-execute/SKILL.md +435 -438
- package/.codex/skills/maestro-fork/SKILL.md +68 -0
- package/.codex/skills/maestro-init/SKILL.md +171 -167
- package/.codex/skills/maestro-learn/SKILL.md +80 -0
- package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
- package/.codex/skills/maestro-merge/SKILL.md +62 -0
- package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
- package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
- package/.codex/skills/maestro-overlay/SKILL.md +188 -185
- package/.codex/skills/maestro-plan/SKILL.md +66 -69
- package/.codex/skills/maestro-quick/SKILL.md +26 -23
- package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
- package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
- package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
- package/.codex/skills/maestro-verify/SKILL.md +556 -566
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
- package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
- package/.codex/skills/manage-harvest/SKILL.md +82 -0
- package/.codex/skills/manage-issue/SKILL.md +80 -65
- package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
- package/.codex/skills/manage-learn/SKILL.md +190 -186
- package/.codex/skills/manage-memory/SKILL.md +95 -72
- package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
- package/.codex/skills/manage-status/SKILL.md +102 -89
- package/.codex/skills/quality-business-test/SKILL.md +228 -223
- package/.codex/skills/quality-debug/SKILL.md +54 -66
- package/.codex/skills/quality-integration-test/SKILL.md +532 -544
- package/.codex/skills/quality-refactor/SKILL.md +197 -191
- package/.codex/skills/quality-retrospective/SKILL.md +512 -505
- package/.codex/skills/quality-review/SKILL.md +93 -105
- package/.codex/skills/quality-sync/SKILL.md +101 -89
- package/.codex/skills/quality-test/SKILL.md +202 -198
- package/.codex/skills/quality-test-gen/SKILL.md +93 -104
- package/.codex/skills/spec-add/SKILL.md +58 -39
- package/.codex/skills/spec-load/SKILL.md +45 -40
- package/.codex/skills/spec-map/SKILL.md +180 -182
- package/.codex/skills/spec-setup/SKILL.md +94 -76
- package/.codex/skills/team-coordinate/SKILL.md +346 -357
- package/.codex/skills/team-executor/SKILL.md +70 -112
- package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
- package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
- package/.codex/skills/team-review/SKILL.md +232 -225
- package/.codex/skills/team-tech-debt/SKILL.md +78 -100
- package/.codex/skills/team-testing/SKILL.md +242 -235
- package/.codex/skills/wiki-connect/SKILL.md +75 -0
- package/.codex/skills/wiki-digest/SKILL.md +87 -0
- package/README.md +14 -11
- package/README.zh-CN.md +14 -11
- package/chains/issue-lifecycle.json +13 -13
- package/chains/singles/issue-analyze.json +3 -3
- package/chains/singles/issue-execute.json +3 -3
- package/chains/singles/issue-plan.json +3 -3
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
- package/dashboard/dist-server/src/hooks/constants.js +151 -16
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +5 -0
- package/dist/src/commands/collab.d.ts +1 -34
- package/dist/src/commands/collab.d.ts.map +1 -1
- package/dist/src/commands/collab.js +8 -76
- package/dist/src/commands/collab.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +5 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +115 -10
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +5 -1
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.js +7 -3
- package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
- package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +7 -2
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +92 -12
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +151 -16
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +2 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +2 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
- package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
- package/dist/src/hooks/guards/preflight-guard.js +95 -0
- package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
- package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
- package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
- package/dist/src/hooks/guards/spec-validator.js +66 -0
- package/dist/src/hooks/guards/spec-validator.js.map +1 -0
- package/dist/src/hooks/index.d.ts +1 -0
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.js +96 -0
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/preflight-core.d.ts +37 -0
- package/dist/src/hooks/preflight-core.d.ts.map +1 -0
- package/dist/src/hooks/preflight-core.js +86 -0
- package/dist/src/hooks/preflight-core.js.map +1 -0
- package/dist/src/hooks/spec-bridge.d.ts +40 -0
- package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
- package/dist/src/hooks/spec-bridge.js +97 -0
- package/dist/src/hooks/spec-bridge.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +18 -12
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts +8 -17
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +269 -112
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +5 -0
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +5 -0
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +5 -0
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/team/phase-orchestrator.d.ts +52 -0
- package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
- package/dist/src/team/phase-orchestrator.js +165 -0
- package/dist/src/team/phase-orchestrator.js.map +1 -0
- package/dist/src/team/phase-types.d.ts +51 -0
- package/dist/src/team/phase-types.d.ts.map +1 -0
- package/dist/src/team/phase-types.js +41 -0
- package/dist/src/team/phase-types.js.map +1 -0
- package/dist/src/tools/collab-adapter.d.ts +17 -0
- package/dist/src/tools/collab-adapter.d.ts.map +1 -1
- package/dist/src/tools/collab-adapter.js +138 -0
- package/dist/src/tools/collab-adapter.js.map +1 -1
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +6 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/merge-validator.d.ts +24 -0
- package/dist/src/tools/merge-validator.d.ts.map +1 -0
- package/dist/src/tools/merge-validator.js +220 -0
- package/dist/src/tools/merge-validator.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +56 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
- package/dist/src/tools/spec-entry-parser.js +196 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +66 -92
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +30 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
- package/dist/src/tools/spec-keyword-index.js +101 -0
- package/dist/src/tools/spec-keyword-index.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +3 -3
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +49 -23
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-agents.d.ts +27 -0
- package/dist/src/tools/team-agents.d.ts.map +1 -0
- package/dist/src/tools/team-agents.js +362 -0
- package/dist/src/tools/team-agents.js.map +1 -0
- package/dist/src/tools/team-mailbox.d.ts +40 -0
- package/dist/src/tools/team-mailbox.d.ts.map +1 -0
- package/dist/src/tools/team-mailbox.js +384 -0
- package/dist/src/tools/team-mailbox.js.map +1 -0
- package/dist/src/tools/team-msg.d.ts +17 -8
- package/dist/src/tools/team-msg.d.ts.map +1 -1
- package/dist/src/tools/team-msg.js +110 -13
- package/dist/src/tools/team-msg.js.map +1 -1
- package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
- package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
- package/dist/src/tools/team-tasks-mcp.js +408 -0
- package/dist/src/tools/team-tasks-mcp.js.map +1 -0
- package/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
- package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
- package/templates/search-tools.md +1 -1
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +471 -471
- package/workflows/cli-tools-usage.md +44 -27
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/delegate-usage.md +3 -3
- package/workflows/execute.md +1 -1
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +343 -343
- package/workflows/issue-analyze.md +6 -2
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue-execute.md +6 -3
- package/workflows/issue-plan.md +5 -2
- package/workflows/maestro-coordinate.codex.md +281 -470
- package/workflows/maestro-coordinate.md +14 -14
- package/workflows/maestro-link-coordinate.md +2 -2
- package/workflows/maestro.codex.md +710 -0
- package/workflows/maestro.md +10 -11
- package/workflows/map.md +111 -111
- package/workflows/milestone-complete.md +176 -176
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +497 -497
- package/workflows/refactor.md +300 -300
- package/workflows/retrospective.md +1 -1
- package/workflows/roadmap.md +335 -335
- package/workflows/spec-generate.md +640 -640
- package/workflows/specs-add.md +46 -81
- package/workflows/specs-load.md +15 -17
- package/workflows/specs-setup.md +40 -161
- package/.claude/commands/manage-issue-analyze.md +0 -62
- package/.claude/commands/manage-issue-execute.md +0 -73
- package/.claude/commands/manage-issue-plan.md +0 -62
- package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
- package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
- package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
|
@@ -1,223 +1,228 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: quality-business-test
|
|
3
|
-
description: PRD-forward business testing with requirement traceability, multi-layer execution (L1 Interface
|
|
4
|
-
argument-hint: "<phase> [--spec SPEC-xxx] [--layer L1|L2|L3] [--gen-code] [--dry-run] [--re-run] [--auto]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
|
88
|
-
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
3
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
### Step
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
**
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
|
207
|
-
|
|
208
|
-
|
|
|
209
|
-
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
-
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
-
|
|
1
|
+
---
|
|
2
|
+
name: quality-business-test
|
|
3
|
+
description: PRD-forward business testing with requirement traceability, multi-layer execution (L1 Interface -> L2 Business Rule -> L3 Scenario), fixture generation, and feedback loop.
|
|
4
|
+
argument-hint: "<phase> [--spec SPEC-xxx] [--layer L1|L2|L3] [--gen-code] [--dry-run] [--re-run] [--auto]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Validate built features against PRD acceptance criteria through automated multi-layer business testing. Unlike quality-test (interactive UAT from code gaps) and quality-test-gen (generate tests from coverage gaps), this starts from REQ-*.md acceptance criteria and works forward.
|
|
10
|
+
|
|
11
|
+
**Three-track testing** (complementary, not replacements):
|
|
12
|
+
|
|
13
|
+
| Command | Input Source | Verification Angle |
|
|
14
|
+
|---------|-------------|-------------------|
|
|
15
|
+
| `quality-business-test` | REQ-*.md acceptance criteria | **PRD-forward** -- are business rules satisfied? |
|
|
16
|
+
| `quality-test` | verification.json must_haves | **Code-backward** -- does the code work? |
|
|
17
|
+
| `quality-test-gen` | validation.json gaps | **Coverage-backward** -- is coverage sufficient? |
|
|
18
|
+
|
|
19
|
+
**Layer definitions:**
|
|
20
|
+
|
|
21
|
+
| Layer | Name | Tests | Source |
|
|
22
|
+
|-------|------|-------|--------|
|
|
23
|
+
| L1 | Interface Contract | Single endpoint request/response, input validation, schema compliance | Architecture API endpoints + REQ AC |
|
|
24
|
+
| L2 | Business Rule | Multi-step logic, state transitions, business constraints, edge cases | REQ acceptance criteria + NFR |
|
|
25
|
+
| L3 | Business Scenario | Full user flows, multi-service chains, error propagation | Epic user stories |
|
|
26
|
+
</purpose>
|
|
27
|
+
|
|
28
|
+
<context>
|
|
29
|
+
$ARGUMENTS -- phase number plus optional flags.
|
|
30
|
+
|
|
31
|
+
**Usage**:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
$quality-business-test "3" # test phase 3 against PRD
|
|
35
|
+
$quality-business-test "3 --layer L1" # L1 interface tests only
|
|
36
|
+
$quality-business-test "3 --gen-code" # generate framework-specific test classes
|
|
37
|
+
$quality-business-test "3 --dry-run" # extract scenarios only, don't execute
|
|
38
|
+
$quality-business-test "3 --re-run" # re-run only previously failed scenarios
|
|
39
|
+
$quality-business-test "3 --spec SPEC-auth-2026-04" # explicit spec reference
|
|
40
|
+
$quality-business-test "3 --auto" # skip plan confirmation
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Flags**:
|
|
44
|
+
- `<phase>`: Phase number (required)
|
|
45
|
+
- `--spec SPEC-xxx`: Explicit spec package reference (default: auto-detect from index.json)
|
|
46
|
+
- `--layer L1|L2|L3`: Run only specific layer
|
|
47
|
+
- `--gen-code`: Generate framework-specific test classes (JUnit/RestAssured, supertest/vitest, pytest/httpx)
|
|
48
|
+
- `--dry-run`: Extract scenarios and fixtures only, don't execute
|
|
49
|
+
- `--re-run`: Re-run only previously failed/blocked scenarios
|
|
50
|
+
- `--auto`: Skip interactive confirmations
|
|
51
|
+
|
|
52
|
+
`--auto` skips interactive confirmation of test plan. `--dry-run` extracts scenarios only without execution.
|
|
53
|
+
|
|
54
|
+
**Output**: `{phase_dir}/.tests/business/business-test-plan.json` + `business-test-report.json` + `business-test-summary.md`
|
|
55
|
+
</context>
|
|
56
|
+
|
|
57
|
+
<invariants>
|
|
58
|
+
1. **PRD is source of truth** -- business rules drive test scenarios, not code structure
|
|
59
|
+
2. **RFC 2119 keyword priority** -- MUST = critical, SHOULD = high, MAY = medium
|
|
60
|
+
3. **Fail-fast across layers** -- critical L1 failures block L2/L3
|
|
61
|
+
4. **Generator-Critic loop max 3 iterations** per layer
|
|
62
|
+
5. **Traceability on every result** -- every pass/fail maps to REQ-NNN:AC-N
|
|
63
|
+
6. **Agent calls use `run_in_background: false`** for synchronous execution
|
|
64
|
+
7. **Auto-create issues** in `.workflow/issues/issues.jsonl` for every failure
|
|
65
|
+
8. **Degraded mode** works without spec package (from success_criteria + plan.json)
|
|
66
|
+
9. **Never modify source code** -- this command tests, it doesn't fix
|
|
67
|
+
</invariants>
|
|
68
|
+
|
|
69
|
+
<execution>
|
|
70
|
+
|
|
71
|
+
### Step 1: Resolve Target & Load Spec Package
|
|
72
|
+
|
|
73
|
+
1. Parse `$ARGUMENTS` for phase number and flags
|
|
74
|
+
2. Set `PHASE_DIR = .workflow/phases/{NN}-{slug}/`
|
|
75
|
+
3. Load `index.json` -> find `spec_ref` -> locate `.workflow/.spec/SPEC-xxx/`
|
|
76
|
+
4. **Full mode**: Read `requirements/_index.md` + all `REQ-*.md` + `NFR-*.md` + `architecture/_index.md` + `epics/EPIC-*.md`
|
|
77
|
+
5. **Degraded mode** (no spec package): Read `index.json.success_criteria` + `plan.json` convergence criteria + `.summaries/TASK-*.md`
|
|
78
|
+
6. If `--re-run`: load previous `business-test-report.json`, filter to failed/blocked scenarios
|
|
79
|
+
|
|
80
|
+
### Step 2: Extract Business Test Scenarios from PRD
|
|
81
|
+
|
|
82
|
+
For each `REQ-NNN-{slug}.md`:
|
|
83
|
+
|
|
84
|
+
1. Parse `## Acceptance Criteria` section
|
|
85
|
+
2. Map RFC 2119 keywords to priority:
|
|
86
|
+
|
|
87
|
+
| Keyword | Priority | Failure = |
|
|
88
|
+
|---------|----------|-----------|
|
|
89
|
+
| MUST / SHALL | critical | blocker |
|
|
90
|
+
| SHOULD / RECOMMENDED | high | major |
|
|
91
|
+
| MAY / OPTIONAL | medium | minor |
|
|
92
|
+
|
|
93
|
+
3. Classify scenario into layer:
|
|
94
|
+
|
|
95
|
+
| Source | Layer | Category |
|
|
96
|
+
|--------|-------|----------|
|
|
97
|
+
| Architecture API endpoints + REQ AC about request/response | L1 | api_contract |
|
|
98
|
+
| REQ AC about business logic, validation, state changes | L2 | business_rule |
|
|
99
|
+
| Architecture state machine transitions | L2 | state_transition |
|
|
100
|
+
| Epic user stories (multi-step flows) | L3 | user_flow |
|
|
101
|
+
| NFR performance/security constraints | L2 | non_functional |
|
|
102
|
+
|
|
103
|
+
4. Generate scenario JSON with `id`, `req_ref` (REQ-NNN:AC-N), `layer`, `priority`, `name`, `category`, `endpoint`, `input`, `expected`, `preconditions`, `postconditions`, `mock_services`
|
|
104
|
+
|
|
105
|
+
**Degraded mode**: Extract from success_criteria (each -> L2 scenario), plan.json convergence criteria (each -> L1/L2), all default priority: high. No L3 in degraded mode.
|
|
106
|
+
|
|
107
|
+
### Step 3: Generate Test Data (Fixtures)
|
|
108
|
+
|
|
109
|
+
Three tiers:
|
|
110
|
+
|
|
111
|
+
**Tier 1 -- Schema-derived**: From REQ data models, generate valid/invalid/boundary variants per entity:
|
|
112
|
+
- valid: satisfies all constraints
|
|
113
|
+
- invalid: violate each constraint individually (null, empty, overflow, wrong type)
|
|
114
|
+
- boundary: edge values (min, max, min-1, max+1)
|
|
115
|
+
|
|
116
|
+
**Tier 2 -- Criteria-derived**: From "MUST return X when Y" -> `{ input: Y, expected: X }`. From "MUST validate Z" -> `{ input: invalid_Z, expected: error }`.
|
|
117
|
+
|
|
118
|
+
**Tier 3 -- Scenario-derived (L3 only)**: From Epic user stories -> scenario packs with coordinated entity IDs across steps.
|
|
119
|
+
|
|
120
|
+
**Microservice mocks**: From architecture API contract -> request/response pairs for WireMock stubs.
|
|
121
|
+
|
|
122
|
+
### Step 4: Write Test Plan & Confirm
|
|
123
|
+
|
|
124
|
+
1. Archive previous `business-test-plan.json` to `.history/` if exists
|
|
125
|
+
2. Write `.tests/business/business-test-plan.json` with scenarios, fixtures, mock_contracts, requirement_coverage_plan
|
|
126
|
+
3. Display plan summary (scenario counts per layer, fixture counts, requirement coverage)
|
|
127
|
+
4. If not `--auto`: wait for user confirmation (yes/edit/cancel)
|
|
128
|
+
5. If `--dry-run`: stop here, report plan
|
|
129
|
+
|
|
130
|
+
### Step 5: Generate Test Code (if --gen-code)
|
|
131
|
+
|
|
132
|
+
Detect project tech stack from `.workflow/specs/project-tech.json` or codebase scan.
|
|
133
|
+
|
|
134
|
+
| Stack | L1 | L2 | L3 |
|
|
135
|
+
|-------|----|----|-----|
|
|
136
|
+
| Java/Spring Boot | RestAssured + MockMvc | JUnit 5 Parameterized + WireMock | TestContainers |
|
|
137
|
+
| TypeScript/Node | supertest + vitest | vitest + nock | playwright/cypress |
|
|
138
|
+
| Python | httpx + pytest | pytest + responses | pytest + selenium |
|
|
139
|
+
|
|
140
|
+
Each test method includes REQ-NNN:AC-N reference in display name. Test files placed in `.tests/business/{layer}/`.
|
|
141
|
+
|
|
142
|
+
If no `--gen-code`: scenarios stay as structured JSON for AI agent execution.
|
|
143
|
+
|
|
144
|
+
### Step 6: Execute Tests (Progressive L1 -> L2 -> L3)
|
|
145
|
+
|
|
146
|
+
**Fail-fast**: L1 critical failures -> STOP (don't run L2). L2 critical failures -> STOP (don't run L3).
|
|
147
|
+
|
|
148
|
+
**Generator-Critic loop per layer (max 3 iterations):**
|
|
149
|
+
|
|
150
|
+
| Iteration | Action |
|
|
151
|
+
|-----------|--------|
|
|
152
|
+
| 1 | Run all scenarios. Critic: classify failures as test_defect / code_defect / env_issue |
|
|
153
|
+
| 2 | Auto-fix test_defects, re-run ALL scenarios |
|
|
154
|
+
| 3 | Final confirmation. Remaining failures = confirmed code_defects |
|
|
155
|
+
|
|
156
|
+
**Execution modes:**
|
|
157
|
+
- `--gen-code`: run via test framework (`mvn test`, `npx vitest`, etc.)
|
|
158
|
+
- default: AI agent executes scenarios against running application
|
|
159
|
+
|
|
160
|
+
Record results in `.tests/business/test-results-iter-{N}.json`.
|
|
161
|
+
|
|
162
|
+
### Step 7: Build Traceability Matrix
|
|
163
|
+
|
|
164
|
+
Map each result to `REQ-NNN:AC-N`:
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
FOR each REQ:
|
|
168
|
+
FOR each AC:
|
|
169
|
+
ac_status = "passed" if ALL scenarios passed
|
|
170
|
+
"failed" if ANY failed
|
|
171
|
+
"blocked" if ANY blocked (none failed)
|
|
172
|
+
"untested" if no scenarios mapped
|
|
173
|
+
verdict = "verified" if all MUST+SHOULD passed
|
|
174
|
+
"partial" if some failed
|
|
175
|
+
"unverified" if all failed/untested
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Step 8: Generate Reports
|
|
179
|
+
|
|
180
|
+
1. Archive previous report/summary to `.history/`
|
|
181
|
+
2. Write `.tests/business/business-test-report.json` with:
|
|
182
|
+
- `layers`: per-layer stats (total, passed, failed, blocked, pass_rate)
|
|
183
|
+
- `requirement_coverage`: per-REQ criteria results with failure details
|
|
184
|
+
- `failures`: each with req_ref, severity, expected/actual, fix_suggestion
|
|
185
|
+
- `summary`: total_requirements, fully_verified, partially_verified, unverified, coverage_pct
|
|
186
|
+
3. Write `.tests/business/business-test-summary.md` (human-readable tables)
|
|
187
|
+
4. Update `index.json` with `business_test` section
|
|
188
|
+
|
|
189
|
+
### Step 9: Feedback Loop
|
|
190
|
+
|
|
191
|
+
1. Auto-create issues from failures in `.workflow/issues/issues.jsonl` (each with `req_ref`, `source: "business-test"`)
|
|
192
|
+
2. Report results
|
|
193
|
+
3. Route next step:
|
|
194
|
+
|
|
195
|
+
| Result | Suggestion |
|
|
196
|
+
|--------|------------|
|
|
197
|
+
| All requirements verified | Skill({ skill: "maestro-phase-transition", args: "{phase}" }) |
|
|
198
|
+
| Failures found | Skill({ skill: "quality-debug", args: "--from-business-test {phase}" }) |
|
|
199
|
+
| `--re-run` all pass | Skill({ skill: "maestro-verify", args: "{phase}" }) |
|
|
200
|
+
| Low coverage (< 60%) | Skill({ skill: "quality-test-gen", args: "{phase}" }) |
|
|
201
|
+
|
|
202
|
+
**Closure criteria**: Requirement marked "verified" ONLY when ALL MUST+SHOULD acceptance criteria pass.
|
|
203
|
+
</execution>
|
|
204
|
+
|
|
205
|
+
<error_codes>
|
|
206
|
+
| Code | Severity | Condition | Recovery |
|
|
207
|
+
|------|----------|-----------|----------|
|
|
208
|
+
| E001 | error | Phase number required | Prompt user for phase number |
|
|
209
|
+
| E002 | error | Phase directory not found | Verify phase exists in .workflow/phases/ |
|
|
210
|
+
| E003 | error | No spec package AND no success_criteria | Run maestro-spec-generate or maestro-plan first |
|
|
211
|
+
| E004 | error | L1 critical failures block L2/L3 | Fix blockers via quality-debug |
|
|
212
|
+
| W001 | warning | Degraded mode (no spec package) | Consider running maestro-spec-generate |
|
|
213
|
+
| W002 | warning | Some REQs have no testable AC | Note in report |
|
|
214
|
+
| W003 | warning | Generator-Critic loop exhausted | Accept current state |
|
|
215
|
+
| W004 | warning | Mock services unavailable for L3 | Skip L3 or use --gen-code |
|
|
216
|
+
</error_codes>
|
|
217
|
+
|
|
218
|
+
<success_criteria>
|
|
219
|
+
- [ ] Phase resolved and spec package loaded (or degraded mode activated)
|
|
220
|
+
- [ ] Business test scenarios extracted from PRD acceptance criteria
|
|
221
|
+
- [ ] Fixtures generated for all layers
|
|
222
|
+
- [ ] Test plan written and confirmed (or --auto/--dry-run)
|
|
223
|
+
- [ ] Tests executed progressively L1 -> L2 -> L3 with fail-fast
|
|
224
|
+
- [ ] Traceability matrix maps every result to REQ-NNN:AC-N
|
|
225
|
+
- [ ] Reports generated (JSON + summary markdown)
|
|
226
|
+
- [ ] Issues auto-created for all failures
|
|
227
|
+
- [ ] Next step suggested based on results
|
|
228
|
+
</success_criteria>
|