maestro-flow 0.5.41 → 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 -43
- package/.agents/skills/maestro-blueprint/SKILL.md +1 -23
- package/.agents/skills/maestro-brainstorm/SKILL.md +8 -25
- 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 +27 -9
- package/.agents/skills/maestro-fork/SKILL.md +4 -3
- package/.agents/skills/maestro-grill/SKILL.md +1 -17
- 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 -15
- 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 +6 -62
- 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 -9
- 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/.agents/skills/team-adversarial-swarm/workflows/wf-swarm-synthesize.js +248 -248
- package/.agents/skills/team-coordinate/specs/role-spec-template.md +197 -198
- package/.agents/skills/team-roadmap-dev/SKILL.md +164 -164
- package/.agents/skills/team-roadmap-dev/specs/team-config.json +1 -1
- package/.agents/skills/team-swarm/roles/analyst/role.md +172 -176
- 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 -43
- package/.agy/skills/maestro-blueprint/SKILL.md +1 -23
- package/.agy/skills/maestro-brainstorm/SKILL.md +8 -25
- 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 +27 -9
- package/.agy/skills/maestro-fork/SKILL.md +4 -3
- package/.agy/skills/maestro-grill/SKILL.md +1 -17
- 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 -15
- 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 +6 -62
- 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 -9
- 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/.agy/skills/team-adversarial-swarm/workflows/wf-swarm-synthesize.js +248 -248
- package/.agy/skills/team-coordinate/specs/role-spec-template.md +197 -198
- package/.agy/skills/team-roadmap-dev/SKILL.md +141 -153
- package/.agy/skills/team-roadmap-dev/specs/team-config.json +1 -1
- package/.agy/skills/team-swarm/roles/analyst/role.md +172 -176
- 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 -43
- package/.claude/commands/maestro-blueprint.md +1 -23
- package/.claude/commands/maestro-brainstorm.md +8 -25
- 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 +27 -9
- package/.claude/commands/maestro-fork.md +4 -3
- package/.claude/commands/maestro-grill.md +1 -17
- 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 -15
- 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 +6 -62
- 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 -9
- 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/.claude/skills/team-adversarial-swarm/workflows/wf-swarm-synthesize.js +248 -248
- package/.claude/skills/team-coordinate/specs/role-spec-template.md +197 -198
- package/.claude/skills/team-roadmap-dev/SKILL.md +169 -169
- package/.claude/skills/team-roadmap-dev/specs/team-config.json +1 -1
- package/.claude/skills/team-swarm/roles/analyst/role.md +181 -185
- 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/commands/install-backend.js +31 -16
- package/dashboard/dist-server/src/commands/install-backend.js.map +1 -1
- package/dashboard/dist-server/src/core/component-defs.js +25 -0
- package/dashboard/dist-server/src/core/component-defs.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/dashboard/dist-server/src/tools/spec-loader.js +7 -3
- package/dashboard/dist-server/src/tools/spec-loader.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +31 -16
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/core/component-defs.d.ts.map +1 -1
- package/dist/src/core/component-defs.js +25 -0
- package/dist/src/core/component-defs.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/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +7 -3
- package/dist/src/tools/spec-loader.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 +23 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +4 -1
- package/workflows/agy-instructions.md +147 -161
- package/workflows/claude-instructions.md +100 -48
- package/workflows/codex-instructions.md +147 -161
- package/workflows/execute.md +4 -3
- package/workflows/explore-usage.md +41 -81
- package/workflows/grill.md +11 -0
- package/workflows/milestone-audit.md +8 -0
- package/workflows/odyssey-base-codex.md +115 -116
- package/workflows/odyssey-base.md +89 -91
- package/workflows/plan.md +6 -0
|
@@ -1,185 +1,181 @@
|
|
|
1
|
-
---
|
|
2
|
-
role: analyst
|
|
3
|
-
prefix: ANALYST
|
|
4
|
-
inner_loop: false
|
|
5
|
-
output_tag: "[analyst]"
|
|
6
|
-
message_types:
|
|
7
|
-
success: analysis_ready
|
|
8
|
-
error: error
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Analyst Role — Phase 2-4
|
|
12
|
-
|
|
13
|
-
Tag: `[analyst]` | Prefix: `ANALYST-*`
|
|
14
|
-
Responsibility: After swarm converges, synthesize the best solution + top trails + convergence curve into a human-readable `best-solution.md` report. Provides interpretation, not just data dump.
|
|
15
|
-
|
|
16
|
-
## Boundaries
|
|
17
|
-
|
|
18
|
-
### MUST
|
|
19
|
-
- Read `<session>/best.json`, `<session>/artifacts/swarm-report.json`, all `<session>/trails/*.jsonl`
|
|
20
|
-
- Produce `<session>/artifacts/best-solution.md` as the final deliverable
|
|
21
|
-
- Explain WHY the best path won (which decisions mattered, evidence chain)
|
|
22
|
-
- Compare best vs runner-ups to surface stability vs luck
|
|
23
|
-
- Document convergence story (entropy curve, when stagnation hit)
|
|
24
|
-
|
|
25
|
-
### MUST NOT
|
|
26
|
-
- Re-score solutions (that is scorer's job — analyst takes verified_score as given)
|
|
27
|
-
- Modify best.json, trails, or pheromone state
|
|
28
|
-
- Generate solutions of its own — analyst synthesizes existing ant outputs
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
## Phase 2: Context Loading
|
|
32
|
-
|
|
33
|
-
| Input | Source | Required |
|
|
34
|
-
|-------|--------|----------|
|
|
35
|
-
| Original objective | `<session>/swarm-config.json#ant_prompt.objective` | Yes |
|
|
36
|
-
| Best solution | `<session>/best.json` | Yes |
|
|
37
|
-
| Full swarm report | `<session>/artifacts/swarm-report.json` | Yes |
|
|
38
|
-
| All trails | `<session>/trails/*.jsonl` | Yes |
|
|
39
|
-
| Convergence reason | swarm-report.json or `aco.py converged` output | Yes |
|
|
40
|
-
| Best ant artifact | `<session>/artifacts/ant-<best.iteration>-<best.id>.json` (full evidence) | Yes |
|
|
41
|
-
| Issues log | `<session>/wisdom/issues.md` | Optional |
|
|
42
|
-
|
|
43
|
-
Workflow:
|
|
44
|
-
1. Extract session path from task description
|
|
45
|
-
2. Read swarm-config.json -> capture objective
|
|
46
|
-
3. Read best.json -> identify best ant
|
|
47
|
-
4. Read full swarm-report.json -> get top_k + convergence_curve
|
|
48
|
-
5. Read the best ant's full artifact for evidence chain
|
|
49
|
-
6. Read all trails/*.jsonl into a list (chronological)
|
|
50
|
-
|
|
51
|
-
## Phase 3: Synthesis
|
|
52
|
-
|
|
53
|
-
### 3.1 Structure the report
|
|
54
|
-
|
|
55
|
-
Layout for `best-solution.md`:
|
|
56
|
-
|
|
57
|
-
```markdown
|
|
58
|
-
# Swarm Result — <objective_short_form>
|
|
59
|
-
|
|
60
|
-
## Best Solution
|
|
61
|
-
|
|
62
|
-
**Path**: node_a → node_c → node_f
|
|
63
|
-
**Verified Score**: 0.82
|
|
64
|
-
**Iteration**: 3 of 5
|
|
65
|
-
**Ant**: ANT-3-2
|
|
66
|
-
|
|
67
|
-
### Summary
|
|
68
|
-
<one paragraph — what the best solution proposes and why it answers the objective>
|
|
69
|
-
|
|
70
|
-
### Evidence Chain
|
|
71
|
-
- `src/foo.ts:42` — <how this evidence supports the decision>
|
|
72
|
-
- `tests/foo.spec.ts:18` — <...>
|
|
73
|
-
|
|
74
|
-
### Candidate Artifact
|
|
75
|
-
<extract from best.candidate_solution — quote or summarize, link to file if file_ref>
|
|
76
|
-
|
|
77
|
-
## Why This Path Won
|
|
78
|
-
|
|
79
|
-
| Decision | Pheromone-guided? | Why it mattered |
|
|
80
|
-
|----------|-------------------|-----------------|
|
|
81
|
-
| start = node_a | weighted | <reason> |
|
|
82
|
-
| a → c | yes (0.45 hint) | <reason> |
|
|
83
|
-
| c → f | NO (deviation) | <reason> — this was the key call |
|
|
84
|
-
|
|
85
|
-
## Runner-Up Solutions
|
|
86
|
-
|
|
87
|
-
| Rank | Ant | Path | Score | Diff from best |
|
|
88
|
-
|------|-----|------|-------|----------------|
|
|
89
|
-
| 2 | ANT-2-1 | a → b → e | 0.74 | -0.08; weaker evidence at e |
|
|
90
|
-
| 3 | ANT-4-3 | a → c → g | 0.71 | -0.11; valid but less specific |
|
|
91
|
-
|
|
92
|
-
## Convergence Story
|
|
93
|
-
|
|
94
|
-
Iterations: 4 of 5 max
|
|
95
|
-
Trigger: stagnation (best unchanged for 2 iterations)
|
|
96
|
-
|
|
97
|
-
Entropy curve:
|
|
98
|
-
- iter 1: 3.21 (broad exploration)
|
|
99
|
-
- iter 2: 2.45 (narrowing on node_a region)
|
|
100
|
-
- iter 3: 1.85 (best emerges at ANT-3-2)
|
|
101
|
-
- iter 4: 1.72 (consensus around best, no improvement)
|
|
102
|
-
|
|
103
|
-
Interpretation: <2-3 sentences on whether the swarm converged on a genuine optimum or got stuck>
|
|
104
|
-
|
|
105
|
-
## Caveats
|
|
106
|
-
|
|
107
|
-
- <e.g., 40% of ants in iter 2 flagged as hallucinations>
|
|
108
|
-
- <e.g., evidence for node_f is single-source — recommend manual verification>
|
|
109
|
-
- <e.g., search space had only N nodes — larger space may surface better solutions>
|
|
110
|
-
|
|
111
|
-
## Reproducibility
|
|
112
|
-
|
|
113
|
-
- Config: `swarm-config.json` (pinned)
|
|
114
|
-
- Best path: `best.json`
|
|
115
|
-
- Full trails: `trails/<iter>.jsonl`
|
|
116
|
-
- Random seed: <if used>
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### 3.2 Interpretation rules
|
|
120
|
-
|
|
121
|
-
- **Why-it-won analysis** is the highest-value content. Don't just describe the path — explain which decisions were pivotal.
|
|
122
|
-
- **Pheromone vs deviation**: track which steps followed pheromone hints vs deviated. Deviations that produced higher scores are the most interesting signal.
|
|
123
|
-
- **Runner-up diff**: surface why #2 lost — was it a weaker path or just unlucky evidence?
|
|
124
|
-
- **Caveats are mandatory**: every swarm result has limitations. List them honestly.
|
|
125
|
-
|
|
126
|
-
### 3.3 Constraints
|
|
127
|
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
- Every
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
|
146
|
-
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
"
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
|
180
|
-
|
|
181
|
-
|
|
|
182
|
-
| Trails empty | Same as above — no exploration data to analyze |
|
|
183
|
-
| Best ant artifact missing | Use only best.json fields; note as caveat |
|
|
184
|
-
| Cross-ref mismatch (score discrepancy) | Trust best.json; note discrepancy in caveats |
|
|
185
|
-
| Line count > 200 after rewrite | Hard-fail report; coordinator decides retry vs accept |
|
|
1
|
+
---
|
|
2
|
+
role: analyst
|
|
3
|
+
prefix: ANALYST
|
|
4
|
+
inner_loop: false
|
|
5
|
+
output_tag: "[analyst]"
|
|
6
|
+
message_types:
|
|
7
|
+
success: analysis_ready
|
|
8
|
+
error: error
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Analyst Role — Phase 2-4
|
|
12
|
+
|
|
13
|
+
Tag: `[analyst]` | Prefix: `ANALYST-*`
|
|
14
|
+
Responsibility: After swarm converges, synthesize the best solution + top trails + convergence curve into a human-readable `best-solution.md` report. Provides interpretation, not just data dump.
|
|
15
|
+
|
|
16
|
+
## Boundaries
|
|
17
|
+
|
|
18
|
+
### MUST
|
|
19
|
+
- Read `<session>/best.json`, `<session>/artifacts/swarm-report.json`, all `<session>/trails/*.jsonl`
|
|
20
|
+
- Produce `<session>/artifacts/best-solution.md` as the final deliverable
|
|
21
|
+
- Explain WHY the best path won (which decisions mattered, evidence chain)
|
|
22
|
+
- Compare best vs runner-ups to surface stability vs luck
|
|
23
|
+
- Document convergence story (entropy curve, when stagnation hit)
|
|
24
|
+
|
|
25
|
+
### MUST NOT
|
|
26
|
+
- Re-score solutions (that is scorer's job — analyst takes verified_score as given)
|
|
27
|
+
- Modify best.json, trails, or pheromone state
|
|
28
|
+
- Generate solutions of its own — analyst synthesizes existing ant outputs
|
|
29
|
+
- Pad best-solution.md with prose — every section must earn its place
|
|
30
|
+
|
|
31
|
+
## Phase 2: Context Loading
|
|
32
|
+
|
|
33
|
+
| Input | Source | Required |
|
|
34
|
+
|-------|--------|----------|
|
|
35
|
+
| Original objective | `<session>/swarm-config.json#ant_prompt.objective` | Yes |
|
|
36
|
+
| Best solution | `<session>/best.json` | Yes |
|
|
37
|
+
| Full swarm report | `<session>/artifacts/swarm-report.json` | Yes |
|
|
38
|
+
| All trails | `<session>/trails/*.jsonl` | Yes |
|
|
39
|
+
| Convergence reason | swarm-report.json or `aco.py converged` output | Yes |
|
|
40
|
+
| Best ant artifact | `<session>/artifacts/ant-<best.iteration>-<best.id>.json` (full evidence) | Yes |
|
|
41
|
+
| Issues log | `<session>/wisdom/issues.md` | Optional |
|
|
42
|
+
|
|
43
|
+
Workflow:
|
|
44
|
+
1. Extract session path from task description
|
|
45
|
+
2. Read swarm-config.json -> capture objective
|
|
46
|
+
3. Read best.json -> identify best ant
|
|
47
|
+
4. Read full swarm-report.json -> get top_k + convergence_curve
|
|
48
|
+
5. Read the best ant's full artifact for evidence chain
|
|
49
|
+
6. Read all trails/*.jsonl into a list (chronological)
|
|
50
|
+
|
|
51
|
+
## Phase 3: Synthesis
|
|
52
|
+
|
|
53
|
+
### 3.1 Structure the report
|
|
54
|
+
|
|
55
|
+
Layout for `best-solution.md`:
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
# Swarm Result — <objective_short_form>
|
|
59
|
+
|
|
60
|
+
## Best Solution
|
|
61
|
+
|
|
62
|
+
**Path**: node_a → node_c → node_f
|
|
63
|
+
**Verified Score**: 0.82
|
|
64
|
+
**Iteration**: 3 of 5
|
|
65
|
+
**Ant**: ANT-3-2
|
|
66
|
+
|
|
67
|
+
### Summary
|
|
68
|
+
<one paragraph — what the best solution proposes and why it answers the objective>
|
|
69
|
+
|
|
70
|
+
### Evidence Chain
|
|
71
|
+
- `src/foo.ts:42` — <how this evidence supports the decision>
|
|
72
|
+
- `tests/foo.spec.ts:18` — <...>
|
|
73
|
+
|
|
74
|
+
### Candidate Artifact
|
|
75
|
+
<extract from best.candidate_solution — quote or summarize, link to file if file_ref>
|
|
76
|
+
|
|
77
|
+
## Why This Path Won
|
|
78
|
+
|
|
79
|
+
| Decision | Pheromone-guided? | Why it mattered |
|
|
80
|
+
|----------|-------------------|-----------------|
|
|
81
|
+
| start = node_a | weighted | <reason> |
|
|
82
|
+
| a → c | yes (0.45 hint) | <reason> |
|
|
83
|
+
| c → f | NO (deviation) | <reason> — this was the key call |
|
|
84
|
+
|
|
85
|
+
## Runner-Up Solutions
|
|
86
|
+
|
|
87
|
+
| Rank | Ant | Path | Score | Diff from best |
|
|
88
|
+
|------|-----|------|-------|----------------|
|
|
89
|
+
| 2 | ANT-2-1 | a → b → e | 0.74 | -0.08; weaker evidence at e |
|
|
90
|
+
| 3 | ANT-4-3 | a → c → g | 0.71 | -0.11; valid but less specific |
|
|
91
|
+
|
|
92
|
+
## Convergence Story
|
|
93
|
+
|
|
94
|
+
Iterations: 4 of 5 max
|
|
95
|
+
Trigger: stagnation (best unchanged for 2 iterations)
|
|
96
|
+
|
|
97
|
+
Entropy curve:
|
|
98
|
+
- iter 1: 3.21 (broad exploration)
|
|
99
|
+
- iter 2: 2.45 (narrowing on node_a region)
|
|
100
|
+
- iter 3: 1.85 (best emerges at ANT-3-2)
|
|
101
|
+
- iter 4: 1.72 (consensus around best, no improvement)
|
|
102
|
+
|
|
103
|
+
Interpretation: <2-3 sentences on whether the swarm converged on a genuine optimum or got stuck>
|
|
104
|
+
|
|
105
|
+
## Caveats
|
|
106
|
+
|
|
107
|
+
- <e.g., 40% of ants in iter 2 flagged as hallucinations>
|
|
108
|
+
- <e.g., evidence for node_f is single-source — recommend manual verification>
|
|
109
|
+
- <e.g., search space had only N nodes — larger space may surface better solutions>
|
|
110
|
+
|
|
111
|
+
## Reproducibility
|
|
112
|
+
|
|
113
|
+
- Config: `swarm-config.json` (pinned)
|
|
114
|
+
- Best path: `best.json`
|
|
115
|
+
- Full trails: `trails/<iter>.jsonl`
|
|
116
|
+
- Random seed: <if used>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 3.2 Interpretation rules
|
|
120
|
+
|
|
121
|
+
- **Why-it-won analysis** is the highest-value content. Don't just describe the path — explain which decisions were pivotal.
|
|
122
|
+
- **Pheromone vs deviation**: track which steps followed pheromone hints vs deviated. Deviations that produced higher scores are the most interesting signal.
|
|
123
|
+
- **Runner-up diff**: surface why #2 lost — was it a weaker path or just unlucky evidence?
|
|
124
|
+
- **Caveats are mandatory**: every swarm result has limitations. List them honestly.
|
|
125
|
+
|
|
126
|
+
### 3.3 Constraints
|
|
127
|
+
|
|
128
|
+
- No prose padding — every section earns its place
|
|
129
|
+
- Quote evidence verbatim where possible (file:line refs)
|
|
130
|
+
- Don't editorialize beyond what evidence supports
|
|
131
|
+
|
|
132
|
+
## Phase 4: Verify + Publish
|
|
133
|
+
|
|
134
|
+
### Behavioral Traits
|
|
135
|
+
|
|
136
|
+
#### Accuracy
|
|
137
|
+
- Every cited path/score MUST match best.json or trails source
|
|
138
|
+
- Every evidence reference MUST be verifiable (Read to confirm if file_ref)
|
|
139
|
+
- Convergence curve numbers MUST match swarm-report.json#convergence_curve
|
|
140
|
+
|
|
141
|
+
#### Feedback Contract
|
|
142
|
+
| Field | Required | Content |
|
|
143
|
+
|-------|----------|---------|
|
|
144
|
+
| artifacts_written | Always | `<session>/artifacts/best-solution.md` |
|
|
145
|
+
| line_count | Always | int (informational) |
|
|
146
|
+
| verification_method | Always | "cross_ref_with_best.json + evidence_verified" |
|
|
147
|
+
|
|
148
|
+
#### Quality Gate
|
|
149
|
+
- Final report file exists and parses as markdown
|
|
150
|
+
- All sections present (Best Solution / Why Won / Runner-Ups / Convergence / Caveats / Reproducibility)
|
|
151
|
+
|
|
152
|
+
### Verification Steps
|
|
153
|
+
|
|
154
|
+
1. Read written best-solution.md back
|
|
155
|
+
2. Cross-check best.score against best.json
|
|
156
|
+
3. Confirm runner-up scores against trails
|
|
157
|
+
4. If file_ref evidence in best.candidate_solution -> Read to confirm file exists
|
|
158
|
+
|
|
159
|
+
### State Update
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"task_id": "ANALYST-1",
|
|
164
|
+
"role": "analyst",
|
|
165
|
+
"status": "completed",
|
|
166
|
+
"artifact_path": "<session>/artifacts/best-solution.md",
|
|
167
|
+
"best_score": <float>,
|
|
168
|
+
"best_ant_id": "<id>",
|
|
169
|
+
"line_count": <int>,
|
|
170
|
+
"verification": "cross_ref_pass + evidence_verified"
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Error Handling
|
|
175
|
+
|
|
176
|
+
| Scenario | Resolution |
|
|
177
|
+
|----------|------------|
|
|
178
|
+
| best.json missing | Pipeline produced no valid ant — write minimal report with `status: no_solution` |
|
|
179
|
+
| Trails empty | Same as above — no exploration data to analyze |
|
|
180
|
+
| Best ant artifact missing | Use only best.json fields; note as caveat |
|
|
181
|
+
| Cross-ref mismatch (score discrepancy) | Trust best.json; note discrepancy in caveats |
|
|
@@ -145,22 +145,24 @@ $codify-to-knowhow ".workflow/reference_style/my-style-v1"
|
|
|
145
145
|
2. **Idempotent Writes**: Same-slug file exists = skip, never overwrite
|
|
146
146
|
3. **Closed Tags**: All entries use `<spec-entry>` / `<knowhow-entry>` closed-tag format
|
|
147
147
|
4. **Upstream Generates Manifest**: This skill only writes, never extracts knowledge
|
|
148
|
-
5. **CLI First, File Fallback**: Prefer `maestro spec add` CLI; fall back to direct file append on failure
|
|
149
|
-
6. **Ref Bridge**: Spec entries reference knowhow files via `ref` attribute
|
|
148
|
+
5. **CLI First, File Fallback**: Prefer `maestro spec add` CLI with `--ref` param; fall back to direct file append on failure (with confirmation log)
|
|
149
|
+
6. **Ref Bridge**: Spec entries reference knowhow files via `ref` attribute — both CLI path (`--ref` flag) and fallback path (`ref` attr in `<spec-entry>`) carry the ref
|
|
150
150
|
</invariants>
|
|
151
151
|
|
|
152
152
|
<execution>
|
|
153
153
|
|
|
154
154
|
### Step 1: Parse Package Path
|
|
155
155
|
|
|
156
|
-
**Parse from `$ARGUMENTS`**:
|
|
156
|
+
**Parse first positional from `$ARGUMENTS` and assign to `package_path`**:
|
|
157
157
|
|
|
158
158
|
| Variable | Source | Default |
|
|
159
159
|
|----------|--------|---------|
|
|
160
|
-
| `package_path` | positional (required) | ERROR if missing |
|
|
160
|
+
| `package_path` | first positional from $ARGUMENTS (required) | ERROR if missing |
|
|
161
161
|
|
|
162
162
|
```bash
|
|
163
|
-
|
|
163
|
+
# Parse first positional argument from $ARGUMENTS
|
|
164
|
+
package_path="$(echo "$ARGUMENTS" | awk '{print $1}')"
|
|
165
|
+
test -n "$package_path" || { echo "ERROR: package_path is required as first positional argument"; exit 1; }
|
|
164
166
|
|
|
165
167
|
# Validate directory exists
|
|
166
168
|
test -d "$package_path" || { echo "ERROR: Package path not found: $package_path"; exit 1; }
|
|
@@ -313,10 +315,12 @@ ${spec.body}
|
|
|
313
315
|
|
|
314
316
|
// Prefer CLI, fallback to direct append
|
|
315
317
|
const descFlag = spec.description ? ` --description "${spec.description}"` : '';
|
|
316
|
-
const
|
|
318
|
+
const refFlag = spec.ref ? ` --ref "${spec.ref}"` : '';
|
|
319
|
+
const cliResult = Bash(`maestro spec add ${spec.category} "${spec.title}" "${spec.body}" --keywords "${spec.keywords}"${descFlag}${refFlag} 2>/dev/null`);
|
|
317
320
|
|
|
318
321
|
if (cliResult.exitCode !== 0) {
|
|
319
|
-
// Fallback: direct file append
|
|
322
|
+
// Fallback: direct file append — confirm before writing
|
|
323
|
+
REPORT(`CLI failed for "${spec.title}", falling back to direct append to ${targetFile}`);
|
|
320
324
|
Edit(targetFile, { append: entryBlock });
|
|
321
325
|
}
|
|
322
326
|
|
|
@@ -348,22 +352,30 @@ for file in ${knowhowPaths}; do
|
|
|
348
352
|
done
|
|
349
353
|
```
|
|
350
354
|
|
|
351
|
-
**6b: Verify spec entries
|
|
355
|
+
**6b: Verify spec entries** (verify by actual targetFile set from manifest, not hardcoded categories):
|
|
356
|
+
|
|
357
|
+
```javascript
|
|
358
|
+
// Collect unique target files from manifest specs
|
|
359
|
+
const verifiedFiles = new Set();
|
|
360
|
+
for (const spec of manifest.specs) {
|
|
361
|
+
const targetFile = `.workflow/specs/${categoryFileMap[spec.category]}`;
|
|
362
|
+
verifiedFiles.add(targetFile);
|
|
363
|
+
}
|
|
364
|
+
```
|
|
352
365
|
|
|
353
366
|
```bash
|
|
354
367
|
echo "=== Spec Entry Verification ==="
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
echo " OK: architecture-constraints.md" || echo " MISSING: No entries in architecture-constraints.md"
|
|
368
|
+
for target_file in ${verifiedFiles}; do
|
|
369
|
+
grep -c "${slug}" "${target_file}" 2>/dev/null && \
|
|
370
|
+
echo " OK: ${target_file}" || echo " MISSING: No entries in ${target_file}"
|
|
371
|
+
done
|
|
360
372
|
```
|
|
361
373
|
|
|
362
|
-
**6c: Verify ref links
|
|
374
|
+
**6c: Verify ref links** (scan only the target files derived from the manifest):
|
|
363
375
|
|
|
364
376
|
```bash
|
|
365
377
|
echo "=== Ref Link Verification ==="
|
|
366
|
-
refs=$(grep -oP 'ref="knowhow/[^"]*"'
|
|
378
|
+
refs=$(grep -oP 'ref="knowhow/[^"]*"' ${verifiedFiles} 2>/dev/null | grep "${slug}" || true)
|
|
367
379
|
|
|
368
380
|
if [ -n "$refs" ]; then
|
|
369
381
|
echo "$refs" | while IFS= read -r ref; do
|
|
@@ -34,7 +34,7 @@ Extract canonical (first token, kebab-case) and definition (remainder) from argu
|
|
|
34
34
|
|
|
35
35
|
### Step 2: Validate Domain Directory
|
|
36
36
|
|
|
37
|
-
Verify `.workflow/domain/glossary.yaml` exists
|
|
37
|
+
Verify `.workflow/domain/glossary.yaml` exists. If missing, ask user to confirm auto-initialization (`maestro domain init`). Proceed on confirmation; abort with E002 if declined. Skip confirmation when `--yes` flag is set.
|
|
38
38
|
|
|
39
39
|
### Step 3: Check Duplicates
|
|
40
40
|
|
|
@@ -42,7 +42,7 @@ Read existing glossary and check for:
|
|
|
42
42
|
- Exact duplicate (same canonical name) → report existing entry, exit
|
|
43
43
|
- Near match (Levenshtein ≤ 2 or alias overlap) → warn, ask to confirm or merge
|
|
44
44
|
|
|
45
|
-
### Step 4: Extract Metadata
|
|
45
|
+
### Step 4: Extract & Confirm Metadata
|
|
46
46
|
|
|
47
47
|
Auto-derive from the definition and codebase context:
|
|
48
48
|
- **aliases** (1-3): common abbreviations, Chinese translations, alternate forms
|
|
@@ -50,6 +50,8 @@ Auto-derive from the definition and codebase context:
|
|
|
50
50
|
- **tier**: `core` | `extended` | `peripheral`
|
|
51
51
|
- **relationships**: scan existing glossary for related terms
|
|
52
52
|
|
|
53
|
+
Display a preview of all derived metadata and ask user to confirm or edit before proceeding. When `--yes` / `-y` flag is set, skip confirmation and write directly.
|
|
54
|
+
|
|
53
55
|
### Step 5: Register Term
|
|
54
56
|
|
|
55
57
|
```bash
|
|
@@ -66,7 +68,7 @@ Display: canonical name, definition, aliases, tier, relationships, and verify co
|
|
|
66
68
|
| Code | Severity | Description |
|
|
67
69
|
|------|----------|-------------|
|
|
68
70
|
| E001 | fatal | Canonical name and definition are both required |
|
|
69
|
-
| E002 | fatal | `.workflow/domain/` not initialized
|
|
71
|
+
| E002 | fatal | `.workflow/domain/` not initialized and user declined auto-init |
|
|
70
72
|
| E003 | fatal | Term already registered with same canonical name |
|
|
71
73
|
</error_codes>
|
|
72
74
|
|
|
@@ -77,7 +77,9 @@ Generate `tasks.csv` with 4 dimension rows (wave 1) + 1 cross-ref row (wave 2).
|
|
|
77
77
|
"findings": { "type": "string", "maxLength": 500 },
|
|
78
78
|
"error": { "type": "string" }
|
|
79
79
|
},
|
|
80
|
-
"required": ["id", "result_status", "findings"]
|
|
80
|
+
"required": ["id", "result_status", "findings"],
|
|
81
|
+
"if": { "properties": { "result_status": { "const": "completed" } } },
|
|
82
|
+
"then": { "required": ["id", "result_status", "findings", "patterns", "dimension"] }
|
|
81
83
|
}
|
|
82
84
|
```
|
|
83
85
|
|
|
@@ -110,14 +112,29 @@ Each dimension agent populates `patterns` as a JSON array string of:
|
|
|
110
112
|
|
|
111
113
|
### Phase 3: Wave 2 — Cross-Reference + Catalog
|
|
112
114
|
|
|
113
|
-
Single agent receives all wave 1 findings via `prev_context`. Uses same `output_schema` + termination contract above.
|
|
115
|
+
Single agent receives all wave 1 findings via `prev_context`. Uses same `output_schema` + termination contract above.
|
|
116
|
+
|
|
117
|
+
**prev_context filtering**: Only rows with `result_status=="completed"` are forwarded. For each wave 1 row that `failed`, append a `gap_note` line to the cross-ref instruction: `"[GAP] {dimension} scan failed — catalog may be incomplete for this dimension."` The cross-ref agent must not fabricate patterns for missing dimensions.
|
|
118
|
+
|
|
119
|
+
Tasks:
|
|
114
120
|
- Match against dedup set → mark as `documented`, `known`, or `new`
|
|
115
121
|
- Merge duplicates across dimensions (same pattern found by multiple agents)
|
|
116
122
|
- Flag contradictions with documented conventions
|
|
117
|
-
- Build pattern catalog grouped by dimension
|
|
123
|
+
- Build pattern catalog grouped by dimension; note any gap dimensions
|
|
118
124
|
|
|
119
125
|
### Phase 4: Persist
|
|
120
126
|
|
|
127
|
+
**Preview gate** (unless `-y`/`--yes`):
|
|
128
|
+
1. Build a summary table of all writes that will be performed:
|
|
129
|
+
- Knowhow file path + pattern count
|
|
130
|
+
- New patterns to append to `learnings.md` (list names + INS-ids)
|
|
131
|
+
- If `--save-spec`: spec entries to create
|
|
132
|
+
- If `--save-wiki`: wiki notes to create
|
|
133
|
+
2. Display the summary to the user via `request_user_input` asking for confirmation (`y` to proceed, `n` to abort, `e` to edit selection).
|
|
134
|
+
3. If user selects `e`, re-display with checkboxes and apply only checked items.
|
|
135
|
+
4. If `-y`/`--yes` flag is set, skip the preview gate and write all items automatically.
|
|
136
|
+
|
|
137
|
+
**Writes:**
|
|
121
138
|
1. Write `KNW-decompose-{slug}-{date}.md` with full catalog
|
|
122
139
|
2. Append each **new** pattern to `.workflow/specs/learnings.md` (source: "decompose", category: "pattern")
|
|
123
140
|
3. If `--save-spec`: invoke `spec-add` per new pattern
|
|
@@ -129,7 +146,7 @@ Single agent receives all wave 1 findings via `prev_context`. Uses same `output_
|
|
|
129
146
|
|------|----------|-----------|----------|
|
|
130
147
|
| E001 | error | Target path not found | Check path or use module name |
|
|
131
148
|
| E002 | error | No source files in target | Check target has .ts/.js files |
|
|
132
|
-
| W001 | warning | Dimension agent failed — partial results |
|
|
149
|
+
| W001 | warning | Dimension agent failed — partial results | Exclude from prev_context, add gap_note, proceed |
|
|
133
150
|
| W002 | warning | coding-conventions.md not found | All patterns marked "new" |
|
|
134
151
|
</error_codes>
|
|
135
152
|
|
|
@@ -138,6 +155,7 @@ Single agent receives all wave 1 findings via `prev_context`. Uses same `output_
|
|
|
138
155
|
- [ ] 4 dimension agents spawned in parallel via spawn_agents_on_csv
|
|
139
156
|
- [ ] Each finding has: name, dimension, confidence, anchors, description
|
|
140
157
|
- [ ] Cross-reference performed (documented / known / new)
|
|
158
|
+
- [ ] Preview summary shown and user confirmed (or `-y` flag bypassed)
|
|
141
159
|
- [ ] Pattern catalog written to `KNW-decompose-{slug}-{date}.md`
|
|
142
160
|
- [ ] New patterns appended to `.workflow/specs/learnings.md` with stable INS-ids
|
|
143
161
|
- [ ] If --save-spec / --save-wiki: entries created
|
|
@@ -52,10 +52,15 @@ From forcing question answers, extract: design patterns (with file:line anchors)
|
|
|
52
52
|
|
|
53
53
|
Cross-reference against `coding-conventions.md`: documented vs undocumented patterns.
|
|
54
54
|
|
|
55
|
-
### Stage 5: Persist
|
|
56
|
-
1.
|
|
57
|
-
2.
|
|
58
|
-
|
|
55
|
+
### Stage 5: Persist (confirmation-gated)
|
|
56
|
+
1. Display understanding map summary to user
|
|
57
|
+
2. **Confirmation gate**: prompt user via `request_user_input` — "Save knowhow and specs? (y/n/edit)"
|
|
58
|
+
- `y` → proceed to write
|
|
59
|
+
- `n` → skip persistence, display summary only
|
|
60
|
+
- `edit` → let user modify findings before writing
|
|
61
|
+
3. On confirmation: write `KNW-follow-{slug}-{date}.md` with understanding map
|
|
62
|
+
4. On confirmation: append new patterns to `.workflow/specs/learnings.md` (source: "follow", stable INS-ids)
|
|
63
|
+
5. If `--save-wiki`: create wiki note entry (also gated by step 2 confirmation)
|
|
59
64
|
|
|
60
65
|
**Next steps:** `$learn-decompose <path>`, `$spec-add coding ...`, `$learn-second-opinion <file>`
|
|
61
66
|
</execution>
|
|
@@ -75,6 +80,7 @@ Cross-reference against `coding-conventions.md`: documented vs undocumented patt
|
|
|
75
80
|
- [ ] All 4 forcing questions applied per section
|
|
76
81
|
- [ ] Patterns extracted with file:line anchors
|
|
77
82
|
- [ ] Understanding map produced with concepts, patterns, assumptions, questions
|
|
78
|
-
- [ ]
|
|
79
|
-
- [ ]
|
|
83
|
+
- [ ] User confirmation obtained before persistence
|
|
84
|
+
- [ ] `KNW-follow-{slug}-{date}.md` written (if confirmed)
|
|
85
|
+
- [ ] `.workflow/specs/learnings.md` appended with stable INS-ids (if confirmed)
|
|
80
86
|
</success_criteria>
|
|
@@ -17,6 +17,7 @@ $ARGUMENTS — question text and optional flags.
|
|
|
17
17
|
**Flags:**
|
|
18
18
|
- `--scope <path>` — Restrict to files under this directory (default: entire project)
|
|
19
19
|
- `--max-hypotheses N` — Max hypotheses before escalating (default: 3)
|
|
20
|
+
- `--no-persist` — Skip writing to learnings.md (report.md still written locally)
|
|
20
21
|
|
|
21
22
|
**Output**: `.workflow/knowhow/KNW-investigate-{slug}/` (evidence.ndjson, understanding.md, report.md)
|
|
22
23
|
</context>
|
|
@@ -50,12 +51,15 @@ Generate ranked hypotheses from evidence. For each (in rank order):
|
|
|
50
51
|
### Stage 4: 3-Strike Escalation
|
|
51
52
|
If all hypotheses fail: broaden scope, search wiki with alt keywords, or mark INCONCLUSIVE.
|
|
52
53
|
|
|
53
|
-
### Stage 5: Synthesize + Persist
|
|
54
|
+
### Stage 5: Synthesize + Persist (confirmation-gated)
|
|
54
55
|
1. Write `report.md` with answer, evidence trail, hypothesis results
|
|
55
|
-
2.
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
|
|
56
|
+
2. If `--no-persist`: skip learnings append, display summary only
|
|
57
|
+
3. Otherwise: **Confirmation gate** — prompt user via `request_user_input`: "Persist findings to learnings.md? (y/n)"
|
|
58
|
+
- `y` → append to `.workflow/specs/learnings.md`:
|
|
59
|
+
- Confirmed → category: "technique" / "pattern"
|
|
60
|
+
- Disproved → category: "gotcha"
|
|
61
|
+
- `n` → skip learnings append
|
|
62
|
+
4. Display summary with next-step routing
|
|
59
63
|
|
|
60
64
|
**Next steps:** `$spec-add debug <finding>`, `$learn-follow <path>`, `$learn-decompose <module>`
|
|
61
65
|
</execution>
|
|
@@ -76,6 +80,7 @@ If all hypotheses fail: broaden scope, search wiki with alt keywords, or mark IN
|
|
|
76
80
|
- [ ] At least 1 hypothesis formed and tested
|
|
77
81
|
- [ ] understanding.md tracks evolving understanding
|
|
78
82
|
- [ ] report.md written with answer and evidence trail
|
|
79
|
-
- [ ]
|
|
83
|
+
- [ ] User confirmation obtained before learnings append (unless --no-persist)
|
|
84
|
+
- [ ] Findings appended to .workflow/specs/learnings.md with stable INS-ids (if confirmed)
|
|
80
85
|
- [ ] 3-strike escalation triggered if all hypotheses fail
|
|
81
86
|
</success_criteria>
|