maestro-flow 0.3.9 → 0.3.11

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.
Files changed (281) hide show
  1. package/.claude/agents/workflow-collab-planner.md +1 -1
  2. package/.claude/agents/workflow-executor.md +1 -1
  3. package/.claude/agents/workflow-plan-checker.md +1 -1
  4. package/.claude/agents/workflow-planner.md +1 -1
  5. package/.claude/commands/learn-decompose.md +176 -176
  6. package/.claude/commands/learn-follow.md +167 -167
  7. package/.claude/commands/learn-retro.md +1 -1
  8. package/.claude/commands/maestro-analyze.md +46 -3
  9. package/.claude/commands/maestro-coordinate.md +1 -3
  10. package/.claude/commands/maestro-execute.md +14 -0
  11. package/.claude/commands/maestro-plan.md +16 -0
  12. package/.claude/commands/manage-harvest.md +131 -131
  13. package/.claude/commands/manage-issue-discover.md +2 -2
  14. package/.claude/commands/manage-issue.md +5 -5
  15. package/.claude/commands/spec-add.md +67 -56
  16. package/.claude/commands/spec-load.md +66 -64
  17. package/.claude/commands/spec-setup.md +5 -9
  18. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  19. package/.codex/skills/learn-follow/SKILL.md +83 -0
  20. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  21. package/.codex/skills/learn-retro/SKILL.md +83 -0
  22. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  23. package/.codex/skills/maestro/SKILL.md +335 -0
  24. package/.codex/skills/maestro-analyze/SKILL.md +84 -75
  25. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  26. package/.codex/skills/maestro-chain/SKILL.md +233 -0
  27. package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
  28. package/.codex/skills/maestro-execute/SKILL.md +435 -438
  29. package/.codex/skills/maestro-fork/SKILL.md +68 -0
  30. package/.codex/skills/maestro-init/SKILL.md +171 -167
  31. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  32. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  33. package/.codex/skills/maestro-merge/SKILL.md +62 -0
  34. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  35. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  36. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  37. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  38. package/.codex/skills/maestro-plan/SKILL.md +66 -69
  39. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  40. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  41. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  42. package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
  43. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  44. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  45. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  46. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  47. package/.codex/skills/manage-issue/SKILL.md +80 -65
  48. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  49. package/.codex/skills/manage-learn/SKILL.md +190 -186
  50. package/.codex/skills/manage-memory/SKILL.md +95 -72
  51. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  52. package/.codex/skills/manage-status/SKILL.md +102 -89
  53. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  54. package/.codex/skills/quality-debug/SKILL.md +54 -66
  55. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  56. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  57. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  58. package/.codex/skills/quality-review/SKILL.md +93 -105
  59. package/.codex/skills/quality-sync/SKILL.md +101 -89
  60. package/.codex/skills/quality-test/SKILL.md +202 -198
  61. package/.codex/skills/quality-test-gen/SKILL.md +93 -104
  62. package/.codex/skills/spec-add/SKILL.md +58 -39
  63. package/.codex/skills/spec-load/SKILL.md +45 -40
  64. package/.codex/skills/spec-map/SKILL.md +180 -182
  65. package/.codex/skills/spec-setup/SKILL.md +94 -76
  66. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  67. package/.codex/skills/team-executor/SKILL.md +70 -112
  68. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  69. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  70. package/.codex/skills/team-review/SKILL.md +232 -225
  71. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  72. package/.codex/skills/team-testing/SKILL.md +242 -235
  73. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  74. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  75. package/README.md +14 -11
  76. package/README.zh-CN.md +14 -11
  77. package/chains/issue-lifecycle.json +13 -13
  78. package/chains/singles/issue-analyze.json +3 -3
  79. package/chains/singles/issue-execute.json +3 -3
  80. package/chains/singles/issue-plan.json +3 -3
  81. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
  82. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
  83. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
  84. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  85. package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
  86. package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
  87. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  88. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  89. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  90. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  91. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  92. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  93. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
  94. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
  95. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  96. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  97. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
  98. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  99. package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
  100. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
  101. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
  102. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
  103. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  104. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  105. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  106. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  107. package/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
  108. package/dashboard/dist-server/src/hooks/constants.js +151 -16
  109. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  110. package/dashboard/dist-server/src/types/index.d.ts +5 -0
  111. package/dist/src/commands/collab.d.ts +1 -34
  112. package/dist/src/commands/collab.d.ts.map +1 -1
  113. package/dist/src/commands/collab.js +8 -76
  114. package/dist/src/commands/collab.js.map +1 -1
  115. package/dist/src/commands/hooks.d.ts +5 -1
  116. package/dist/src/commands/hooks.d.ts.map +1 -1
  117. package/dist/src/commands/hooks.js +115 -10
  118. package/dist/src/commands/hooks.js.map +1 -1
  119. package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
  120. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  121. package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
  122. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  123. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  124. package/dist/src/commands/install-ui/InstallExecution.js +5 -1
  125. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  126. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  127. package/dist/src/commands/install-ui/InstallFlow.js +7 -3
  128. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  129. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
  130. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
  131. package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
  132. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
  133. package/dist/src/commands/spec.d.ts.map +1 -1
  134. package/dist/src/commands/spec.js +7 -2
  135. package/dist/src/commands/spec.js.map +1 -1
  136. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
  137. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
  138. package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
  139. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
  140. package/dist/src/hooks/constants.d.ts +92 -12
  141. package/dist/src/hooks/constants.d.ts.map +1 -1
  142. package/dist/src/hooks/constants.js +151 -16
  143. package/dist/src/hooks/constants.js.map +1 -1
  144. package/dist/src/hooks/guards/index.d.ts +2 -0
  145. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  146. package/dist/src/hooks/guards/index.js +2 -0
  147. package/dist/src/hooks/guards/index.js.map +1 -1
  148. package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
  149. package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
  150. package/dist/src/hooks/guards/preflight-guard.js +95 -0
  151. package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
  152. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  153. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  154. package/dist/src/hooks/guards/spec-validator.js +66 -0
  155. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  156. package/dist/src/hooks/index.d.ts +1 -0
  157. package/dist/src/hooks/index.d.ts.map +1 -1
  158. package/dist/src/hooks/index.js +1 -0
  159. package/dist/src/hooks/index.js.map +1 -1
  160. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  161. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  162. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  163. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  164. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  165. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  166. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  167. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  168. package/dist/src/hooks/preflight-core.d.ts +37 -0
  169. package/dist/src/hooks/preflight-core.d.ts.map +1 -0
  170. package/dist/src/hooks/preflight-core.js +86 -0
  171. package/dist/src/hooks/preflight-core.js.map +1 -0
  172. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  173. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  174. package/dist/src/hooks/spec-bridge.js +97 -0
  175. package/dist/src/hooks/spec-bridge.js.map +1 -0
  176. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  177. package/dist/src/hooks/spec-injector.js +18 -12
  178. package/dist/src/hooks/spec-injector.js.map +1 -1
  179. package/dist/src/hooks/statusline.d.ts +8 -17
  180. package/dist/src/hooks/statusline.d.ts.map +1 -1
  181. package/dist/src/hooks/statusline.js +269 -112
  182. package/dist/src/hooks/statusline.js.map +1 -1
  183. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  184. package/dist/src/i18n/locales/en.js +5 -0
  185. package/dist/src/i18n/locales/en.js.map +1 -1
  186. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  187. package/dist/src/i18n/locales/zh.js +5 -0
  188. package/dist/src/i18n/locales/zh.js.map +1 -1
  189. package/dist/src/i18n/types.d.ts +5 -0
  190. package/dist/src/i18n/types.d.ts.map +1 -1
  191. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  192. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  193. package/dist/src/team/phase-orchestrator.js +165 -0
  194. package/dist/src/team/phase-orchestrator.js.map +1 -0
  195. package/dist/src/team/phase-types.d.ts +51 -0
  196. package/dist/src/team/phase-types.d.ts.map +1 -0
  197. package/dist/src/team/phase-types.js +41 -0
  198. package/dist/src/team/phase-types.js.map +1 -0
  199. package/dist/src/tools/collab-adapter.d.ts +17 -0
  200. package/dist/src/tools/collab-adapter.d.ts.map +1 -1
  201. package/dist/src/tools/collab-adapter.js +138 -0
  202. package/dist/src/tools/collab-adapter.js.map +1 -1
  203. package/dist/src/tools/index.d.ts.map +1 -1
  204. package/dist/src/tools/index.js +6 -0
  205. package/dist/src/tools/index.js.map +1 -1
  206. package/dist/src/tools/merge-validator.d.ts +24 -0
  207. package/dist/src/tools/merge-validator.d.ts.map +1 -0
  208. package/dist/src/tools/merge-validator.js +220 -0
  209. package/dist/src/tools/merge-validator.js.map +1 -0
  210. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  211. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  212. package/dist/src/tools/spec-entry-parser.js +196 -0
  213. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  214. package/dist/src/tools/spec-init.d.ts.map +1 -1
  215. package/dist/src/tools/spec-init.js +66 -92
  216. package/dist/src/tools/spec-init.js.map +1 -1
  217. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  218. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  219. package/dist/src/tools/spec-keyword-index.js +101 -0
  220. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  221. package/dist/src/tools/spec-loader.d.ts +3 -3
  222. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  223. package/dist/src/tools/spec-loader.js +49 -23
  224. package/dist/src/tools/spec-loader.js.map +1 -1
  225. package/dist/src/tools/team-agents.d.ts +27 -0
  226. package/dist/src/tools/team-agents.d.ts.map +1 -0
  227. package/dist/src/tools/team-agents.js +362 -0
  228. package/dist/src/tools/team-agents.js.map +1 -0
  229. package/dist/src/tools/team-mailbox.d.ts +40 -0
  230. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  231. package/dist/src/tools/team-mailbox.js +384 -0
  232. package/dist/src/tools/team-mailbox.js.map +1 -0
  233. package/dist/src/tools/team-msg.d.ts +17 -8
  234. package/dist/src/tools/team-msg.d.ts.map +1 -1
  235. package/dist/src/tools/team-msg.js +110 -13
  236. package/dist/src/tools/team-msg.js.map +1 -1
  237. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  238. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  239. package/dist/src/tools/team-tasks-mcp.js +408 -0
  240. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  241. package/dist/src/types/index.d.ts +5 -0
  242. package/dist/src/types/index.d.ts.map +1 -1
  243. package/package.json +2 -1
  244. package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
  245. package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
  246. package/templates/search-tools.md +1 -1
  247. package/workflows/analyze.md +816 -816
  248. package/workflows/brainstorm.md +471 -471
  249. package/workflows/cli-tools-usage.md +44 -27
  250. package/workflows/codebase-rebuild.md +332 -332
  251. package/workflows/codebase-refresh.md +240 -240
  252. package/workflows/delegate-usage.md +3 -3
  253. package/workflows/execute.md +1 -1
  254. package/workflows/harvest.md +420 -420
  255. package/workflows/integration-test.md +343 -343
  256. package/workflows/issue-analyze.md +6 -2
  257. package/workflows/issue-discover.md +414 -414
  258. package/workflows/issue-execute.md +6 -3
  259. package/workflows/issue-plan.md +5 -2
  260. package/workflows/maestro-coordinate.codex.md +281 -470
  261. package/workflows/maestro-coordinate.md +14 -14
  262. package/workflows/maestro-link-coordinate.md +2 -2
  263. package/workflows/maestro.codex.md +710 -0
  264. package/workflows/maestro.md +10 -11
  265. package/workflows/map.md +111 -111
  266. package/workflows/milestone-complete.md +176 -176
  267. package/workflows/plan.md +1 -1
  268. package/workflows/quick.md +497 -497
  269. package/workflows/refactor.md +300 -300
  270. package/workflows/retrospective.md +1 -1
  271. package/workflows/roadmap.md +335 -335
  272. package/workflows/spec-generate.md +640 -640
  273. package/workflows/specs-add.md +46 -81
  274. package/workflows/specs-load.md +15 -17
  275. package/workflows/specs-setup.md +40 -161
  276. package/.claude/commands/manage-issue-analyze.md +0 -62
  277. package/.claude/commands/manage-issue-execute.md +0 -73
  278. package/.claude/commands/manage-issue-plan.md +0 -62
  279. package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
  280. package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
  281. package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
