maestro-flow 0.3.37 → 0.3.39
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-analyzer.md +2 -0
- package/.claude/agents/workflow-debugger.md +2 -0
- package/.claude/agents/workflow-executor.md +2 -0
- package/.claude/agents/workflow-integration-checker.md +1 -0
- package/.claude/agents/workflow-nyquist-auditor.md +1 -0
- package/.claude/agents/workflow-planner.md +2 -0
- package/.claude/agents/workflow-reviewer.md +2 -0
- package/.claude/agents/workflow-verifier.md +2 -0
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-investigate.md +221 -221
- package/.claude/commands/learn-retro.md +303 -303
- package/.claude/commands/learn-second-opinion.md +167 -167
- package/.claude/commands/maestro-amend.md +300 -300
- package/.claude/commands/maestro-analyze.md +126 -126
- package/.claude/commands/maestro-brainstorm.md +100 -100
- package/.claude/commands/maestro-composer.md +354 -354
- package/.claude/commands/maestro-execute.md +120 -114
- package/.claude/commands/maestro-fork.md +86 -86
- package/.claude/commands/maestro-init.md +78 -78
- package/.claude/commands/maestro-learn.md +140 -140
- package/.claude/commands/maestro-link-coordinate.md +1 -1
- package/.claude/commands/maestro-merge.md +61 -61
- package/.claude/commands/maestro-milestone-release.md +96 -96
- package/.claude/commands/maestro-overlay.md +178 -178
- package/.claude/commands/maestro-plan.md +150 -138
- package/.claude/commands/maestro-player.md +404 -404
- package/.claude/commands/maestro-quick.md +56 -56
- package/.claude/commands/maestro-ralph-execute.md +7 -18
- package/.claude/commands/maestro-ralph.md +9 -3
- package/.claude/commands/maestro-roadmap.md +1 -1
- package/.claude/commands/maestro-ui-design.md +93 -93
- package/.claude/commands/maestro-update.md +176 -176
- package/.claude/commands/maestro-verify.md +96 -90
- package/.claude/commands/maestro.md +121 -121
- package/.claude/commands/manage-codebase-rebuild.md +75 -75
- package/.claude/commands/manage-codebase-refresh.md +57 -57
- package/.claude/commands/manage-harvest.md +94 -94
- package/.claude/commands/manage-issue-discover.md +77 -77
- package/.claude/commands/manage-issue.md +73 -73
- package/.claude/commands/manage-knowhow-capture.md +193 -193
- package/.claude/commands/manage-knowhow.md +77 -77
- package/.claude/commands/manage-learn.md +67 -67
- package/.claude/commands/manage-status.md +51 -51
- package/.claude/commands/manage-wiki.md +62 -62
- package/.claude/commands/quality-auto-test.md +1 -1
- package/.claude/commands/quality-debug.md +121 -115
- package/.claude/commands/quality-refactor.md +55 -55
- package/.claude/commands/quality-retrospective.md +78 -78
- package/.claude/commands/quality-review.md +114 -108
- package/.claude/commands/quality-sync.md +51 -51
- package/.claude/commands/quality-test.md +103 -103
- package/.claude/commands/spec-add.md +49 -49
- package/.claude/commands/spec-load.md +51 -51
- package/.claude/commands/spec-remove.md +51 -51
- package/.claude/commands/spec-setup.md +51 -51
- package/.claude/commands/wiki-connect.md +62 -62
- package/.claude/commands/wiki-digest.md +69 -69
- package/.codex/skills/learn-decompose/SKILL.md +113 -113
- package/.codex/skills/learn-follow/SKILL.md +1 -1
- package/.codex/skills/learn-investigate/SKILL.md +83 -83
- package/.codex/skills/learn-retro/SKILL.md +83 -83
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -86
- package/.codex/skills/maestro/SKILL.md +304 -304
- package/.codex/skills/maestro-analyze/SKILL.md +9 -8
- package/.codex/skills/maestro-brainstorm/SKILL.md +442 -397
- package/.codex/skills/maestro-composer/SKILL.md +213 -213
- package/.codex/skills/maestro-execute/SKILL.md +346 -318
- package/.codex/skills/maestro-fork/SKILL.md +56 -2
- package/.codex/skills/maestro-init/SKILL.md +40 -16
- package/.codex/skills/maestro-learn/SKILL.md +80 -80
- package/.codex/skills/maestro-link-coordinate/SKILL.md +257 -257
- package/.codex/skills/maestro-merge/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-audit/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-complete/SKILL.md +40 -9
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -70
- package/.codex/skills/maestro-overlay/SKILL.md +1 -1
- package/.codex/skills/maestro-plan/SKILL.md +19 -4
- package/.codex/skills/maestro-player/SKILL.md +323 -323
- package/.codex/skills/maestro-quick/SKILL.md +1 -1
- package/.codex/skills/maestro-ralph/SKILL.md +681 -578
- package/.codex/skills/maestro-roadmap/SKILL.md +518 -468
- package/.codex/skills/maestro-ui-design/SKILL.md +109 -12
- package/.codex/skills/maestro-verify/SKILL.md +27 -9
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +3 -2
- package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
- package/.codex/skills/manage-harvest/SKILL.md +91 -91
- package/.codex/skills/manage-issue/SKILL.md +19 -6
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +95 -95
- package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -110
- package/.codex/skills/manage-learn/SKILL.md +1 -1
- package/.codex/skills/manage-status/SKILL.md +1 -1
- package/.codex/skills/manage-wiki/SKILL.md +55 -55
- package/.codex/skills/quality-auto-test/SKILL.md +547 -547
- package/.codex/skills/quality-debug/SKILL.md +339 -334
- package/.codex/skills/quality-refactor/SKILL.md +1 -1
- package/.codex/skills/quality-retrospective/SKILL.md +292 -292
- package/.codex/skills/quality-review/SKILL.md +365 -364
- package/.codex/skills/quality-sync/SKILL.md +1 -1
- package/.codex/skills/quality-test/SKILL.md +498 -498
- package/.codex/skills/spec-add/SKILL.md +101 -101
- package/.codex/skills/spec-load/SKILL.md +77 -77
- package/.codex/skills/spec-map/SKILL.md +1 -1
- package/.codex/skills/spec-remove/SKILL.md +69 -69
- package/.codex/skills/spec-setup/SKILL.md +1 -1
- package/.codex/skills/team-coordinate/SKILL.md +2 -1
- package/.codex/skills/team-executor/SKILL.md +116 -115
- package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -1
- package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +14 -6
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +16 -4
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +7 -1
- package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +16 -4
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +8 -2
- package/.codex/skills/team-quality-assurance/SKILL.md +2 -1
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +9 -2
- package/.codex/skills/team-review/SKILL.md +2 -1
- package/.codex/skills/team-review/roles/reviewer/role.md +10 -1
- package/.codex/skills/team-review/roles/scanner/role.md +10 -1
- package/.codex/skills/team-tech-debt/SKILL.md +144 -143
- package/.codex/skills/team-tech-debt/roles/executor/role.md +9 -5
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +10 -0
- package/.codex/skills/team-tech-debt/roles/validator/role.md +8 -2
- package/.codex/skills/team-testing/SKILL.md +2 -1
- package/.codex/skills/team-testing/roles/executor/role.md +8 -2
- package/.codex/skills/team-testing/roles/generator/role.md +8 -2
- package/.codex/skills/wiki-connect/SKILL.md +73 -73
- package/.codex/skills/wiki-digest/SKILL.md +87 -87
- package/README.md +6 -0
- package/README.zh-CN.md +6 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +4 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +118 -7
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.d.ts +2 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js +4 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js.map +1 -1
- package/dashboard/dist-server/src/commands/delegate.d.ts +2 -0
- package/dashboard/dist-server/src/commands/delegate.js +18 -0
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dashboard/dist-server/src/config/cli-tools-config.d.ts +6 -0
- package/dashboard/dist-server/src/config/cli-tools-config.js +2 -0
- package/dashboard/dist-server/src/config/cli-tools-config.js.map +1 -1
- package/dist/shared/agent-types.d.ts +2 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts +2 -0
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +4 -0
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +29 -1
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/delegate.d.ts +2 -0
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +18 -0
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/launcher.d.ts.map +1 -1
- package/dist/src/commands/launcher.js +27 -4
- package/dist/src/commands/launcher.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts +6 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +2 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js +65 -5
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/dist/src/core/overlay/loader.d.ts.map +1 -1
- package/dist/src/core/overlay/loader.js +9 -4
- package/dist/src/core/overlay/loader.js.map +1 -1
- package/dist/src/core/overlay/types.d.ts +2 -0
- package/dist/src/core/overlay/types.d.ts.map +1 -1
- package/dist/src/core/overlay/types.js +2 -0
- package/dist/src/core/overlay/types.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.js +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.js +51 -4
- package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -1
- package/package.json +1 -1
- package/shared/agent-types.ts +2 -0
- package/workflows/delegate-protocol.codex.md +65 -0
- package/workflows/issue-analyze.md +2 -3
- package/workflows/issue-gaps-analyze.codex.md +260 -0
- package/workflows/issue-gaps-analyze.md +214 -0
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: quality-test
|
|
3
|
-
description: Conversational UAT with
|
|
4
|
-
argument-hint: "[phase] [--smoke] [--auto-fix]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- Agent
|
|
13
|
-
- AskUserQuestion
|
|
14
|
-
---
|
|
15
|
-
<purpose>
|
|
16
|
-
Run UAT-style conversational testing for a completed phase. Designs test scenarios from verification criteria, walks through each scenario interactively one at a time with plain text responses, and records pass/fail results with severity inference.
|
|
17
|
-
|
|
18
|
-
When issues are found, spawns parallel debug agents (one per gap cluster) to diagnose root causes, then optionally triggers the gap-fix loop (plan --gaps -> execute -> re-verify) to auto-close gaps.
|
|
19
|
-
|
|
20
|
-
Key mechanisms from GSD verify-work:
|
|
21
|
-
- **Session persistence**: uat.md survives context resets, resume from any point
|
|
22
|
-
- **Severity inference**: Natural language -> blocker/major/minor/cosmetic (never ask)
|
|
23
|
-
- **Cold-start smoke tests**: --smoke flag injects basic sanity tests before UAT
|
|
24
|
-
- **Parallel auto-diagnosis**: Spawn debug agents per gap cluster with pre-filled symptoms
|
|
25
|
-
- **Gap-plan closure loop**: --auto-fix triggers verify -> plan --gaps -> execute -> re-verify
|
|
26
|
-
</purpose>
|
|
27
|
-
|
|
28
|
-
<required_reading>
|
|
29
|
-
@~/.maestro/workflows/test.md
|
|
30
|
-
</required_reading>
|
|
31
|
-
|
|
32
|
-
<context>
|
|
33
|
-
Phase or task: $ARGUMENTS (optional)
|
|
34
|
-
|
|
35
|
-
Flags, artifact context resolution, and output directory format defined in workflow test.md.
|
|
36
|
-
</context>
|
|
37
|
-
|
|
38
|
-
<execution>
|
|
39
|
-
Follow '~/.maestro/workflows/test.md' completely.
|
|
40
|
-
|
|
41
|
-
**Command-specific extensions (not in workflow):**
|
|
42
|
-
|
|
43
|
-
**Review findings integration** (from related review artifacts):
|
|
44
|
-
- Extract critical/high findings as additional test scenarios, marked `source: "review_finding"`
|
|
45
|
-
- When review verdict is "BLOCK" and review-finding tests fail, auto-enter gap-fix loop
|
|
46
|
-
|
|
47
|
-
**Debug root cause integration** (from related debug artifacts):
|
|
48
|
-
- Generate regression test scenarios from confirmed root causes, marked `source: "debug_root_cause"`
|
|
49
|
-
|
|
50
|
-
**Register artifact on completion:**
|
|
51
|
-
```
|
|
52
|
-
Append to state.json.artifacts[]:
|
|
53
|
-
{
|
|
54
|
-
id: nextArtifactId(artifacts, "test"), // TST-001
|
|
55
|
-
type: "test",
|
|
56
|
-
milestone: current_milestone,
|
|
57
|
-
phase: target_phase,
|
|
58
|
-
scope: "phase",
|
|
59
|
-
path: "scratch/{YYYYMMDD}-test-P{N}-{slug}",
|
|
60
|
-
status: issues == 0 ? "completed" : "failed",
|
|
61
|
-
depends_on: exec_art.id,
|
|
62
|
-
harvested: false,
|
|
63
|
-
created_at: start_time,
|
|
64
|
-
completed_at: now()
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**Next-step routing on completion:**
|
|
69
|
-
- All tests pass → `/maestro-milestone-audit`
|
|
70
|
-
- Issues found, --auto-fix ran and succeeded → `/maestro-verify {phase}`
|
|
71
|
-
- Issues found, --auto-fix ran but gaps remain → `/quality-debug --from-uat {phase}`
|
|
72
|
-
- Issues found, manual fix needed → `/quality-debug --from-uat {phase}`
|
|
73
|
-
- Coverage below threshold → `/quality-auto-test {phase}`
|
|
74
|
-
- Need integration tests → `/quality-auto-test {phase}`
|
|
75
|
-
</execution>
|
|
76
|
-
|
|
77
|
-
<error_codes>
|
|
78
|
-
| Code | Severity | Condition | Recovery |
|
|
79
|
-
|------|----------|-----------|----------|
|
|
80
|
-
| E001 | error | Phase or task target required (no active sessions) | Prompt user for phase number |
|
|
81
|
-
| E002 | error | Phase not verified yet (no verification.json) | Suggest `/maestro-verify` first |
|
|
82
|
-
| E003 | error | Smoke test failed (app won't start) | Suggest `/quality-debug` |
|
|
83
|
-
| W001 | warning | One or more test scenarios failed | Auto-diagnose, suggest fix options |
|
|
84
|
-
| W002 | warning | Coverage below threshold | Suggest `/quality-auto-test` |
|
|
85
|
-
</error_codes>
|
|
86
|
-
|
|
87
|
-
<success_criteria>
|
|
88
|
-
- [ ] Target resolved (phase or scratch task)
|
|
89
|
-
- [ ] Active sessions checked, resume offered if applicable
|
|
90
|
-
- [ ] Smoke tests run if --smoke flag set
|
|
91
|
-
- [ ] test-plan.json generated with categorized tests mapped to requirements
|
|
92
|
-
- [ ] uat.md created/resumed with all tests
|
|
93
|
-
- [ ] Tests presented one at a time with expected behavior
|
|
94
|
-
- [ ] User responses processed as pass/issue/skip
|
|
95
|
-
- [ ] Severity inferred from natural language (never asked)
|
|
96
|
-
- [ ] Batched writes: on issue, every 5 passes, or completion
|
|
97
|
-
- [ ] test-results.json and coverage-report.json written
|
|
98
|
-
- [ ] index.json uat fields updated
|
|
99
|
-
- [ ] If issues: parallel debug agents spawned per gap cluster
|
|
100
|
-
- [ ] Gaps updated with root_cause, fix_direction, affected_files
|
|
101
|
-
- [ ] Gap-fix loop triggered if --auto-fix (max 2 iterations)
|
|
102
|
-
- [ ] Next step routed (phase-transition if pass, verify if auto-fix success, debug --from-uat if issues, test-gen if low coverage)
|
|
103
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: quality-test
|
|
3
|
+
description: Conversational UAT with auto-diagnosis and gap closure
|
|
4
|
+
argument-hint: "[phase] [--smoke] [--auto-fix]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Agent
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
---
|
|
15
|
+
<purpose>
|
|
16
|
+
Run UAT-style conversational testing for a completed phase. Designs test scenarios from verification criteria, walks through each scenario interactively one at a time with plain text responses, and records pass/fail results with severity inference.
|
|
17
|
+
|
|
18
|
+
When issues are found, spawns parallel debug agents (one per gap cluster) to diagnose root causes, then optionally triggers the gap-fix loop (plan --gaps -> execute -> re-verify) to auto-close gaps.
|
|
19
|
+
|
|
20
|
+
Key mechanisms from GSD verify-work:
|
|
21
|
+
- **Session persistence**: uat.md survives context resets, resume from any point
|
|
22
|
+
- **Severity inference**: Natural language -> blocker/major/minor/cosmetic (never ask)
|
|
23
|
+
- **Cold-start smoke tests**: --smoke flag injects basic sanity tests before UAT
|
|
24
|
+
- **Parallel auto-diagnosis**: Spawn debug agents per gap cluster with pre-filled symptoms
|
|
25
|
+
- **Gap-plan closure loop**: --auto-fix triggers verify -> plan --gaps -> execute -> re-verify
|
|
26
|
+
</purpose>
|
|
27
|
+
|
|
28
|
+
<required_reading>
|
|
29
|
+
@~/.maestro/workflows/test.md
|
|
30
|
+
</required_reading>
|
|
31
|
+
|
|
32
|
+
<context>
|
|
33
|
+
Phase or task: $ARGUMENTS (optional)
|
|
34
|
+
|
|
35
|
+
Flags, artifact context resolution, and output directory format defined in workflow test.md.
|
|
36
|
+
</context>
|
|
37
|
+
|
|
38
|
+
<execution>
|
|
39
|
+
Follow '~/.maestro/workflows/test.md' completely.
|
|
40
|
+
|
|
41
|
+
**Command-specific extensions (not in workflow):**
|
|
42
|
+
|
|
43
|
+
**Review findings integration** (from related review artifacts):
|
|
44
|
+
- Extract critical/high findings as additional test scenarios, marked `source: "review_finding"`
|
|
45
|
+
- When review verdict is "BLOCK" and review-finding tests fail, auto-enter gap-fix loop
|
|
46
|
+
|
|
47
|
+
**Debug root cause integration** (from related debug artifacts):
|
|
48
|
+
- Generate regression test scenarios from confirmed root causes, marked `source: "debug_root_cause"`
|
|
49
|
+
|
|
50
|
+
**Register artifact on completion:**
|
|
51
|
+
```
|
|
52
|
+
Append to state.json.artifacts[]:
|
|
53
|
+
{
|
|
54
|
+
id: nextArtifactId(artifacts, "test"), // TST-001
|
|
55
|
+
type: "test",
|
|
56
|
+
milestone: current_milestone,
|
|
57
|
+
phase: target_phase,
|
|
58
|
+
scope: "phase",
|
|
59
|
+
path: "scratch/{YYYYMMDD}-test-P{N}-{slug}",
|
|
60
|
+
status: issues == 0 ? "completed" : "failed",
|
|
61
|
+
depends_on: exec_art.id,
|
|
62
|
+
harvested: false,
|
|
63
|
+
created_at: start_time,
|
|
64
|
+
completed_at: now()
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Next-step routing on completion:**
|
|
69
|
+
- All tests pass → `/maestro-milestone-audit`
|
|
70
|
+
- Issues found, --auto-fix ran and succeeded → `/maestro-verify {phase}`
|
|
71
|
+
- Issues found, --auto-fix ran but gaps remain → `/quality-debug --from-uat {phase}`
|
|
72
|
+
- Issues found, manual fix needed → `/quality-debug --from-uat {phase}`
|
|
73
|
+
- Coverage below threshold → `/quality-auto-test {phase}`
|
|
74
|
+
- Need integration tests → `/quality-auto-test {phase}`
|
|
75
|
+
</execution>
|
|
76
|
+
|
|
77
|
+
<error_codes>
|
|
78
|
+
| Code | Severity | Condition | Recovery |
|
|
79
|
+
|------|----------|-----------|----------|
|
|
80
|
+
| E001 | error | Phase or task target required (no active sessions) | Prompt user for phase number |
|
|
81
|
+
| E002 | error | Phase not verified yet (no verification.json) | Suggest `/maestro-verify` first |
|
|
82
|
+
| E003 | error | Smoke test failed (app won't start) | Suggest `/quality-debug` |
|
|
83
|
+
| W001 | warning | One or more test scenarios failed | Auto-diagnose, suggest fix options |
|
|
84
|
+
| W002 | warning | Coverage below threshold | Suggest `/quality-auto-test` |
|
|
85
|
+
</error_codes>
|
|
86
|
+
|
|
87
|
+
<success_criteria>
|
|
88
|
+
- [ ] Target resolved (phase or scratch task)
|
|
89
|
+
- [ ] Active sessions checked, resume offered if applicable
|
|
90
|
+
- [ ] Smoke tests run if --smoke flag set
|
|
91
|
+
- [ ] test-plan.json generated with categorized tests mapped to requirements
|
|
92
|
+
- [ ] uat.md created/resumed with all tests
|
|
93
|
+
- [ ] Tests presented one at a time with expected behavior
|
|
94
|
+
- [ ] User responses processed as pass/issue/skip
|
|
95
|
+
- [ ] Severity inferred from natural language (never asked)
|
|
96
|
+
- [ ] Batched writes: on issue, every 5 passes, or completion
|
|
97
|
+
- [ ] test-results.json and coverage-report.json written
|
|
98
|
+
- [ ] index.json uat fields updated
|
|
99
|
+
- [ ] If issues: parallel debug agents spawned per gap cluster
|
|
100
|
+
- [ ] Gaps updated with root_cause, fix_direction, affected_files
|
|
101
|
+
- [ ] Gap-fix loop triggered if --auto-fix (max 2 iterations)
|
|
102
|
+
- [ ] Next step routed (phase-transition if pass, verify if auto-fix success, debug --from-uat if issues, test-gen if low coverage)
|
|
103
|
+
</success_criteria>
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec-add
|
|
3
|
-
description: Add
|
|
4
|
-
argument-hint: "[--scope project|global|team|personal] <category> <content>"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
---
|
|
12
|
-
<purpose>
|
|
13
|
-
Add a knowledge entry to the specs system using `<spec-entry>` closed-tag format.
|
|
14
|
-
Each category maps 1:1 to a single target file — no dual-write.
|
|
15
|
-
Supports 4 scopes: project (default), global, team, personal.
|
|
16
|
-
</purpose>
|
|
17
|
-
|
|
18
|
-
<required_reading>
|
|
19
|
-
@~/.maestro/workflows/specs-add.md
|
|
20
|
-
</required_reading>
|
|
21
|
-
|
|
22
|
-
<context>
|
|
23
|
-
$ARGUMENTS -- expects `[--scope <scope>] [--uid <uid>] <category> <content>`
|
|
24
|
-
|
|
25
|
-
Scope-to-directory mapping, category-to-file mapping, and entry format defined in workflow specs-add.md.
|
|
26
|
-
</context>
|
|
27
|
-
|
|
28
|
-
<execution>
|
|
29
|
-
Follow '~/.maestro/workflows/specs-add.md' completely.
|
|
30
|
-
</execution>
|
|
31
|
-
|
|
32
|
-
<error_codes>
|
|
33
|
-
| Code | Severity | Description | Stage |
|
|
34
|
-
|------|----------|-------------|-------|
|
|
35
|
-
| E001 | fatal | Category and content are both required | parse_input |
|
|
36
|
-
| E002 | fatal | Specs directory not initialized -- run `maestro spec init --scope <scope>` | validate_entry |
|
|
37
|
-
| E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning | parse_input |
|
|
38
|
-
| E004 | fatal | Invalid scope -- must be one of: project, global, team, personal | parse_input |
|
|
39
|
-
| E005 | fatal | Personal scope requires uid -- use `--uid` or run `maestro collab join` first | parse_input |
|
|
40
|
-
</error_codes>
|
|
41
|
-
|
|
42
|
-
<success_criteria>
|
|
43
|
-
- [ ] Scope and category parsed and validated
|
|
44
|
-
- [ ] Keywords auto-extracted from content (3-5 relevant terms)
|
|
45
|
-
- [ ] Entry written in `<spec-entry>` closed-tag format
|
|
46
|
-
- [ ] Entry appended to correct target file for scope
|
|
47
|
-
- [ ] Confirmation report displayed with scope, path, keywords
|
|
48
|
-
- [ ] Next step: `maestro spec load --scope <scope> --keyword {keyword}` to verify
|
|
49
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: spec-add
|
|
3
|
+
description: Add spec entry by category
|
|
4
|
+
argument-hint: "[--scope project|global|team|personal] <category> <content>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
---
|
|
12
|
+
<purpose>
|
|
13
|
+
Add a knowledge entry to the specs system using `<spec-entry>` closed-tag format.
|
|
14
|
+
Each category maps 1:1 to a single target file — no dual-write.
|
|
15
|
+
Supports 4 scopes: project (default), global, team, personal.
|
|
16
|
+
</purpose>
|
|
17
|
+
|
|
18
|
+
<required_reading>
|
|
19
|
+
@~/.maestro/workflows/specs-add.md
|
|
20
|
+
</required_reading>
|
|
21
|
+
|
|
22
|
+
<context>
|
|
23
|
+
$ARGUMENTS -- expects `[--scope <scope>] [--uid <uid>] <category> <content>`
|
|
24
|
+
|
|
25
|
+
Scope-to-directory mapping, category-to-file mapping, and entry format defined in workflow specs-add.md.
|
|
26
|
+
</context>
|
|
27
|
+
|
|
28
|
+
<execution>
|
|
29
|
+
Follow '~/.maestro/workflows/specs-add.md' completely.
|
|
30
|
+
</execution>
|
|
31
|
+
|
|
32
|
+
<error_codes>
|
|
33
|
+
| Code | Severity | Description | Stage |
|
|
34
|
+
|------|----------|-------------|-------|
|
|
35
|
+
| E001 | fatal | Category and content are both required | parse_input |
|
|
36
|
+
| E002 | fatal | Specs directory not initialized -- run `maestro spec init --scope <scope>` | validate_entry |
|
|
37
|
+
| E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning | parse_input |
|
|
38
|
+
| E004 | fatal | Invalid scope -- must be one of: project, global, team, personal | parse_input |
|
|
39
|
+
| E005 | fatal | Personal scope requires uid -- use `--uid` or run `maestro collab join` first | parse_input |
|
|
40
|
+
</error_codes>
|
|
41
|
+
|
|
42
|
+
<success_criteria>
|
|
43
|
+
- [ ] Scope and category parsed and validated
|
|
44
|
+
- [ ] Keywords auto-extracted from content (3-5 relevant terms)
|
|
45
|
+
- [ ] Entry written in `<spec-entry>` closed-tag format
|
|
46
|
+
- [ ] Entry appended to correct target file for scope
|
|
47
|
+
- [ ] Confirmation report displayed with scope, path, keywords
|
|
48
|
+
- [ ] Next step: `maestro spec load --scope <scope> --keyword {keyword}` to verify
|
|
49
|
+
</success_criteria>
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec-load
|
|
3
|
-
description: Load
|
|
4
|
-
argument-hint: "[--category <type>] [--keyword <word>] [--with-lessons]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Bash
|
|
8
|
-
- Glob
|
|
9
|
-
- Grep
|
|
10
|
-
---
|
|
11
|
-
<purpose>
|
|
12
|
-
Load and display relevant spec files for the current working context.
|
|
13
|
-
Supports filtering by category (file-level) and keyword (entry-level via `<spec-entry>` tags).
|
|
14
|
-
</purpose>
|
|
15
|
-
|
|
16
|
-
<required_reading>
|
|
17
|
-
@~/.maestro/workflows/specs-load.md
|
|
18
|
-
</required_reading>
|
|
19
|
-
|
|
20
|
-
<context>
|
|
21
|
-
$ARGUMENTS -- optional flags and keyword
|
|
22
|
-
|
|
23
|
-
Category-to-file mapping (1:1) and flag details defined in workflow specs-load.md.
|
|
24
|
-
|
|
25
|
-
**Examples:**
|
|
26
|
-
```
|
|
27
|
-
/spec-load --keyword auth
|
|
28
|
-
/spec-load --category coding --keyword naming
|
|
29
|
-
/spec-load --category arch
|
|
30
|
-
```
|
|
31
|
-
</context>
|
|
32
|
-
|
|
33
|
-
<execution>
|
|
34
|
-
Follow '~/.maestro/workflows/specs-load.md' completely.
|
|
35
|
-
</execution>
|
|
36
|
-
|
|
37
|
-
<error_codes>
|
|
38
|
-
| Code | Severity | Description | Stage |
|
|
39
|
-
|------|----------|-------------|-------|
|
|
40
|
-
| E001 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | detect_context |
|
|
41
|
-
| W001 | warning | No matching specs found for keyword -- showing all specs in category instead | load_specs |
|
|
42
|
-
</error_codes>
|
|
43
|
-
|
|
44
|
-
<success_criteria>
|
|
45
|
-
- [ ] Category and/or keyword parsed from arguments
|
|
46
|
-
- [ ] Spec files loaded per category mapping
|
|
47
|
-
- [ ] Keyword filtering applied at entry level (via `<spec-entry>` keywords attribute)
|
|
48
|
-
- [ ] Legacy entries filtered by text grep fallback
|
|
49
|
-
- [ ] Results displayed with file:category references
|
|
50
|
-
</success_criteria>
|
|
51
|
-
</output>
|
|
1
|
+
---
|
|
2
|
+
name: spec-load
|
|
3
|
+
description: Load specs and lessons for current context
|
|
4
|
+
argument-hint: "[--category <type>] [--keyword <word>] [--with-lessons]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
---
|
|
11
|
+
<purpose>
|
|
12
|
+
Load and display relevant spec files for the current working context.
|
|
13
|
+
Supports filtering by category (file-level) and keyword (entry-level via `<spec-entry>` tags).
|
|
14
|
+
</purpose>
|
|
15
|
+
|
|
16
|
+
<required_reading>
|
|
17
|
+
@~/.maestro/workflows/specs-load.md
|
|
18
|
+
</required_reading>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
$ARGUMENTS -- optional flags and keyword
|
|
22
|
+
|
|
23
|
+
Category-to-file mapping (1:1) and flag details defined in workflow specs-load.md.
|
|
24
|
+
|
|
25
|
+
**Examples:**
|
|
26
|
+
```
|
|
27
|
+
/spec-load --keyword auth
|
|
28
|
+
/spec-load --category coding --keyword naming
|
|
29
|
+
/spec-load --category arch
|
|
30
|
+
```
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<execution>
|
|
34
|
+
Follow '~/.maestro/workflows/specs-load.md' completely.
|
|
35
|
+
</execution>
|
|
36
|
+
|
|
37
|
+
<error_codes>
|
|
38
|
+
| Code | Severity | Description | Stage |
|
|
39
|
+
|------|----------|-------------|-------|
|
|
40
|
+
| E001 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | detect_context |
|
|
41
|
+
| W001 | warning | No matching specs found for keyword -- showing all specs in category instead | load_specs |
|
|
42
|
+
</error_codes>
|
|
43
|
+
|
|
44
|
+
<success_criteria>
|
|
45
|
+
- [ ] Category and/or keyword parsed from arguments
|
|
46
|
+
- [ ] Spec files loaded per category mapping
|
|
47
|
+
- [ ] Keyword filtering applied at entry level (via `<spec-entry>` keywords attribute)
|
|
48
|
+
- [ ] Legacy entries filtered by text grep fallback
|
|
49
|
+
- [ ] Results displayed with file:category references
|
|
50
|
+
</success_criteria>
|
|
51
|
+
</output>
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec-remove
|
|
3
|
-
description: Remove
|
|
4
|
-
argument-hint: "<entry-id>"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Remove a `<spec-entry>` from a specs file. Symmetric with `/spec-add`.
|
|
16
|
-
Uses `maestro wiki remove-entry` for atomic removal with index auto-update.
|
|
17
|
-
</purpose>
|
|
18
|
-
|
|
19
|
-
<required_reading>
|
|
20
|
-
@~/.maestro/workflows/specs-remove.md
|
|
21
|
-
</required_reading>
|
|
22
|
-
|
|
23
|
-
<context>
|
|
24
|
-
$ARGUMENTS -- expects `<entry-id>` (e.g., `spec-learnings-003`, `spec-coding-conventions-001`)
|
|
25
|
-
|
|
26
|
-
**Entry ID format**: `spec-{file-stem}-{NNN}` — the sub-node ID assigned by WikiIndexer when indexing `<spec-entry>` blocks.
|
|
27
|
-
|
|
28
|
-
**Discovery**: Use `maestro wiki list --type spec --json` or `/spec-load --keyword <term>` to find entry IDs.
|
|
29
|
-
</context>
|
|
30
|
-
|
|
31
|
-
<execution>
|
|
32
|
-
Follow '~/.maestro/workflows/specs-remove.md' completely.
|
|
33
|
-
</execution>
|
|
34
|
-
|
|
35
|
-
<error_codes>
|
|
36
|
-
| Code | Severity | Description | Stage |
|
|
37
|
-
|------|----------|-------------|-------|
|
|
38
|
-
| E001 | fatal | Entry ID is required -- usage: `/spec-remove <entry-id>` | parse_input |
|
|
39
|
-
| E002 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | validate |
|
|
40
|
-
| E003 | fatal | Entry ID not found in wiki index | lookup |
|
|
41
|
-
| E004 | fatal | Entry is not a spec sub-node (wrong type) | validate |
|
|
42
|
-
</error_codes>
|
|
43
|
-
|
|
44
|
-
<success_criteria>
|
|
45
|
-
- [ ] Entry ID parsed and validated
|
|
46
|
-
- [ ] Entry found in wiki index (type=spec, is sub-node)
|
|
47
|
-
- [ ] User confirmed removal (unless -y flag)
|
|
48
|
-
- [ ] Entry removed from container file via `maestro wiki remove-entry`
|
|
49
|
-
- [ ] Wiki index auto-updated
|
|
50
|
-
- [ ] Confirmation displayed with removed entry details
|
|
51
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: spec-remove
|
|
3
|
+
description: Remove spec entry by ID
|
|
4
|
+
argument-hint: "<entry-id>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
<purpose>
|
|
15
|
+
Remove a `<spec-entry>` from a specs file. Symmetric with `/spec-add`.
|
|
16
|
+
Uses `maestro wiki remove-entry` for atomic removal with index auto-update.
|
|
17
|
+
</purpose>
|
|
18
|
+
|
|
19
|
+
<required_reading>
|
|
20
|
+
@~/.maestro/workflows/specs-remove.md
|
|
21
|
+
</required_reading>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
$ARGUMENTS -- expects `<entry-id>` (e.g., `spec-learnings-003`, `spec-coding-conventions-001`)
|
|
25
|
+
|
|
26
|
+
**Entry ID format**: `spec-{file-stem}-{NNN}` — the sub-node ID assigned by WikiIndexer when indexing `<spec-entry>` blocks.
|
|
27
|
+
|
|
28
|
+
**Discovery**: Use `maestro wiki list --type spec --json` or `/spec-load --keyword <term>` to find entry IDs.
|
|
29
|
+
</context>
|
|
30
|
+
|
|
31
|
+
<execution>
|
|
32
|
+
Follow '~/.maestro/workflows/specs-remove.md' completely.
|
|
33
|
+
</execution>
|
|
34
|
+
|
|
35
|
+
<error_codes>
|
|
36
|
+
| Code | Severity | Description | Stage |
|
|
37
|
+
|------|----------|-------------|-------|
|
|
38
|
+
| E001 | fatal | Entry ID is required -- usage: `/spec-remove <entry-id>` | parse_input |
|
|
39
|
+
| E002 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | validate |
|
|
40
|
+
| E003 | fatal | Entry ID not found in wiki index | lookup |
|
|
41
|
+
| E004 | fatal | Entry is not a spec sub-node (wrong type) | validate |
|
|
42
|
+
</error_codes>
|
|
43
|
+
|
|
44
|
+
<success_criteria>
|
|
45
|
+
- [ ] Entry ID parsed and validated
|
|
46
|
+
- [ ] Entry found in wiki index (type=spec, is sub-node)
|
|
47
|
+
- [ ] User confirmed removal (unless -y flag)
|
|
48
|
+
- [ ] Entry removed from container file via `maestro wiki remove-entry`
|
|
49
|
+
- [ ] Wiki index auto-updated
|
|
50
|
+
- [ ] Confirmation displayed with removed entry details
|
|
51
|
+
</success_criteria>
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec-setup
|
|
3
|
-
description: Initialize
|
|
4
|
-
argument-hint: ""
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
---
|
|
12
|
-
<purpose>
|
|
13
|
-
Initialize the project-level specs directory by scanning the codebase for conventions, patterns, and tech stack.
|
|
14
|
-
Core files (coding, arch, learning) are always created. Optional files (quality, debug, test, review) are created only when relevant signals are detected.
|
|
15
|
-
All output lands in `.workflow/specs/`.
|
|
16
|
-
</purpose>
|
|
17
|
-
|
|
18
|
-
<required_reading>
|
|
19
|
-
@~/.maestro/workflows/specs-setup.md
|
|
20
|
-
</required_reading>
|
|
21
|
-
|
|
22
|
-
<deferred_reading>
|
|
23
|
-
</deferred_reading>
|
|
24
|
-
|
|
25
|
-
<context>
|
|
26
|
-
$ARGUMENTS (no arguments expected)
|
|
27
|
-
|
|
28
|
-
**Preconditions:**
|
|
29
|
-
- `.workflow/` directory must exist (created by `/maestro-init`) # (see code: E001)
|
|
30
|
-
- Project must contain source files to scan # (see code: E002)
|
|
31
|
-
</context>
|
|
32
|
-
|
|
33
|
-
<execution>
|
|
34
|
-
Follow '~/.maestro/workflows/specs-setup.md' completely.
|
|
35
|
-
</execution>
|
|
36
|
-
|
|
37
|
-
<error_codes>
|
|
38
|
-
| Code | Severity | Description | Stage |
|
|
39
|
-
|------|----------|-------------|-------|
|
|
40
|
-
| E001 | fatal | `.workflow/` directory not initialized -- run `/maestro-init` first | parse_input |
|
|
41
|
-
| E002 | fatal | No source files found in project -- nothing to scan | scan_codebase |
|
|
42
|
-
| W001 | warning | Convention detection uncertain for one or more categories -- marked `[UNCERTAIN]` | generate_specs |
|
|
43
|
-
</error_codes>
|
|
44
|
-
|
|
45
|
-
<success_criteria>
|
|
46
|
-
- [ ] `.workflow/specs/` directory created
|
|
47
|
-
- [ ] Core files always created: `coding-conventions.md`, `architecture-constraints.md`, `learnings.md`
|
|
48
|
-
- [ ] Optional files created when detected: `quality-rules.md` (linter/CI), `test-conventions.md` (test framework), `debug-notes.md` (on demand), `review-standards.md` (on demand)
|
|
49
|
-
- [ ] Report displayed with summary and next steps
|
|
50
|
-
</success_criteria>
|
|
51
|
-
</output>
|
|
1
|
+
---
|
|
2
|
+
name: spec-setup
|
|
3
|
+
description: Initialize specs from project structure
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
---
|
|
12
|
+
<purpose>
|
|
13
|
+
Initialize the project-level specs directory by scanning the codebase for conventions, patterns, and tech stack.
|
|
14
|
+
Core files (coding, arch, learning) are always created. Optional files (quality, debug, test, review) are created only when relevant signals are detected.
|
|
15
|
+
All output lands in `.workflow/specs/`.
|
|
16
|
+
</purpose>
|
|
17
|
+
|
|
18
|
+
<required_reading>
|
|
19
|
+
@~/.maestro/workflows/specs-setup.md
|
|
20
|
+
</required_reading>
|
|
21
|
+
|
|
22
|
+
<deferred_reading>
|
|
23
|
+
</deferred_reading>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
$ARGUMENTS (no arguments expected)
|
|
27
|
+
|
|
28
|
+
**Preconditions:**
|
|
29
|
+
- `.workflow/` directory must exist (created by `/maestro-init`) # (see code: E001)
|
|
30
|
+
- Project must contain source files to scan # (see code: E002)
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<execution>
|
|
34
|
+
Follow '~/.maestro/workflows/specs-setup.md' completely.
|
|
35
|
+
</execution>
|
|
36
|
+
|
|
37
|
+
<error_codes>
|
|
38
|
+
| Code | Severity | Description | Stage |
|
|
39
|
+
|------|----------|-------------|-------|
|
|
40
|
+
| E001 | fatal | `.workflow/` directory not initialized -- run `/maestro-init` first | parse_input |
|
|
41
|
+
| E002 | fatal | No source files found in project -- nothing to scan | scan_codebase |
|
|
42
|
+
| W001 | warning | Convention detection uncertain for one or more categories -- marked `[UNCERTAIN]` | generate_specs |
|
|
43
|
+
</error_codes>
|
|
44
|
+
|
|
45
|
+
<success_criteria>
|
|
46
|
+
- [ ] `.workflow/specs/` directory created
|
|
47
|
+
- [ ] Core files always created: `coding-conventions.md`, `architecture-constraints.md`, `learnings.md`
|
|
48
|
+
- [ ] Optional files created when detected: `quality-rules.md` (linter/CI), `test-conventions.md` (test framework), `debug-notes.md` (on demand), `review-standards.md` (on demand)
|
|
49
|
+
- [ ] Report displayed with summary and next steps
|
|
50
|
+
</success_criteria>
|
|
51
|
+
</output>
|