maestro-flow 0.5.1 → 0.5.3
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/insight-challenge/SKILL.md +228 -0
- package/.agents/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agents/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agents/skills/maestro/SKILL.md +6 -6
- package/.agents/skills/maestro-help/SKILL.md +1 -1
- package/.agents/skills/maestro-help/index/catalog.json +3 -2
- package/.agents/skills/maestro-ralph/SKILL.md +11 -10
- package/.agents/skills/maestro-ralph-beta/SKILL.md +11 -10
- package/.agents/skills/odyssey-debug/SKILL.md +475 -0
- package/.agents/skills/odyssey-improve/SKILL.md +507 -0
- package/.agents/skills/odyssey-planex/SKILL.md +603 -0
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +429 -0
- package/.agents/skills/odyssey-ui/SKILL.md +464 -0
- package/.agy/skills/insight-challenge/SKILL.md +230 -0
- package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agy/skills/maestro/SKILL.md +6 -6
- package/.agy/skills/maestro-help/SKILL.md +1 -1
- package/.agy/skills/maestro-help/index/catalog.json +3 -2
- package/.agy/skills/maestro-ralph/SKILL.md +11 -10
- package/.agy/skills/maestro-ralph-beta/SKILL.md +11 -10
- package/.agy/skills/odyssey-debug/SKILL.md +475 -0
- package/.agy/skills/odyssey-improve/SKILL.md +507 -0
- package/.agy/skills/odyssey-planex/SKILL.md +603 -0
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +429 -0
- package/.agy/skills/odyssey-ui/SKILL.md +464 -0
- package/.claude/commands/maestro-ralph-beta.md +11 -10
- package/.claude/commands/maestro-ralph.md +11 -10
- package/.claude/commands/maestro.md +6 -6
- package/.claude/commands/odyssey-debug.md +473 -0
- package/.claude/commands/odyssey-improve.md +505 -0
- package/.claude/commands/odyssey-planex.md +601 -0
- package/.claude/commands/odyssey-review-test-fix.md +427 -0
- package/.claude/commands/odyssey-ui.md +462 -0
- package/.claude/skills/insight-challenge/SKILL.md +226 -0
- package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.claude/skills/maestro-help/SKILL.md +1 -1
- package/.claude/skills/maestro-help/index/catalog.json +3 -2
- package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
- package/.codex/skills/learn-decompose/SKILL.md +144 -144
- package/.codex/skills/learn-follow/SKILL.md +83 -83
- package/.codex/skills/learn-investigate/SKILL.md +84 -84
- package/.codex/skills/learn-retro/SKILL.md +113 -113
- package/.codex/skills/learn-second-opinion/SKILL.md +116 -116
- package/.codex/skills/maestro/SKILL.md +11 -8
- package/.codex/skills/maestro-amend/SKILL.md +4 -4
- package/.codex/skills/maestro-analyze/SKILL.md +2 -2
- package/.codex/skills/maestro-blueprint/SKILL.md +4 -4
- package/.codex/skills/maestro-companion/SKILL.md +5 -5
- package/.codex/skills/maestro-composer/SKILL.md +217 -217
- package/.codex/skills/maestro-grill/SKILL.md +1 -1
- package/.codex/skills/maestro-help/SKILL.md +31 -31
- package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
- package/.codex/skills/maestro-init/SKILL.md +1 -1
- package/.codex/skills/maestro-learn/SKILL.md +80 -80
- package/.codex/skills/maestro-merge/SKILL.md +76 -76
- package/.codex/skills/maestro-milestone-release/SKILL.md +74 -74
- package/.codex/skills/maestro-next/SKILL.md +1 -1
- package/.codex/skills/maestro-player/SKILL.md +3 -3
- package/.codex/skills/maestro-quick/SKILL.md +129 -129
- package/.codex/skills/maestro-ralph/SKILL.md +9 -9
- package/.codex/skills/maestro-ralph-beta/SKILL.md +35 -35
- package/.codex/skills/maestro-ralph-execute/SKILL.md +5 -5
- package/.codex/skills/maestro-tools-execute/SKILL.md +3 -3
- package/.codex/skills/maestro-tools-register/SKILL.md +3 -3
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +412 -412
- package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
- package/.codex/skills/manage-harvest/SKILL.md +99 -99
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +95 -95
- package/.codex/skills/manage-knowhow-capture/SKILL.md +137 -137
- package/.codex/skills/manage-status/SKILL.md +7 -7
- package/.codex/skills/manage-wiki/SKILL.md +55 -55
- package/.codex/skills/odyssey-debug/SKILL.md +456 -0
- package/.codex/skills/odyssey-improve/SKILL.md +466 -0
- package/.codex/skills/odyssey-planex/SKILL.md +409 -0
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
- package/.codex/skills/odyssey-ui/SKILL.md +411 -0
- package/.codex/skills/quality-auto-test/SKILL.md +1 -1
- package/.codex/skills/quality-debug/SKILL.md +8 -8
- package/.codex/skills/quality-refactor/SKILL.md +3 -3
- package/.codex/skills/quality-review/SKILL.md +1 -1
- package/.codex/skills/quality-sync/SKILL.md +111 -111
- package/.codex/skills/quality-test/SKILL.md +1 -1
- package/.codex/skills/spec-add/SKILL.md +2 -2
- package/.codex/skills/spec-load/SKILL.md +1 -1
- package/.codex/skills/spec-map/SKILL.md +204 -204
- package/.codex/skills/spec-remove/SKILL.md +75 -75
- package/.codex/skills/spec-setup/SKILL.md +2 -2
- package/.codex/skills/wiki-connect/SKILL.md +73 -73
- package/.codex/skills/wiki-digest/SKILL.md +87 -87
- package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
- package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
- package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
- package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
- package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
- package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
- package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
- package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
- package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
- package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
- package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
- package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
- package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
- package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
- package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
- package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
- package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
- package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
- package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
- package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
- package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
- package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
- package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
- package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
- package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
- package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
- package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
- package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
- package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
- package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
- package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
- package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
- package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
- package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
- package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
- package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
- package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
- package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
- package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
- package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
- package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
- package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
- package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
- package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
- package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
- package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
- package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
- package/dashboard/dist-server/src/types/index.d.ts +9 -0
- package/dist/src/cli.js +3 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +50 -8
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/domain.d.ts +9 -0
- package/dist/src/commands/domain.d.ts.map +1 -0
- package/dist/src/commands/domain.js +445 -0
- package/dist/src/commands/domain.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +10 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +132 -22
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +82 -204
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/kg.d.ts.map +1 -1
- package/dist/src/commands/kg.js +183 -90
- package/dist/src/commands/kg.js.map +1 -1
- package/dist/src/commands/search.d.ts +15 -8
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +205 -59
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +9 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +0 -7
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +8 -1
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/commands/workspace.d.ts +12 -0
- package/dist/src/commands/workspace.d.ts.map +1 -0
- package/dist/src/commands/workspace.js +230 -0
- package/dist/src/commands/workspace.js.map +1 -0
- package/dist/src/config/cli-tools-config.d.ts +5 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +31 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/config/index.d.ts +9 -1
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +35 -1
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/core/install-executor.d.ts +31 -0
- package/dist/src/core/install-executor.d.ts.map +1 -0
- package/dist/src/core/install-executor.js +231 -0
- package/dist/src/core/install-executor.js.map +1 -0
- package/dist/src/core/install-profile.d.ts +103 -0
- package/dist/src/core/install-profile.d.ts.map +1 -0
- package/dist/src/core/install-profile.js +225 -0
- package/dist/src/core/install-profile.js.map +1 -0
- package/dist/src/graph/kg/credibility.d.ts +37 -0
- package/dist/src/graph/kg/credibility.d.ts.map +1 -0
- package/dist/src/graph/kg/credibility.js +141 -0
- package/dist/src/graph/kg/credibility.js.map +1 -0
- package/dist/src/graph/kg/db/connection.d.ts +28 -0
- package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
- package/dist/src/graph/kg/db/connection.js +142 -0
- package/dist/src/graph/kg/db/connection.js.map +1 -0
- package/dist/src/graph/kg/db/index.d.ts +5 -0
- package/dist/src/graph/kg/db/index.d.ts.map +1 -0
- package/dist/src/graph/kg/db/index.js +6 -0
- package/dist/src/graph/kg/db/index.js.map +1 -0
- package/dist/src/graph/kg/db/migrations.d.ts +8 -0
- package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
- package/dist/src/graph/kg/db/migrations.js +88 -0
- package/dist/src/graph/kg/db/migrations.js.map +1 -0
- package/dist/src/graph/kg/db/queries.d.ts +84 -0
- package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
- package/dist/src/graph/kg/db/queries.js +471 -0
- package/dist/src/graph/kg/db/queries.js.map +1 -0
- package/dist/src/graph/kg/db/types.d.ts +123 -0
- package/dist/src/graph/kg/db/types.d.ts.map +1 -0
- package/dist/src/graph/kg/db/types.js +75 -0
- package/dist/src/graph/kg/db/types.js.map +1 -0
- package/dist/src/graph/kg/engine.d.ts +87 -0
- package/dist/src/graph/kg/engine.d.ts.map +1 -0
- package/dist/src/graph/kg/engine.js +247 -0
- package/dist/src/graph/kg/engine.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +40 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js +296 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.js +208 -0
- package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
- package/dist/src/graph/kg/index.d.ts +29 -0
- package/dist/src/graph/kg/index.d.ts.map +1 -0
- package/dist/src/graph/kg/index.js +35 -0
- package/dist/src/graph/kg/index.js.map +1 -0
- package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
- package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
- package/dist/src/graph/kg/query/context-builder.js +184 -0
- package/dist/src/graph/kg/query/context-builder.js.map +1 -0
- package/dist/src/graph/kg/query/index.d.ts +8 -0
- package/dist/src/graph/kg/query/index.d.ts.map +1 -0
- package/dist/src/graph/kg/query/index.js +6 -0
- package/dist/src/graph/kg/query/index.js.map +1 -0
- package/dist/src/graph/kg/query/scoring.d.ts +19 -0
- package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
- package/dist/src/graph/kg/query/scoring.js +158 -0
- package/dist/src/graph/kg/query/scoring.js.map +1 -0
- package/dist/src/graph/kg/query/search.d.ts +59 -0
- package/dist/src/graph/kg/query/search.d.ts.map +1 -0
- package/dist/src/graph/kg/query/search.js +158 -0
- package/dist/src/graph/kg/query/search.js.map +1 -0
- package/dist/src/graph/kg/query/traversal.d.ts +75 -0
- package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
- package/dist/src/graph/kg/query/traversal.js +420 -0
- package/dist/src/graph/kg/query/traversal.js.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
- package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/index.d.ts +11 -0
- package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/index.js +7 -0
- package/dist/src/graph/kg/resolution/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
- package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
- package/dist/src/graph/kg/schema.sql +210 -0
- package/dist/src/graph/kg/surface/cli.d.ts +3 -0
- package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/cli.js +500 -0
- package/dist/src/graph/kg/surface/cli.js.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.js +172 -0
- package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
- package/dist/src/graph/kg/surface/index.d.ts +6 -0
- package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/index.js +5 -0
- package/dist/src/graph/kg/surface/index.js.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
- package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
- package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
- package/dist/src/graph/kg/sync/index.d.ts +5 -0
- package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/index.js +4 -0
- package/dist/src/graph/kg/sync/index.js.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.js +90 -0
- package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +0 -2
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +0 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.js +157 -81
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dist/src/hooks/kg-auto-init.d.ts +13 -0
- package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
- package/dist/src/hooks/kg-auto-init.js +38 -0
- package/dist/src/hooks/kg-auto-init.js.map +1 -0
- package/dist/src/hooks/kg-context-injector.d.ts +1 -3
- package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
- package/dist/src/hooks/kg-context-injector.js +12 -17
- package/dist/src/hooks/kg-context-injector.js.map +1 -1
- package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
- package/dist/src/hooks/kg-sync-hook.js +21 -90
- package/dist/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/hooks/spec-analytics.d.ts +1 -0
- package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
- package/dist/src/hooks/spec-analytics.js +1 -3
- package/dist/src/hooks/spec-analytics.js.map +1 -1
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +65 -1
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +52 -9
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +52 -9
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +40 -4
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/ralph/skill-scanner.d.ts.map +1 -1
- package/dist/src/ralph/skill-scanner.js +9 -3
- package/dist/src/ralph/skill-scanner.js.map +1 -1
- package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
- package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
- package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
- package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
- package/dist/src/tools/domain-loader.d.ts +63 -0
- package/dist/src/tools/domain-loader.d.ts.map +1 -0
- package/dist/src/tools/domain-loader.js +295 -0
- package/dist/src/tools/domain-loader.js.map +1 -0
- package/dist/src/tools/domain-matcher.d.ts +24 -0
- package/dist/src/tools/domain-matcher.d.ts.map +1 -0
- package/dist/src/tools/domain-matcher.js +117 -0
- package/dist/src/tools/domain-matcher.js.map +1 -0
- package/dist/src/tools/domain-scanner.d.ts +32 -0
- package/dist/src/tools/domain-scanner.d.ts.map +1 -0
- package/dist/src/tools/domain-scanner.js +263 -0
- package/dist/src/tools/domain-scanner.js.map +1 -0
- package/dist/src/tools/domain-schema.d.ts +18 -0
- package/dist/src/tools/domain-schema.d.ts.map +1 -0
- package/dist/src/tools/domain-schema.js +104 -0
- package/dist/src/tools/domain-schema.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +1 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts +5 -0
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +10 -2
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
- package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
- package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
- package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
- package/dist/src/tui/install-ui/GroupedHub.js +210 -0
- package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
- package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/HooksConfig.js +83 -18
- package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +89 -260
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +45 -267
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.js +2 -4
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.js +1 -5
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
- package/dist/src/tui/install-ui/index.d.ts +5 -1
- package/dist/src/tui/install-ui/index.d.ts.map +1 -1
- package/dist/src/tui/install-ui/index.js +1 -0
- package/dist/src/tui/install-ui/index.js.map +1 -1
- package/dist/src/tui/install-ui/types.d.ts +39 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -1
- package/dist/src/tui/install-ui/types.js +1 -1
- package/dist/src/tui/install-ui/types.js.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
- package/dist/src/tui/shared/components.d.ts +4 -0
- package/dist/src/tui/shared/components.d.ts.map +1 -1
- package/dist/src/tui/shared/components.js +4 -0
- package/dist/src/tui/shared/components.js.map +1 -1
- package/dist/src/tui/shared/index.d.ts +1 -1
- package/dist/src/tui/shared/index.d.ts.map +1 -1
- package/dist/src/tui/shared/index.js +1 -1
- package/dist/src/tui/shared/index.js.map +1 -1
- package/dist/src/tui/shared/tokens.d.ts +5 -5
- package/dist/src/tui/shared/tokens.js +5 -5
- package/dist/src/tui/shared/tokens.js.map +1 -1
- package/dist/src/types/index.d.ts +9 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/cli-format.d.ts +2 -1
- package/dist/src/utils/cli-format.d.ts.map +1 -1
- package/dist/src/utils/cli-format.js +14 -3
- package/dist/src/utils/cli-format.js.map +1 -1
- package/dist/src/utils/cooldown-guard.d.ts +17 -0
- package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
- package/dist/src/utils/cooldown-guard.js +59 -0
- package/dist/src/utils/cooldown-guard.js.map +1 -0
- package/dist/src/utils/jsonl-log.d.ts.map +1 -1
- package/dist/src/utils/jsonl-log.js +2 -1
- package/dist/src/utils/jsonl-log.js.map +1 -1
- package/dist/src/utils/update-notices.js +17 -4
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +4 -5
- package/workflows/claude-instructions.md +23 -0
- package/workflows/codex-instructions.md +22 -0
- package/workflows/finish-work.md +25 -0
- package/workflows/updates/update-v3-setup.md +7 -15
- package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
- package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
- package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
- package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
- package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
|
@@ -1,204 +1,204 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec-map
|
|
3
|
-
description: Map codebase tech-stack, architecture, features, and concerns
|
|
4
|
-
argument-hint: "[-y|--yes] [-c|--concurrency 4] [--continue] \"[focus area]\""
|
|
5
|
-
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep,
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Single-wave parallel execution — 4 independent mapper agents each analyze a different codebase dimension. No dependencies between tasks, maximum parallelism.
|
|
10
|
-
|
|
11
|
-
**Topology**: Independent Parallel (single wave)
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
┌──────────────────────────────────────────────────────┐
|
|
15
|
-
│ CODEBASE MAPPER WORKFLOW │
|
|
16
|
-
├──────────────────────────────────────────────────────┤
|
|
17
|
-
│ │
|
|
18
|
-
│ Phase 1: Setup → CSV │
|
|
19
|
-
│ ├─ Detect focus area from arguments │
|
|
20
|
-
│ ├─ Generate tasks.csv with 4 mapper tasks │
|
|
21
|
-
│ └─ All tasks wave 1 (no dependencies) │
|
|
22
|
-
│ │
|
|
23
|
-
│ Phase 2: Wave Execution (Single Wave) │
|
|
24
|
-
│ ├─ Wave 1: All 4 mappers run concurrently │
|
|
25
|
-
│ │ ├─ Tech Stack mapper │
|
|
26
|
-
│ │ ├─ Architecture mapper │
|
|
27
|
-
│ │ ├─ Features mapper │
|
|
28
|
-
│ │ └─ Cross-cutting Concerns mapper │
|
|
29
|
-
│ └─ discoveries.ndjson shared (append-only) │
|
|
30
|
-
│ │
|
|
31
|
-
│ Phase 3: Results → .workflow/codebase/ │
|
|
32
|
-
│ ├─ Write output files from agent findings │
|
|
33
|
-
│ ├─ Generate context.md summary │
|
|
34
|
-
│ └─ Display completion report │
|
|
35
|
-
│ │
|
|
36
|
-
└──────────────────────────────────────────────────────┘
|
|
37
|
-
```
|
|
38
|
-
</purpose>
|
|
39
|
-
|
|
40
|
-
<context>
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
$spec-map ""
|
|
44
|
-
$spec-map "auth"
|
|
45
|
-
$spec-map -c 4 "api layer"
|
|
46
|
-
$spec-map --continue "20260318-map-auth"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Flags**:
|
|
50
|
-
- `-y, --yes`: Skip all confirmations (auto-confirm mapper assignment, skip validation)
|
|
51
|
-
- `-c, --concurrency N`: Max concurrent agents (default: 4)
|
|
52
|
-
- `--continue`: Resume existing session
|
|
53
|
-
|
|
54
|
-
**Output**: `.workflow/codebase/` (tech-stack.md, architecture.md, features.md, concerns.md)
|
|
55
|
-
|
|
56
|
-
</context>
|
|
57
|
-
|
|
58
|
-
<csv_schema>
|
|
59
|
-
|
|
60
|
-
### tasks.csv
|
|
61
|
-
|
|
62
|
-
```csv
|
|
63
|
-
id,title,description,focus_area,output_file,deps,context_from,wave,status,findings,error
|
|
64
|
-
"1","Tech Stack Analysis","Analyze languages, frameworks, dependencies, build system, package managers, runtime configuration. Scan package.json, build configs, CI/CD files.","full","tech-stack.md","","","1","pending","",""
|
|
65
|
-
"2","Architecture Analysis","Analyze project structure, module boundaries, layer architecture, data flow patterns, entry points, API surface. Map directory tree and import graph.","full","architecture.md","","","1","pending","",""
|
|
66
|
-
"3","Features Analysis","Inventory user-facing capabilities, API endpoints, CLI commands, UI components, background jobs, integrations. Map to source locations.","full","features.md","","","1","pending","",""
|
|
67
|
-
"4","Cross-cutting Concerns","Analyze error handling patterns, logging strategy, authentication/authorization, configuration management, testing approach, observability.","full","concerns.md","","","1","pending","",""
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**Columns**:
|
|
71
|
-
|
|
72
|
-
| Column | Phase | Description |
|
|
73
|
-
|--------|-------|-------------|
|
|
74
|
-
| `id` | Input | Mapper identifier |
|
|
75
|
-
| `title` | Input | Mapper dimension title |
|
|
76
|
-
| `description` | Input | Detailed analysis instructions |
|
|
77
|
-
| `focus_area` | Input | Focus scope (full or specific area) |
|
|
78
|
-
| `output_file` | Input | Target output filename in .workflow/codebase/ |
|
|
79
|
-
| `deps` | Input | Empty (all independent) |
|
|
80
|
-
| `context_from` | Input | Empty (no cross-task context) |
|
|
81
|
-
| `wave` | Computed | Always 1 (single wave) |
|
|
82
|
-
| `status` | Lifecycle | `pending` (initial) → `completed`/`failed`/`skipped` (set by merge step from worker's `result_status`) |
|
|
83
|
-
| `findings` | Lifecycle | Analysis summary (max 500 chars; merged from worker output) |
|
|
84
|
-
| `error` | Lifecycle | Error if failed (merged) |
|
|
85
|
-
|
|
86
|
-
**Column separation rule**: Wave CSV (input to `spawn_agents_on_csv`) contains Input columns only. Workers return Output columns exclusively via `output_schema` using `result_status` (NOT `status`). Merge maps `result_status` → master `status`.
|
|
87
|
-
|
|
88
|
-
</csv_schema>
|
|
89
|
-
|
|
90
|
-
<invariants>
|
|
91
|
-
1. **Start Immediately**: Initialize session, generate CSV, execute
|
|
92
|
-
2. **CSV is Source of Truth**: tasks.csv holds all mapper state
|
|
93
|
-
3. **Discovery Board is Append-Only**: Mappers share findings
|
|
94
|
-
4. **Partial Results OK**: If 3/4 mappers succeed, still write available docs
|
|
95
|
-
5. **Focus Area Scoping**: When focus is specified, descriptions narrow to that area
|
|
96
|
-
6. **DO NOT STOP**: Execute until all mappers complete or fail
|
|
97
|
-
</invariants>
|
|
98
|
-
|
|
99
|
-
<execution>
|
|
100
|
-
|
|
101
|
-
### Session Initialization
|
|
102
|
-
|
|
103
|
-
Parse flags from `$ARGUMENTS` (`-y`, `-c N`, `--continue`). Extract focus area (default: "full"). Generate session ID: `{YYYYMMDD}-map-{focusArea}`. Create session folder at `.workflow/.csv-wave/{sessionId}/` and `.workflow/codebase/`.
|
|
104
|
-
|
|
105
|
-
### Phase 1: Generate tasks.csv
|
|
106
|
-
|
|
107
|
-
Generate 4 mapper rows. If focus area specified, scope descriptions to that area.
|
|
108
|
-
|
|
109
|
-
### Phase 2: Wave Execution
|
|
110
|
-
|
|
111
|
-
Single wave -- all 4 mappers via `spawn_agents_on_csv`:
|
|
112
|
-
|
|
113
|
-
```javascript
|
|
114
|
-
spawn_agents_on_csv({
|
|
115
|
-
csv_path: `${sessionFolder}/wave-1.csv`, // only rows where status == "pending"
|
|
116
|
-
id_column: "id",
|
|
117
|
-
instruction: MAPPER_INSTRUCTION, // see "Mapper Worker Contract" below
|
|
118
|
-
max_concurrency: 4,
|
|
119
|
-
max_runtime_seconds: 3600,
|
|
120
|
-
output_csv_path: `${sessionFolder}/wave-1-results.csv`,
|
|
121
|
-
output_schema: {
|
|
122
|
-
type: "object",
|
|
123
|
-
properties: {
|
|
124
|
-
id: { type: "string" },
|
|
125
|
-
result_status: { type: "string", enum: ["completed", "failed"] },
|
|
126
|
-
findings: { type: "string", maxLength: 500 },
|
|
127
|
-
error: { type: "string" }
|
|
128
|
-
},
|
|
129
|
-
required: ["id", "result_status", "findings"]
|
|
130
|
-
}
|
|
131
|
-
})
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Merge: write `master.status = result_status`, copy `findings` and `error`. Delete `wave-1.csv` and `wave-1-results.csv`.
|
|
135
|
-
|
|
136
|
-
#### Mapper Worker Contract (MAPPER_INSTRUCTION)
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
You are a codebase mapper for ONE dimension. Your assigned focus_area, description, and output_file come from your CSV row.
|
|
140
|
-
|
|
141
|
-
REQUIRED STEPS:
|
|
142
|
-
1. Read shared discoveries: {sessionFolder}/discoveries.ndjson (may be empty)
|
|
143
|
-
2. Scan codebase using Read/Grep/Glob within your focus_area
|
|
144
|
-
3. Synthesize findings into the analysis sections required by your description
|
|
145
|
-
4. Append reusable discoveries (tech_stack / code_pattern / integration_point / convention) to discoveries.ndjson
|
|
146
|
-
5. Call report_agent_job_result EXACTLY ONCE
|
|
147
|
-
|
|
148
|
-
TERMINATION CONTRACT (mandatory — NO worker may end without calling report_agent_job_result):
|
|
149
|
-
- Success path → result_status = completed
|
|
150
|
-
- Timeout path → if approaching max_runtime_seconds, STOP and report failed with error="timeout (partial findings)"
|
|
151
|
-
- Failure path → on unrecoverable error, report failed with error message
|
|
152
|
-
- NEVER continue indefinitely. NEVER exit silently. NEVER omit the call.
|
|
153
|
-
|
|
154
|
-
OUTPUT (return via report_agent_job_result; must match output_schema):
|
|
155
|
-
{
|
|
156
|
-
"id": "<your row id>",
|
|
157
|
-
"result_status": "completed" | "failed",
|
|
158
|
-
"findings": "<analysis summary, max 500 chars — orchestrator uses this to write {output_file}>",
|
|
159
|
-
"error": "<message if failed, else empty>"
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
CONSTRAINTS:
|
|
163
|
-
- Read-only. Do NOT write to .workflow/codebase/ — orchestrator writes output files from your findings in Phase 3.
|
|
164
|
-
- Do NOT write to tasks.csv, wave-*.csv, or results.csv.
|
|
165
|
-
- Do NOT call spawn_agents_on_csv (no recursion).
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Phase 3: Write Output Files
|
|
169
|
-
|
|
170
|
-
Read each agent's findings, write to `.workflow/codebase/{output_file}`, generate `context.md` summary, display report.
|
|
171
|
-
|
|
172
|
-
### Shared Discovery Board Protocol
|
|
173
|
-
|
|
174
|
-
Discovery types particularly valuable for mapper agents:
|
|
175
|
-
|
|
176
|
-
| Type | Dedup Key | Data Schema |
|
|
177
|
-
|------|-----------|-------------|
|
|
178
|
-
| `tech_stack` | singleton | `{framework, language, tools[]}` |
|
|
179
|
-
| `code_pattern` | `data.name` | `{name, file, description}` |
|
|
180
|
-
| `integration_point` | `data.file` | `{file, description, exports[]}` |
|
|
181
|
-
| `convention` | singleton | `{naming, imports, formatting}` |
|
|
182
|
-
|
|
183
|
-
Mappers share discoveries so other mappers can skip redundant exploration (e.g., if tech-stack mapper discovers the framework, features mapper can focus on feature-level analysis).
|
|
184
|
-
|
|
185
|
-
</execution>
|
|
186
|
-
|
|
187
|
-
<error_codes>
|
|
188
|
-
|
|
189
|
-
| Error | Resolution |
|
|
190
|
-
|-------|------------|
|
|
191
|
-
| No source files found | Abort: "No source files in project" |
|
|
192
|
-
| Mapper agent timeout | Mark failed, continue with other mappers |
|
|
193
|
-
| Mapper agent failed | Mark failed, output partial results |
|
|
194
|
-
| .workflow/codebase/ exists | Prompt: refresh/skip/merge (auto-refresh with -y) |
|
|
195
|
-
|
|
196
|
-
</error_codes>
|
|
197
|
-
|
|
198
|
-
<success_criteria>
|
|
199
|
-
- [ ] tasks.csv generated with 4 mapper tasks
|
|
200
|
-
- [ ] All mappers executed (completed or failed with partial results)
|
|
201
|
-
- [ ] `.workflow/codebase/` populated with output files
|
|
202
|
-
- [ ] context.md summary generated
|
|
203
|
-
- [ ] Completion report displayed
|
|
204
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: spec-map
|
|
3
|
+
description: Map codebase tech-stack, architecture, features, and concerns
|
|
4
|
+
argument-hint: "[-y|--yes] [-c|--concurrency 4] [--continue] \"[focus area]\""
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Single-wave parallel execution — 4 independent mapper agents each analyze a different codebase dimension. No dependencies between tasks, maximum parallelism.
|
|
10
|
+
|
|
11
|
+
**Topology**: Independent Parallel (single wave)
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
┌──────────────────────────────────────────────────────┐
|
|
15
|
+
│ CODEBASE MAPPER WORKFLOW │
|
|
16
|
+
├──────────────────────────────────────────────────────┤
|
|
17
|
+
│ │
|
|
18
|
+
│ Phase 1: Setup → CSV │
|
|
19
|
+
│ ├─ Detect focus area from arguments │
|
|
20
|
+
│ ├─ Generate tasks.csv with 4 mapper tasks │
|
|
21
|
+
│ └─ All tasks wave 1 (no dependencies) │
|
|
22
|
+
│ │
|
|
23
|
+
│ Phase 2: Wave Execution (Single Wave) │
|
|
24
|
+
│ ├─ Wave 1: All 4 mappers run concurrently │
|
|
25
|
+
│ │ ├─ Tech Stack mapper │
|
|
26
|
+
│ │ ├─ Architecture mapper │
|
|
27
|
+
│ │ ├─ Features mapper │
|
|
28
|
+
│ │ └─ Cross-cutting Concerns mapper │
|
|
29
|
+
│ └─ discoveries.ndjson shared (append-only) │
|
|
30
|
+
│ │
|
|
31
|
+
│ Phase 3: Results → .workflow/codebase/ │
|
|
32
|
+
│ ├─ Write output files from agent findings │
|
|
33
|
+
│ ├─ Generate context.md summary │
|
|
34
|
+
│ └─ Display completion report │
|
|
35
|
+
│ │
|
|
36
|
+
└──────────────────────────────────────────────────────┘
|
|
37
|
+
```
|
|
38
|
+
</purpose>
|
|
39
|
+
|
|
40
|
+
<context>
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
$spec-map ""
|
|
44
|
+
$spec-map "auth"
|
|
45
|
+
$spec-map -c 4 "api layer"
|
|
46
|
+
$spec-map --continue "20260318-map-auth"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Flags**:
|
|
50
|
+
- `-y, --yes`: Skip all confirmations (auto-confirm mapper assignment, skip validation)
|
|
51
|
+
- `-c, --concurrency N`: Max concurrent agents (default: 4)
|
|
52
|
+
- `--continue`: Resume existing session
|
|
53
|
+
|
|
54
|
+
**Output**: `.workflow/codebase/` (tech-stack.md, architecture.md, features.md, concerns.md)
|
|
55
|
+
|
|
56
|
+
</context>
|
|
57
|
+
|
|
58
|
+
<csv_schema>
|
|
59
|
+
|
|
60
|
+
### tasks.csv
|
|
61
|
+
|
|
62
|
+
```csv
|
|
63
|
+
id,title,description,focus_area,output_file,deps,context_from,wave,status,findings,error
|
|
64
|
+
"1","Tech Stack Analysis","Analyze languages, frameworks, dependencies, build system, package managers, runtime configuration. Scan package.json, build configs, CI/CD files.","full","tech-stack.md","","","1","pending","",""
|
|
65
|
+
"2","Architecture Analysis","Analyze project structure, module boundaries, layer architecture, data flow patterns, entry points, API surface. Map directory tree and import graph.","full","architecture.md","","","1","pending","",""
|
|
66
|
+
"3","Features Analysis","Inventory user-facing capabilities, API endpoints, CLI commands, UI components, background jobs, integrations. Map to source locations.","full","features.md","","","1","pending","",""
|
|
67
|
+
"4","Cross-cutting Concerns","Analyze error handling patterns, logging strategy, authentication/authorization, configuration management, testing approach, observability.","full","concerns.md","","","1","pending","",""
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Columns**:
|
|
71
|
+
|
|
72
|
+
| Column | Phase | Description |
|
|
73
|
+
|--------|-------|-------------|
|
|
74
|
+
| `id` | Input | Mapper identifier |
|
|
75
|
+
| `title` | Input | Mapper dimension title |
|
|
76
|
+
| `description` | Input | Detailed analysis instructions |
|
|
77
|
+
| `focus_area` | Input | Focus scope (full or specific area) |
|
|
78
|
+
| `output_file` | Input | Target output filename in .workflow/codebase/ |
|
|
79
|
+
| `deps` | Input | Empty (all independent) |
|
|
80
|
+
| `context_from` | Input | Empty (no cross-task context) |
|
|
81
|
+
| `wave` | Computed | Always 1 (single wave) |
|
|
82
|
+
| `status` | Lifecycle | `pending` (initial) → `completed`/`failed`/`skipped` (set by merge step from worker's `result_status`) |
|
|
83
|
+
| `findings` | Lifecycle | Analysis summary (max 500 chars; merged from worker output) |
|
|
84
|
+
| `error` | Lifecycle | Error if failed (merged) |
|
|
85
|
+
|
|
86
|
+
**Column separation rule**: Wave CSV (input to `spawn_agents_on_csv`) contains Input columns only. Workers return Output columns exclusively via `output_schema` using `result_status` (NOT `status`). Merge maps `result_status` → master `status`.
|
|
87
|
+
|
|
88
|
+
</csv_schema>
|
|
89
|
+
|
|
90
|
+
<invariants>
|
|
91
|
+
1. **Start Immediately**: Initialize session, generate CSV, execute
|
|
92
|
+
2. **CSV is Source of Truth**: tasks.csv holds all mapper state
|
|
93
|
+
3. **Discovery Board is Append-Only**: Mappers share findings
|
|
94
|
+
4. **Partial Results OK**: If 3/4 mappers succeed, still write available docs
|
|
95
|
+
5. **Focus Area Scoping**: When focus is specified, descriptions narrow to that area
|
|
96
|
+
6. **DO NOT STOP**: Execute until all mappers complete or fail
|
|
97
|
+
</invariants>
|
|
98
|
+
|
|
99
|
+
<execution>
|
|
100
|
+
|
|
101
|
+
### Session Initialization
|
|
102
|
+
|
|
103
|
+
Parse flags from `$ARGUMENTS` (`-y`, `-c N`, `--continue`). Extract focus area (default: "full"). Generate session ID: `{YYYYMMDD}-map-{focusArea}`. Create session folder at `.workflow/.csv-wave/{sessionId}/` and `.workflow/codebase/`.
|
|
104
|
+
|
|
105
|
+
### Phase 1: Generate tasks.csv
|
|
106
|
+
|
|
107
|
+
Generate 4 mapper rows. If focus area specified, scope descriptions to that area.
|
|
108
|
+
|
|
109
|
+
### Phase 2: Wave Execution
|
|
110
|
+
|
|
111
|
+
Single wave -- all 4 mappers via `spawn_agents_on_csv`:
|
|
112
|
+
|
|
113
|
+
```javascript
|
|
114
|
+
spawn_agents_on_csv({
|
|
115
|
+
csv_path: `${sessionFolder}/wave-1.csv`, // only rows where status == "pending"
|
|
116
|
+
id_column: "id",
|
|
117
|
+
instruction: MAPPER_INSTRUCTION, // see "Mapper Worker Contract" below
|
|
118
|
+
max_concurrency: 4,
|
|
119
|
+
max_runtime_seconds: 3600,
|
|
120
|
+
output_csv_path: `${sessionFolder}/wave-1-results.csv`,
|
|
121
|
+
output_schema: {
|
|
122
|
+
type: "object",
|
|
123
|
+
properties: {
|
|
124
|
+
id: { type: "string" },
|
|
125
|
+
result_status: { type: "string", enum: ["completed", "failed"] },
|
|
126
|
+
findings: { type: "string", maxLength: 500 },
|
|
127
|
+
error: { type: "string" }
|
|
128
|
+
},
|
|
129
|
+
required: ["id", "result_status", "findings"]
|
|
130
|
+
}
|
|
131
|
+
})
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Merge: write `master.status = result_status`, copy `findings` and `error`. Delete `wave-1.csv` and `wave-1-results.csv`.
|
|
135
|
+
|
|
136
|
+
#### Mapper Worker Contract (MAPPER_INSTRUCTION)
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
You are a codebase mapper for ONE dimension. Your assigned focus_area, description, and output_file come from your CSV row.
|
|
140
|
+
|
|
141
|
+
REQUIRED STEPS:
|
|
142
|
+
1. Read shared discoveries: {sessionFolder}/discoveries.ndjson (may be empty)
|
|
143
|
+
2. Scan codebase using Read/Grep/Glob within your focus_area
|
|
144
|
+
3. Synthesize findings into the analysis sections required by your description
|
|
145
|
+
4. Append reusable discoveries (tech_stack / code_pattern / integration_point / convention) to discoveries.ndjson
|
|
146
|
+
5. Call report_agent_job_result EXACTLY ONCE
|
|
147
|
+
|
|
148
|
+
TERMINATION CONTRACT (mandatory — NO worker may end without calling report_agent_job_result):
|
|
149
|
+
- Success path → result_status = completed
|
|
150
|
+
- Timeout path → if approaching max_runtime_seconds, STOP and report failed with error="timeout (partial findings)"
|
|
151
|
+
- Failure path → on unrecoverable error, report failed with error message
|
|
152
|
+
- NEVER continue indefinitely. NEVER exit silently. NEVER omit the call.
|
|
153
|
+
|
|
154
|
+
OUTPUT (return via report_agent_job_result; must match output_schema):
|
|
155
|
+
{
|
|
156
|
+
"id": "<your row id>",
|
|
157
|
+
"result_status": "completed" | "failed",
|
|
158
|
+
"findings": "<analysis summary, max 500 chars — orchestrator uses this to write {output_file}>",
|
|
159
|
+
"error": "<message if failed, else empty>"
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
CONSTRAINTS:
|
|
163
|
+
- Read-only. Do NOT write to .workflow/codebase/ — orchestrator writes output files from your findings in Phase 3.
|
|
164
|
+
- Do NOT write to tasks.csv, wave-*.csv, or results.csv.
|
|
165
|
+
- Do NOT call spawn_agents_on_csv (no recursion).
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Phase 3: Write Output Files
|
|
169
|
+
|
|
170
|
+
Read each agent's findings, write to `.workflow/codebase/{output_file}`, generate `context.md` summary, display report.
|
|
171
|
+
|
|
172
|
+
### Shared Discovery Board Protocol
|
|
173
|
+
|
|
174
|
+
Discovery types particularly valuable for mapper agents:
|
|
175
|
+
|
|
176
|
+
| Type | Dedup Key | Data Schema |
|
|
177
|
+
|------|-----------|-------------|
|
|
178
|
+
| `tech_stack` | singleton | `{framework, language, tools[]}` |
|
|
179
|
+
| `code_pattern` | `data.name` | `{name, file, description}` |
|
|
180
|
+
| `integration_point` | `data.file` | `{file, description, exports[]}` |
|
|
181
|
+
| `convention` | singleton | `{naming, imports, formatting}` |
|
|
182
|
+
|
|
183
|
+
Mappers share discoveries so other mappers can skip redundant exploration (e.g., if tech-stack mapper discovers the framework, features mapper can focus on feature-level analysis).
|
|
184
|
+
|
|
185
|
+
</execution>
|
|
186
|
+
|
|
187
|
+
<error_codes>
|
|
188
|
+
|
|
189
|
+
| Error | Resolution |
|
|
190
|
+
|-------|------------|
|
|
191
|
+
| No source files found | Abort: "No source files in project" |
|
|
192
|
+
| Mapper agent timeout | Mark failed, continue with other mappers |
|
|
193
|
+
| Mapper agent failed | Mark failed, output partial results |
|
|
194
|
+
| .workflow/codebase/ exists | Prompt: refresh/skip/merge (auto-refresh with -y) |
|
|
195
|
+
|
|
196
|
+
</error_codes>
|
|
197
|
+
|
|
198
|
+
<success_criteria>
|
|
199
|
+
- [ ] tasks.csv generated with 4 mapper tasks
|
|
200
|
+
- [ ] All mappers executed (completed or failed with partial results)
|
|
201
|
+
- [ ] `.workflow/codebase/` populated with output files
|
|
202
|
+
- [ ] context.md summary generated
|
|
203
|
+
- [ ] Completion report displayed
|
|
204
|
+
</success_criteria>
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec-remove
|
|
3
|
-
description: Remove spec entry by ID
|
|
4
|
-
argument-hint: "<entry-id> [--cascade]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep,
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Remove a `<spec-entry>` block from a specs container file. Symmetric with `spec-add`.
|
|
10
|
-
Uses `maestro wiki remove-entry` for atomic removal with automatic index update.
|
|
11
|
-
</purpose>
|
|
12
|
-
|
|
13
|
-
<required_reading>
|
|
14
|
-
@~/.maestro/workflows/specs-remove.md
|
|
15
|
-
</required_reading>
|
|
16
|
-
|
|
17
|
-
<context>
|
|
18
|
-
$ARGUMENTS — entry ID to remove (e.g., `spec-learnings-003`)
|
|
19
|
-
|
|
20
|
-
**Entry ID format**: `spec-{file-stem}-{NNN}` — sub-node ID from WikiIndexer atomic indexing.
|
|
21
|
-
|
|
22
|
-
**Discovery**:
|
|
23
|
-
- `maestro search --type spec --json` — list all spec entries
|
|
24
|
-
-
|
|
25
|
-
- `maestro search "<query>"` — BM25 search
|
|
26
|
-
|
|
27
|
-
**Flags:**
|
|
28
|
-
- `--cascade` — When the target spec is a ref-type entry (created via `spec-add --ref` and linked to a knowhow document), also delete the referenced knowhow file. Without this flag, ref-type removal leaves an orphan knowhow file.
|
|
29
|
-
</context>
|
|
30
|
-
|
|
31
|
-
<execution>
|
|
32
|
-
|
|
33
|
-
### Step 1: Parse Input
|
|
34
|
-
|
|
35
|
-
Extract entry ID from arguments.
|
|
36
|
-
- Validate non-empty (E001 if missing)
|
|
37
|
-
- Validate `.workflow/specs/` exists (E002 if not)
|
|
38
|
-
|
|
39
|
-
### Step 2: Lookup Entry
|
|
40
|
-
|
|
41
|
-
Run `maestro wiki get <entry-id> --json`. Validate: entry exists (E003), is spec sub-node with `type="spec"` and `parent` set (E004). Extract title, category, keywords, container path.
|
|
42
|
-
|
|
43
|
-
### Step 3: Confirm
|
|
44
|
-
|
|
45
|
-
Display entry details. Ask user to confirm unless `-y` flag present.
|
|
46
|
-
|
|
47
|
-
### Step 4: Remove
|
|
48
|
-
|
|
49
|
-
Run `maestro wiki remove-entry <entry-id>`. WikiIndexer auto-updates `wiki-index.json`.
|
|
50
|
-
|
|
51
|
-
If `--cascade` is set and the entry has a `ref` attribute pointing to a knowhow file, also delete that file to avoid leaving an orphan.
|
|
52
|
-
|
|
53
|
-
### Step 5: Verify & Report
|
|
54
|
-
|
|
55
|
-
Confirm removal via `maestro wiki get <entry-id>` (should return not-found). Display removed ID, source file, and commands for verify/re-add.
|
|
56
|
-
</execution>
|
|
57
|
-
|
|
58
|
-
<error_codes>
|
|
59
|
-
| Code | Severity | Description |
|
|
60
|
-
|------|----------|-------------|
|
|
61
|
-
| E001 | fatal | Entry ID is required -- usage:
|
|
62
|
-
| E002 | fatal | `.workflow/specs/` not initialized -- run
|
|
63
|
-
| E003 | fatal | Entry ID not found in wiki index |
|
|
64
|
-
| E004 | fatal | Entry is not a spec sub-node (wrong type or no parent) |
|
|
65
|
-
</error_codes>
|
|
66
|
-
|
|
67
|
-
<success_criteria>
|
|
68
|
-
- [ ] Entry ID parsed and validated
|
|
69
|
-
- [ ] Entry found in wiki index (type=spec, has parent)
|
|
70
|
-
- [ ] User confirmed removal
|
|
71
|
-
- [ ] Entry removed via `maestro wiki remove-entry`
|
|
72
|
-
- [ ] Wiki index auto-updated
|
|
73
|
-
- [ ] If `--cascade` and entry has a `ref` attribute: referenced knowhow file deleted, orphan avoided
|
|
74
|
-
- [ ] Confirmation displayed (and cascaded knowhow path if applicable)
|
|
75
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: spec-remove
|
|
3
|
+
description: Remove spec entry by ID
|
|
4
|
+
argument-hint: "<entry-id> [--cascade]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Remove a `<spec-entry>` block from a specs container file. Symmetric with `spec-add`.
|
|
10
|
+
Uses `maestro wiki remove-entry` for atomic removal with automatic index update.
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<required_reading>
|
|
14
|
+
@~/.maestro/workflows/specs-remove.md
|
|
15
|
+
</required_reading>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
$ARGUMENTS — entry ID to remove (e.g., `spec-learnings-003`)
|
|
19
|
+
|
|
20
|
+
**Entry ID format**: `spec-{file-stem}-{NNN}` — sub-node ID from WikiIndexer atomic indexing.
|
|
21
|
+
|
|
22
|
+
**Discovery**:
|
|
23
|
+
- `maestro search --type spec --json` — list all spec entries
|
|
24
|
+
- `$spec-load --keyword <term>` — find by keyword
|
|
25
|
+
- `maestro search "<query>"` — BM25 search
|
|
26
|
+
|
|
27
|
+
**Flags:**
|
|
28
|
+
- `--cascade` — When the target spec is a ref-type entry (created via `spec-add --ref` and linked to a knowhow document), also delete the referenced knowhow file. Without this flag, ref-type removal leaves an orphan knowhow file.
|
|
29
|
+
</context>
|
|
30
|
+
|
|
31
|
+
<execution>
|
|
32
|
+
|
|
33
|
+
### Step 1: Parse Input
|
|
34
|
+
|
|
35
|
+
Extract entry ID from arguments.
|
|
36
|
+
- Validate non-empty (E001 if missing)
|
|
37
|
+
- Validate `.workflow/specs/` exists (E002 if not)
|
|
38
|
+
|
|
39
|
+
### Step 2: Lookup Entry
|
|
40
|
+
|
|
41
|
+
Run `maestro wiki get <entry-id> --json`. Validate: entry exists (E003), is spec sub-node with `type="spec"` and `parent` set (E004). Extract title, category, keywords, container path.
|
|
42
|
+
|
|
43
|
+
### Step 3: Confirm
|
|
44
|
+
|
|
45
|
+
Display entry details. Ask user to confirm unless `-y` flag present.
|
|
46
|
+
|
|
47
|
+
### Step 4: Remove
|
|
48
|
+
|
|
49
|
+
Run `maestro wiki remove-entry <entry-id>`. WikiIndexer auto-updates `wiki-index.json`.
|
|
50
|
+
|
|
51
|
+
If `--cascade` is set and the entry has a `ref` attribute pointing to a knowhow file, also delete that file to avoid leaving an orphan.
|
|
52
|
+
|
|
53
|
+
### Step 5: Verify & Report
|
|
54
|
+
|
|
55
|
+
Confirm removal via `maestro wiki get <entry-id>` (should return not-found). Display removed ID, source file, and commands for verify/re-add.
|
|
56
|
+
</execution>
|
|
57
|
+
|
|
58
|
+
<error_codes>
|
|
59
|
+
| Code | Severity | Description |
|
|
60
|
+
|------|----------|-------------|
|
|
61
|
+
| E001 | fatal | Entry ID is required -- usage: `$spec-remove <entry-id>` |
|
|
62
|
+
| E002 | fatal | `.workflow/specs/` not initialized -- run `$spec-setup` first |
|
|
63
|
+
| E003 | fatal | Entry ID not found in wiki index |
|
|
64
|
+
| E004 | fatal | Entry is not a spec sub-node (wrong type or no parent) |
|
|
65
|
+
</error_codes>
|
|
66
|
+
|
|
67
|
+
<success_criteria>
|
|
68
|
+
- [ ] Entry ID parsed and validated
|
|
69
|
+
- [ ] Entry found in wiki index (type=spec, has parent)
|
|
70
|
+
- [ ] User confirmed removal
|
|
71
|
+
- [ ] Entry removed via `maestro wiki remove-entry`
|
|
72
|
+
- [ ] Wiki index auto-updated
|
|
73
|
+
- [ ] If `--cascade` and entry has a `ref` attribute: referenced knowhow file deleted, orphan avoided
|
|
74
|
+
- [ ] Confirmation displayed (and cascaded knowhow path if applicable)
|
|
75
|
+
</success_criteria>
|
|
@@ -53,7 +53,7 @@ Create `.workflow/specs/` directory and write:
|
|
|
53
53
|
|
|
54
54
|
### Step 5: Display Report
|
|
55
55
|
|
|
56
|
-
List created files with categories. Show next steps:
|
|
56
|
+
List created files with categories. Show next steps: `$spec-add <category> <content>`, available categories (core + extended), `$spec-remove`, wiki graph commands.
|
|
57
57
|
|
|
58
58
|
</execution>
|
|
59
59
|
|
|
@@ -61,7 +61,7 @@ List created files with categories. Show next steps: `/spec-add <category> <cont
|
|
|
61
61
|
|
|
62
62
|
| Code | Severity | Description |
|
|
63
63
|
|------|----------|-------------|
|
|
64
|
-
| E001 | fatal | `.workflow/` not initialized -- run
|
|
64
|
+
| E001 | fatal | `.workflow/` not initialized -- run `$maestro-init` first |
|
|
65
65
|
| E002 | fatal | No source files found in project |
|
|
66
66
|
| W001 | warning | Convention detection uncertain -- marked `[UNCERTAIN]` |
|
|
67
67
|
|