maestro-flow 0.4.12 → 0.4.13
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/.agents/agents/role-design-author.md +6 -4
- package/.agents/skills/learn-decompose/SKILL.md +6 -6
- package/.agents/skills/learn-follow/SKILL.md +4 -4
- package/.agents/skills/learn-investigate/SKILL.md +6 -6
- package/.agents/skills/learn-retro/SKILL.md +7 -7
- package/.agents/skills/learn-second-opinion/SKILL.md +4 -4
- package/.agents/skills/maestro-amend/SKILL.md +1 -0
- package/.agents/skills/maestro-analyze/SKILL.md +10 -3
- package/.agents/skills/maestro-blueprint/SKILL.md +4 -3
- package/.agents/skills/maestro-brainstorm/SKILL.md +5 -4
- package/.agents/skills/maestro-fork/SKILL.md +1 -1
- package/.agents/skills/maestro-guard/SKILL.md +3 -2
- package/.agents/skills/maestro-impeccable/SKILL.md +13 -11
- package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agents/skills/maestro-plan/SKILL.md +3 -1
- package/.agents/skills/maestro-ralph-execute/SKILL.md +4 -3
- package/.agents/skills/maestro-roadmap/SKILL.md +4 -3
- package/.agents/skills/manage-harvest/SKILL.md +1 -0
- package/.agents/skills/manage-issue-discover/SKILL.md +1 -1
- package/.agents/skills/manage-knowhow/SKILL.md +1 -1
- package/.agents/skills/manage-learn/SKILL.md +4 -4
- package/.agents/skills/quality-auto-test/SKILL.md +5 -5
- package/.agents/skills/quality-refactor/SKILL.md +1 -1
- package/.agents/skills/quality-retrospective/SKILL.md +2 -2
- package/.agents/skills/security-audit/SKILL.md +24 -0
- package/.agents/skills/spec-remove/SKILL.md +6 -2
- package/.agy/agents/role-design-author.md +6 -4
- package/.agy/skills/learn-decompose/SKILL.md +6 -6
- package/.agy/skills/learn-follow/SKILL.md +4 -4
- package/.agy/skills/learn-investigate/SKILL.md +6 -6
- package/.agy/skills/learn-retro/SKILL.md +7 -7
- package/.agy/skills/learn-second-opinion/SKILL.md +4 -4
- package/.agy/skills/maestro-amend/SKILL.md +1 -0
- package/.agy/skills/maestro-analyze/SKILL.md +10 -3
- package/.agy/skills/maestro-blueprint/SKILL.md +4 -3
- package/.agy/skills/maestro-brainstorm/SKILL.md +5 -4
- package/.agy/skills/maestro-fork/SKILL.md +1 -1
- package/.agy/skills/maestro-guard/SKILL.md +3 -2
- package/.agy/skills/maestro-impeccable/SKILL.md +13 -11
- package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agy/skills/maestro-plan/SKILL.md +3 -1
- package/.agy/skills/maestro-ralph-execute/SKILL.md +4 -3
- package/.agy/skills/maestro-roadmap/SKILL.md +4 -3
- package/.agy/skills/manage-harvest/SKILL.md +1 -0
- package/.agy/skills/manage-issue-discover/SKILL.md +1 -1
- package/.agy/skills/manage-knowhow/SKILL.md +1 -1
- package/.agy/skills/manage-learn/SKILL.md +4 -4
- package/.agy/skills/quality-auto-test/SKILL.md +5 -5
- package/.agy/skills/quality-refactor/SKILL.md +1 -1
- package/.agy/skills/quality-retrospective/SKILL.md +2 -2
- package/.agy/skills/security-audit/SKILL.md +24 -0
- package/.agy/skills/spec-remove/SKILL.md +6 -2
- package/.claude/agents/role-design-author.md +6 -4
- package/.claude/commands/learn-decompose.md +6 -6
- package/.claude/commands/learn-follow.md +4 -4
- package/.claude/commands/learn-investigate.md +6 -6
- package/.claude/commands/learn-retro.md +7 -7
- package/.claude/commands/learn-second-opinion.md +4 -4
- package/.claude/commands/maestro-amend.md +1 -0
- package/.claude/commands/maestro-analyze.md +10 -3
- package/.claude/commands/maestro-blueprint.md +4 -3
- package/.claude/commands/maestro-brainstorm.md +5 -4
- package/.claude/commands/maestro-fork.md +1 -1
- package/.claude/commands/maestro-guard.md +3 -2
- package/.claude/commands/maestro-impeccable.md +13 -11
- package/.claude/commands/maestro-milestone-release.md +1 -1
- package/.claude/commands/maestro-plan.md +3 -1
- package/.claude/commands/maestro-ralph-execute.md +4 -3
- package/.claude/commands/maestro-roadmap.md +4 -3
- package/.claude/commands/manage-harvest.md +1 -0
- package/.claude/commands/manage-issue-discover.md +1 -1
- package/.claude/commands/manage-knowhow.md +1 -1
- package/.claude/commands/manage-learn.md +4 -4
- package/.claude/commands/quality-auto-test.md +5 -5
- package/.claude/commands/quality-refactor.md +1 -1
- package/.claude/commands/quality-retrospective.md +2 -2
- package/.claude/commands/security-audit.md +24 -0
- package/.claude/commands/spec-remove.md +6 -2
- package/.codex/skills/learn-decompose/SKILL.md +4 -4
- package/.codex/skills/learn-follow/SKILL.md +3 -3
- package/.codex/skills/learn-investigate/SKILL.md +3 -3
- package/.codex/skills/learn-retro/SKILL.md +3 -3
- package/.codex/skills/learn-second-opinion/SKILL.md +3 -3
- package/.codex/skills/maestro-analyze/SKILL.md +4 -3
- package/.codex/skills/maestro-blueprint/SKILL.md +4 -3
- package/.codex/skills/maestro-brainstorm/SKILL.md +148 -7
- package/.codex/skills/maestro-fork/SKILL.md +2 -0
- package/.codex/skills/maestro-guard/SKILL.md +3 -2
- package/.codex/skills/maestro-impeccable/SKILL.md +13 -11
- package/.codex/skills/maestro-ralph/SKILL.md +1 -1
- package/.codex/skills/maestro-roadmap/SKILL.md +4 -3
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +9 -5
- package/.codex/skills/manage-harvest/SKILL.md +1 -1
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +1 -1
- package/.codex/skills/manage-learn/SKILL.md +3 -3
- package/.codex/skills/quality-refactor/SKILL.md +2 -2
- package/.codex/skills/quality-retrospective/SKILL.md +3 -3
- package/.codex/skills/security-audit/SKILL.md +24 -0
- package/.codex/skills/spec-remove/SKILL.md +8 -2
- package/package.json +1 -1
- package/workflows/agy-instructions.md +2 -0
- package/workflows/auto-test.md +6 -1
- package/workflows/brainstorm.md +22 -8
- package/workflows/claude-instructions.md +2 -0
- package/workflows/codex-instructions.md +16 -83
- package/workflows/debug.md +1 -1
- package/workflows/harvest.md +1 -1
- package/workflows/impeccable.md +2 -0
- package/workflows/issue-analyze.md +14 -100
- package/workflows/issue-discover.md +2 -3
- package/workflows/issue-execute.md +1 -1
- package/workflows/issue-gaps-analyze.md +2 -0
- package/workflows/learn.md +1 -1
- package/workflows/maestro-chain-execute.md +10 -228
- package/workflows/maestro.md +1 -0
- package/workflows/milestone-complete.md +3 -3
- package/workflows/milestone-release.md +82 -0
- package/workflows/plan.md +4 -4
- package/workflows/retrospective.md +1 -1
- package/workflows/roadmap.md +1 -1
- package/workflows/spec-generate.md +2 -0
- package/workflows/specs-add.md +6 -1
- package/workflows/specs-load.md +6 -1
- package/workflows/specs-setup.md +6 -1
- package/workflows/sync.md +13 -0
- package/workflows/tools-spec.md +4 -0
- package/workflows/ui-design.md +3 -3
- package/workflows/wiki-manage.md +2 -0
|
@@ -34,14 +34,15 @@ $ARGUMENTS -- requirement/idea text or @file reference, plus optional flags.
|
|
|
34
34
|
<interview_protocol>
|
|
35
35
|
Interview the user relentlessly until shared understanding is reached. Active only in interactive mode; skip when `-y/--yes`, `--revise`, `--review`, `-c`, or input is already specific (clear requirement + mode).
|
|
36
36
|
|
|
37
|
-
- One decision per turn via request_user_input with 2–4 options + a (Recommended) default;
|
|
38
|
-
-
|
|
37
|
+
- One decision per turn via request_user_input with 2–4 options + a (Recommended) default. The user controls termination — keep interviewing until convergence; they can interrupt naturally at any time.
|
|
38
|
+
- Search-first when uncertain: before asking, resolve via `state.json`, existing `roadmap.md`, `project.md`, `maestro spec load`, `maestro wiki search`, Glob/Grep/Read, or — for open-ended multi-file scans — `maestro delegate ... --role explore`. Never ask what code or memory can verify; never bounce your own ambiguity back to the user — search first, then ask only what truly needs human judgment.
|
|
39
|
+
- Writeback cadence: each settled decision is immediately appended/updated in the `Roadmap Decisions` section at the top of `.workflow/roadmap.md` (create the section if absent). Do NOT batch writeback to the end — partial decisions must already be on disk before the next question.
|
|
39
40
|
- Walk the decision dependency tree strictly: mode → requirement scope → decomposition strategy → phase dependencies/order. Do not open the next branch until the current one is settled.
|
|
40
41
|
- Scope guard: only decide the shape of the roadmap. Do not pre-resolve intra-phase task breakdown — that belongs to `plan`.
|
|
41
42
|
|
|
42
43
|
Decision points: scope (MVP / complete / phased) → strategy (progressive / direct / auto) → milestone boundaries → phase dependencies and order.
|
|
43
44
|
|
|
44
|
-
Exit: on consensus or
|
|
45
|
+
Exit: on consensus or explicit user signal to proceed, finalize the `Roadmap Decisions` section (rows already populated incrementally). Schema:
|
|
45
46
|
`| # | Decision | Choice | Source (user / code / default) |`
|
|
46
47
|
</interview_protocol>
|
|
47
48
|
|
|
@@ -81,13 +81,15 @@ When `--yes` or `-y`: Auto-confirm rebuild (implies --force), skip all prompts.
|
|
|
81
81
|
|
|
82
82
|
```csv
|
|
83
83
|
id,title,description,doc_dimension,output_path,deps,context_from,wave
|
|
84
|
-
"1","Component Scanner","Scan all source directories for components: models, services, controllers, utils, types, config, middleware, core modules. For each component extract exported symbols, determine type, record code locations.
|
|
85
|
-
"2","Feature Mapper","Group discovered components by domain/functional area using directory proximity, naming patterns, and import relationships. Map features to requirements if
|
|
86
|
-
"3","Requirement Linker","If
|
|
87
|
-
"4","Tech Registry Writer","For each component discovered,
|
|
88
|
-
"5","Feature Map Writer","For each feature discovered,
|
|
84
|
+
"1","Component Scanner","Scan all source directories for components: models, services, controllers, utils, types, config, middleware, core modules. For each component extract exported symbols, determine type, record code locations. Return JSON array of component entries with id (TC-NNN), name, type, code_locations, symbols via output_schema. Do NOT write files — orchestrator assembles doc-index.json in Phase 3.","components","<ABS_WORKFLOW>/codebase/doc-index.json#components","","","1"
|
|
85
|
+
"2","Feature Mapper","Group discovered components by domain/functional area using directory proximity, naming patterns, and import relationships. Map features to requirements if <ABS_WORKFLOW>/blueprint/ exists. Return JSON array of feature entries with id (FT-NNN), name, status, component_ids, requirement_ids, phase via output_schema. Do NOT write files.","features","<ABS_WORKFLOW>/codebase/doc-index.json#features","","","1"
|
|
86
|
+
"3","Requirement Linker","If <ABS_WORKFLOW>/blueprint/ exists, scan BLP-*/requirements/REQ-*.md files. Parse requirement metadata (title, priority, acceptance_criteria). Match requirements to features by keyword analysis. Also scan for ADR-*.md architecture decisions. Return JSON arrays for requirements and architecture_decisions via output_schema. Do NOT write files.","requirements","<ABS_WORKFLOW>/codebase/doc-index.json#requirements","","","1"
|
|
87
|
+
"4","Tech Registry Writer","For each component discovered, use the Write tool to create a markdown documentation file at <ABS_WORKFLOW>/codebase/tech-registry/{slug}.md with: ID, type, features, code locations, exported symbols, dependencies. Also write <ABS_WORKFLOW>/codebase/tech-registry/_index.md with the component table. After all writes, verify every intended file exists with Glob and return file count + absolute paths via output_schema. MUST use the Write tool — files on disk are the deliverable, do NOT return file content as text.","tech-registry","<ABS_WORKFLOW>/codebase/tech-registry/","","","1"
|
|
88
|
+
"5","Feature Map Writer","For each feature discovered, use the Write tool to create a markdown documentation file at <ABS_WORKFLOW>/codebase/feature-maps/{slug}.md with: ID, status, phase, requirements, component table. Also write <ABS_WORKFLOW>/codebase/feature-maps/_index.md with the feature table. After all writes, verify every intended file exists with Glob and return file count + absolute paths via output_schema. MUST use the Write tool — files on disk are the deliverable, do NOT return file content as text.","feature-maps","<ABS_WORKFLOW>/codebase/feature-maps/","","","1"
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
+
**Path resolution (orchestrator MUST do BEFORE writing tasks.csv)**: substitute `<ABS_WORKFLOW>` with the absolute path to the project's `.workflow/` directory (e.g. `D:/maestro2/.workflow`). Agent Write tool requires absolute paths — passing relative `.workflow/...` literals will fail.
|
|
92
|
+
|
|
91
93
|
**Columns**:
|
|
92
94
|
|
|
93
95
|
| Column | Phase | Description |
|
|
@@ -125,6 +127,8 @@ Single wave generates `wave-1.csv`. No `prev_context` needed (all tasks independ
|
|
|
125
127
|
6. **Single Wave**: All generators are independent, no wave ordering needed
|
|
126
128
|
7. **Cleanup Temp Files**: Remove wave-1.csv after results are merged
|
|
127
129
|
8. **DO NOT STOP**: Execute until all generators complete or fail
|
|
130
|
+
9. **Absolute Paths Only**: All paths in `description` and `output_path` MUST be absolute before tasks.csv is written. Orchestrator substitutes `<ABS_WORKFLOW>` placeholder; never let it leak into a spawned agent's prompt.
|
|
131
|
+
10. **Writer vs Returner Split**: Tasks 1-3 return data via `output_schema` (no file writes). Tasks 4-5 MUST write files via Write tool + verify with Glob. Mixing the two contracts (e.g., returning markdown content as text from tasks 4-5) is a contract violation.
|
|
128
132
|
</invariants>
|
|
129
133
|
|
|
130
134
|
<execution>
|
|
@@ -64,7 +64,7 @@ Follow '~/.maestro/workflows/harvest.md' Stages 1–8 (standard mode) or Stage 9
|
|
|
64
64
|
- Quality enforcement rules → `quality` category
|
|
65
65
|
- Wiki: `maestro wiki create --type <type> --slug harvest-<source_type>-<short_id>`
|
|
66
66
|
- Spec: `maestro wiki append spec-<file> --body "<content>" --keywords "<kws>"` (unified write path) or `Skill({ skill: "spec-add", args: "<category> <content>" })`
|
|
67
|
-
- Issue: append to `issues.jsonl` matching canonical schema
|
|
67
|
+
- Issue: append to `issues.jsonl` matching canonical schema, with `source: "harvest"` field (distinguishes from `manage-issue-discover`, which uses `source: "discover"` — required for cross-skill dedup when both write concurrently)
|
|
68
68
|
|
|
69
69
|
**Next steps:** `/manage-wiki health`, `maestro wiki list --type note`, `/wiki-connect --fix`, `/wiki-digest`, `/manage-issue list --source harvest`
|
|
70
70
|
|
|
@@ -155,7 +155,7 @@ Also writes to:
|
|
|
155
155
|
5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
|
|
156
156
|
6. **Skip on Failure**: If all perspective agents failed, skip dedup
|
|
157
157
|
7. **Evidence Required**: Every finding must have file:line reference -- no speculative issues
|
|
158
|
-
8. **Dedup Before Create**: Never append to issues.jsonl without deduplication
|
|
158
|
+
8. **Dedup Before Create**: Never append to issues.jsonl without deduplication. Every appended record MUST include `source: "discover"` so concurrent writers (e.g. `manage-harvest` uses `source: "harvest"`) can be safely distinguished and deduplicated cross-skill.
|
|
159
159
|
9. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
|
|
160
160
|
10. **DO NOT STOP**: Continuous execution until all waves complete
|
|
161
161
|
</invariants>
|
|
@@ -73,7 +73,7 @@ After write operations, verify:
|
|
|
73
73
|
<error_codes>
|
|
74
74
|
| Code | Severity | Description |
|
|
75
75
|
|------|----------|-------------|
|
|
76
|
-
| E001 | error | No stores found — run `Skill({ skill: "manage-knowhow-capture" })` or create MEMORY.md |
|
|
76
|
+
| E001 | error | No stores found — for workflow store run `Skill({ skill: "manage-knowhow-capture" })`; for system store run `Skill({ skill: "manage-memory-capture" })` or create MEMORY.md |
|
|
77
77
|
| E002 | error | Entry ID or filename not found |
|
|
78
78
|
| E003 | error | Prune requires at least one filter flag |
|
|
79
79
|
| E004 | error | Cannot delete MEMORY.md — use `edit` subcommand instead |
|
|
@@ -6,7 +6,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
9
|
-
Pure file-operation CRUD skill for the workflow knowhow library. No agent spawning, no CLI calls, no LLM inference — just parse-infer-append-confirm. Complements `quality-retrospective`: where retrospective extracts insights in bulk from completed phases, `manage-learn` captures one timeless insight at a time during active work. Both write to the same
|
|
9
|
+
Pure file-operation CRUD skill for the workflow knowhow library. No agent spawning, no CLI calls, no LLM inference — just parse-infer-append-confirm. Complements `quality-retrospective`: where retrospective extracts insights in bulk from completed phases, `manage-learn` captures one timeless insight at a time during active work. Both write to the same `.workflow/specs/learnings.md` store, disambiguated by `source` and `lens` fields.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
Parse Mode → Bootstrap Store → Execute Mode → Confirm
|
|
@@ -94,7 +94,7 @@ Verify `.workflow/` exists (E001 if not). If `.workflow/specs/learnings.md` miss
|
|
|
94
94
|
2. **Auto-link phase** from `state.json` artifact registry. `--phase 0` forces null.
|
|
95
95
|
3. **Generate INS-id**: `INS-{8 hex}` from `hash(insightText + timestamp)`.
|
|
96
96
|
4. **Build row** with fields: id, title (first 80 chars), summary, source="manual", lens=null, category, tags (includes "manual"), phase, phase_slug, confidence, routed_to=null, created_at.
|
|
97
|
-
5. **Append** entry to
|
|
97
|
+
5. **Append** entry to `.workflow/specs/learnings.md` (append-only, never rewrite).
|
|
98
98
|
6. WikiIndexer auto-indexes the new entry (no manual index update needed).
|
|
99
99
|
|
|
100
100
|
#### List Mode
|
|
@@ -129,7 +129,7 @@ Capture mode: display ID, category, phase, confidence, tags, and next-step comma
|
|
|
129
129
|
- [ ] Mode parsed correctly (capture, list, search, show)
|
|
130
130
|
- [ ] Learning store bootstrapped on first use
|
|
131
131
|
- [ ] Capture: category inferred from keywords, phase auto-linked, INS-id generated
|
|
132
|
-
- [ ] Capture: entry appended to specs/learnings.md (append-only)
|
|
132
|
+
- [ ] Capture: entry appended to .workflow/specs/learnings.md (append-only)
|
|
133
133
|
- [ ] List: filters applied, newest-first, respects --limit
|
|
134
134
|
- [ ] Search: grep with weighted ranking across title/tags/summary
|
|
135
135
|
- [ ] Show: full record displayed for valid INS-id
|
|
@@ -223,9 +223,9 @@ Display report: scope, tasks completed/blocked, reflection rounds, strategy adju
|
|
|
223
223
|
| Result | Next Step |
|
|
224
224
|
|--------|-----------|
|
|
225
225
|
| All tests pass, refactoring complete | `$quality-sync` (update codebase docs) |
|
|
226
|
-
| Test failures remain after refactor | `$quality-debug "{scope}"` |
|
|
226
|
+
| Test failures remain after refactor | `$quality-debug "test failures in {scope} after refactor"` (debug expects bug description, not raw scope) |
|
|
227
227
|
| No test suite available for scope | `$quality-auto-test "{phase}"` |
|
|
228
|
-
| Partial completion (some blocked) | `$quality-debug "{scope}"`
|
|
228
|
+
| Partial completion (some blocked) | `$quality-debug "blocked refactor tasks in {scope}: <task titles>"` |
|
|
229
229
|
</execution>
|
|
230
230
|
|
|
231
231
|
<error_codes>
|
|
@@ -8,7 +8,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
|
8
8
|
<purpose>
|
|
9
9
|
Multi-lens retrospective for completed phases. Context-Agent Fork loads phase artifacts once;
|
|
10
10
|
four parallel lens agents (technical, process, quality, decision) analyze independently;
|
|
11
|
-
synthesizer distills insights; outputs are routed to spec stubs, knowhow tips, issues, and specs/learnings.md.
|
|
11
|
+
synthesizer distills insights; outputs are routed to spec stubs, knowhow tips, issues, and .workflow/specs/learnings.md.
|
|
12
12
|
|
|
13
13
|
```
|
|
14
14
|
+------------------------------------------------------------------+
|
|
@@ -132,7 +132,7 @@ Each artifact's type determines its outputs at `.workflow/{a.path}/`:
|
|
|
132
132
|
7. **Archive before overwrite**: Move existing retrospective.{md,json} to `.history/` with timestamp before writing new ones
|
|
133
133
|
8. **Spec learnings.md backward-compat**: Append to it only if it already exists -- never create it
|
|
134
134
|
9. **Route confirmation**: Unless `-y`, present routing table and ask per-group before writing spec/issue/knowhow
|
|
135
|
-
10. **Lessons always written**: Append to
|
|
135
|
+
10. **Lessons always written**: Append to `.workflow/specs/learnings.md` regardless of `--no-route` -- routing only controls spec/issue/knowhow creation
|
|
136
136
|
</invariants>
|
|
137
137
|
|
|
138
138
|
<execution>
|
|
@@ -294,6 +294,6 @@ Next steps: `$manage-status`, `$manage-issue "list --source retrospective"`, `$m
|
|
|
294
294
|
- [ ] Synthesizer produces deduplicated insights with stable INS-ids
|
|
295
295
|
- [ ] Routing applied per insight (spec/issue/knowhow/none) with confirmation
|
|
296
296
|
- [ ] retrospective.{md,json} written to phase directory
|
|
297
|
-
- [ ] Lessons appended to specs/learnings.md regardless of --no-route flag
|
|
297
|
+
- [ ] Lessons appended to .workflow/specs/learnings.md regardless of --no-route flag
|
|
298
298
|
- [ ] Existing retrospective archived before overwrite
|
|
299
299
|
</success_criteria>
|
|
@@ -9,6 +9,10 @@ Systematic security audit covering OWASP Top 10, dependency supply chain, secret
|
|
|
9
9
|
CI/CD pipeline review, and optional STRIDE threat modeling. Three tiers control depth vs speed.
|
|
10
10
|
</purpose>
|
|
11
11
|
|
|
12
|
+
<required_reading>
|
|
13
|
+
@~/.maestro/workflows/review.md
|
|
14
|
+
</required_reading>
|
|
15
|
+
|
|
12
16
|
<context>
|
|
13
17
|
$ARGUMENTS -- Parse tier and scope:
|
|
14
18
|
- Tier: `quick` (default) | `standard` | `deep`
|
|
@@ -142,6 +146,26 @@ CONCERNS: {count} critical findings require immediate action
|
|
|
142
146
|
NEXT: $quality-review
|
|
143
147
|
--- END STATUS ---
|
|
144
148
|
```
|
|
149
|
+
|
|
150
|
+
**Register artifact on completion** (so retrospective/harvest can trace this audit):
|
|
151
|
+
```
|
|
152
|
+
Append to state.json.artifacts[]:
|
|
153
|
+
{
|
|
154
|
+
id: nextArtifactId(artifacts, "review"), // RVW-NNN (security-audit reuses review type)
|
|
155
|
+
type: "review",
|
|
156
|
+
subtype: "security-audit",
|
|
157
|
+
milestone: current_milestone || null,
|
|
158
|
+
phase: target_phase || null,
|
|
159
|
+
scope: target_phase ? "phase" : "standalone",
|
|
160
|
+
path: "scratch/{YYYYMMDD}-security-audit-{tier}-{slug}",
|
|
161
|
+
status: critical_count == 0 ? "completed" : "completed_with_concerns",
|
|
162
|
+
tier: tier, // quick|standard|deep
|
|
163
|
+
harvested: false,
|
|
164
|
+
created_at: start_time,
|
|
165
|
+
completed_at: now()
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
Write findings report to the same `path` (severity matrix, file:line refs, remediation).
|
|
145
169
|
</execution>
|
|
146
170
|
|
|
147
171
|
<success_criteria>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-remove
|
|
3
3
|
description: Remove spec entry by ID
|
|
4
|
-
argument-hint: "<entry-id>"
|
|
4
|
+
argument-hint: "<entry-id> [--cascade]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -23,6 +23,9 @@ $ARGUMENTS — entry ID to remove (e.g., `spec-learnings-003`)
|
|
|
23
23
|
- `maestro wiki list --type spec --json` — list all spec entries
|
|
24
24
|
- `/spec-load --keyword <term>` — find by keyword
|
|
25
25
|
- `maestro wiki search "<query>"` — BM25 search
|
|
26
|
+
|
|
27
|
+
**Flags:**
|
|
28
|
+
- `--cascade` — When the target spec is a ref-type entry (created via `spec-add --ref` and linked to a knowhow document), also delete the referenced knowhow file. Without this flag, ref-type removal leaves an orphan knowhow file.
|
|
26
29
|
</context>
|
|
27
30
|
|
|
28
31
|
<execution>
|
|
@@ -45,6 +48,8 @@ Display entry details. Ask user to confirm unless `-y` flag present.
|
|
|
45
48
|
|
|
46
49
|
Run `maestro wiki remove-entry <entry-id>`. WikiIndexer auto-updates `wiki-index.json`.
|
|
47
50
|
|
|
51
|
+
If `--cascade` is set and the entry has a `ref` attribute pointing to a knowhow file, also delete that file to avoid leaving an orphan.
|
|
52
|
+
|
|
48
53
|
### Step 5: Verify & Report
|
|
49
54
|
|
|
50
55
|
Confirm removal via `maestro wiki get <entry-id>` (should return not-found). Display removed ID, source file, and commands for verify/re-add.
|
|
@@ -65,5 +70,6 @@ Confirm removal via `maestro wiki get <entry-id>` (should return not-found). Dis
|
|
|
65
70
|
- [ ] User confirmed removal
|
|
66
71
|
- [ ] Entry removed via `maestro wiki remove-entry`
|
|
67
72
|
- [ ] Wiki index auto-updated
|
|
68
|
-
- [ ]
|
|
73
|
+
- [ ] If `--cascade` and entry has a `ref` attribute: referenced knowhow file deleted, orphan avoided
|
|
74
|
+
- [ ] Confirmation displayed (and cascaded knowhow path if applicable)
|
|
69
75
|
</success_criteria>
|
package/package.json
CHANGED
|
@@ -108,6 +108,8 @@ For point-to-point delivery, use `send_message` directly.
|
|
|
108
108
|
|
|
109
109
|
### Search — Query Before Acting
|
|
110
110
|
|
|
111
|
+
**Before planning or implementing any task, search wiki and spec first** — the knowledge base contains reusable methods, tools, and hard-won experience. Load the right knowledge at the right time: search before you plan, load relevant entries before you implement, and revisit when you hit unfamiliar territory mid-task.
|
|
112
|
+
|
|
111
113
|
When tackling unfamiliar domains or cross-cutting concerns, search existing knowledge first:
|
|
112
114
|
- `maestro spec load --category <cat>` — load rules by category (coding/arch/debug/test/review/learning)
|
|
113
115
|
- `maestro spec load --keyword <kw>` — cross-category keyword match
|
package/workflows/auto-test.md
CHANGED
|
@@ -36,7 +36,7 @@ specs_arch = maestro spec load --category arch
|
|
|
36
36
|
|
|
37
37
|
### Step 1: Read State & Route
|
|
38
38
|
|
|
39
|
-
Read project state signals and auto-select scenario source. This is the **
|
|
39
|
+
Read project state signals and auto-select scenario source. This is the **primary branch point, with Route-specific extraction in Step 2** (after Step 2 normalization, the downstream pipeline is identical).
|
|
40
40
|
|
|
41
41
|
```
|
|
42
42
|
Priority: Resume > Re-run > Spec > Gap > Code
|
|
@@ -54,6 +54,11 @@ Priority: Resume > Re-run > Spec > Gap > Code
|
|
|
54
54
|
Action: load failed/blocked scenarios with status reset to pending
|
|
55
55
|
Skip to Step 4 (scenarios pre-loaded, plan confirmation)
|
|
56
56
|
|
|
57
|
+
# Note: `integration/state.json` and `business/business-test-report.json` are
|
|
58
|
+
# legacy compat paths read for backward compatibility only. The new pipeline
|
|
59
|
+
# writes exclusively to `.tests/auto-test/state.json` and `.tests/auto-test/report.json`
|
|
60
|
+
# (these legacy paths are superseded; see migration table at end of file).
|
|
61
|
+
|
|
57
62
|
3. SPEC:
|
|
58
63
|
Check: .workflow/blueprint/BLP-*/requirements/REQ-*.md exists
|
|
59
64
|
Resolve: SPEC_DIR from index.json.blueprint_ref or most recent BLP-*/
|
package/workflows/brainstorm.md
CHANGED
|
@@ -329,23 +329,37 @@ When `ui-designer` is among the selected roles, establish the project's visual d
|
|
|
329
329
|
|
|
330
330
|
For EACH selected role, spawn a `role-design-author` agent in parallel. Each agent produces a multi-file analysis under `{output_dir}/{role}/`.
|
|
331
331
|
|
|
332
|
+
**Path resolution (orchestrator responsibility, BEFORE invocation)**:
|
|
333
|
+
- Resolve `{output_dir}` to an **absolute path** (e.g., `D:/proj/.workflow/scratch/brainstorm-foo-20260521`). Do NOT pass the literal `.workflow/...` relative form — agent Write tool requires absolute paths.
|
|
334
|
+
- Expand `~/` in `role_template_path` to the user home absolute path.
|
|
335
|
+
- For absent optional fields (e.g., `style_skill` when role ≠ ui-designer, `design_research` when Step 1.7 was skipped), pass the literal string `null` — never a conditional placeholder like `{x if y}`.
|
|
336
|
+
|
|
332
337
|
```
|
|
333
338
|
Agent({
|
|
334
339
|
subagent_type: "role-design-author",
|
|
335
340
|
prompt: """
|
|
336
341
|
role_name: {role}
|
|
337
|
-
role_template_path:
|
|
338
|
-
guidance_path: {output_dir}
|
|
339
|
-
output_dir: {output_dir}
|
|
342
|
+
role_template_path: <ABSOLUTE path to planning-roles/{role}.md>
|
|
343
|
+
guidance_path: <ABSOLUTE {output_dir}>/guidance-specification.md
|
|
344
|
+
output_dir: <ABSOLUTE {output_dir}>/{role}/
|
|
340
345
|
feature_list: <F-id + slug + title rows from guidance §10>
|
|
341
|
-
design_research:
|
|
342
|
-
project_specs:
|
|
343
|
-
user_context:
|
|
344
|
-
style_skill:
|
|
346
|
+
design_research: <ABSOLUTE path>/design-research.md OR null
|
|
347
|
+
project_specs: <specs_content text> OR null
|
|
348
|
+
user_context: <session.role_decisions[role] text> OR null
|
|
349
|
+
style_skill: <ABSOLUTE style-skill SKILL.md path> OR null
|
|
350
|
+
|
|
351
|
+
Follow the Output Contract in `.claude/agents/role-design-author.md` (§1 Role Mandate,
|
|
352
|
+
§2 Decision Digest with 4 tables, §3 Cross-Cutting Foundations, §4 File Index, §5 TODOs)
|
|
353
|
+
— this is authoritative. The role template's "Brainstorming Analysis Structure" section
|
|
354
|
+
is legacy single-file scaffolding; ignore it for file layout. Use the role template ONLY
|
|
355
|
+
for §3 subsection headings (via the "MUST-Have Sections (Brainstorming)" block when present).
|
|
345
356
|
|
|
346
|
-
Write the analysis files per the role template's "Brainstorming Analysis Structure".
|
|
347
357
|
Reference guidance decisions by ID (e.g., SA-03) — do NOT copy decision text.
|
|
348
358
|
All behavioural statements MUST use RFC 2119 keywords.
|
|
359
|
+
|
|
360
|
+
MUST use the Write tool to persist every file under output_dir/. After all writes, verify
|
|
361
|
+
with Glob that `analysis.md` and each `analysis-F-*.md` exist on disk, then emit the
|
|
362
|
+
`TASK COMPLETE` return protocol. Returning analysis as text without files is failure.
|
|
349
363
|
""",
|
|
350
364
|
run_in_background: false
|
|
351
365
|
})
|
|
@@ -21,6 +21,8 @@ Available CLI endpoints are dynamically defined by the config file
|
|
|
21
21
|
|
|
22
22
|
### Search — Query Before Acting
|
|
23
23
|
|
|
24
|
+
**Before planning or implementing any task, search wiki and spec first** — the knowledge base contains reusable methods, tools, and hard-won experience. Load the right knowledge at the right time: search before you plan, load relevant entries before you implement, and revisit when you hit unfamiliar territory mid-task.
|
|
25
|
+
|
|
24
26
|
When tackling unfamiliar domains or cross-cutting concerns, search existing knowledge first:
|
|
25
27
|
- `maestro spec load --category <cat>` — load rules by category (coding/arch/debug/test/review/learning)
|
|
26
28
|
- `maestro spec load --keyword <kw>` — cross-category keyword match
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Codex Code Guidelines
|
|
2
|
+
## Delegate & CLI
|
|
2
3
|
|
|
4
|
+
- **Delegate Usage**: @~/.maestro/workflows/delegate-usage.md
|
|
5
|
+
- **CLI Endpoints Config**: @~/.maestro/cli-tools.json
|
|
6
|
+
|
|
7
|
+
**Strictly follow the cli-tools.json configuration**
|
|
8
|
+
|
|
9
|
+
Available CLI endpoints are dynamically defined by the config file
|
|
3
10
|
|
|
4
11
|
## Code Quality Standards
|
|
5
12
|
|
|
@@ -55,96 +62,22 @@
|
|
|
55
62
|
- Treat all pre-existing uncommitted changes as intentional work-in-progress by other tools
|
|
56
63
|
|
|
57
64
|
|
|
58
|
-
## System
|
|
59
|
-
|
|
60
|
-
**Direct Binary Calls**: Always call binaries directly in `functions.shell`, set `workdir`, avoid shell wrappers (`bash -lc`, `cmd /c`, etc.)
|
|
61
|
-
|
|
62
|
-
**Text Editing Priority**:
|
|
63
|
-
1. Use `apply_patch` tool for all routine text edits
|
|
64
|
-
2. Fall back to `sed` for single-line substitutions if unavailable
|
|
65
|
-
3. Avoid Python editing scripts unless both fail
|
|
66
|
-
|
|
67
|
-
**apply_patch invocation**:
|
|
68
|
-
```json
|
|
69
|
-
{
|
|
70
|
-
"command": ["apply_patch", "*** Begin Patch\n*** Update File: path/to/file\n@@\n- old\n+ new\n*** End Patch\n"],
|
|
71
|
-
"workdir": "<workdir>",
|
|
72
|
-
"justification": "Brief reason"
|
|
73
|
-
}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
**Windows UTF-8 Encoding** (before commands):
|
|
77
|
-
```powershell
|
|
78
|
-
[Console]::InputEncoding = [Text.UTF8Encoding]::new($false)
|
|
79
|
-
[Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
|
|
80
|
-
chcp 65001 > $null
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Context Acquisition (MCP Tools Priority)
|
|
84
|
-
|
|
85
|
-
**For task context gathering and analysis, ALWAYS prefer MCP tools**:
|
|
65
|
+
## Knowledge System
|
|
86
66
|
|
|
87
|
-
|
|
88
|
-
- Semantic search with real-time codebase index
|
|
89
|
-
- Use for: finding implementations, understanding architecture, locating patterns
|
|
90
|
-
- Example: `mcp__ace-tool__search_context(project_root_path="/path", query="authentication logic")`
|
|
67
|
+
### Search — Query Before Acting
|
|
91
68
|
|
|
92
|
-
|
|
93
|
-
- Use `smart_search(query="...")` for keyword/regex search
|
|
94
|
-
- Use `smart_search(action="find_files", pattern="*.ts")` for file discovery
|
|
95
|
-
- Supports modes: `auto`, `hybrid`, `exact`, `ripgrep`
|
|
69
|
+
**Before planning or implementing any task, search wiki and spec first** — the knowledge base contains reusable methods, tools, and hard-won experience. Load the right knowledge at the right time: search before you plan, load relevant entries before you implement, and revisit when you hit unfamiliar territory mid-task.
|
|
96
70
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
71
|
+
- `maestro spec load --category <cat>` — load rules by category (coding/arch/debug/test/review/learning)
|
|
72
|
+
- `maestro spec load --keyword <kw>` — cross-category keyword match
|
|
73
|
+
- `maestro wiki search "<query>"` — full-text search across all knowhow
|
|
74
|
+
- `maestro wiki list --category <cat>` → `maestro wiki load <id>` — browse then load full detail
|
|
100
75
|
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
ACE search_context (semantic) → smart_search (structured) → read_file (batch read) → shell commands (fallback)
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**NEVER** use shell commands (`cat`, `find`, `grep`) when MCP tools are available.
|
|
107
|
-
|
|
108
|
-
## Workflow Session Awareness
|
|
109
|
-
|
|
110
|
-
| Workflow | Directory | Summary File |
|
|
111
|
-
|----------|-----------|-------------|
|
|
112
|
-
| `workflow-plan` | `.workflow/active/WFS-*/` | `workflow-session.json` |
|
|
113
|
-
| `workflow-lite-plan` | `.workflow/.lite-plan/{date}-{slug}/` | `plan.json` |
|
|
114
|
-
| `analyze-with-file` | `.workflow/.analysis/ANL-*/` | `conclusions.json` |
|
|
115
|
-
| `multi-cli-plan` | `.workflow/.multi-cli-plan/*/` | `session-state.json` |
|
|
116
|
-
| `lite-fix` | `.workflow/.lite-fix/*/` | `fix-plan.json` |
|
|
117
|
-
| Other | `.workflow/.debug/`, `.workflow/.scratchpad/`, `.workflow/archives/` | — |
|
|
118
|
-
|
|
119
|
-
Before starting work, scan recent sessions (7 days) to avoid conflicts and reuse prior work:
|
|
120
|
-
- Overlapping file scope → warn, suggest referencing prior session
|
|
121
|
-
- Complementary findings → feed into current task context
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
## Knowledge Capture
|
|
76
|
+
### Knowledge Capture
|
|
125
77
|
|
|
126
78
|
- **Spec writes** → always `<spec-entry>` closed-tag format with `category`, `keywords`, `date`, `source`. Never raw Markdown. Route through `spec-add` when possible.
|
|
127
79
|
- **Capture signal** → when execution surfaces non-obvious knowledge (plan deviation, retry pattern, root cause, constraint violation), ask user once whether to persist it. Match category to content: decisions→`arch`, pitfalls→`debug`/`learning`, patterns→`coding`, rules→`quality`.
|
|
128
80
|
- **Promotion** → at milestone close, scan learnings for repeated keywords (≥2 entries) and offer to graduate them into formal conventions.
|
|
129
81
|
- **Traceability** → every entry needs a source anchor: `file:line`, `INS-{id}`, commit, or phase path.
|
|
130
82
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
**Before**:
|
|
134
|
-
- [ ] Understand PURPOSE and TASK clearly
|
|
135
|
-
- [ ] Use ACE search_context first, fallback to smart_search for discovery
|
|
136
|
-
- [ ] Use read_file to batch read context files, find 3+ patterns
|
|
137
|
-
- [ ] Check RULES templates and constraints
|
|
138
|
-
|
|
139
|
-
**During**:
|
|
140
|
-
- [ ] Follow existing patterns exactly
|
|
141
|
-
- [ ] Write tests alongside code
|
|
142
|
-
- [ ] Run tests after every change
|
|
143
|
-
- [ ] Commit working code incrementally
|
|
144
|
-
|
|
145
|
-
**After**:
|
|
146
|
-
- [ ] All tests pass
|
|
147
|
-
- [ ] Coverage meets target
|
|
148
|
-
- [ ] Build succeeds
|
|
149
|
-
- [ ] All EXPECTED deliverables met
|
|
150
|
-
- [ ] Non-obvious knowledge surfaced? → offer `spec-add`
|
|
83
|
+
|
package/workflows/debug.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Debug issues using scientific method with subagent isolation. Supports three modes:
|
|
4
4
|
|
|
5
5
|
1. **Standalone**: User describes issue, gather symptoms via 5 questions
|
|
6
|
-
2. **From UAT**: --from-uat reads uat.md gaps as pre-filled symptoms (skip gathering)
|
|
6
|
+
2. **From UAT**: --from-uat reads uat.md gaps as pre-filled symptoms (skip gathering). Input-only: does not write back to uat.md/test artifacts (test workflow is the sole caller and owns uat.md writes).
|
|
7
7
|
3. **Parallel**: --parallel spawns one debug agent per gap cluster concurrently
|
|
8
8
|
|
|
9
9
|
Output: understanding.md + evidence.ndjson per investigation.
|
package/workflows/harvest.md
CHANGED
|
@@ -40,7 +40,7 @@ Unlike `retrospective.md` which is phase-scoped and post-execution, harvest oper
|
|
|
40
40
|
| `--dry-run` | Preview extracted items without writing to any store |
|
|
41
41
|
| `-y` / `--yes` | Skip confirmation prompts, accept all routing |
|
|
42
42
|
| `--min-confidence N` | Minimum extraction confidence 0.0-1.0 (default: 0.5) |
|
|
43
|
-
| `--prune` | State hygiene mode: classify artifacts, graduate harvested ones to knowhow, archive from state.json, prune accumulated_context |
|
|
43
|
+
| `--prune` | State hygiene mode: classify artifacts, graduate harvested ones to knowhow, archive from state.json, prune accumulated_context. **Note:** `harvest --prune` *promotes* artifacts to knowhow (and trims state.json); this differs from `knowhow.md`'s `prune` operation which *deletes* knowhow entries. The two `--prune` flags share a name but operate on different stores in opposite directions. |
|
|
44
44
|
| `--age N` | Graduation age threshold in days (default: 14). Only artifacts older than N days are prune candidates. Used with `--prune` |
|
|
45
45
|
|
|
46
46
|
---
|
package/workflows/impeccable.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Impeccable Harvest Workflow
|
|
2
2
|
|
|
3
|
+
> **Note**: Post-harvest hook, distinct from `/maestro-impeccable` command. This file is the harvest workflow invoked AFTER an impeccable run; it is not the impeccable command entry itself (see `chainMap['impeccable_*']` in `maestro.md`).
|
|
4
|
+
|
|
3
5
|
Post-execution knowledge capture for maestro-impeccable commands. Extracts design decisions and persists to `.workflow/knowhow/` + `specs/`.
|
|
4
6
|
|
|
5
7
|
---
|
|
@@ -3,109 +3,23 @@
|
|
|
3
3
|
> **DEPRECATED**: Superseded by `issue-gaps-analyze.md` which adds batch support and context.md output.
|
|
4
4
|
> Use `maestro-analyze --gaps [ISS-ID]` instead.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
This workflow's executable steps have been removed to prevent divergent implementations.
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Migration
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
| Old usage | New usage |
|
|
11
|
+
|-----------|-----------|
|
|
12
|
+
| `manage-issue-analyze ISS-ID` | `/maestro-analyze --gaps ISS-ID` |
|
|
13
|
+
| `manage-issue-analyze` (batch) | `/maestro-analyze --gaps` |
|
|
14
|
+
| `manage-issue-plan ISS-ID` (follow-up) | `/maestro-plan --gaps ISS-ID` |
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
## See Also
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
- `issue-gaps-analyze.md` — current implementation (single + batch, classification, parallel exploration, context.md)
|
|
19
|
+
- `issue-gaps-analyze.codex.md` — codex variant using `spawn_agents_on_csv` waves
|
|
20
|
+
- `issue-execute.md` — downstream execution after planning
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
Extract ISS-ID (required, pattern ISS-\d{8}-\d{3}).
|
|
19
|
-
Flags: --tool gemini|qwen (default: gemini), --depth standard|deep (default: standard)
|
|
20
|
-
```
|
|
22
|
+
## Notes
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
### Step 2: Load Issue and Validate
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
Load ISS-ID from .workflow/issues/issues.jsonl → fatal if file missing or ID not found.
|
|
28
|
-
Status check: open/registered → proceed; other → warn but continue (non-destructive).
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
### Step 3: Gather Codebase Context
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
Extract keywords from issue title, description, location, affected_components.
|
|
37
|
-
|
|
38
|
-
Standard depth: grep keywords in source files → top 20 paths, read 10 lines around
|
|
39
|
-
top 5 matches.
|
|
40
|
-
Deep depth: standard grep + semantic Agent search (error handling, data flow, deps),
|
|
41
|
-
merge results.
|
|
42
|
-
|
|
43
|
-
Build CODEBASE_CONTEXT: related files, key snippets (max 50 lines), dependency chain.
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
### Step 4: Run CLI Analysis
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
Delegate root cause analysis with issue details + CODEBASE_CONTEXT:
|
|
52
|
-
|
|
53
|
-
maestro delegate "Root cause analysis for {ISS-ID}: {ISSUE.title}
|
|
54
|
-
ISSUE: title, description, severity, location, fix_direction
|
|
55
|
-
CODEBASE CONTEXT: {CODEBASE_CONTEXT}
|
|
56
|
-
TASK: Identify root cause (file:line) → assess impact → list related files → rate confidence → suggest fix
|
|
57
|
-
EXPECTED: JSON { root_cause, impact, related_files[], confidence, suggested_approach }
|
|
58
|
-
CONSTRAINTS: Evidence-only, no speculation
|
|
59
|
-
" --to {TOOL} --mode analysis
|
|
60
|
-
|
|
61
|
-
Validate response: all required fields present.
|
|
62
|
-
Parse failure → save raw output to issue feedback for review.
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
### Step 5: Build Analysis Record
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
Construct IssueAnalysis:
|
|
71
|
-
{ root_cause, impact, related_files, confidence, suggested_approach, analyzed_at: NOW_ISO, analyzed_by: TOOL }
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
### Step 6: Update Issue in JSONL
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
Read-modify-write issues.jsonl:
|
|
80
|
-
Set issue.analysis = ANALYSIS, updated_at = NOW_ISO
|
|
81
|
-
Append issue_history: actor "analysis-agent", note "confidence: {confidence}"
|
|
82
|
-
Status unchanged (analysis is metadata enrichment).
|
|
83
|
-
Verify: re-read file, confirm analysis field present.
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
### Step 7: Display Summary and Next Steps
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
Display: root cause, impact, confidence, related files, suggested approach.
|
|
92
|
-
|
|
93
|
-
Next steps:
|
|
94
|
-
- manage-issue-plan {ISS-ID} (generate solution | --tool {TOOL})
|
|
95
|
-
- manage-issue status {ISS-ID}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Output
|
|
101
|
-
|
|
102
|
-
- **Updated**: `.workflow/issues/issues.jsonl` -- issue record enriched with `analysis` field
|
|
103
|
-
- **Analysis fields**: root_cause, impact, related_files, confidence, suggested_approach, analyzed_at, analyzed_by
|
|
104
|
-
|
|
105
|
-
## Quality Criteria
|
|
106
|
-
|
|
107
|
-
- Analysis grounded in actual codebase evidence (file:line references)
|
|
108
|
-
- JSON result validated before writing to JSONL
|
|
109
|
-
- Issue status unchanged (analysis is non-destructive enrichment)
|
|
110
|
-
- Read-modify-write pattern preserves other issues in JSONL
|
|
111
|
-
- Next-step routing guides user to solution planning
|
|
24
|
+
- Issue records analyzed by the new pipeline still write to `.workflow/issues/issues.jsonl` with `analysis` field (root_cause, impact, related_files, confidence, suggested_approach, analyzed_at, analyzed_by).
|
|
25
|
+
- Status is unchanged by analysis (non-destructive enrichment).
|
|
@@ -148,7 +148,7 @@ Display summary: session ID, mode, raw/unique counts, per-perspective breakdown,
|
|
|
148
148
|
Next steps:
|
|
149
149
|
- manage-issue list --severity critical
|
|
150
150
|
- manage-issue list
|
|
151
|
-
- manage-issue-discover by-prompt
|
|
151
|
+
- see also: /manage-issue-discover usage docs (by-prompt mode for focused scans)
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
---
|
|
@@ -211,8 +211,7 @@ Display summary: session, prompt, rounds, raw/unique counts, per-dimension + sev
|
|
|
211
211
|
|
|
212
212
|
Next steps:
|
|
213
213
|
- manage-issue list --source discovery
|
|
214
|
-
- manage-issue-discover (full 8-perspective scan)
|
|
215
|
-
- manage-issue-discover by-prompt "..." (explore another area)
|
|
214
|
+
- see also: /manage-issue-discover usage docs (full 8-perspective scan and by-prompt mode)
|
|
216
215
|
```
|
|
217
216
|
|
|
218
217
|
---
|
|
@@ -25,7 +25,7 @@ Flags: --executor claude-code|codex|gemini (default: claude-code), --dry-run (de
|
|
|
25
25
|
|
|
26
26
|
```
|
|
27
27
|
Load ISS-ID from .workflow/issues/issues.jsonl → fatal if file missing or ID not found.
|
|
28
|
-
Require issue.solution with non-empty steps[] → error if missing (run
|
|
28
|
+
Require issue.solution with non-empty steps[] → error if missing (run `maestro-plan --gaps {ISS-ID}` first).
|
|
29
29
|
Resolve EXECUTOR → CLI tool (claude-code→claude, codex→codex, gemini→gemini), all with --mode write.
|
|
30
30
|
```
|
|
31
31
|
|