maestro-flow 0.5.42 → 0.5.43
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/skills/domain-add/SKILL.md +3 -0
- package/.agents/skills/learn-decompose/SKILL.md +7 -4
- package/.agents/skills/learn-follow/SKILL.md +4 -2
- package/.agents/skills/learn-investigate/SKILL.md +8 -6
- package/.agents/skills/learn-second-opinion/SKILL.md +6 -3
- package/.agents/skills/maestro/SKILL.md +1 -1
- package/.agents/skills/maestro-amend/SKILL.md +1 -1
- package/.agents/skills/maestro-analyze/SKILL.md +1 -1
- package/.agents/skills/maestro-blueprint/SKILL.md +1 -1
- package/.agents/skills/maestro-brainstorm/SKILL.md +4 -1
- package/.agents/skills/maestro-collab/SKILL.md +6 -2
- package/.agents/skills/maestro-companion/SKILL.md +4 -1
- package/.agents/skills/maestro-composer/SKILL.md +4 -2
- package/.agents/skills/maestro-execute/SKILL.md +26 -8
- package/.agents/skills/maestro-fork/SKILL.md +4 -3
- package/.agents/skills/maestro-grill/SKILL.md +1 -1
- package/.agents/skills/maestro-guard/SKILL.md +2 -2
- package/.agents/skills/maestro-impeccable/SKILL.md +2 -1
- package/.agents/skills/maestro-init/SKILL.md +1 -1
- package/.agents/skills/maestro-merge/SKILL.md +12 -1
- package/.agents/skills/maestro-milestone-audit/SKILL.md +1 -0
- package/.agents/skills/maestro-milestone-complete/SKILL.md +8 -3
- package/.agents/skills/maestro-milestone-release/SKILL.md +8 -4
- package/.agents/skills/maestro-overlay/SKILL.md +9 -0
- package/.agents/skills/maestro-plan/SKILL.md +1 -0
- package/.agents/skills/maestro-player/SKILL.md +2 -2
- package/.agents/skills/maestro-quick/SKILL.md +5 -3
- package/.agents/skills/maestro-ralph/SKILL.md +8 -8
- package/.agents/skills/maestro-ralph-cli/SKILL.md +665 -0
- package/.agents/skills/maestro-ralph-cli-execute/SKILL.md +239 -0
- package/.agents/skills/maestro-ralph-execute/SKILL.md +127 -11
- package/.agents/skills/maestro-roadmap/SKILL.md +1 -1
- package/.agents/skills/maestro-swarm-workflow/SKILL.md +16 -14
- package/.agents/skills/maestro-tools-register/SKILL.md +16 -1
- package/.agents/skills/maestro-ui-codify/SKILL.md +11 -1
- package/.agents/skills/maestro-universal-workflow/SKILL.md +28 -5
- package/.agents/skills/maestro-update/SKILL.md +10 -7
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +5 -1
- package/.agents/skills/manage-drift-realign/SKILL.md +6 -2
- package/.agents/skills/manage-harvest/SKILL.md +4 -1
- package/.agents/skills/manage-issue-discover/SKILL.md +1 -0
- package/.agents/skills/manage-kg-extractors/SKILL.md +5 -1
- package/.agents/skills/manage-knowhow-capture/SKILL.md +1 -0
- package/.agents/skills/manage-knowledge-audit/SKILL.md +3 -0
- package/.agents/skills/manage-wiki/SKILL.md +1 -0
- package/.agents/skills/odyssey-debug/SKILL.md +2 -1
- package/.agents/skills/odyssey-improve/SKILL.md +2 -2
- package/.agents/skills/odyssey-planex/SKILL.md +8 -7
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +4 -1
- package/.agents/skills/odyssey-ui/SKILL.md +4 -4
- package/.agents/skills/quality-auto-test/SKILL.md +11 -1
- package/.agents/skills/quality-debug/SKILL.md +16 -2
- package/.agents/skills/quality-retrospective/SKILL.md +9 -1
- package/.agents/skills/quality-review/SKILL.md +8 -0
- package/.agents/skills/quality-sync/SKILL.md +2 -2
- package/.agents/skills/quality-test/SKILL.md +9 -1
- package/.agents/skills/security-audit/SKILL.md +14 -4
- package/.agents/skills/spec-add/SKILL.md +5 -2
- package/.agents/skills/spec-load/SKILL.md +1 -1
- package/.agents/skills/spec-remove/SKILL.md +1 -1
- package/.agents/skills/spec-setup/SKILL.md +3 -0
- package/.agy/skills/domain-add/SKILL.md +3 -0
- package/.agy/skills/learn-decompose/SKILL.md +7 -4
- package/.agy/skills/learn-follow/SKILL.md +4 -2
- package/.agy/skills/learn-investigate/SKILL.md +8 -6
- package/.agy/skills/learn-second-opinion/SKILL.md +6 -3
- package/.agy/skills/maestro/SKILL.md +1 -1
- package/.agy/skills/maestro-amend/SKILL.md +1 -1
- package/.agy/skills/maestro-analyze/SKILL.md +1 -1
- package/.agy/skills/maestro-blueprint/SKILL.md +1 -1
- package/.agy/skills/maestro-brainstorm/SKILL.md +4 -1
- package/.agy/skills/maestro-collab/SKILL.md +6 -2
- package/.agy/skills/maestro-companion/SKILL.md +4 -1
- package/.agy/skills/maestro-composer/SKILL.md +4 -2
- package/.agy/skills/maestro-execute/SKILL.md +26 -8
- package/.agy/skills/maestro-fork/SKILL.md +4 -3
- package/.agy/skills/maestro-grill/SKILL.md +1 -1
- package/.agy/skills/maestro-guard/SKILL.md +2 -2
- package/.agy/skills/maestro-impeccable/SKILL.md +2 -1
- package/.agy/skills/maestro-init/SKILL.md +1 -1
- package/.agy/skills/maestro-merge/SKILL.md +12 -1
- package/.agy/skills/maestro-milestone-audit/SKILL.md +1 -0
- package/.agy/skills/maestro-milestone-complete/SKILL.md +8 -3
- package/.agy/skills/maestro-milestone-release/SKILL.md +8 -4
- package/.agy/skills/maestro-overlay/SKILL.md +9 -0
- package/.agy/skills/maestro-plan/SKILL.md +1 -0
- package/.agy/skills/maestro-player/SKILL.md +2 -2
- package/.agy/skills/maestro-quick/SKILL.md +5 -3
- package/.agy/skills/maestro-ralph/SKILL.md +8 -8
- package/.agy/skills/maestro-ralph-cli/SKILL.md +661 -0
- package/.agy/skills/maestro-ralph-cli-execute/SKILL.md +235 -0
- package/.agy/skills/maestro-ralph-execute/SKILL.md +127 -11
- package/.agy/skills/maestro-roadmap/SKILL.md +1 -1
- package/.agy/skills/maestro-swarm-workflow/SKILL.md +16 -14
- package/.agy/skills/maestro-tools-register/SKILL.md +16 -1
- package/.agy/skills/maestro-ui-codify/SKILL.md +11 -1
- package/.agy/skills/maestro-universal-workflow/SKILL.md +28 -5
- package/.agy/skills/maestro-update/SKILL.md +10 -7
- package/.agy/skills/manage-codebase-rebuild/SKILL.md +5 -1
- package/.agy/skills/manage-drift-realign/SKILL.md +6 -2
- package/.agy/skills/manage-harvest/SKILL.md +4 -1
- package/.agy/skills/manage-issue-discover/SKILL.md +1 -0
- package/.agy/skills/manage-kg-extractors/SKILL.md +5 -1
- package/.agy/skills/manage-knowhow-capture/SKILL.md +1 -0
- package/.agy/skills/manage-knowledge-audit/SKILL.md +3 -0
- package/.agy/skills/manage-wiki/SKILL.md +1 -0
- package/.agy/skills/odyssey-debug/SKILL.md +2 -1
- package/.agy/skills/odyssey-improve/SKILL.md +2 -2
- package/.agy/skills/odyssey-planex/SKILL.md +8 -7
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +4 -1
- package/.agy/skills/odyssey-ui/SKILL.md +4 -4
- package/.agy/skills/quality-auto-test/SKILL.md +11 -1
- package/.agy/skills/quality-debug/SKILL.md +16 -2
- package/.agy/skills/quality-retrospective/SKILL.md +9 -1
- package/.agy/skills/quality-review/SKILL.md +8 -0
- package/.agy/skills/quality-sync/SKILL.md +2 -2
- package/.agy/skills/quality-test/SKILL.md +9 -1
- package/.agy/skills/security-audit/SKILL.md +14 -4
- package/.agy/skills/spec-add/SKILL.md +5 -2
- package/.agy/skills/spec-load/SKILL.md +1 -1
- package/.agy/skills/spec-remove/SKILL.md +1 -1
- package/.agy/skills/spec-setup/SKILL.md +3 -0
- package/.claude/commands/domain-add.md +3 -0
- package/.claude/commands/learn-decompose.md +7 -4
- package/.claude/commands/learn-follow.md +4 -2
- package/.claude/commands/learn-investigate.md +8 -6
- package/.claude/commands/learn-second-opinion.md +6 -3
- package/.claude/commands/maestro-amend.md +1 -1
- package/.claude/commands/maestro-analyze.md +1 -1
- package/.claude/commands/maestro-blueprint.md +1 -1
- package/.claude/commands/maestro-brainstorm.md +4 -1
- package/.claude/commands/maestro-collab.md +6 -2
- package/.claude/commands/maestro-companion.md +4 -1
- package/.claude/commands/maestro-composer.md +4 -2
- package/.claude/commands/maestro-execute.md +26 -8
- package/.claude/commands/maestro-fork.md +4 -3
- package/.claude/commands/maestro-grill.md +1 -1
- package/.claude/commands/maestro-guard.md +2 -2
- package/.claude/commands/maestro-impeccable.md +2 -1
- package/.claude/commands/maestro-init.md +1 -1
- package/.claude/commands/maestro-merge.md +12 -1
- package/.claude/commands/maestro-milestone-audit.md +1 -0
- package/.claude/commands/maestro-milestone-complete.md +8 -3
- package/.claude/commands/maestro-milestone-release.md +8 -4
- package/.claude/commands/maestro-overlay.md +9 -0
- package/.claude/commands/maestro-plan.md +1 -0
- package/.claude/commands/maestro-player.md +2 -2
- package/.claude/commands/maestro-quick.md +5 -3
- package/.claude/commands/maestro-ralph-cli-execute.md +237 -0
- package/.claude/commands/maestro-ralph-cli.md +663 -0
- package/.claude/commands/maestro-ralph-execute.md +127 -11
- package/.claude/commands/maestro-ralph.md +8 -8
- package/.claude/commands/maestro-roadmap.md +1 -1
- package/.claude/commands/maestro-swarm-workflow.md +16 -14
- package/.claude/commands/maestro-tools-register.md +16 -1
- package/.claude/commands/maestro-ui-codify.md +11 -1
- package/.claude/commands/maestro-universal-workflow.md +28 -5
- package/.claude/commands/maestro-update.md +10 -7
- package/.claude/commands/maestro.md +1 -1
- package/.claude/commands/manage-codebase-rebuild.md +5 -1
- package/.claude/commands/manage-drift-realign.md +6 -2
- package/.claude/commands/manage-harvest.md +4 -1
- package/.claude/commands/manage-issue-discover.md +1 -0
- package/.claude/commands/manage-kg-extractors.md +5 -1
- package/.claude/commands/manage-knowhow-capture.md +1 -0
- package/.claude/commands/manage-knowledge-audit.md +3 -0
- package/.claude/commands/manage-wiki.md +1 -0
- package/.claude/commands/odyssey-debug.md +2 -1
- package/.claude/commands/odyssey-improve.md +2 -2
- package/.claude/commands/odyssey-planex.md +8 -7
- package/.claude/commands/odyssey-review-test-fix.md +4 -1
- package/.claude/commands/odyssey-ui.md +4 -4
- package/.claude/commands/quality-auto-test.md +11 -1
- package/.claude/commands/quality-debug.md +16 -2
- package/.claude/commands/quality-retrospective.md +9 -1
- package/.claude/commands/quality-review.md +8 -0
- package/.claude/commands/quality-sync.md +2 -2
- package/.claude/commands/quality-test.md +9 -1
- package/.claude/commands/security-audit.md +14 -4
- package/.claude/commands/spec-add.md +5 -2
- package/.claude/commands/spec-load.md +1 -1
- package/.claude/commands/spec-remove.md +1 -1
- package/.claude/commands/spec-setup.md +3 -0
- package/.codex/skills/codify-to-knowhow/SKILL.md +27 -15
- package/.codex/skills/domain-add/SKILL.md +5 -3
- package/.codex/skills/learn-decompose/SKILL.md +22 -4
- package/.codex/skills/learn-follow/SKILL.md +12 -6
- package/.codex/skills/learn-investigate/SKILL.md +11 -6
- package/.codex/skills/learn-retro/SKILL.md +12 -6
- package/.codex/skills/learn-second-opinion/SKILL.md +11 -3
- package/.codex/skills/maestro/SKILL.md +19 -13
- package/.codex/skills/maestro-amend/SKILL.md +10 -2
- package/.codex/skills/maestro-analyze/SKILL.md +7 -1
- package/.codex/skills/maestro-blueprint/SKILL.md +1 -1
- package/.codex/skills/maestro-brainstorm/SKILL.md +11 -8
- package/.codex/skills/maestro-collab/SKILL.md +5 -5
- package/.codex/skills/maestro-companion/SKILL.md +4 -1
- package/.codex/skills/maestro-composer/SKILL.md +6 -3
- package/.codex/skills/maestro-execute/SKILL.md +11 -8
- package/.codex/skills/maestro-fork/SKILL.md +4 -3
- package/.codex/skills/maestro-grill/SKILL.md +1 -1
- package/.codex/skills/maestro-guard/SKILL.md +1 -1
- package/.codex/skills/maestro-impeccable/SKILL.md +5 -5
- package/.codex/skills/maestro-init/SKILL.md +3 -2
- package/.codex/skills/maestro-milestone-audit/SKILL.md +21 -9
- package/.codex/skills/maestro-milestone-complete/SKILL.md +3 -3
- package/.codex/skills/maestro-milestone-release/SKILL.md +18 -1
- package/.codex/skills/maestro-next/SKILL.md +11 -10
- package/.codex/skills/maestro-overlay/SKILL.md +16 -6
- package/.codex/skills/maestro-player/SKILL.md +11 -5
- package/.codex/skills/maestro-quick/SKILL.md +2 -2
- package/.codex/skills/maestro-ralph/SKILL.md +44 -31
- package/.codex/skills/maestro-ralph-cli/SKILL.md +394 -0
- package/.codex/skills/maestro-ralph-cli-execute/SKILL.md +146 -0
- package/.codex/skills/maestro-ralph-execute/SKILL.md +105 -24
- package/.codex/skills/maestro-roadmap/SKILL.md +8 -2
- package/.codex/skills/maestro-tools-execute/SKILL.md +8 -4
- package/.codex/skills/maestro-tools-register/SKILL.md +10 -6
- package/.codex/skills/maestro-ui-codify/SKILL.md +14 -9
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +36 -14
- package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
- package/.codex/skills/manage-drift-realign/SKILL.md +15 -12
- package/.codex/skills/manage-harvest/SKILL.md +1 -1
- package/.codex/skills/manage-issue/SKILL.md +8 -4
- package/.codex/skills/manage-issue-discover/SKILL.md +15 -14
- package/.codex/skills/manage-knowhow/SKILL.md +3 -2
- package/.codex/skills/manage-knowhow-capture/SKILL.md +4 -3
- package/.codex/skills/manage-learn/SKILL.md +2 -2
- package/.codex/skills/odyssey-debug/SKILL.md +12 -7
- package/.codex/skills/odyssey-improve/SKILL.md +11 -6
- package/.codex/skills/odyssey-planex/SKILL.md +14 -8
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +12 -7
- package/.codex/skills/odyssey-ui/SKILL.md +10 -5
- package/.codex/skills/quality-auto-test/SKILL.md +13 -5
- package/.codex/skills/quality-debug/SKILL.md +18 -11
- package/.codex/skills/quality-refactor/SKILL.md +4 -4
- package/.codex/skills/quality-retrospective/SKILL.md +5 -6
- package/.codex/skills/quality-review/SKILL.md +18 -11
- package/.codex/skills/quality-sync/SKILL.md +2 -2
- package/.codex/skills/quality-test/SKILL.md +7 -5
- package/.codex/skills/security-audit/SKILL.md +7 -5
- package/.codex/skills/spec-add/SKILL.md +9 -7
- package/.codex/skills/spec-load/SKILL.md +3 -2
- package/.codex/skills/spec-map/SKILL.md +10 -1
- package/.codex/skills/spec-remove/SKILL.md +3 -2
- package/.codex/skills/team-coordinate/SKILL.md +10 -4
- package/.codex/skills/team-lifecycle-v4/SKILL.md +33 -26
- package/.codex/skills/team-quality-assurance/SKILL.md +43 -0
- package/.codex/skills/team-review/SKILL.md +50 -6
- package/.codex/skills/team-tech-debt/SKILL.md +53 -7
- package/.codex/skills/team-testing/SKILL.md +50 -2
- package/.codex/skills/wiki-connect/SKILL.md +3 -1
- package/.codex/skills/wiki-digest/SKILL.md +6 -4
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.d.ts +16 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js +419 -44
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +43 -5
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/db/types.d.ts +3 -0
- package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.d.ts +46 -0
- package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js +329 -0
- package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js.map +1 -0
- package/dashboard/dist-server/src/graph/kg/embedding/index.d.ts +2 -0
- package/dashboard/dist-server/src/graph/kg/embedding/index.js +3 -0
- package/dashboard/dist-server/src/graph/kg/embedding/index.js.map +1 -0
- package/dashboard/dist-server/src/graph/kg/engine.d.ts +19 -1
- package/dashboard/dist-server/src/graph/kg/engine.js +71 -1
- package/dashboard/dist-server/src/graph/kg/engine.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/query/scoring.d.ts +5 -0
- package/dashboard/dist-server/src/graph/kg/query/scoring.js +85 -1
- package/dashboard/dist-server/src/graph/kg/query/scoring.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/query/search.d.ts +7 -0
- package/dashboard/dist-server/src/graph/kg/query/search.js +117 -1
- package/dashboard/dist-server/src/graph/kg/query/search.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/surface/mcp-tools.js +49 -0
- package/dashboard/dist-server/src/graph/kg/surface/mcp-tools.js.map +1 -1
- package/dashboard/dist-server/src/hooks/kg-sync-hook.js +3 -0
- package/dashboard/dist-server/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/core/plugin-bridge.d.ts.map +1 -1
- package/dist/src/core/plugin-bridge.js +17 -0
- package/dist/src/core/plugin-bridge.js.map +1 -1
- package/dist/src/graph/kg/db/types.d.ts +3 -0
- package/dist/src/graph/kg/db/types.d.ts.map +1 -1
- package/dist/src/graph/kg/embedding/code-embedding.d.ts +47 -0
- package/dist/src/graph/kg/embedding/code-embedding.d.ts.map +1 -0
- package/dist/src/graph/kg/embedding/code-embedding.js +329 -0
- package/dist/src/graph/kg/embedding/code-embedding.js.map +1 -0
- package/dist/src/graph/kg/embedding/index.d.ts +3 -0
- package/dist/src/graph/kg/embedding/index.d.ts.map +1 -0
- package/dist/src/graph/kg/embedding/index.js +3 -0
- package/dist/src/graph/kg/embedding/index.js.map +1 -0
- package/dist/src/graph/kg/engine.d.ts +19 -1
- package/dist/src/graph/kg/engine.d.ts.map +1 -1
- package/dist/src/graph/kg/engine.js +71 -1
- package/dist/src/graph/kg/engine.js.map +1 -1
- package/dist/src/graph/kg/query/scoring.d.ts +5 -0
- package/dist/src/graph/kg/query/scoring.d.ts.map +1 -1
- package/dist/src/graph/kg/query/scoring.js +85 -1
- package/dist/src/graph/kg/query/scoring.js.map +1 -1
- package/dist/src/graph/kg/query/search.d.ts +7 -0
- package/dist/src/graph/kg/query/search.d.ts.map +1 -1
- package/dist/src/graph/kg/query/search.js +117 -1
- package/dist/src/graph/kg/query/search.js.map +1 -1
- package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -1
- package/dist/src/graph/kg/surface/mcp-tools.js +49 -0
- package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -1
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
- package/dist/src/hooks/kg-sync-hook.js +3 -0
- package/dist/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/tools/code-semantic-search.d.ts +10 -0
- package/dist/src/tools/code-semantic-search.d.ts.map +1 -0
- package/dist/src/tools/code-semantic-search.js +81 -0
- package/dist/src/tools/code-semantic-search.js.map +1 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +4 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/wiki-search.d.ts +13 -0
- package/dist/src/tools/wiki-search.d.ts.map +1 -0
- package/dist/src/tools/wiki-search.js +114 -0
- package/dist/src/tools/wiki-search.js.map +1 -0
- package/dist/src/utils/update-notices.js +12 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +4 -1
|
@@ -50,10 +50,11 @@ If `.workflow/issues/` does not exist, auto-create the directory and write an em
|
|
|
50
50
|
```
|
|
51
51
|
Append JSON line to `issues.jsonl`.
|
|
52
52
|
|
|
53
|
-
**list**: Read `issues.jsonl
|
|
53
|
+
**list**: Read both `issues.jsonl` (active) and `issue-history.jsonl` (closed) to build the full issue set. Filter by `--status`, `--phase`, `--severity`, `--source`. When `--status closed` is specified, read from `issue-history.jsonl`. When no `--status` filter, merge both files. Display as table:
|
|
54
54
|
```
|
|
55
55
|
ID | Severity | Status | Title
|
|
56
56
|
ISS-20260318-001 | high | open | Auth token expiry bug
|
|
57
|
+
ISS-20260310-003 | medium | closed | Stale cache entries
|
|
57
58
|
```
|
|
58
59
|
|
|
59
60
|
**status**: Find issue by ID in `issues.jsonl`. Display all fields in detail format.
|
|
@@ -63,9 +64,12 @@ ISS-20260318-001 | high | open | Auth token expiry bug
|
|
|
63
64
|
**close**: Find issue by ID, set status to `closed`, add `resolution` and `closed_at`. Move line from `issues.jsonl` to `issue-history.jsonl`.
|
|
64
65
|
|
|
65
66
|
**link**: Bidirectional cross-reference between issue and task:
|
|
66
|
-
1.
|
|
67
|
-
2.
|
|
68
|
-
3.
|
|
67
|
+
1. **Pre-validate**: Verify issue ID exists in `issues.jsonl` AND task file exists at `.workflow/.task/{TASK-ID}.json` (or `.task/{TASK-ID}.json`). If either is missing, abort with error before any writes
|
|
68
|
+
2. **Save rollback state**: Read and store the original issue line from `issues.jsonl` before modification
|
|
69
|
+
3. **First write**: Find issue by ID in `issues.jsonl`, add task ID to issue's `linked_tasks[]` array, rewrite the line
|
|
70
|
+
4. **Second write**: Read task JSON. Edit the task's `linked_issues` field — append the issue ID to the array. If `linked_issues` field does not exist, create it as `[ISS-ID]`
|
|
71
|
+
5. **Rollback on failure**: If the second write (task file) fails, restore the original issue line in `issues.jsonl` from the saved rollback state and report the error
|
|
72
|
+
6. Both writes must succeed for the link to be considered complete
|
|
69
73
|
</execution>
|
|
70
74
|
|
|
71
75
|
<error_codes>
|
|
@@ -78,16 +78,16 @@ When `--yes` or `-y`: Auto-confirm perspective selection, skip interactive valid
|
|
|
78
78
|
### tasks.csv (Master State)
|
|
79
79
|
|
|
80
80
|
```csv
|
|
81
|
-
id,title,description,perspective,scope_glob,deps,context_from,wave
|
|
82
|
-
"1","Security Scan","Scan codebase for security vulnerabilities: authentication bypass, injection flaws, XSS, CSRF, sensitive data exposure, insecure crypto, secrets in code. Rate each finding critical/high/medium/low with file:line references.","security","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
83
|
-
"2","Performance Scan","Scan codebase for performance issues: N+1 queries, unbounded loops, missing caching, memory leaks, large payloads, blocking operations, unoptimized algorithms.","performance","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
84
|
-
"3","Reliability Scan","Scan codebase for reliability issues: unhandled errors, missing retry logic, race conditions, data integrity gaps, missing graceful degradation, silent failures.","reliability","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
85
|
-
"4","Maintainability Scan","Scan codebase for maintainability issues: code duplication, tight coupling, missing abstractions, unclear naming, dead code, overly complex functions.","maintainability","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
86
|
-
"5","Scalability Scan","Scan codebase for scalability issues: hardcoded limits, single-threaded bottlenecks, stateful assumptions, schema rigidity, missing pagination.","scalability","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
87
|
-
"6","UX Scan","Scan codebase for UX issues: confusing flows, missing user feedback, inconsistent behavior, missing loading states, poor error messages.","ux","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
88
|
-
"7","Accessibility Scan","Scan codebase for accessibility issues: missing ARIA labels, keyboard navigation gaps, color contrast problems, missing alt text, focus management issues.","accessibility","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
89
|
-
"8","Compliance Scan","Scan codebase for compliance issues: logging gaps, missing audit trails, data retention violations, privacy control gaps, regulatory requirement gaps.","compliance","src/**/*.{ts,tsx,js,jsx}","","","1"
|
|
90
|
-
"9","Dedup + Issue Creation","Aggregate all perspective findings. Deduplicate by file path + description similarity (keep higher severity). Generate ISS-YYYYMMDD-NNN issue records. Append to .workflow/issues/issues.jsonl.","dedup","","1;2;3;4;5;6;7;8","1;2;3;4;5;6;7;8","2"
|
|
81
|
+
id,title,description,perspective,scope_glob,deps,context_from,wave,status
|
|
82
|
+
"1","Security Scan","Scan codebase for security vulnerabilities: authentication bypass, injection flaws, XSS, CSRF, sensitive data exposure, insecure crypto, secrets in code. Rate each finding critical/high/medium/low with file:line references.","security","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
83
|
+
"2","Performance Scan","Scan codebase for performance issues: N+1 queries, unbounded loops, missing caching, memory leaks, large payloads, blocking operations, unoptimized algorithms.","performance","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
84
|
+
"3","Reliability Scan","Scan codebase for reliability issues: unhandled errors, missing retry logic, race conditions, data integrity gaps, missing graceful degradation, silent failures.","reliability","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
85
|
+
"4","Maintainability Scan","Scan codebase for maintainability issues: code duplication, tight coupling, missing abstractions, unclear naming, dead code, overly complex functions.","maintainability","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
86
|
+
"5","Scalability Scan","Scan codebase for scalability issues: hardcoded limits, single-threaded bottlenecks, stateful assumptions, schema rigidity, missing pagination.","scalability","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
87
|
+
"6","UX Scan","Scan codebase for UX issues: confusing flows, missing user feedback, inconsistent behavior, missing loading states, poor error messages.","ux","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
88
|
+
"7","Accessibility Scan","Scan codebase for accessibility issues: missing ARIA labels, keyboard navigation gaps, color contrast problems, missing alt text, focus management issues.","accessibility","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
89
|
+
"8","Compliance Scan","Scan codebase for compliance issues: logging gaps, missing audit trails, data retention violations, privacy control gaps, regulatory requirement gaps.","compliance","src/**/*.{ts,tsx,js,jsx}","","","1","pending"
|
|
90
|
+
"9","Dedup + Issue Creation","Aggregate all perspective findings. Deduplicate by file path + description similarity (keep higher severity). Generate ISS-YYYYMMDD-NNN issue records. Append to .workflow/issues/issues.jsonl.","dedup","","1;2;3;4;5;6;7;8","1;2;3;4;5;6;7;8","2","pending"
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
**Columns**:
|
|
@@ -102,6 +102,7 @@ id,title,description,perspective,scope_glob,deps,context_from,wave
|
|
|
102
102
|
| `deps` | Input | Semicolon-separated dependency task IDs |
|
|
103
103
|
| `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
|
|
104
104
|
| `wave` | Computed | Wave number (1 = perspective scans, 2 = dedup + issue creation) |
|
|
105
|
+
| `status` | Lifecycle | Task lifecycle status, initialized to `pending`. Updated to `completed`/`failed`/`skipped` after wave merge via `result_status` mapping |
|
|
105
106
|
| `result_status` | Output | `completed` / `failed` / `skipped` (mapped to master `status` on merge) |
|
|
106
107
|
| `findings` | Output | Key scan findings summary (max 500 chars) |
|
|
107
108
|
| `issues_found` | Output | JSON array of discovered issues: `[{"title":"...","severity":"critical","description":"...","location":"file:line","fix_direction":"...","affected_components":["..."]}]` |
|
|
@@ -309,8 +310,8 @@ CONSTRAINTS:
|
|
|
309
310
|
|
|
310
311
|
1. Read master `tasks.csv`
|
|
311
312
|
2. Filter rows where `wave == 2` AND `status == pending`
|
|
312
|
-
3. Check deps -- if all wave 1 agents failed, skip dedup
|
|
313
|
-
4. Build `prev_context` from wave 1 findings:
|
|
313
|
+
3. Check deps -- if all wave 1 agents failed, skip dedup (invariant 6)
|
|
314
|
+
4. Build `prev_context` from **completed** wave 1 rows only. Exclude `failed`/`skipped` rows. For excluded rows, inject `[GAP: {perspective} scan failed — findings incomplete]` note. Set `evidence_incomplete: true` if any perspective failed:
|
|
314
315
|
```
|
|
315
316
|
[Task 1: Security Scan] Found 3 issues: SQL injection in query builder (critical), missing CSRF token (high)...
|
|
316
317
|
[Task 2: Performance Scan] Found 5 issues: N+1 query in user listing (high), missing pagination (medium)...
|
|
@@ -384,7 +385,7 @@ CONSTRAINTS:
|
|
|
384
385
|
- Merge all perspective findings from prev_context into single list
|
|
385
386
|
- Deduplicate: group by file path, compare descriptions (>80% overlap or same file:line → keep higher severity)
|
|
386
387
|
- For each unique finding: generate `ISS-YYYYMMDD-NNN` ID (collision-safe), build full issue record
|
|
387
|
-
- Severity-to-priority: critical→1, high→2, medium→3, low→4; source = "
|
|
388
|
+
- Severity-to-priority: critical→1, high→2, medium→3, low→4; source = "discover", tags = ["{perspective}"]
|
|
388
389
|
- Append to `.workflow/issues/issues.jsonl` and `{discoveryDir}/discovery-issues.jsonl`
|
|
389
390
|
- Report: pre-dedup count, post-dedup count, severity_distribution
|
|
390
391
|
|
|
@@ -503,7 +504,7 @@ echo '{"ts":"<ISO>","worker":"{id}","type":"vulnerability","data":{"location":"s
|
|
|
503
504
|
| `by-prompt` with empty prompt | Interactive prompt with suggested options |
|
|
504
505
|
| Perspective agent timeout | Mark as failed, continue remaining perspectives |
|
|
505
506
|
| All perspective agents failed | Skip dedup, report no findings |
|
|
506
|
-
| Dedup agent failed |
|
|
507
|
+
| Dedup agent failed | Do NOT write to issues.jsonl — preserve raw findings in context.md and `{discoveryDir}/` for manual review or retry. Mark session `incomplete`. |
|
|
507
508
|
| issues.jsonl write failure | Retry once, then report error with findings in context.md |
|
|
508
509
|
| CSV parse error | Validate format, show line number |
|
|
509
510
|
| discoveries.ndjson corrupt | Ignore malformed lines |
|
|
@@ -30,7 +30,8 @@ $manage-knowhow "prune --before 2026-01-01 --type tip --dry-run"
|
|
|
30
30
|
- `--type <session|tip|template|recipe|reference|decision>` — Filter by knowhow type
|
|
31
31
|
- `--confirm` — Skip delete confirmation prompt
|
|
32
32
|
- `--before <date>` / `--after <date>` — Date filters for prune
|
|
33
|
-
- `--dry-run` — Preview prune without deleting
|
|
33
|
+
- `--dry-run` — Preview prune without deleting (default for prune — use `--execute` to actually delete)
|
|
34
|
+
- `--execute` — Required to actually perform prune deletions (prune defaults to dry-run)
|
|
34
35
|
</context>
|
|
35
36
|
|
|
36
37
|
<execution>
|
|
@@ -60,7 +61,7 @@ Default to `list` if no arguments. Parse first token as subcommand.
|
|
|
60
61
|
|
|
61
62
|
**delete `<id|file>`**: Require confirmation (or `--confirm` flag). MEMORY.md cannot be deleted (E004). Remove entry file (WikiIndexer auto-updates `.workflow/wiki-index.json` on next access).
|
|
62
63
|
|
|
63
|
-
**prune**: Requires at least one filter (`--tag`, `--type`, `--before`, `--after`). Workflow store only.
|
|
64
|
+
**prune**: Requires at least one filter (`--tag`, `--type`, `--before`, `--after`). Workflow store only. Prune defaults to dry-run (preview only) — always display the list of entries that would be deleted first. To actually delete, user must pass `--execute`. When `--execute` is used, prompt for confirmation via `request_user_input` before proceeding (unless `--confirm` is also passed).
|
|
64
65
|
|
|
65
66
|
### Step 4: Integrity Check
|
|
66
67
|
|
|
@@ -70,7 +70,7 @@ Prompt for or extract: language (`--lang`), usage context, code content, paramet
|
|
|
70
70
|
Prompt for or extract: goal, prerequisites, numbered steps, expected outcome, common pitfalls, related entries. Sections: Goal, Prerequisites, Steps, Expected Outcome, Common Pitfalls, Related.
|
|
71
71
|
|
|
72
72
|
**reference** (REF-{YYYYMMDD}-{slug}.md):
|
|
73
|
-
Source from `--source` flag (
|
|
73
|
+
Source from `--source` flag (fetch URL content via `Bash` curl if provided). Extract: key points, applicable scenarios, quick examples. Sections: Source, Key Points, Applicable Scenarios, Quick Examples.
|
|
74
74
|
|
|
75
75
|
**decision** (DCS-{YYYYMMDD}-{slug}.md):
|
|
76
76
|
Prompt for or extract: context, decision, alternatives (at least 2), rationale, consequences. Sections: Context, Decision, Alternatives Considered (table), Rationale, Consequences, Related.
|
|
@@ -105,11 +105,12 @@ Write to `.workflow/knowhow/{PREFIX}-{YYYYMMDD}-{slug}.md` with YAML frontmatter
|
|
|
105
105
|
title: {auto or --title}
|
|
106
106
|
description: {one-line summary for search results}
|
|
107
107
|
type: {type}
|
|
108
|
-
category: {type}
|
|
109
108
|
created: {ISO timestamp}
|
|
110
109
|
tags: [{tags}]
|
|
111
110
|
```
|
|
112
|
-
Plus type-specific: `lang` (template), `source` (reference), `status` (decision), `assetType` + `codePaths` (asset), `codePaths` (blueprint). `
|
|
111
|
+
Plus type-specific: `lang` (template), `source` (reference), `status` (decision), `assetType` + `codePaths` (asset), `codePaths` (blueprint). `description` always written — from `--description` flag or auto-generated from content.
|
|
112
|
+
|
|
113
|
+
**`category` field**: Only written to frontmatter when `--category` is explicitly provided (e.g. `--category coding`). Do NOT default `category` to the `type` value — `type` and `category` are distinct concepts: `type` is the knowhow content type (template, recipe, tip, etc.), `category` is the spec discovery category (coding, arch, test, debug, review, learning) used for agent injection routing.
|
|
113
114
|
|
|
114
115
|
### Step 6: Confirm
|
|
115
116
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: manage-learn
|
|
3
3
|
description: Capture and search learning insights and tips
|
|
4
4
|
argument-hint: "[\"<insight text>\"|list|search <query>|show <INS-id>] [--category pattern|antipattern|decision|tool|gotcha|technique] [--tag t1,t2] [--phase N] [--confidence high|medium|low]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
@@ -48,7 +48,7 @@ $manage-learn "\"Zod v4 breaks z.object().strict() API\" --category gotcha --tag
|
|
|
48
48
|
|
|
49
49
|
<invariants>
|
|
50
50
|
1. **No LLM or CLI calls**: This skill is pure file I/O — parse, infer, append, confirm. No `shell_exec`, no `spawn_agent`.
|
|
51
|
-
2. **Bootstrap on demand**: Create `.workflow/
|
|
51
|
+
2. **Bootstrap on demand**: Create `.workflow/specs/` directory and `learnings.md` on first use; do not require it to exist.
|
|
52
52
|
3. **Append-only learnings.md**: Never rewrite or delete existing entries.
|
|
53
53
|
4. **Stable INS-ids**: `INS-{8hex}` from `hash(insightText + timestamp)` — same text at different times gets different ids.
|
|
54
54
|
5. **Source field**: Always `"manual"` for captures from this skill; `"retrospective"` is reserved for `quality-retrospective`.
|
|
@@ -6,6 +6,10 @@ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request
|
|
|
6
6
|
---
|
|
7
7
|
<base>@~/.maestro/workflows/odyssey-base-codex.md</base>
|
|
8
8
|
|
|
9
|
+
<required_reading>
|
|
10
|
+
Required reading: base (`odyssey-base-codex.md`) before any actions. Load and apply base invariants, execution discipline, and shared actions before proceeding.
|
|
11
|
+
</required_reading>
|
|
12
|
+
|
|
9
13
|
<purpose>
|
|
10
14
|
archaeology → explore → diagnose → fix & confirm → generalize → discover siblings → persist.
|
|
11
15
|
Exhaustive iteration until root cause confirmed or INCONCLUSIVE.
|
|
@@ -158,7 +162,7 @@ S_RECORD → END : complete
|
|
|
158
162
|
1. Parse arguments, generate slug, create SESSION_DIR
|
|
159
163
|
2. `maestro search "<keywords>"` + Glob prior sessions + ARCHITECTURE.md + Grep keywords
|
|
160
164
|
3. Derive `phase_goals[]` from flags
|
|
161
|
-
4. Write `session.json` + `understanding.md` §1,
|
|
165
|
+
4. Write `session.json` + `understanding.md` §1, call `create_goal` with phase_goals as success_criteria
|
|
162
166
|
|
|
163
167
|
Commit: `"odyssey-debug({slug}): INTAKE — parse target and load context"`
|
|
164
168
|
|
|
@@ -184,7 +188,7 @@ spawn_agents_on_csv({ csv_path:"tasks.csv", id_column:"id",
|
|
|
184
188
|
|
|
185
189
|
Merge results → evidence.ndjson (phase: "archaeology").
|
|
186
190
|
|
|
187
|
-
**Step 2 — CLI change review** via `maestro delegate --
|
|
191
|
+
**Step 2 — CLI change review** via `maestro delegate --to claude --mode analysis` (`run_in_background: true`):
|
|
188
192
|
- PURPOSE: Review recent modifications related to {issue}
|
|
189
193
|
- EXPECTED: JSON [{commit_sha, risk_level, analysis, could_cause_issue, explanation}]
|
|
190
194
|
|
|
@@ -193,7 +197,7 @@ Update §2. Commit: `"odyssey-debug({slug}): ARCHAEOLOGY — git history analysi
|
|
|
193
197
|
### A_EXPLORE
|
|
194
198
|
Skip if no CLI tools (W006).
|
|
195
199
|
|
|
196
|
-
`maestro delegate --
|
|
200
|
+
`maestro delegate --to claude --mode analysis` (`run_in_background: true`):
|
|
197
201
|
- PURPOSE: Call chains, recent changes, error gaps, similar patterns
|
|
198
202
|
- EXPECTED: JSON {call_chains, recent_changes, error_gaps, similar_patterns}
|
|
199
203
|
|
|
@@ -208,7 +212,7 @@ Write `explore.json` + evidence phase=explore. Update §3. Mark G2. Commit: `"od
|
|
|
208
212
|
Commit: `"odyssey-debug({slug}): DIAGNOSE — root cause confirmed"`
|
|
209
213
|
|
|
210
214
|
### A_ESCALATE_DIAGNOSIS
|
|
211
|
-
`diagnosis_retries++`. < 3: `maestro delegate --
|
|
215
|
+
`diagnosis_retries++`. < 3: `maestro delegate --to claude --mode analysis`, new hypotheses, → S_DIAGNOSE. >= 3: Normal → request_user_input | `-y` → INCONCLUSIVE → S_RECORD.
|
|
212
216
|
|
|
213
217
|
### A_FIX
|
|
214
218
|
1. Present root cause + proposed fix. Normal: request_user_input | `-y`: auto proceed
|
|
@@ -218,7 +222,7 @@ Commit: `"odyssey-debug({slug}): FIX — {summary}"`
|
|
|
218
222
|
|
|
219
223
|
### A_CONFIRM
|
|
220
224
|
1. Run covering tests
|
|
221
|
-
2. `maestro delegate --
|
|
225
|
+
2. `maestro delegate --to claude --mode analysis` (`run_in_background: true`):
|
|
222
226
|
- EXPECTED: JSON {verdict, findings [{severity, description, suggestion}], regression_risk}
|
|
223
227
|
3. `session.json.confirmation`: `{test_result, cli_review, overall: "confirmed|needs_rework"}`
|
|
224
228
|
4. Update §6. `needs_rework` → S_FIX. `confirmed` → mark G3.
|
|
@@ -251,7 +255,7 @@ Update §7. Mark G4. Commit: `"odyssey-debug({slug}): GENERALIZE — pattern sca
|
|
|
251
255
|
### A_DISCOVER, A_RECORD
|
|
252
256
|
Base shared_actions. Debug overrides:
|
|
253
257
|
- **A_DISCOVER** routes scan hits per csv_schema wave results. Commit: `"odyssey-debug({slug}): DISCOVER — triage complete"`
|
|
254
|
-
- **A_RECORD** learnings per Knowledge Persistence table
|
|
258
|
+
- **A_RECORD** learnings per Knowledge Persistence table. **Confirmation gate**: Before writing spec entries, present proposed entries to user via `request_user_input` for confirmation. Skip confirmation only if `-y` flag is set.
|
|
255
259
|
|
|
256
260
|
**Completion summary:**
|
|
257
261
|
```
|
|
@@ -281,7 +285,7 @@ Goals: {done}/{total} ({skipped} skipped)
|
|
|
281
285
|
| A_ESCALATE 3-strike | request_user_input | INCONCLUSIVE |
|
|
282
286
|
| A_FIX direction | request_user_input | auto proceed |
|
|
283
287
|
|
|
284
|
-
### Goal
|
|
288
|
+
### Goal convergence rules
|
|
285
289
|
|
|
286
290
|
```
|
|
287
291
|
Stop when root cause confirmed (or INCONCLUSIVE), fix verified,
|
|
@@ -318,6 +322,7 @@ All sibling bugs fixed or issued — no leftovers.
|
|
|
318
322
|
</success_criteria>
|
|
319
323
|
|
|
320
324
|
<next_step_routing>
|
|
325
|
+
<!-- suggest-only — do NOT auto-execute. Present these as suggestions to the user. -->
|
|
321
326
|
| Condition | Next |
|
|
322
327
|
|-----------|------|
|
|
323
328
|
| Discovery issues | `/manage-issue list --source debug-odyssey` |
|
|
@@ -6,6 +6,10 @@ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request
|
|
|
6
6
|
---
|
|
7
7
|
<base>@~/.maestro/workflows/odyssey-base-codex.md</base>
|
|
8
8
|
|
|
9
|
+
<required_reading>
|
|
10
|
+
Required reading: base (`odyssey-base-codex.md`) before any actions. Load and apply base invariants, execution discipline, and shared actions before proceeding.
|
|
11
|
+
</required_reading>
|
|
12
|
+
|
|
9
13
|
<purpose>
|
|
10
14
|
survey → 6-dimension audit → diagnose → fix → verify → generalize → discover → persist.
|
|
11
15
|
Baseline-first, exhaustive iteration until zero remaining actionable findings.
|
|
@@ -172,7 +176,7 @@ S_RECORD → END : complete
|
|
|
172
176
|
3. `maestro search "<keywords>"` + Glob prior sessions + ARCHITECTURE.md + spec load coding/debug
|
|
173
177
|
4. **Baseline capture**: Record current metrics (test pass rate, bundle size, dependency count, complexity hotspots) to `session.json.baseline_metrics`
|
|
174
178
|
5. Derive `phase_goals[]` from flags
|
|
175
|
-
6. Write `session.json` + `understanding.md` section 1,
|
|
179
|
+
6. Write `session.json` + `understanding.md` section 1, call `create_goal` with phase_goals as success_criteria
|
|
176
180
|
|
|
177
181
|
Commit: `"odyssey-improve({slug}): INTAKE — target parsed and baseline captured"`
|
|
178
182
|
|
|
@@ -217,13 +221,13 @@ Root cause analysis for critical/high findings.
|
|
|
217
221
|
|
|
218
222
|
1. Group by dimension, prioritize by severity. For each: hypothesis → trace code path + git history → evidence (phase: "diagnosis")
|
|
219
223
|
2. Ambiguity → evidence (phase: "decision"); Normal: request_user_input | `-y`: defer
|
|
220
|
-
3. Complex findings: `maestro delegate --
|
|
224
|
+
3. Complex findings: `maestro delegate --to claude --mode analysis` (`run_in_background: true`)
|
|
221
225
|
4. Write `session.json.diagnoses[]`. Update section 4. Mark G3.
|
|
222
226
|
|
|
223
227
|
Commit: `"odyssey-improve({slug}): DIAGNOSE — root cause analysis"`
|
|
224
228
|
|
|
225
229
|
### A_ESCALATE_DIAGNOSIS
|
|
226
|
-
`retries++`. < 3: `maestro delegate --
|
|
230
|
+
`retries++`. < 3: `maestro delegate --to claude --mode analysis`, new hypotheses, → S_DIAGNOSE. >= 3: Normal → request_user_input | `-y` → INCONCLUSIVE → S_RECORD.
|
|
227
231
|
|
|
228
232
|
### A_FIX
|
|
229
233
|
Fix ALL diagnosed issues by severity tier (critical → high → medium → low within fix_threshold), one dimension at a time. After each tier, re-verify modified area — new findings append to current tier.
|
|
@@ -235,7 +239,7 @@ Commit: `"odyssey-improve({slug}): FIX — improvements implemented"`
|
|
|
235
239
|
### A_VERIFY
|
|
236
240
|
1. Run tests covering modified areas
|
|
237
241
|
2. Re-capture metrics, compare with `session.json.baseline_metrics`
|
|
238
|
-
3. `maestro delegate --
|
|
242
|
+
3. `maestro delegate --to claude --mode analysis` (`run_in_background: true`) — check fix correctness, regressions, impact vs baseline
|
|
239
243
|
4. `needs_rework` → S_FIX. `verified` → mark G4.
|
|
240
244
|
5. Write `session.json.confirmation`. Update section 5.
|
|
241
245
|
|
|
@@ -263,7 +267,7 @@ Commit: `"odyssey-improve({slug}): GENERALIZE — pattern scan"`
|
|
|
263
267
|
### A_DISCOVER, A_RECORD
|
|
264
268
|
Base shared_actions. Improve overrides:
|
|
265
269
|
- **A_RECORD** section 8: before/after comparison table from baseline_metrics vs current measurements
|
|
266
|
-
- **A_RECORD** section 9: learnings per Knowledge Persistence table
|
|
270
|
+
- **A_RECORD** section 9: learnings per Knowledge Persistence table. **Confirmation gate**: Before writing spec entries, present proposed entries to user via `request_user_input` for confirmation. Skip confirmation only if `-y` flag is set.
|
|
267
271
|
|
|
268
272
|
**Completion summary:**
|
|
269
273
|
```
|
|
@@ -297,7 +301,7 @@ Goals: {done}/{total} ({skipped} skipped)
|
|
|
297
301
|
| A_DIAGNOSE ambiguity | request_user_input | best-effort, deferred |
|
|
298
302
|
| A_ESCALATE 3-strike | request_user_input | INCONCLUSIVE |
|
|
299
303
|
|
|
300
|
-
### Goal
|
|
304
|
+
### Goal convergence rules
|
|
301
305
|
|
|
302
306
|
```
|
|
303
307
|
Exhaust all findings (fix/issue/decision) until remaining_actionable == 0
|
|
@@ -333,6 +337,7 @@ Pending decisions must request_user_input — no report-only.
|
|
|
333
337
|
</success_criteria>
|
|
334
338
|
|
|
335
339
|
<next_step_routing>
|
|
340
|
+
<!-- suggest-only — do NOT auto-execute. Present these as suggestions to the user. -->
|
|
336
341
|
| Condition | Next |
|
|
337
342
|
|-----------|------|
|
|
338
343
|
| Security findings need deep investigation | `$odyssey-debug "<finding>"` |
|
|
@@ -7,6 +7,10 @@ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request
|
|
|
7
7
|
|
|
8
8
|
<base>@~/.maestro/workflows/odyssey-base-codex.md</base>
|
|
9
9
|
|
|
10
|
+
<required_reading>
|
|
11
|
+
Required reading: base (`odyssey-base-codex.md`) before any actions. Load and apply base invariants, execution discipline, and shared actions before proceeding.
|
|
12
|
+
</required_reading>
|
|
13
|
+
|
|
10
14
|
<purpose>
|
|
11
15
|
Requirement-to-delivery closed loop: parse requirement -> define acceptance criteria ->
|
|
12
16
|
plan -> execute -> verify -> fix gaps -> iterate until ALL criteria pass.
|
|
@@ -89,6 +93,7 @@ $ARGUMENTS
|
|
|
89
93
|
<invariants>
|
|
90
94
|
Base invariants apply. Additionally:
|
|
91
95
|
6. **Acceptance criteria are sacred** -- no "close enough", no manual override without explicit escalation
|
|
96
|
+
7. **Max-iteration failure is ESCALATED** -- when max iterations reached with failing criteria, status MUST be `ESCALATED` or `PARTIAL`, NEVER `ALL_PASSED`. Under `-y`, criteria remain `failed` with `deferred` decision, session status is `ESCALATED`. Lowering acceptance standards requires explicit user confirmation with original criteria, change reason, and `incomplete` marker recorded.
|
|
92
97
|
</invariants>
|
|
93
98
|
|
|
94
99
|
<self_iteration>
|
|
@@ -173,7 +178,7 @@ S_RECORD -> END
|
|
|
173
178
|
- **Normal**: request_user_input to confirm/edit
|
|
174
179
|
- **`-y`**: auto-derive, record `{"phase":"decision","type":"criteria-confirmation","status":"deferred"}`
|
|
175
180
|
3. Search prior knowledge: `maestro search`, related sessions
|
|
176
|
-
4. Write session.json + understanding.md S1. Mark G1 done.
|
|
181
|
+
4. Write session.json + understanding.md S1. Mark G1 done. call `create_goal` with phase_goals as success_criteria
|
|
177
182
|
|
|
178
183
|
Commit: `"odyssey-planex({slug}): INTAKE -- requirement parsed"`
|
|
179
184
|
|
|
@@ -186,7 +191,7 @@ Commit: `"odyssey-planex({slug}): INTAKE -- requirement parsed"`
|
|
|
186
191
|
MODE: analysis
|
|
187
192
|
CONTEXT: @**/* | Criteria: {criteria_summary}
|
|
188
193
|
EXPECTED: JSON [{task_id, title, description, criteria_refs, deps}]
|
|
189
|
-
" --
|
|
194
|
+
" --to claude --mode analysis
|
|
190
195
|
```
|
|
191
196
|
Execute with `run_in_background: true`, wait for callback.
|
|
192
197
|
3. Write session.json.plan, append evidence (planning), update understanding.md S2. Mark G2 done.
|
|
@@ -289,7 +294,7 @@ Execute with `run_in_background: true`, wait for callback.
|
|
|
289
294
|
1. First attempt: normal dispatch
|
|
290
295
|
2. Retry: `--resume planex-${slug}-${task_id}` with simplified prompt
|
|
291
296
|
3. Final: fallback to Agent path
|
|
292
|
-
4. All 3 fail -> mark task `blocked`, record checkpoint, continue remaining tasks
|
|
297
|
+
4. All 3 fail -> mark task `blocked`, record checkpoint, continue remaining tasks. Blocked tasks make G3 `incomplete` — related acceptance criteria are marked `blocked`, and S_VERIFY/S_RECORD propagate the incomplete status.
|
|
293
298
|
|
|
294
299
|
#### Step 4: Per-Task Evidence
|
|
295
300
|
|
|
@@ -382,7 +387,7 @@ Commit: `"odyssey-planex({slug}): VERIFY -- acceptance check"`
|
|
|
382
387
|
MODE: analysis
|
|
383
388
|
CONTEXT: @{modified_files} | Passing: {passing} | Fixed: {fixed}
|
|
384
389
|
EXPECTED: JSON {verdict, regression_risk, concerns}
|
|
385
|
-
" --
|
|
390
|
+
" --to claude --mode analysis
|
|
386
391
|
```
|
|
387
392
|
4. Append evidence (fix), update understanding.md S5 -> S_VERIFY
|
|
388
393
|
|
|
@@ -405,7 +410,7 @@ Mark G5 done. Commit: `"odyssey-planex({slug}): GENERALIZE -- pattern scan"`
|
|
|
405
410
|
Base shared_actions. Mark G6 done. Commit: `"odyssey-planex({slug}): DISCOVER -- triage complete"`
|
|
406
411
|
|
|
407
412
|
### A_RECORD
|
|
408
|
-
Base shared_actions. Learnings per Knowledge Persistence table.
|
|
413
|
+
Base shared_actions. Learnings per Knowledge Persistence table. **Confirmation gate**: Before writing spec entries, present proposed entries to user via `request_user_input` for confirmation. Skip confirmation only if `-y` flag is set.
|
|
409
414
|
|
|
410
415
|
**Completion summary:**
|
|
411
416
|
```
|
|
@@ -437,9 +442,9 @@ Commit: `"odyssey-planex({slug}): RECORD -- session summary"`
|
|
|
437
442
|
| S_EXECUTE execution options | request_user_input (executor/review/verify) | use defaults (auto/Skip/Auto), `confirmed: true` |
|
|
438
443
|
| S_EXECUTE task blocked (3 retries) | request_user_input: continue or stop | auto continue, log blocked |
|
|
439
444
|
| S_VERIFY manual criterion | request_user_input | `deferred` |
|
|
440
|
-
| S_VERIFY max iteration reached | request_user_input |
|
|
445
|
+
| S_VERIFY max iteration reached | request_user_input (continue/lower bar/accept) | mark status `ESCALATED`, record failing criteria as `deferred`, proceed to S_RECORD with `ESCALATED` status — NEVER mark as `ALL_PASSED` |
|
|
441
446
|
|
|
442
|
-
### Goal
|
|
447
|
+
### Goal convergence rules
|
|
443
448
|
|
|
444
449
|
```
|
|
445
450
|
Stop when acceptance_criteria[*] all status==passed
|
|
@@ -485,11 +490,12 @@ Max iterations (default 3) prevents infinite loops. Each iteration records crite
|
|
|
485
490
|
- [ ] understanding.md S1-S8 updated per phase; phase_goals G1-G7 audited
|
|
486
491
|
- [ ] Generalization + discovery completed (unless --skip-generalize)
|
|
487
492
|
- [ ] Quality Gate self-iteration triggered when insufficient
|
|
488
|
-
- [ ]
|
|
493
|
+
- [ ] `create_goal` called once after intake; `-y` mode: no blocking prompts
|
|
489
494
|
- [ ] Session resumable via -c; completion summary output
|
|
490
495
|
</success_criteria>
|
|
491
496
|
|
|
492
497
|
<next_step_routing>
|
|
498
|
+
<!-- suggest-only — do NOT auto-execute. Present these as suggestions to the user. -->
|
|
493
499
|
| Condition | Next step |
|
|
494
500
|
|-----------|-----------|
|
|
495
501
|
| All criteria passed | `$odyssey-review-test-fix <changed-files>` |
|
|
@@ -6,6 +6,10 @@ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request
|
|
|
6
6
|
---
|
|
7
7
|
<base>@~/.maestro/workflows/odyssey-base-codex.md</base>
|
|
8
8
|
|
|
9
|
+
<required_reading>
|
|
10
|
+
Required reading: base (`odyssey-base-codex.md`) before any actions. Load and apply base invariants, execution discipline, and shared actions before proceeding.
|
|
11
|
+
</required_reading>
|
|
12
|
+
|
|
9
13
|
<purpose>
|
|
10
14
|
archaeology → explore → multi-dimensional review → fix ALL findings → confirm → generalize → discover → persist. Zero-residual: every finding must have an action (fix/issue/decision).
|
|
11
15
|
</purpose>
|
|
@@ -142,7 +146,7 @@ S_DISCOVER → S_RECORD : done or max_loops
|
|
|
142
146
|
<actions>
|
|
143
147
|
|
|
144
148
|
### A_INTAKE
|
|
145
|
-
Parse target + flags → file list. Create SESSION_DIR, derive phase_goals[]. Search prior knowledge. Write session.json + section 1.
|
|
149
|
+
Parse target + flags → file list. Create SESSION_DIR, derive phase_goals[]. Search prior knowledge. Write session.json + section 1. Call `create_goal` with phase_goals as success_criteria.
|
|
146
150
|
|
|
147
151
|
### A_ARCHAEOLOGY
|
|
148
152
|
**spawn_agents_on_csv (Wave 1):**
|
|
@@ -156,10 +160,10 @@ spawn_agents_on_csv({ csv_path: "tasks.csv", id_column: "id",
|
|
|
156
160
|
max_concurrency: 2, max_runtime_seconds: 300,
|
|
157
161
|
output_csv_path: "wave-1-results.csv", output_schema: SHARED_OUTPUT_SCHEMA })
|
|
158
162
|
```
|
|
159
|
-
Merge → evidence (phase: archaeology). CLI delegate `--
|
|
163
|
+
Merge → evidence (phase: archaeology). CLI delegate `--to claude --mode analysis`. Update section 2.
|
|
160
164
|
|
|
161
165
|
### A_EXPLORE
|
|
162
|
-
CLI delegate `--
|
|
166
|
+
CLI delegate `--to claude --mode analysis` — call chains, error gaps, similar patterns. Write explore.json. Update section 3. Mark G2.
|
|
163
167
|
|
|
164
168
|
### A_REVIEW
|
|
165
169
|
**spawn_agents_on_csv (Wave 2):**
|
|
@@ -192,7 +196,7 @@ Remaining > 0 → retry (no max_loops limit). Unchanged 2 rounds → classify ea
|
|
|
192
196
|
Blanket "pre-existing" forbidden.
|
|
193
197
|
|
|
194
198
|
### A_CONFIRM
|
|
195
|
-
Run tests + CLI delegate zero-residual review (`--
|
|
199
|
+
Run tests + CLI delegate zero-residual review (`--to claude --mode analysis`).
|
|
196
200
|
- `remaining == 0 AND new == 0` → confirmed, mark G3
|
|
197
201
|
- Otherwise → needs_rework → S_FIX
|
|
198
202
|
|
|
@@ -223,7 +227,7 @@ Mark G4.
|
|
|
223
227
|
Base shared_actions. Review overrides: cross-phase loop tracking per base.
|
|
224
228
|
|
|
225
229
|
### A_RECORD
|
|
226
|
-
Base shared_actions. Learnings per Knowledge Persistence table.
|
|
230
|
+
Base shared_actions. Learnings per Knowledge Persistence table. **Confirmation gate**: Before writing spec entries, present proposed entries to user via `request_user_input` for confirmation. Skip confirmation only if `-y` flag is set.
|
|
227
231
|
|
|
228
232
|
**Completion summary:**
|
|
229
233
|
```
|
|
@@ -248,7 +252,7 @@ Goals: {done}/{total} ({skipped} skipped)
|
|
|
248
252
|
| S_FIX re-review new findings | request_user_input | auto-append |
|
|
249
253
|
| S_CONFIRM needs_rework | Display → S_FIX | auto proceed |
|
|
250
254
|
|
|
251
|
-
### Goal
|
|
255
|
+
### Goal convergence rules
|
|
252
256
|
|
|
253
257
|
```
|
|
254
258
|
Stop when review_result.remaining_actionable == 0, confirmation == confirmed,
|
|
@@ -274,10 +278,11 @@ Decision pending must request_user_input.
|
|
|
274
278
|
- [ ] All dimensions reviewed, ALL findings fixed (remaining_actionable == 0), zero-residual confirmed
|
|
275
279
|
- [ ] Per-tier re-review gate; every unfixed finding individually classified
|
|
276
280
|
- [ ] Generalized with multi-layer scan (unless --skip-generalize); self-iteration on insufficient
|
|
277
|
-
- [ ] understanding.md sections 1-8, phase_goals G1-G6 audited,
|
|
281
|
+
- [ ] understanding.md sections 1-8, phase_goals G1-G6 audited, `create_goal` called once, `-y` no blocking, -c resumable
|
|
278
282
|
</success_criteria>
|
|
279
283
|
|
|
280
284
|
<next_step_routing>
|
|
285
|
+
<!-- suggest-only — do NOT auto-execute. Present these as suggestions to the user. -->
|
|
281
286
|
| Condition | Next |
|
|
282
287
|
|-----------|------|
|
|
283
288
|
| Deeper debug needed | `$odyssey-debug "<finding>"` |
|
|
@@ -7,6 +7,10 @@ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request
|
|
|
7
7
|
|
|
8
8
|
<base>@~/.maestro/workflows/odyssey-base-codex.md</base>
|
|
9
9
|
|
|
10
|
+
<required_reading>
|
|
11
|
+
Required reading: base (`odyssey-base-codex.md`) before any actions. Load and apply base invariants, execution discipline, and shared actions before proceeding.
|
|
12
|
+
</required_reading>
|
|
13
|
+
|
|
10
14
|
<purpose>
|
|
11
15
|
survey -> 6-dimension audit -> divergent creative exploration ->
|
|
12
16
|
fix -> verify -> generalize -> discover -> persist.
|
|
@@ -153,7 +157,7 @@ S_RECORD -> END : complete
|
|
|
153
157
|
2. Generate slug, create SESSION_DIR
|
|
154
158
|
3. `maestro search` + Glob prior sessions + ARCHITECTURE.md + spec load ui/coding
|
|
155
159
|
4. Derive `phase_goals[]` from flags (apply `skip_when`)
|
|
156
|
-
5. Write `session.json` + `understanding.md` section 1,
|
|
160
|
+
5. Write `session.json` + `understanding.md` section 1, call `create_goal` with phase_goals as success_criteria
|
|
157
161
|
|
|
158
162
|
Commit: `"odyssey-ui({slug}): INTAKE -- target parsed"`
|
|
159
163
|
|
|
@@ -208,7 +212,7 @@ TASK: Identify polish opportunities | Suggest delight moments | Evaluate visual
|
|
|
208
212
|
MODE: analysis CONTEXT: @{target_files} | Survey: {token_summary} | Audit: {top_findings}
|
|
209
213
|
EXPECTED: JSON [{idea, category, impact, effort, description}]
|
|
210
214
|
CONSTRAINTS: User-perceptible improvements only
|
|
211
|
-
" --
|
|
215
|
+
" --to claude --mode analysis
|
|
212
216
|
```
|
|
213
217
|
Execute with `run_in_background: true`, then wait for callback.
|
|
214
218
|
|
|
@@ -225,7 +229,7 @@ Commit: `"odyssey-ui({slug}): FIX -- improvements applied"`
|
|
|
225
229
|
|
|
226
230
|
### A_VERIFY
|
|
227
231
|
1. Run tests (lint, unit, visual regression)
|
|
228
|
-
2. CLI-assisted: `maestro delegate --
|
|
232
|
+
2. CLI-assisted: `maestro delegate --to claude --mode analysis` -- visual correctness, interaction states, accessibility, responsive
|
|
229
233
|
3. `needs_rework` -> S_FIX. `verified` -> mark G4 done. Update section 5, write `confirmation`.
|
|
230
234
|
|
|
231
235
|
Commit: `"odyssey-ui({slug}): VERIFY -- visual verification"`
|
|
@@ -250,7 +254,7 @@ Commit: `"odyssey-ui({slug}): GENERALIZE -- pattern scan"`
|
|
|
250
254
|
### A_DISCOVER, A_RECORD
|
|
251
255
|
Base shared_actions. UI overrides:
|
|
252
256
|
- **A_DISCOVER** routing per base triage logic
|
|
253
|
-
- **A_RECORD** learnings per Knowledge Persistence table
|
|
257
|
+
- **A_RECORD** learnings per Knowledge Persistence table. **Confirmation gate**: Before writing spec entries, present proposed entries to user via `request_user_input` for confirmation. Skip confirmation only if `-y` flag is set.
|
|
254
258
|
|
|
255
259
|
**Completion summary:**
|
|
256
260
|
```
|
|
@@ -278,7 +282,7 @@ Goals: {done}/{total} ({skipped} skipped)
|
|
|
278
282
|
|----------------|--------|------|
|
|
279
283
|
| A_FIX improvement confirmation | request_user_input | auto-proceed, `deferred` |
|
|
280
284
|
|
|
281
|
-
### Goal
|
|
285
|
+
### Goal convergence rules
|
|
282
286
|
|
|
283
287
|
```
|
|
284
288
|
Exhaustive iteration: process all audit + diverge findings (fix/issue/decision)
|
|
@@ -309,6 +313,7 @@ phase=decision pending items MUST request_user_input. No report-only items.
|
|
|
309
313
|
</success_criteria>
|
|
310
314
|
|
|
311
315
|
<next_step_routing>
|
|
316
|
+
<!-- suggest-only — do NOT auto-execute. Present these as suggestions to the user. -->
|
|
312
317
|
| Condition | Next |
|
|
313
318
|
|-----------|------|
|
|
314
319
|
| Finding needs deeper debug | `$odyssey-debug "<finding>"` |
|
|
@@ -16,7 +16,7 @@ Topology: layers as waves (L0->L1->L2->L3 sequential, scenarios within layer par
|
|
|
16
16
|
$ARGUMENTS -- phase number and optional flags.
|
|
17
17
|
|
|
18
18
|
**Flags**:
|
|
19
|
-
- `-y, --yes`: Skip all confirmations
|
|
19
|
+
- `-y, --yes`: Skip all confirmations (including CSV generation approval gate after S_CSV_GEN)
|
|
20
20
|
- `-c, --concurrency N`: Max concurrent agents per layer (default: 5)
|
|
21
21
|
- `--max-iter N`: Max outer iterations (default: 5; 1 = single-pass)
|
|
22
22
|
- `--layer L`: Restrict to specific layer (L0|L1|L2|L3)
|
|
@@ -48,9 +48,17 @@ id,name,layer,priority,category,target_file,test_file,description,test_cases,fix
|
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
**scenarios.csv column semantics**:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
-
|
|
51
|
+
|
|
52
|
+
**Input columns** (written by orchestrator into wave CSV):
|
|
53
|
+
id (AT-NNN), name, layer (L1/L2/L3 = wave order), priority (critical/high/medium), category (api_contract/business_rule/state_transition/user_flow/...), target_file (source file tested), test_file (test file path to create), description (what scenario validates), test_cases (semicolon-sep, each -> one it() block), fixtures (required mocks/fixtures, semicolon-sep), req_ref (REQ-NNN:AC-N or gap-id or empty), infrastructure_hints (framework + pattern refs from infra discovery)
|
|
54
|
+
|
|
55
|
+
**Computed column** (added to wave CSV by orchestrator before spawn):
|
|
56
|
+
prev_context (findings from prior layer scenarios, cross-layer propagation)
|
|
57
|
+
|
|
58
|
+
**Lifecycle columns** (exist ONLY in master CSV, populated during merge from output_schema results -- NEVER included in wave CSV input):
|
|
59
|
+
status (pending->written->passed->failed->blocked), red_result (expected_fail/unexpected_fail/pass), classification, fix_code, evidence, findings (patterns discovered, notes for dependents, max 500 chars), files_modified, error
|
|
60
|
+
|
|
61
|
+
**Column separation rule**: Wave CSV (input to `spawn_agents_on_csv`) contains Input columns + prev_context only. Lifecycle columns are NEVER passed to workers. Workers return values exclusively via `output_schema`. During merge: `result_status` -> master `status`; other output fields copied into matching lifecycle columns.
|
|
54
62
|
|
|
55
63
|
### diagnosis.csv (Iteration Phase)
|
|
56
64
|
|
|
@@ -107,7 +115,7 @@ S_INFRA:
|
|
|
107
115
|
-> S_CSV_GEN DO: detect framework, read 2-3 existing tests, build infrastructure_hints
|
|
108
116
|
|
|
109
117
|
S_CSV_GEN:
|
|
110
|
-
-> S_L0 DO: build scenarios.csv, set cross-layer prev_context
|
|
118
|
+
-> S_L0 DO: build scenarios.csv, set cross-layer prev_context, then confirm with user via request_user_input (skip if -y/--yes): display scenario count per layer, priority distribution, and sample rows; user approves or adjusts before execution
|
|
111
119
|
-> END WHEN: --dry-run (plan only)
|
|
112
120
|
|
|
113
121
|
S_L0:
|