@@ -1,332 +1,332 @@
1
- # Workflow: codebase-rebuild
2
-
3
- Full rebuild of the `.workflow/codebase/` documentation system.
4
-
5
- ## Trigger
6
-
7
- - Manual via `/workflow:codebase-rebuild [--force] [--skip-commit]`
8
- - Auto-triggered by `/workflow:init` when existing code is detected
9
- - Auto-triggered by `/workflow:map`
10
-
11
- ## Arguments
12
-
13
- | Arg | Description | Default |
14
- |-----|-------------|---------|
15
- | `--force` | Clear existing codebase/ and rebuild from scratch | `false` |
16
- | `--skip-commit` | Skip the final git commit of generated docs | `false` |
17
-
18
- ## Prerequisites
19
-
20
- - Project source code exists (src/ or equivalent)
21
- - `.workflow/` directory exists
22
-
23
- ---
24
-
25
- ## Workflow Steps
26
-
27
- ### Step 1: Prepare Directory Structure
28
-
29
- ```
30
- Create (or clear if --force) the codebase directory:
31
-
32
- .workflow/codebase/
33
- doc-index.json
34
- tech-registry/
35
- _index.md
36
- feature-maps/
37
- _index.md
38
- action-logs/
39
-
40
- If directories exist and --force not set:
41
- AskUserQuestion: "Codebase docs already exist. Rebuild will overwrite. Continue? [y/N]"
42
- If no: exit
43
- ```
44
-
45
- ### Step 2: Scan Project Structure — Components
46
-
47
- ```
48
- Scan src/ (and other source directories) for components:
49
-
50
- a. Identify source directories:
51
- - Check for: src/, lib/, app/, packages/
52
- - Use project-tech.json source_dirs if available
53
-
54
- b. For each source directory, scan for component-forming files:
55
- - Directories that represent modules (contain index.ts/index.js or multiple files)
56
- - Key file patterns:
57
- - Models: *model*, *entity*, *schema* files
58
- - Services: *service*, *provider* files
59
- - Controllers: *controller*, *handler*, *route* files
60
- - Utils: *util*, *helper*, *common* files
61
- - Types: *type*, *interface*, *.d.ts files
62
- - Config: *config*, *constant* files
63
- - Middleware: *middleware*, *guard*, *interceptor* files
64
- - Core: *core*, *registry*, *loader* files
65
-
66
- c. For each identified component:
67
- - Read the file(s)
68
- - Extract exported symbols (classes, functions, interfaces, types, constants)
69
- - Determine component type (model, service, controller, util, config, middleware, core)
70
- - Build component entry:
71
- {
72
- "id": "TC-{NNN}", // Sequential, zero-padded 3 digits
73
- "name": "{PascalCase name}",
74
- "type": "{type}",
75
- "code_locations": ["{relative paths}"],
76
- "feature_ids": [], // Populated in Step 3
77
- "symbols": ["{exported symbol names}"],
78
- "last_updated": "{ISO timestamp}"
79
- }
80
-
81
- d. ID assignment: TC-001, TC-002, ... in discovery order
82
- ```
83
-
84
- ### Step 2.5: Load Project Specs
85
-
86
- ```
87
- specs_content = maestro spec load --category planning
88
- ```
89
-
90
- Used in Step 2-4 to produce architecture-aware documentation.
91
-
92
- ---
93
-
94
- ### Step 3: Scan Project Structure — Features
95
-
96
- ```
97
- Group components by domain/functional area:
98
-
99
- a. Heuristics for grouping:
100
- - Directory proximity (components in same directory = likely same feature)
101
- - Naming patterns (auth.service + auth.controller + auth.model = "Authentication")
102
- - Import relationships (files that import each other = related)
103
- - task-specs/ requirements mapping (if available)
104
-
105
- b. For each identified feature group:
106
- - Determine feature name from common prefix or directory name
107
- - Collect component IDs
108
- - Map to requirements if task-specs/ REQ-* files exist
109
- - Determine phase association from roadmap.md if available
110
- - Build feature entry:
111
- {
112
- "id": "FT-{NNN}",
113
- "name": "{Feature Name}",
114
- "status": "active",
115
- "requirement_ids": [], // From task-specs mapping
116
- "component_ids": ["TC-001", "TC-002"],
117
- "phase": null // From roadmap mapping
118
- }
119
-
120
- c. Back-fill component.feature_ids with the feature IDs
121
- ```
122
-
123
- ### Step 4: Map Requirements (if task-specs exist)
124
-
125
- ```
126
- If .workflow/task-specs/ directories exist:
127
- For each SPEC-*/requirements/REQ-*.md:
128
- - Parse requirement metadata (title, priority, acceptance_criteria)
129
- - Match to features by keyword/domain analysis
130
- - Build requirement entry:
131
- {
132
- "id": "REQ-{NNN}",
133
- "title": "{requirement title}",
134
- "priority": "must|should|could|wont",
135
- "feature_id": "FT-{NNN}",
136
- "status": "pending|in_progress|completed",
137
- "acceptance_criteria": ["{criteria}"]
138
- }
139
-
140
- If no task-specs exist:
141
- requirements = [] (empty, populated later by spec-generate)
142
- ```
143
-
144
- ### Step 5: Record Architecture Decisions (if ADRs exist)
145
-
146
- ```
147
- If .workflow/task-specs/*/architecture/ADR-*.md exist:
148
- For each ADR file:
149
- - Parse ADR metadata (title, decision, rationale)
150
- - Map to components by keyword analysis
151
- - Build ADR entry:
152
- {
153
- "id": "ADR-{NNN}",
154
- "title": "{ADR title}",
155
- "component_ids": ["TC-{NNN}"],
156
- "decision": "{decision summary}",
157
- "rationale": "{rationale summary}"
158
- }
159
-
160
- If no ADRs exist:
161
- architecture_decisions = []
162
- ```
163
-
164
- ### Step 6: Write doc-index.json
165
-
166
- ```
167
- Assemble the complete doc-index.json:
168
-
169
- {
170
- "version": "1.0",
171
- "schema_version": "1.0",
172
- "project": "{project name from state.json or package.json}",
173
- "last_updated": "{ISO timestamp}",
174
- "features": [{feature entries}],
175
- "components": [{component entries}],
176
- "requirements": [{requirement entries}],
177
- "architecture_decisions": [{ADR entries}],
178
- "actions": []
179
- }
180
-
181
- Write to: .workflow/codebase/doc-index.json
182
- ```
183
-
184
- ### Step 7: Generate Tech Registry Docs
185
-
186
- ```
187
- For each component in doc-index.json:
188
- Compute slug: lowercase(name), replace spaces with hyphens
189
-
190
- Write .workflow/codebase/tech-registry/{slug}.md:
191
-
192
- # {component.name}
193
-
194
- | Field | Value |
195
- |-------|-------|
196
- | **ID** | {id} |
197
- | **Type** | {type} |
198
- | **Features** | {feature_ids joined with ", "} |
199
-
200
- ## Code Locations
201
- {bullet list of code_locations}
202
-
203
- ## Exported Symbols
204
- {bullet list of symbols}
205
-
206
- ## Dependencies
207
- {extracted from import statements in code_locations}
208
-
209
- ---
210
- *Auto-generated by codebase-rebuild at {timestamp}*
211
-
212
- Write .workflow/codebase/tech-registry/_index.md:
213
- # Tech Registry
214
-
215
- | ID | Name | Type | Locations |
216
- |----|------|------|-----------|
217
- {table row per component}
218
-
219
- ---
220
- *{count} components registered*
221
- ```
222
-
223
- ### Step 8: Generate Feature Map Docs
224
-
225
- ```
226
- For each feature in doc-index.json:
227
- Compute slug: lowercase(name), replace spaces with hyphens
228
-
229
- Write .workflow/codebase/feature-maps/{slug}.md:
230
-
231
- # {feature.name}
232
-
233
- | Field | Value |
234
- |-------|-------|
235
- | **ID** | {id} |
236
- | **Status** | {status} |
237
- | **Phase** | {phase or "unassigned"} |
238
-
239
- ## Requirements
240
- {bullet list of requirement_ids with titles}
241
-
242
- ## Components
243
- | ID | Name | Type |
244
- |----|------|------|
245
- {table row per component in component_ids}
246
-
247
- ---
248
- *Auto-generated by codebase-rebuild at {timestamp}*
249
-
250
- Write .workflow/codebase/feature-maps/_index.md:
251
- # Feature Maps
252
-
253
- | ID | Name | Status | Components | Requirements |
254
- |----|------|--------|------------|--------------|
255
- {table row per feature}
256
-
257
- ---
258
- *{count} features mapped*
259
- ```
260
-
261
- ### Step 8.5: Update State and Project Artifacts
262
-
263
- ```
264
- a. Update state.json:
265
- Read .workflow/state.json
266
- Set last_codebase_rebuild: "{ISO timestamp}"
267
- Set last_updated: "{ISO timestamp}"
268
- Write updated state.json
269
-
270
- b. Update project-tech.json (if exists):
271
- Read .workflow/project-tech.json
272
- Compare detected tech stack (from Step 2 scan) against existing entries:
273
- - New languages, frameworks, databases, tools discovered
274
- - Version changes detected (from package.json, go.mod, pyproject.toml, etc.)
275
- If differences found:
276
- Update project-tech.json with current detected stack
277
- Display: "project-tech.json: updated with {count} changes"
278
-
279
- c. Update project.md Tech Stack (if exists):
280
- Read .workflow/project.md
281
- Compare "## Tech Stack" section against detected stack from Step 2
282
- If new entries or changes detected:
283
- Update the Tech Stack section with current values
284
- Update the "Last updated" footer timestamp
285
- Write updated project.md
286
- Display: "project.md: Tech Stack section refreshed"
287
- ```
288
-
289
- ### Step 9: Report and Commit
290
-
291
- ```
292
- Display summary:
293
- Codebase rebuild complete:
294
- Components: {count}
295
- Features: {count}
296
- Requirements: {count}
297
- ADRs: {count}
298
- Files generated: {count}
299
-
300
- If any mapper agents failed: log W001 with the failed mapper name.
301
-
302
- If not --skip-commit:
303
- Suggest committing the generated docs
304
-
305
- Suggest next:
306
- - Skill({ skill: "manage-status" }) to review
307
- - Skill({ skill: "manage-codebase-refresh" }) for future incremental updates
308
- ```
309
-
310
- ---
311
-
312
- ## Error Handling
313
-
314
- | Error | Action |
315
- |-------|--------|
316
- | No source directories found | Warn and create empty doc-index.json |
317
- | .workflow/ missing | Fail: "Run /workflow:init first" |
318
- | File read errors | Log warning, skip file, continue scan |
319
- | Existing codebase/ without --force | Prompt user for confirmation |
320
-
321
- ## Output Files
322
-
323
- | File | Description |
324
- |------|-------------|
325
- | `.workflow/codebase/doc-index.json` | Single source of truth for all components/features/requirements |
326
- | `.workflow/codebase/tech-registry/_index.md` | Component index |
327
- | `.workflow/codebase/tech-registry/{slug}.md` | Per-component documentation |
328
- | `.workflow/codebase/feature-maps/_index.md` | Feature index |
329
- | `.workflow/codebase/feature-maps/{slug}.md` | Per-feature documentation |
330
- | `.workflow/state.json` | Updated: last_codebase_rebuild timestamp |
331
- | `.workflow/project-tech.json` | Updated: detected tech stack changes |
332
- | `.workflow/project.md` | Updated: Tech Stack section refreshed |
1
+ # Workflow: codebase-rebuild
2
+
3
+ Full rebuild of the `.workflow/codebase/` documentation system.
4
+
5
+ ## Trigger
6
+
7
+ - Manual via `/workflow:codebase-rebuild [--force] [--skip-commit]`
8
+ - Auto-triggered by `/workflow:init` when existing code is detected
9
+ - Auto-triggered by `/workflow:map`
10
+
11
+ ## Arguments
12
+
13
+ | Arg | Description | Default |
14
+ |-----|-------------|---------|
15
+ | `--force` | Clear existing codebase/ and rebuild from scratch | `false` |
16
+ | `--skip-commit` | Skip the final git commit of generated docs | `false` |
17
+
18
+ ## Prerequisites
19
+
20
+ - Project source code exists (src/ or equivalent)
21
+ - `.workflow/` directory exists
22
+
23
+ ---
24
+
25
+ ## Workflow Steps
26
+
27
+ ### Step 1: Prepare Directory Structure
28
+
29
+ ```
30
+ Create (or clear if --force) the codebase directory:
31
+
32
+ .workflow/codebase/
33
+ doc-index.json
34
+ tech-registry/
35
+ _index.md
36
+ feature-maps/
37
+ _index.md
38
+ action-logs/
39
+
40
+ If directories exist and --force not set:
41
+ AskUserQuestion: "Codebase docs already exist. Rebuild will overwrite. Continue? [y/N]"
42
+ If no: exit
43
+ ```
44
+
45
+ ### Step 2: Scan Project Structure — Components
46
+
47
+ ```
48
+ Scan src/ (and other source directories) for components:
49
+
50
+ a. Identify source directories:
51
+ - Check for: src/, lib/, app/, packages/
52
+ - Use project-tech.json source_dirs if available
53
+
54
+ b. For each source directory, scan for component-forming files:
55
+ - Directories that represent modules (contain index.ts/index.js or multiple files)
56
+ - Key file patterns:
57
+ - Models: *model*, *entity*, *schema* files
58
+ - Services: *service*, *provider* files
59
+ - Controllers: *controller*, *handler*, *route* files
60
+ - Utils: *util*, *helper*, *common* files
61
+ - Types: *type*, *interface*, *.d.ts files
62
+ - Config: *config*, *constant* files
63
+ - Middleware: *middleware*, *guard*, *interceptor* files
64
+ - Core: *core*, *registry*, *loader* files
65
+
66
+ c. For each identified component:
67
+ - Read the file(s)
68
+ - Extract exported symbols (classes, functions, interfaces, types, constants)
69
+ - Determine component type (model, service, controller, util, config, middleware, core)
70
+ - Build component entry:
71
+ {
72
+ "id": "TC-{NNN}", // Sequential, zero-padded 3 digits
73
+ "name": "{PascalCase name}",
74
+ "type": "{type}",
75
+ "code_locations": ["{relative paths}"],
76
+ "feature_ids": [], // Populated in Step 3
77
+ "symbols": ["{exported symbol names}"],
78
+ "last_updated": "{ISO timestamp}"
79
+ }
80
+
81
+ d. ID assignment: TC-001, TC-002, ... in discovery order
82
+ ```
83
+
84
+ ### Step 2.5: Load Project Specs
85
+
86
+ ```
87
+ specs_content = maestro spec load --category arch
88
+ ```
89
+
90
+ Used in Step 2-4 to produce architecture-aware documentation.
91
+
92
+ ---
93
+
94
+ ### Step 3: Scan Project Structure — Features
95
+
96
+ ```
97
+ Group components by domain/functional area:
98
+
99
+ a. Heuristics for grouping:
100
+ - Directory proximity (components in same directory = likely same feature)
101
+ - Naming patterns (auth.service + auth.controller + auth.model = "Authentication")
102
+ - Import relationships (files that import each other = related)
103
+ - task-specs/ requirements mapping (if available)
104
+
105
+ b. For each identified feature group:
106
+ - Determine feature name from common prefix or directory name
107
+ - Collect component IDs
108
+ - Map to requirements if task-specs/ REQ-* files exist
109
+ - Determine phase association from roadmap.md if available
110
+ - Build feature entry:
111
+ {
112
+ "id": "FT-{NNN}",
113
+ "name": "{Feature Name}",
114
+ "status": "active",
115
+ "requirement_ids": [], // From task-specs mapping
116
+ "component_ids": ["TC-001", "TC-002"],
117
+ "phase": null // From roadmap mapping
118
+ }
119
+
120
+ c. Back-fill component.feature_ids with the feature IDs
121
+ ```
122
+
123
+ ### Step 4: Map Requirements (if task-specs exist)
124
+
125
+ ```
126
+ If .workflow/task-specs/ directories exist:
127
+ For each SPEC-*/requirements/REQ-*.md:
128
+ - Parse requirement metadata (title, priority, acceptance_criteria)
129
+ - Match to features by keyword/domain analysis
130
+ - Build requirement entry:
131
+ {
132
+ "id": "REQ-{NNN}",
133
+ "title": "{requirement title}",
134
+ "priority": "must|should|could|wont",
135
+ "feature_id": "FT-{NNN}",
136
+ "status": "pending|in_progress|completed",
137
+ "acceptance_criteria": ["{criteria}"]
138
+ }
139
+
140
+ If no task-specs exist:
141
+ requirements = [] (empty, populated later by spec-generate)
142
+ ```
143
+
144
+ ### Step 5: Record Architecture Decisions (if ADRs exist)
145
+
146
+ ```
147
+ If .workflow/task-specs/*/architecture/ADR-*.md exist:
148
+ For each ADR file:
149
+ - Parse ADR metadata (title, decision, rationale)
150
+ - Map to components by keyword analysis
151
+ - Build ADR entry:
152
+ {
153
+ "id": "ADR-{NNN}",
154
+ "title": "{ADR title}",
155
+ "component_ids": ["TC-{NNN}"],
156
+ "decision": "{decision summary}",
157
+ "rationale": "{rationale summary}"
158
+ }
159
+
160
+ If no ADRs exist:
161
+ architecture_decisions = []
162
+ ```
163
+
164
+ ### Step 6: Write doc-index.json
165
+
166
+ ```
167
+ Assemble the complete doc-index.json:
168
+
169
+ {
170
+ "version": "1.0",
171
+ "schema_version": "1.0",
172
+ "project": "{project name from state.json or package.json}",
173
+ "last_updated": "{ISO timestamp}",
174
+ "features": [{feature entries}],
175
+ "components": [{component entries}],
176
+ "requirements": [{requirement entries}],
177
+ "architecture_decisions": [{ADR entries}],
178
+ "actions": []
179
+ }
180
+
181
+ Write to: .workflow/codebase/doc-index.json
182
+ ```
183
+
184
+ ### Step 7: Generate Tech Registry Docs
185
+
186
+ ```
187
+ For each component in doc-index.json:
188
+ Compute slug: lowercase(name), replace spaces with hyphens
189
+
190
+ Write .workflow/codebase/tech-registry/{slug}.md:
191
+
192
+ # {component.name}
193
+
194
+ | Field | Value |
195
+ |-------|-------|
196
+ | **ID** | {id} |
197
+ | **Type** | {type} |
198
+ | **Features** | {feature_ids joined with ", "} |
199
+
200
+ ## Code Locations
201
+ {bullet list of code_locations}
202
+
203
+ ## Exported Symbols
204
+ {bullet list of symbols}
205
+
206
+ ## Dependencies
207
+ {extracted from import statements in code_locations}
208
+
209
+ ---
210
+ *Auto-generated by codebase-rebuild at {timestamp}*
211
+
212
+ Write .workflow/codebase/tech-registry/_index.md:
213
+ # Tech Registry
214
+
215
+ | ID | Name | Type | Locations |
216
+ |----|------|------|-----------|
217
+ {table row per component}
218
+
219
+ ---
220
+ *{count} components registered*
221
+ ```
222
+
223
+ ### Step 8: Generate Feature Map Docs
224
+
225
+ ```
226
+ For each feature in doc-index.json:
227
+ Compute slug: lowercase(name), replace spaces with hyphens
228
+
229
+ Write .workflow/codebase/feature-maps/{slug}.md:
230
+
231
+ # {feature.name}
232
+
233
+ | Field | Value |
234
+ |-------|-------|
235
+ | **ID** | {id} |
236
+ | **Status** | {status} |
237
+ | **Phase** | {phase or "unassigned"} |
238
+
239
+ ## Requirements
240
+ {bullet list of requirement_ids with titles}
241
+
242
+ ## Components
243
+ | ID | Name | Type |
244
+ |----|------|------|
245
+ {table row per component in component_ids}
246
+
247
+ ---
248
+ *Auto-generated by codebase-rebuild at {timestamp}*
249
+
250
+ Write .workflow/codebase/feature-maps/_index.md:
251
+ # Feature Maps
252
+
253
+ | ID | Name | Status | Components | Requirements |
254
+ |----|------|--------|------------|--------------|
255
+ {table row per feature}
256
+
257
+ ---
258
+ *{count} features mapped*
259
+ ```
260
+
261
+ ### Step 8.5: Update State and Project Artifacts
262
+
263
+ ```
264
+ a. Update state.json:
265
+ Read .workflow/state.json
266
+ Set last_codebase_rebuild: "{ISO timestamp}"
267
+ Set last_updated: "{ISO timestamp}"
268
+ Write updated state.json
269
+
270
+ b. Update project-tech.json (if exists):
271
+ Read .workflow/project-tech.json
272
+ Compare detected tech stack (from Step 2 scan) against existing entries:
273
+ - New languages, frameworks, databases, tools discovered
274
+ - Version changes detected (from package.json, go.mod, pyproject.toml, etc.)
275
+ If differences found:
276
+ Update project-tech.json with current detected stack
277
+ Display: "project-tech.json: updated with {count} changes"
278
+
279
+ c. Update project.md Tech Stack (if exists):
280
+ Read .workflow/project.md
281
+ Compare "## Tech Stack" section against detected stack from Step 2
282
+ If new entries or changes detected:
283
+ Update the Tech Stack section with current values
284
+ Update the "Last updated" footer timestamp
285
+ Write updated project.md
286
+ Display: "project.md: Tech Stack section refreshed"
287
+ ```
288
+
289
+ ### Step 9: Report and Commit
290
+
291
+ ```
292
+ Display summary:
293
+ Codebase rebuild complete:
294
+ Components: {count}
295
+ Features: {count}
296
+ Requirements: {count}
297
+ ADRs: {count}
298
+ Files generated: {count}
299
+
300
+ If any mapper agents failed: log W001 with the failed mapper name.
301
+
302
+ If not --skip-commit:
303
+ Suggest committing the generated docs
304
+
305
+ Suggest next:
306
+ - Skill({ skill: "manage-status" }) to review
307
+ - Skill({ skill: "manage-codebase-refresh" }) for future incremental updates
308
+ ```
309
+
310
+ ---
311
+
312
+ ## Error Handling
313
+
314
+ | Error | Action |
315
+ |-------|--------|
316
+ | No source directories found | Warn and create empty doc-index.json |
317
+ | .workflow/ missing | Fail: "Run /workflow:init first" |
318
+ | File read errors | Log warning, skip file, continue scan |
319
+ | Existing codebase/ without --force | Prompt user for confirmation |
320
+
321
+ ## Output Files
322
+
323
+ | File | Description |
324
+ |------|-------------|
325
+ | `.workflow/codebase/doc-index.json` | Single source of truth for all components/features/requirements |
326
+ | `.workflow/codebase/tech-registry/_index.md` | Component index |
327
+ | `.workflow/codebase/tech-registry/{slug}.md` | Per-component documentation |
328
+ | `.workflow/codebase/feature-maps/_index.md` | Feature index |
329
+ | `.workflow/codebase/feature-maps/{slug}.md` | Per-feature documentation |
330
+ | `.workflow/state.json` | Updated: last_codebase_rebuild timestamp |
331
+ | `.workflow/project-tech.json` | Updated: detected tech stack changes |
332
+ | `.workflow/project.md` | Updated: Tech Stack section refreshed |