maestro-flow 0.4.12 → 0.4.14
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 +6 -5
- 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/SKILL.md +21 -16
- package/.agents/skills/maestro-ralph-execute/SKILL.md +30 -11
- package/.agents/skills/maestro-roadmap/SKILL.md +4 -3
- package/.agents/skills/maestro-verify/SKILL.md +1 -1
- 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 +6 -5
- 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/SKILL.md +21 -16
- package/.agy/skills/maestro-ralph-execute/SKILL.md +30 -11
- package/.agy/skills/maestro-roadmap/SKILL.md +4 -3
- package/.agy/skills/maestro-verify/SKILL.md +1 -1
- 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 +6 -5
- 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 +30 -11
- package/.claude/commands/maestro-ralph.md +21 -16
- package/.claude/commands/maestro-roadmap.md +4 -3
- package/.claude/commands/maestro-verify.md +1 -1
- 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/analyze.md +6 -6
- package/workflows/auto-test.md +6 -1
- package/workflows/brainstorm.md +26 -12
- package/workflows/claude-instructions.md +2 -0
- package/workflows/codex-instructions.md +16 -83
- package/workflows/debug.md +5 -5
- package/workflows/harvest.md +2 -2
- package/workflows/impeccable.md +2 -0
- package/workflows/init.md +1 -1
- 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 +5 -5
- package/workflows/quick.md +4 -4
- package/workflows/refactor.md +3 -3
- package/workflows/retrospective.md +4 -4
- 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 +4 -4
- package/workflows/ui-style.md +1 -1
- package/workflows/verify.md +1 -1
- 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/analyze.md
CHANGED
|
@@ -60,12 +60,12 @@ Worktree guard: If .workflow/worktree-scope.json exists, reject phase args not i
|
|
|
60
60
|
Auto-bootstrap: Create minimal .workflow/state.json if missing.
|
|
61
61
|
|
|
62
62
|
Scope determination → OUTPUT_DIR:
|
|
63
|
-
(no args) + milestone + roadmap → scope="milestone", mode="micro", OUTPUT_DIR=.workflow/scratch/analyze-{
|
|
63
|
+
(no args) + milestone + roadmap → scope="milestone", mode="micro", OUTPUT_DIR=.workflow/scratch/{YYYYMMDD}-analyze-M{N}-{milestone_slug}/
|
|
64
64
|
(no args) without milestone/roadmap → ERROR E001
|
|
65
|
-
(number) + milestone + roadmap → scope="phase", mode="micro", OUTPUT_DIR=.workflow/scratch/analyze-{
|
|
65
|
+
(number) + milestone + roadmap → scope="phase", mode="micro", OUTPUT_DIR=.workflow/scratch/{YYYYMMDD}-analyze-P{N}-{phase_slug}/
|
|
66
66
|
(number) without milestone/roadmap → ERROR
|
|
67
|
-
(text) + milestone → scope="adhoc", mode="macro", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}
|
|
68
|
-
(text) without milestone → scope="standalone", mode="macro", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}
|
|
67
|
+
(text) + milestone → scope="adhoc", mode="macro", OUTPUT_DIR=.workflow/scratch/{YYYYMMDD}-analyze-{topic_slug}/
|
|
68
|
+
(text) without milestone → scope="standalone", mode="macro", OUTPUT_DIR=.workflow/scratch/{YYYYMMDD}-analyze-{topic_slug}/
|
|
69
69
|
|
|
70
70
|
Macro mode additions (scope="adhoc" or "standalone"):
|
|
71
71
|
- In Step 6 Synthesis, evaluate scope_verdict: "small" | "medium" | "large"
|
|
@@ -113,8 +113,8 @@ Parse $ARGUMENTS to determine mode and flags:
|
|
|
113
113
|
- `-c` present: locate existing session folder (discussion.md exists), resume from last round
|
|
114
114
|
- `-y` present: set AUTO_MODE=true
|
|
115
115
|
- `-q` present: set QUICK_MODE=true (skip Steps 2-7, jump to Step 8: Decision Extraction)
|
|
116
|
-
- Number (e.g., "3") = phase scope: resolve phase slug from roadmap, output to scratch/analyze-{phase-slug}
|
|
117
|
-
- Text (e.g., "microservices vs monolith") = adhoc/standalone scope: output to scratch/analyze-{slug}
|
|
116
|
+
- Number (e.g., "3") = phase scope: resolve phase slug from roadmap, output to scratch/{YYYYMMDD}-analyze-P{N}-{phase-slug}/
|
|
117
|
+
- Text (e.g., "microservices vs monolith") = adhoc/standalone scope: output to scratch/{YYYYMMDD}-analyze-{slug}/
|
|
118
118
|
- Missing/empty = milestone scope (if roadmap exists) or error E001
|
|
119
119
|
|
|
120
120
|
**Session initialization:**
|
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
|
@@ -50,7 +50,7 @@ Phase 3: Single Role Analysis → Detection → Context → Agent → Validation
|
|
|
50
50
|
## Input
|
|
51
51
|
|
|
52
52
|
- `$ARGUMENTS`: topic text (auto mode) or role name (single role mode)
|
|
53
|
-
- All output goes to `.workflow/scratch/brainstorm-{slug}
|
|
53
|
+
- All output goes to `.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/`
|
|
54
54
|
- Registers artifact (type=brainstorm) in state.json on completion
|
|
55
55
|
|
|
56
56
|
### Parameters
|
|
@@ -86,7 +86,7 @@ Phase 3: Single Role Analysis → Detection → Context → Agent → Validation
|
|
|
86
86
|
|
|
87
87
|
All brainstorm output goes to scratch:
|
|
88
88
|
```
|
|
89
|
-
.workflow/scratch/brainstorm-{slug}
|
|
89
|
+
.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/
|
|
90
90
|
├── guidance-specification.md # Phase 2 output — machine contract (downstream consumes this)
|
|
91
91
|
├── design-research.md # Optional Step 1.7 output
|
|
92
92
|
├── system-architect/ # Phase 3 per-role analysis (one folder per selected role)
|
|
@@ -129,14 +129,14 @@ Parse $ARGUMENTS to determine execution mode:
|
|
|
129
129
|
- Missing/empty args without flags = error E001
|
|
130
130
|
|
|
131
131
|
**Session Detection**:
|
|
132
|
-
- Check `.workflow/scratch
|
|
132
|
+
- Check `.workflow/scratch/*-brainstorm-*/` for existing sessions
|
|
133
133
|
- Multiple → AskUserQuestion to select | Single → use it
|
|
134
134
|
- None + auto mode → will create new session
|
|
135
135
|
- None + single role mode → error E002
|
|
136
136
|
|
|
137
137
|
**Output Directory Resolution**:
|
|
138
138
|
- Phase mode (number): resolve `state.json.artifacts[phase == phaseNum].path` → `.workflow/{path}/.brainstorming/` (ERROR if phase not found)
|
|
139
|
-
- All output: `.workflow/scratch/brainstorm-{slug}
|
|
139
|
+
- All output: `.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/`
|
|
140
140
|
- Existing session: use existing session directory
|
|
141
141
|
|
|
142
142
|
---
|
|
@@ -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/20260521-brainstorm-foo`). 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.
|
|
@@ -102,8 +102,8 @@ Display:
|
|
|
102
102
|
|
|
103
103
|
| # | Location | Status | Current Hypothesis |
|
|
104
104
|
|---|----------|--------|--------------------|
|
|
105
|
-
| 1 | scratch/plan-auth
|
|
106
|
-
| 2 | scratch/debug-nav-crash
|
|
105
|
+
| 1 | scratch/20260420-plan-P3-auth/.debug/jwt-expiry/ | investigating | Token not refreshed on 401 |
|
|
106
|
+
| 2 | scratch/20260314-debug-nav-crash/ | checkpoint | Awaiting user input |
|
|
107
107
|
|
|
108
108
|
Reply with a number to resume, or describe a new issue.
|
|
109
109
|
```
|
|
@@ -194,11 +194,11 @@ Create debug session directory and proceed to Step 6.
|
|
|
194
194
|
| Mode | Directory |
|
|
195
195
|
|------|-----------|
|
|
196
196
|
| Phase-scoped (from UAT) | `{ARTIFACT_DIR}/.debug/{gap-slug}/` (ARTIFACT_DIR resolved from artifact registry) |
|
|
197
|
-
| Standalone | `.workflow/scratch/debug-{slug}
|
|
197
|
+
| Standalone | `.workflow/scratch/{YYYYMMDD}-debug-{slug}/` |
|
|
198
198
|
|
|
199
199
|
Resolve `DEBUG_DIR` from artifact registry:
|
|
200
200
|
- Phase-scoped: look up phase in `.workflow/state.json` artifacts (type=execute), set `DEBUG_DIR = ".workflow/{art.path}/.debug/{gap-slug}/"`. Error if not found.
|
|
201
|
-
- Standalone: `DEBUG_DIR = ".workflow/scratch/debug-{slug}
|
|
201
|
+
- Standalone: `DEBUG_DIR = ".workflow/scratch/{YYYYMMDD}-debug-{slug}/"`
|
|
202
202
|
|
|
203
203
|
Create the directory.
|
|
204
204
|
|
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
|
---
|
|
@@ -67,7 +67,7 @@ Scan `.workflow/` for harvestable artifacts. Each source type has a known struct
|
|
|
67
67
|
| Source Type | Scan Path | Key Files | ID Pattern |
|
|
68
68
|
|-------------|-----------|-----------|------------|
|
|
69
69
|
| `analysis` | `.workflow/.analysis/ANL-*/` | `conclusions.json`, `*.md` | `ANL-*` |
|
|
70
|
-
| `brainstorm` | `.workflow/scratch
|
|
70
|
+
| `brainstorm` | `.workflow/scratch/*-brainstorm-*/` | `guidance-specification.md`, `*/analysis.md`, `design-research.md` | directory name |
|
|
71
71
|
| `lite-plan` | `.workflow/.lite-plan/*/` | `plan.json`, `plan-overview.md` | directory name |
|
|
72
72
|
| `lite-fix` | `.workflow/.lite-fix/*/` | `fix-plan.json` | directory name |
|
|
73
73
|
| `debug` | `.workflow/.debug/*/` | `debug-log.md`, `hypothesis-*.md` | directory name |
|
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
|
---
|
package/workflows/init.md
CHANGED
|
@@ -43,7 +43,7 @@ state.json exists → Path C (existing) | source files exist → Path B (brownfi
|
|
|
43
43
|
|
|
44
44
|
If `--auto` flag: skip interactive questioning, extract from @ referenced document.
|
|
45
45
|
If `--from <source>` (alias: `--from-brainstorm`):
|
|
46
|
-
- Locate source directory (`.workflow/scratch
|
|
46
|
+
- Locate source directory (`.workflow/scratch/*-brainstorm-*/`, `.workflow/scratch/*-import-*/`, etc.)
|
|
47
47
|
- Load `context-package.json` (preferred) or fall back to `guidance-specification.md`:
|
|
48
48
|
- `domain` (name, description, problem_statement) → project vision + core value
|
|
49
49
|
- `requirements[]` → project goals (Active requirements)
|