maestro-flow 0.3.10 → 0.3.12
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/.claude/agents/conceptual-planning-agent.md +1 -0
- package/.claude/agents/workflow-analyzer.md +114 -114
- package/.claude/agents/workflow-collab-planner.md +144 -144
- package/.claude/agents/workflow-debugger.md +102 -103
- package/.claude/agents/workflow-executor.md +127 -128
- package/.claude/agents/workflow-integration-checker.md +82 -82
- package/.claude/agents/workflow-nyquist-auditor.md +85 -84
- package/.claude/agents/workflow-phase-researcher.md +85 -85
- package/.claude/agents/workflow-plan-checker.md +90 -90
- package/.claude/agents/workflow-planner.md +178 -178
- package/.claude/agents/workflow-roadmapper.md +81 -83
- package/.claude/agents/workflow-verifier.md +119 -119
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +3 -3
- package/.claude/commands/learn-second-opinion.md +2 -2
- package/.claude/commands/maestro-brainstorm.md +1 -0
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-fork.md +133 -111
- package/.claude/commands/maestro-merge.md +85 -77
- package/.claude/commands/maestro-plan.md +88 -2
- package/.claude/commands/maestro-roadmap.md +113 -2
- package/.claude/commands/maestro.md +1 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue.md +2 -2
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +3 -2
- package/.claude/commands/quality-retrospective.md +6 -4
- package/.claude/commands/quality-review.md +1 -1
- package/.claude/commands/quality-test-gen.md +5 -4
- package/.claude/commands/spec-add.md +67 -56
- package/.claude/commands/spec-load.md +66 -64
- package/.claude/commands/spec-setup.md +5 -9
- package/.codex/skills/learn-decompose/SKILL.md +119 -0
- package/.codex/skills/learn-follow/SKILL.md +83 -0
- package/.codex/skills/learn-investigate/SKILL.md +83 -0
- package/.codex/skills/learn-retro/SKILL.md +83 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
- package/.codex/skills/maestro/SKILL.md +151 -279
- package/.codex/skills/maestro-analyze/SKILL.md +59 -71
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +95 -110
- package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
- package/.codex/skills/maestro-execute/SKILL.md +435 -446
- package/.codex/skills/maestro-fork/SKILL.md +98 -0
- package/.codex/skills/maestro-init/SKILL.md +172 -167
- package/.codex/skills/maestro-learn/SKILL.md +80 -0
- package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
- package/.codex/skills/maestro-merge/SKILL.md +69 -0
- package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
- package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
- package/.codex/skills/maestro-overlay/SKILL.md +188 -185
- package/.codex/skills/maestro-plan/SKILL.md +58 -69
- package/.codex/skills/maestro-quick/SKILL.md +26 -23
- package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
- package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
- package/.codex/skills/maestro-ui-design/SKILL.md +35 -32
- package/.codex/skills/maestro-verify/SKILL.md +556 -566
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
- package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
- package/.codex/skills/manage-harvest/SKILL.md +82 -0
- package/.codex/skills/manage-issue/SKILL.md +80 -65
- package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
- package/.codex/skills/manage-learn/SKILL.md +190 -186
- package/.codex/skills/manage-memory/SKILL.md +95 -72
- package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
- package/.codex/skills/manage-status/SKILL.md +102 -89
- package/.codex/skills/quality-business-test/SKILL.md +228 -223
- package/.codex/skills/quality-debug/SKILL.md +54 -66
- package/.codex/skills/quality-integration-test/SKILL.md +532 -544
- package/.codex/skills/quality-refactor/SKILL.md +197 -191
- package/.codex/skills/quality-retrospective/SKILL.md +512 -505
- package/.codex/skills/quality-review/SKILL.md +95 -107
- package/.codex/skills/quality-sync/SKILL.md +101 -89
- package/.codex/skills/quality-test/SKILL.md +202 -198
- package/.codex/skills/quality-test-gen/SKILL.md +94 -105
- package/.codex/skills/spec-add/SKILL.md +58 -39
- package/.codex/skills/spec-load/SKILL.md +45 -40
- package/.codex/skills/spec-map/SKILL.md +180 -182
- package/.codex/skills/spec-setup/SKILL.md +94 -76
- package/.codex/skills/team-coordinate/SKILL.md +346 -357
- package/.codex/skills/team-executor/SKILL.md +70 -112
- package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
- package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
- package/.codex/skills/team-review/SKILL.md +232 -225
- package/.codex/skills/team-tech-debt/SKILL.md +78 -100
- package/.codex/skills/team-testing/SKILL.md +242 -235
- package/.codex/skills/wiki-connect/SKILL.md +75 -0
- package/.codex/skills/wiki-digest/SKILL.md +87 -0
- package/README.md +9 -4
- package/README.zh-CN.md +9 -4
- package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
- package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
- package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
- package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
- package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
- package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
- package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
- package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
- package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
- package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
- package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
- package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
- package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
- package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
- package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
- package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
- package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
- package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
- package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
- package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
- package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
- package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
- package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
- package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
- package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
- package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
- package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
- package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
- package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
- package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +10 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +28 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
- package/dashboard/dist-server/src/hooks/constants.d.ts +3 -1
- package/dashboard/dist-server/src/hooks/constants.js +4 -2
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dist/shared/agent-types.d.ts +4 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/commands/collab.js +4 -4
- package/dist/src/commands/collab.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +66 -1
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +29 -18
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +7 -2
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js +23 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
- package/dist/src/hooks/constants.d.ts +3 -1
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +4 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +1 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +1 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
- package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
- package/dist/src/hooks/guards/spec-validator.js +66 -0
- package/dist/src/hooks/guards/spec-validator.js.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.js +96 -0
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/skill-context.d.ts +3 -0
- package/dist/src/hooks/skill-context.d.ts.map +1 -1
- package/dist/src/hooks/skill-context.js +95 -9
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/hooks/spec-bridge.d.ts +40 -0
- package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
- package/dist/src/hooks/spec-bridge.js +97 -0
- package/dist/src/hooks/spec-bridge.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +18 -12
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +6 -3
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/team/phase-orchestrator.d.ts +52 -0
- package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
- package/dist/src/team/phase-orchestrator.js +165 -0
- package/dist/src/team/phase-orchestrator.js.map +1 -0
- package/dist/src/team/phase-types.d.ts +51 -0
- package/dist/src/team/phase-types.d.ts.map +1 -0
- package/dist/src/team/phase-types.js +41 -0
- package/dist/src/team/phase-types.js.map +1 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +6 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/merge-validator.d.ts.map +1 -1
- package/dist/src/tools/merge-validator.js +114 -16
- package/dist/src/tools/merge-validator.js.map +1 -1
- package/dist/src/tools/spec-entry-parser.d.ts +56 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
- package/dist/src/tools/spec-entry-parser.js +196 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +66 -92
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +30 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
- package/dist/src/tools/spec-keyword-index.js +101 -0
- package/dist/src/tools/spec-keyword-index.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +3 -3
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +49 -23
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-agents.d.ts +27 -0
- package/dist/src/tools/team-agents.d.ts.map +1 -0
- package/dist/src/tools/team-agents.js +362 -0
- package/dist/src/tools/team-agents.js.map +1 -0
- package/dist/src/tools/team-mailbox.d.ts +40 -0
- package/dist/src/tools/team-mailbox.d.ts.map +1 -0
- package/dist/src/tools/team-mailbox.js +384 -0
- package/dist/src/tools/team-mailbox.js.map +1 -0
- package/dist/src/tools/team-msg.d.ts +17 -8
- package/dist/src/tools/team-msg.d.ts.map +1 -1
- package/dist/src/tools/team-msg.js +110 -13
- package/dist/src/tools/team-msg.js.map +1 -1
- package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
- package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
- package/dist/src/tools/team-tasks-mcp.js +408 -0
- package/dist/src/tools/team-tasks-mcp.js.map +1 -0
- package/package.json +2 -1
- package/shared/agent-types.ts +4 -0
- package/templates/worktree-scope.json +9 -10
- package/templates/worktrees.json +26 -27
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +480 -471
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/debug.md +16 -6
- package/workflows/execute.md +1 -1
- package/workflows/fork.md +100 -36
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +355 -343
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue.md +14 -4
- package/workflows/learn.md +19 -5
- package/workflows/maestro.md +1 -0
- package/workflows/map.md +111 -111
- package/workflows/merge.md +113 -55
- package/workflows/milestone-complete.md +176 -176
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +497 -497
- package/workflows/refactor.md +300 -300
- package/workflows/retrospective.md +61 -22
- package/workflows/review.md +17 -4
- package/workflows/roadmap.md +335 -335
- package/workflows/spec-generate.md +640 -640
- package/workflows/specs-add.md +46 -81
- package/workflows/specs-load.md +15 -17
- package/workflows/specs-setup.md +40 -161
- package/workflows/test.md +12 -2
- package/workflows/ui-style.md +9 -2
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
- package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
- package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
- package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
- package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
- package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
- package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
- package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
- package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
|
@@ -1,405 +1,397 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manage-codebase-rebuild
|
|
3
|
-
description: Full codebase documentation rebuild via CSV wave pipeline. Spawns 5 parallel doc generator agents to scan project and produce complete .workflow/codebase/ documentation set. Replaces manage-codebase-rebuild command.
|
|
4
|
-
argument-hint: "[-y|--yes] [-c|--concurrency 5] [--continue] \"[--force] [--skip-commit]\""
|
|
5
|
-
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
|
97
|
-
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
| `
|
|
103
|
-
| `
|
|
104
|
-
| `
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
|
130
|
-
|
|
131
|
-
| `
|
|
132
|
-
| `
|
|
133
|
-
| `
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
const
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
### Phase 1: Setup -> CSV
|
|
181
|
-
|
|
182
|
-
**Objective**: Validate prerequisites, prepare directory, detect source dirs, generate tasks.csv.
|
|
183
|
-
|
|
184
|
-
**Steps**:
|
|
185
|
-
|
|
186
|
-
1. **Validate .workflow/ exists**:
|
|
187
|
-
- Check `.workflow/state.json` exists
|
|
188
|
-
- If not: abort with "Run init first"
|
|
189
|
-
|
|
190
|
-
2. **Confirm rebuild**:
|
|
191
|
-
- If `.workflow/codebase/` exists AND NOT forceMode:
|
|
192
|
-
```
|
|
193
|
-
AskUserQuestion: "Codebase docs already exist. Rebuild will overwrite all files. Continue? [y/N]"
|
|
194
|
-
If no: exit
|
|
195
|
-
```
|
|
196
|
-
- If forceMode or confirmed: clear `.workflow/codebase/`
|
|
197
|
-
|
|
198
|
-
3. **Prepare directory structure**:
|
|
199
|
-
```bash
|
|
200
|
-
mkdir -p .workflow/codebase/tech-registry
|
|
201
|
-
mkdir -p .workflow/codebase/feature-maps
|
|
202
|
-
mkdir -p .workflow/codebase/action-logs
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
4. **Detect source directories**:
|
|
206
|
-
- Check for: `src/`, `lib/`, `app/`, `packages/`
|
|
207
|
-
- Read `project-tech.json` if available for `source_dirs`
|
|
208
|
-
- If no source directories found: abort with "No source files in project"
|
|
209
|
-
|
|
210
|
-
5. **Load project specs** (if available):
|
|
211
|
-
- Read `.workflow/specs/` for architecture context
|
|
212
|
-
|
|
213
|
-
6. **Generate tasks.csv**: 5 rows, all wave 1, no dependencies.
|
|
214
|
-
|
|
215
|
-
7. **User validation**: Display doc generator breakdown. Skip if AUTO_YES.
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
2
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
"
|
|
272
|
-
"
|
|
273
|
-
"
|
|
274
|
-
"
|
|
275
|
-
"
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
-
|
|
299
|
-
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
|
307
|
-
|
|
308
|
-
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
-
|
|
319
|
-
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
{
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
|
354
|
-
|
|
355
|
-
| `
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
|
383
|
-
|
|
384
|
-
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
1. **Start Immediately**: First action is session initialization, then Phase 1
|
|
399
|
-
2. **CSV is Source of Truth**: tasks.csv holds all generator state
|
|
400
|
-
3. **Discovery Board is Append-Only**: Generators share findings via NDJSON
|
|
401
|
-
4. **Partial Results OK**: If 3/5 generators succeed, still assemble available docs
|
|
402
|
-
5. **Destructive by Design**: This is a full rebuild -- existing codebase/ is cleared
|
|
403
|
-
6. **Single Wave**: All generators are independent, no wave ordering needed
|
|
404
|
-
7. **Cleanup Temp Files**: Remove wave-1.csv after results are merged
|
|
405
|
-
8. **DO NOT STOP**: Execute until all generators complete or fail
|
|
1
|
+
---
|
|
2
|
+
name: manage-codebase-rebuild
|
|
3
|
+
description: Full codebase documentation rebuild via CSV wave pipeline. Spawns 5 parallel doc generator agents to scan project and produce complete .workflow/codebase/ documentation set. Replaces manage-codebase-rebuild command.
|
|
4
|
+
argument-hint: "[-y|--yes] [-c|--concurrency 5] [--continue] \"[--force] [--skip-commit]\""
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Single-wave parallel execution -- 5 independent doc generator agents each analyze a different documentation dimension of the codebase. All agents run concurrently with no dependencies. This is a destructive operation that rebuilds the entire `.workflow/codebase/` directory from scratch.
|
|
10
|
+
|
|
11
|
+
**Core workflow**: Prepare Directory -> Decompose Doc Dimensions -> Parallel Generation -> Assemble doc-index.json
|
|
12
|
+
|
|
13
|
+
**Topology**: Independent Parallel (single wave)
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
+---------------------------------------------------------------------------+
|
|
17
|
+
| CODEBASE REBUILD CSV WAVE WORKFLOW |
|
|
18
|
+
+---------------------------------------------------------------------------+
|
|
19
|
+
| |
|
|
20
|
+
| Phase 1: Setup -> CSV |
|
|
21
|
+
| +-- Validate .workflow/ exists |
|
|
22
|
+
| +-- Confirm rebuild (or --force / -y) |
|
|
23
|
+
| +-- Clear .workflow/codebase/ directory |
|
|
24
|
+
| +-- Detect source directories (src/, lib/, app/, packages/) |
|
|
25
|
+
| +-- Generate tasks.csv with 5 doc generator tasks |
|
|
26
|
+
| +-- All tasks wave 1 (no dependencies) |
|
|
27
|
+
| |
|
|
28
|
+
| Phase 2: Wave Execution (Single Wave) |
|
|
29
|
+
| +-- Wave 1: All 5 generators run concurrently |
|
|
30
|
+
| | +-- Component Scanner (TC-* entries) |
|
|
31
|
+
| | +-- Feature Mapper (FT-* entries) |
|
|
32
|
+
| | +-- Requirement Linker (REQ-* entries, if specs exist) |
|
|
33
|
+
| | +-- Tech Registry Writer (tech-registry/*.md) |
|
|
34
|
+
| | +-- Feature Map Writer (feature-maps/*.md) |
|
|
35
|
+
| +-- discoveries.ndjson shared (append-only) |
|
|
36
|
+
| |
|
|
37
|
+
| Phase 3: Results -> .workflow/codebase/ |
|
|
38
|
+
| +-- Assemble doc-index.json from agent findings |
|
|
39
|
+
| +-- Validate all output files exist |
|
|
40
|
+
| +-- Update state.json with rebuild timestamp |
|
|
41
|
+
| +-- Generate context.md summary |
|
|
42
|
+
| +-- Auto-commit (unless --skip-commit) |
|
|
43
|
+
| +-- Display completion report |
|
|
44
|
+
| |
|
|
45
|
+
+---------------------------------------------------------------------------+
|
|
46
|
+
```
|
|
47
|
+
</purpose>
|
|
48
|
+
|
|
49
|
+
<context>
|
|
50
|
+
$ARGUMENTS -- optional flags for rebuild control.
|
|
51
|
+
|
|
52
|
+
**Usage**:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
$manage-codebase-rebuild ""
|
|
56
|
+
$manage-codebase-rebuild -y "--force"
|
|
57
|
+
$manage-codebase-rebuild -c 5 "--force --skip-commit"
|
|
58
|
+
$manage-codebase-rebuild --continue "rebuild-full-20260318"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Flags**:
|
|
62
|
+
- `-y, --yes`: Skip all confirmations (auto mode, implies --force)
|
|
63
|
+
- `-c, --concurrency N`: Max concurrent agents (default: 5)
|
|
64
|
+
- `--continue`: Resume existing session
|
|
65
|
+
|
|
66
|
+
**Inner flags** (passed inside quotes):
|
|
67
|
+
- `--force`: Clear existing .workflow/codebase/ and rebuild from scratch
|
|
68
|
+
- `--skip-commit`: Do not auto-commit after rebuild
|
|
69
|
+
|
|
70
|
+
When `--yes` or `-y`: Auto-confirm rebuild (implies --force), skip all prompts.
|
|
71
|
+
|
|
72
|
+
**Output Directory**: `.workflow/.csv-wave/{session-id}/`
|
|
73
|
+
**Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report)
|
|
74
|
+
**Target**: `.workflow/codebase/` (doc-index.json, tech-registry/, feature-maps/)
|
|
75
|
+
</context>
|
|
76
|
+
|
|
77
|
+
<csv_schema>
|
|
78
|
+
|
|
79
|
+
### tasks.csv (Master State)
|
|
80
|
+
|
|
81
|
+
```csv
|
|
82
|
+
id,title,description,doc_dimension,output_path,deps,context_from,wave,status,findings,error
|
|
83
|
+
"1","Component Scanner","Scan all source directories for components: models, services, controllers, utils, types, config, middleware, core modules. For each component extract exported symbols, determine type, record code locations. Output JSON array of component entries with id (TC-NNN), name, type, code_locations, symbols.","components",".workflow/codebase/doc-index.json#components","","","1","","",""
|
|
84
|
+
"2","Feature Mapper","Group discovered components by domain/functional area using directory proximity, naming patterns, and import relationships. Map features to requirements if .workflow/task-specs/ exists. Output JSON array of feature entries with id (FT-NNN), name, status, component_ids, requirement_ids, phase.","features",".workflow/codebase/doc-index.json#features","","","1","","",""
|
|
85
|
+
"3","Requirement Linker","If .workflow/task-specs/ exists, scan SPEC-*/requirements/REQ-*.md files. Parse requirement metadata (title, priority, acceptance_criteria). Match requirements to features by keyword analysis. Also scan for ADR-*.md architecture decisions. Output JSON arrays for requirements and architecture_decisions.","requirements",".workflow/codebase/doc-index.json#requirements","","","1","","",""
|
|
86
|
+
"4","Tech Registry Writer","For each component discovered, generate a markdown documentation file in .workflow/codebase/tech-registry/{slug}.md with: ID, type, features, code locations, exported symbols, dependencies. Generate _index.md with component table. Output file count and paths.","tech-registry",".workflow/codebase/tech-registry/","","","1","","",""
|
|
87
|
+
"5","Feature Map Writer","For each feature discovered, generate a markdown documentation file in .workflow/codebase/feature-maps/{slug}.md with: ID, status, phase, requirements, component table. Generate _index.md with feature table. Output file count and paths.","feature-maps",".workflow/codebase/feature-maps/","","","1","","",""
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Columns**:
|
|
91
|
+
|
|
92
|
+
| Column | Phase | Description |
|
|
93
|
+
|--------|-------|-------------|
|
|
94
|
+
| `id` | Input | Generator identifier |
|
|
95
|
+
| `title` | Input | Doc generator dimension title |
|
|
96
|
+
| `description` | Input | Detailed generation instructions |
|
|
97
|
+
| `doc_dimension` | Input | Documentation dimension: components/features/requirements/tech-registry/feature-maps |
|
|
98
|
+
| `output_path` | Input | Target output path in .workflow/codebase/ |
|
|
99
|
+
| `deps` | Input | Empty (all independent) |
|
|
100
|
+
| `context_from` | Input | Empty (no cross-task context needed) |
|
|
101
|
+
| `wave` | Computed | Always 1 (single wave, independent parallel) |
|
|
102
|
+
| `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
|
|
103
|
+
| `findings` | Output | Generation summary -- counts, paths, notes (max 500 chars) |
|
|
104
|
+
| `error` | Output | Error message if failed |
|
|
105
|
+
|
|
106
|
+
### Per-Wave CSV (Temporary)
|
|
107
|
+
|
|
108
|
+
Single wave generates `wave-1.csv`. No `prev_context` needed (all tasks independent).
|
|
109
|
+
</csv_schema>
|
|
110
|
+
|
|
111
|
+
<invariants>
|
|
112
|
+
1. **Start Immediately**: First action is session initialization, then Phase 1
|
|
113
|
+
2. **CSV is Source of Truth**: tasks.csv holds all generator state
|
|
114
|
+
3. **Discovery Board is Append-Only**: Generators share findings via NDJSON
|
|
115
|
+
4. **Partial Results OK**: If 3/5 generators succeed, still assemble available docs
|
|
116
|
+
5. **Destructive by Design**: This is a full rebuild -- existing codebase/ is cleared
|
|
117
|
+
6. **Single Wave**: All generators are independent, no wave ordering needed
|
|
118
|
+
7. **Cleanup Temp Files**: Remove wave-1.csv after results are merged
|
|
119
|
+
8. **DO NOT STOP**: Execute until all generators complete or fail
|
|
120
|
+
</invariants>
|
|
121
|
+
|
|
122
|
+
<execution>
|
|
123
|
+
|
|
124
|
+
### Output Artifacts
|
|
125
|
+
|
|
126
|
+
| File | Purpose | Lifecycle |
|
|
127
|
+
|------|---------|-----------|
|
|
128
|
+
| `tasks.csv` | Master state -- all tasks with status/findings | Updated after wave |
|
|
129
|
+
| `wave-1.csv` | Wave input (temporary) | Created before wave, deleted after |
|
|
130
|
+
| `wave-1-results.csv` | Wave output | Created by spawn_agents_on_csv |
|
|
131
|
+
| `results.csv` | Final export of all task results | Created in Phase 3 |
|
|
132
|
+
| `discoveries.ndjson` | Shared exploration board | Append-only during wave |
|
|
133
|
+
| `context.md` | Human-readable rebuild report | Created in Phase 3 |
|
|
134
|
+
|
|
135
|
+
### Target Output (in .workflow/codebase/)
|
|
136
|
+
|
|
137
|
+
| File | Description |
|
|
138
|
+
|------|-------------|
|
|
139
|
+
| `doc-index.json` | Single source of truth: components, features, requirements, ADRs |
|
|
140
|
+
| `tech-registry/_index.md` | Component index table |
|
|
141
|
+
| `tech-registry/{slug}.md` | Per-component documentation |
|
|
142
|
+
| `feature-maps/_index.md` | Feature index table |
|
|
143
|
+
| `feature-maps/{slug}.md` | Per-feature documentation |
|
|
144
|
+
|
|
145
|
+
### Session Structure
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
.workflow/.csv-wave/rebuild-{scope}-{date}/
|
|
149
|
+
+-- tasks.csv
|
|
150
|
+
+-- results.csv
|
|
151
|
+
+-- discoveries.ndjson
|
|
152
|
+
+-- context.md
|
|
153
|
+
+-- config.json
|
|
154
|
+
+-- wave-1.csv (temporary)
|
|
155
|
+
+-- wave-1-results.csv (temporary)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Session Initialization
|
|
159
|
+
|
|
160
|
+
```javascript
|
|
161
|
+
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
|
|
162
|
+
|
|
163
|
+
// Parse flags
|
|
164
|
+
const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
|
|
165
|
+
const continueMode = $ARGUMENTS.includes('--continue')
|
|
166
|
+
const concurrencyMatch = $ARGUMENTS.match(/(?:--concurrency|-c)\s+(\d+)/)
|
|
167
|
+
const maxConcurrency = concurrencyMatch ? parseInt(concurrencyMatch[1]) : 5
|
|
168
|
+
|
|
169
|
+
// Parse rebuild-specific flags
|
|
170
|
+
const forceMode = $ARGUMENTS.includes('--force') || AUTO_YES
|
|
171
|
+
const skipCommit = $ARGUMENTS.includes('--skip-commit')
|
|
172
|
+
|
|
173
|
+
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
174
|
+
const sessionId = `rebuild-full-${dateStr}`
|
|
175
|
+
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
176
|
+
|
|
177
|
+
Bash(`mkdir -p ${sessionFolder}`)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Phase 1: Setup -> CSV
|
|
181
|
+
|
|
182
|
+
**Objective**: Validate prerequisites, prepare directory, detect source dirs, generate tasks.csv.
|
|
183
|
+
|
|
184
|
+
**Steps**:
|
|
185
|
+
|
|
186
|
+
1. **Validate .workflow/ exists**:
|
|
187
|
+
- Check `.workflow/state.json` exists
|
|
188
|
+
- If not: abort with "Run init first"
|
|
189
|
+
|
|
190
|
+
2. **Confirm rebuild**:
|
|
191
|
+
- If `.workflow/codebase/` exists AND NOT forceMode:
|
|
192
|
+
```
|
|
193
|
+
AskUserQuestion: "Codebase docs already exist. Rebuild will overwrite all files. Continue? [y/N]"
|
|
194
|
+
If no: exit
|
|
195
|
+
```
|
|
196
|
+
- If forceMode or confirmed: clear `.workflow/codebase/`
|
|
197
|
+
|
|
198
|
+
3. **Prepare directory structure**:
|
|
199
|
+
```bash
|
|
200
|
+
mkdir -p .workflow/codebase/tech-registry
|
|
201
|
+
mkdir -p .workflow/codebase/feature-maps
|
|
202
|
+
mkdir -p .workflow/codebase/action-logs
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
4. **Detect source directories**:
|
|
206
|
+
- Check for: `src/`, `lib/`, `app/`, `packages/`
|
|
207
|
+
- Read `project-tech.json` if available for `source_dirs`
|
|
208
|
+
- If no source directories found: abort with "No source files in project"
|
|
209
|
+
|
|
210
|
+
5. **Load project specs** (if available):
|
|
211
|
+
- Read `.workflow/specs/` for architecture context
|
|
212
|
+
|
|
213
|
+
6. **Generate tasks.csv**: 5 rows, all wave 1, no dependencies.
|
|
214
|
+
|
|
215
|
+
7. **User validation**: Display doc generator breakdown. Skip if AUTO_YES.
|
|
216
|
+
|
|
217
|
+
### Phase 2: Wave Execution (Single Wave)
|
|
218
|
+
|
|
219
|
+
**Objective**: Run all 5 doc generators concurrently via spawn_agents_on_csv.
|
|
220
|
+
|
|
221
|
+
#### Wave 1: All Generators (Parallel)
|
|
222
|
+
|
|
223
|
+
1. Read master `tasks.csv`
|
|
224
|
+
2. Filter rows where `wave == 1` AND `status == pending`
|
|
225
|
+
3. No prev_context needed (single wave, all independent)
|
|
226
|
+
4. Write `wave-1.csv`
|
|
227
|
+
5. Execute:
|
|
228
|
+
|
|
229
|
+
```javascript
|
|
230
|
+
spawn_agents_on_csv({
|
|
231
|
+
csv_path: `${sessionFolder}/wave-1.csv`,
|
|
232
|
+
id_column: "id",
|
|
233
|
+
instruction: buildRebuildInstruction(sessionFolder, sourceDirs),
|
|
234
|
+
max_concurrency: maxConcurrency,
|
|
235
|
+
max_runtime_seconds: 900,
|
|
236
|
+
output_csv_path: `${sessionFolder}/wave-1-results.csv`,
|
|
237
|
+
output_schema: {
|
|
238
|
+
type: "object",
|
|
239
|
+
properties: {
|
|
240
|
+
id: { type: "string" },
|
|
241
|
+
status: { type: "string", enum: ["completed", "failed"] },
|
|
242
|
+
findings: { type: "string" },
|
|
243
|
+
error: { type: "string" }
|
|
244
|
+
},
|
|
245
|
+
required: ["id", "status", "findings"]
|
|
246
|
+
}
|
|
247
|
+
})
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
6. Read `wave-1-results.csv`, merge into master `tasks.csv`
|
|
251
|
+
7. Delete `wave-1.csv`
|
|
252
|
+
|
|
253
|
+
### Phase 3: Results -> .workflow/codebase/
|
|
254
|
+
|
|
255
|
+
**Objective**: Assemble doc-index.json from agent findings, validate, update state.
|
|
256
|
+
|
|
257
|
+
1. Read final master `tasks.csv`
|
|
258
|
+
2. Export as `results.csv`
|
|
259
|
+
|
|
260
|
+
3. **Assemble doc-index.json**:
|
|
261
|
+
- Read component findings from task 1 (Component Scanner)
|
|
262
|
+
- Read feature findings from task 2 (Feature Mapper)
|
|
263
|
+
- Read requirement/ADR findings from task 3 (Requirement Linker)
|
|
264
|
+
- Merge into complete doc-index.json:
|
|
265
|
+
```json
|
|
266
|
+
{
|
|
267
|
+
"version": "1.0",
|
|
268
|
+
"schema_version": "1.0",
|
|
269
|
+
"project": "<project name>",
|
|
270
|
+
"last_updated": "<ISO>",
|
|
271
|
+
"features": [],
|
|
272
|
+
"components": [],
|
|
273
|
+
"requirements": [],
|
|
274
|
+
"architecture_decisions": [],
|
|
275
|
+
"actions": []
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
- Write to `.workflow/codebase/doc-index.json`
|
|
279
|
+
|
|
280
|
+
4. **Validate output files**:
|
|
281
|
+
- Check doc-index.json exists and is valid JSON
|
|
282
|
+
- Check tech-registry/_index.md exists (from task 4)
|
|
283
|
+
- Check feature-maps/_index.md exists (from task 5)
|
|
284
|
+
- Log warnings for any missing files
|
|
285
|
+
|
|
286
|
+
5. **Update state.json**: Set `codebase.last_rebuild` timestamp.
|
|
287
|
+
|
|
288
|
+
6. **Generate context.md**:
|
|
289
|
+
|
|
290
|
+
```markdown
|
|
291
|
+
# Codebase Rebuild Report
|
|
292
|
+
|
|
293
|
+
## Summary
|
|
294
|
+
- Components discovered: {count}
|
|
295
|
+
- Features mapped: {count}
|
|
296
|
+
- Requirements linked: {count}
|
|
297
|
+
- ADRs recorded: {count}
|
|
298
|
+
- Files generated: {count}
|
|
299
|
+
- Generators: {completed}/{total} succeeded
|
|
300
|
+
|
|
301
|
+
## Generator Results
|
|
302
|
+
| Generator | Status | Output | Findings |
|
|
303
|
+
|-----------|--------|--------|----------|
|
|
304
|
+
| Component Scanner | {status} | {count} components | {summary} |
|
|
305
|
+
| Feature Mapper | {status} | {count} features | {summary} |
|
|
306
|
+
| Requirement Linker | {status} | {count} requirements | {summary} |
|
|
307
|
+
| Tech Registry Writer | {status} | {count} files | {summary} |
|
|
308
|
+
| Feature Map Writer | {status} | {count} files | {summary} |
|
|
309
|
+
|
|
310
|
+
## Discovery Board Summary
|
|
311
|
+
{aggregated discovery findings}
|
|
312
|
+
|
|
313
|
+
## Next Steps
|
|
314
|
+
- Run manage-status to review
|
|
315
|
+
- Run manage-codebase-refresh for future incremental updates
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
7. **Auto-commit** (unless --skip-commit):
|
|
319
|
+
- Stage `.workflow/codebase/` files
|
|
320
|
+
- Suggest commit: "docs(codebase): full rebuild of codebase documentation"
|
|
321
|
+
|
|
322
|
+
8. **Display completion report**:
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
=== CODEBASE REBUILD COMPLETE ===
|
|
326
|
+
Components: {count}
|
|
327
|
+
Features: {count}
|
|
328
|
+
Requirements: {count}
|
|
329
|
+
ADRs: {count}
|
|
330
|
+
Files: {count} generated in .workflow/codebase/
|
|
331
|
+
|
|
332
|
+
Generators: {completed}/{total} succeeded
|
|
333
|
+
{if failures: "W001: {failed_generator} failed -- partial results available"}
|
|
334
|
+
|
|
335
|
+
Next steps:
|
|
336
|
+
Skill({ skill: "manage-status" })
|
|
337
|
+
Skill({ skill: "manage-codebase-refresh" })
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### Shared Discovery Board Protocol
|
|
341
|
+
|
|
342
|
+
#### Standard Discovery Types
|
|
343
|
+
|
|
344
|
+
| Type | Dedup Key | Data Schema | Description |
|
|
345
|
+
|------|-----------|-------------|-------------|
|
|
346
|
+
| `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack identified |
|
|
347
|
+
| `code_pattern` | `data.name` | `{name, file, description}` | Reusable code pattern found |
|
|
348
|
+
| `integration_point` | `data.file` | `{file, description, exports[]}` | Module connection point |
|
|
349
|
+
| `convention` | singleton | `{naming, imports, formatting}` | Project coding conventions |
|
|
350
|
+
|
|
351
|
+
#### Domain Discovery Types
|
|
352
|
+
|
|
353
|
+
| Type | Dedup Key | Data Schema | Description |
|
|
354
|
+
|------|-----------|-------------|-------------|
|
|
355
|
+
| `component` | `data.id` | `{id, name, type, code_locations[]}` | Component discovered by scanner |
|
|
356
|
+
| `feature_group` | `data.name` | `{name, component_ids[], directory}` | Feature grouping identified |
|
|
357
|
+
|
|
358
|
+
#### Protocol
|
|
359
|
+
|
|
360
|
+
1. **Read** `{session_folder}/discoveries.ndjson` before own analysis
|
|
361
|
+
2. **Skip covered**: If discovery of same type + dedup key exists, skip
|
|
362
|
+
3. **Write immediately**: Append findings as discovered
|
|
363
|
+
4. **Append-only**: Never modify or delete
|
|
364
|
+
5. **Deduplicate**: Check before writing
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
echo '{"ts":"<ISO>","worker":"1","type":"tech_stack","data":{"framework":"Express","language":"TypeScript","tools":["jest","eslint","prettier"]}}' >> {session_folder}/discoveries.ndjson
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
Generators share discoveries so other generators can skip redundant scanning (e.g., Component Scanner discovers components, Feature Mapper and Tech Registry Writer can leverage those findings).
|
|
371
|
+
</execution>
|
|
372
|
+
|
|
373
|
+
<error_codes>
|
|
374
|
+
| Error | Resolution |
|
|
375
|
+
|-------|------------|
|
|
376
|
+
| .workflow/ not initialized | Abort: "Run init first" (E001) |
|
|
377
|
+
| No source directories found | Abort: "No source files in project" |
|
|
378
|
+
| .workflow/codebase/ exists without --force | Prompt user for confirmation |
|
|
379
|
+
| Generator agent timeout | Mark as failed, continue with other generators |
|
|
380
|
+
| Generator agent failed | Mark as failed, log W001, output partial results |
|
|
381
|
+
| doc-index.json assembly fails | Use available generator outputs, log missing sections |
|
|
382
|
+
| CSV parse error | Validate format, show line number |
|
|
383
|
+
| discoveries.ndjson corrupt | Ignore malformed lines |
|
|
384
|
+
| Continue mode: no session found | List available sessions |
|
|
385
|
+
</error_codes>
|
|
386
|
+
|
|
387
|
+
<success_criteria>
|
|
388
|
+
- [ ] Session initialized with tasks.csv
|
|
389
|
+
- [ ] .workflow/codebase/ cleared (if --force or confirmed)
|
|
390
|
+
- [ ] All 5 doc generators executed via spawn_agents_on_csv
|
|
391
|
+
- [ ] doc-index.json assembled from generator findings
|
|
392
|
+
- [ ] tech-registry/ and feature-maps/ populated with markdown docs
|
|
393
|
+
- [ ] state.json updated with rebuild timestamp
|
|
394
|
+
- [ ] context.md generated with rebuild report
|
|
395
|
+
- [ ] Auto-commit performed (unless --skip-commit)
|
|
396
|
+
- [ ] Completion report displayed with counts and next steps
|
|
397
|
+
</success_criteria>
|