maestro-flow 0.3.10 → 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 (184) 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-coordinate.md +1 -3
  9. package/.claude/commands/manage-harvest.md +131 -131
  10. package/.claude/commands/manage-issue.md +2 -2
  11. package/.claude/commands/spec-add.md +67 -56
  12. package/.claude/commands/spec-load.md +66 -64
  13. package/.claude/commands/spec-setup.md +5 -9
  14. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  15. package/.codex/skills/learn-follow/SKILL.md +83 -0
  16. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  17. package/.codex/skills/learn-retro/SKILL.md +83 -0
  18. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  19. package/.codex/skills/maestro/SKILL.md +151 -279
  20. package/.codex/skills/maestro-analyze/SKILL.md +59 -71
  21. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  22. package/.codex/skills/maestro-chain/SKILL.md +95 -110
  23. package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
  24. package/.codex/skills/maestro-execute/SKILL.md +435 -446
  25. package/.codex/skills/maestro-fork/SKILL.md +68 -0
  26. package/.codex/skills/maestro-init/SKILL.md +171 -167
  27. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  28. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  29. package/.codex/skills/maestro-merge/SKILL.md +62 -0
  30. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  31. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  32. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  33. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  34. package/.codex/skills/maestro-plan/SKILL.md +58 -69
  35. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  36. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  37. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  38. package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
  39. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  40. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  41. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  42. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  43. package/.codex/skills/manage-issue/SKILL.md +80 -65
  44. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  45. package/.codex/skills/manage-learn/SKILL.md +190 -186
  46. package/.codex/skills/manage-memory/SKILL.md +95 -72
  47. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  48. package/.codex/skills/manage-status/SKILL.md +102 -89
  49. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  50. package/.codex/skills/quality-debug/SKILL.md +54 -66
  51. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  52. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  53. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  54. package/.codex/skills/quality-review/SKILL.md +93 -105
  55. package/.codex/skills/quality-sync/SKILL.md +101 -89
  56. package/.codex/skills/quality-test/SKILL.md +202 -198
  57. package/.codex/skills/quality-test-gen/SKILL.md +93 -104
  58. package/.codex/skills/spec-add/SKILL.md +58 -39
  59. package/.codex/skills/spec-load/SKILL.md +45 -40
  60. package/.codex/skills/spec-map/SKILL.md +180 -182
  61. package/.codex/skills/spec-setup/SKILL.md +94 -76
  62. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  63. package/.codex/skills/team-executor/SKILL.md +70 -112
  64. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  65. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  66. package/.codex/skills/team-review/SKILL.md +232 -225
  67. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  68. package/.codex/skills/team-testing/SKILL.md +242 -235
  69. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  70. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  71. package/README.md +7 -4
  72. package/README.zh-CN.md +7 -4
  73. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  74. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  75. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  76. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  77. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  78. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  79. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  80. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  81. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
  82. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  83. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  84. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  85. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  86. package/dashboard/dist-server/src/hooks/constants.d.ts +2 -0
  87. package/dashboard/dist-server/src/hooks/constants.js +2 -0
  88. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  89. package/dist/src/commands/collab.js +4 -4
  90. package/dist/src/commands/collab.js.map +1 -1
  91. package/dist/src/commands/hooks.d.ts.map +1 -1
  92. package/dist/src/commands/hooks.js +66 -1
  93. package/dist/src/commands/hooks.js.map +1 -1
  94. package/dist/src/commands/spec.d.ts.map +1 -1
  95. package/dist/src/commands/spec.js +7 -2
  96. package/dist/src/commands/spec.js.map +1 -1
  97. package/dist/src/hooks/constants.d.ts +2 -0
  98. package/dist/src/hooks/constants.d.ts.map +1 -1
  99. package/dist/src/hooks/constants.js +2 -0
  100. package/dist/src/hooks/constants.js.map +1 -1
  101. package/dist/src/hooks/guards/index.d.ts +1 -0
  102. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  103. package/dist/src/hooks/guards/index.js +1 -0
  104. package/dist/src/hooks/guards/index.js.map +1 -1
  105. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  106. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  107. package/dist/src/hooks/guards/spec-validator.js +66 -0
  108. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  109. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  110. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  111. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  112. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  113. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  114. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  115. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  116. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  117. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  118. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  119. package/dist/src/hooks/spec-bridge.js +97 -0
  120. package/dist/src/hooks/spec-bridge.js.map +1 -0
  121. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  122. package/dist/src/hooks/spec-injector.js +18 -12
  123. package/dist/src/hooks/spec-injector.js.map +1 -1
  124. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  125. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  126. package/dist/src/team/phase-orchestrator.js +165 -0
  127. package/dist/src/team/phase-orchestrator.js.map +1 -0
  128. package/dist/src/team/phase-types.d.ts +51 -0
  129. package/dist/src/team/phase-types.d.ts.map +1 -0
  130. package/dist/src/team/phase-types.js +41 -0
  131. package/dist/src/team/phase-types.js.map +1 -0
  132. package/dist/src/tools/index.d.ts.map +1 -1
  133. package/dist/src/tools/index.js +6 -0
  134. package/dist/src/tools/index.js.map +1 -1
  135. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  136. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  137. package/dist/src/tools/spec-entry-parser.js +196 -0
  138. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  139. package/dist/src/tools/spec-init.d.ts.map +1 -1
  140. package/dist/src/tools/spec-init.js +66 -92
  141. package/dist/src/tools/spec-init.js.map +1 -1
  142. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  143. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  144. package/dist/src/tools/spec-keyword-index.js +101 -0
  145. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  146. package/dist/src/tools/spec-loader.d.ts +3 -3
  147. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  148. package/dist/src/tools/spec-loader.js +49 -23
  149. package/dist/src/tools/spec-loader.js.map +1 -1
  150. package/dist/src/tools/team-agents.d.ts +27 -0
  151. package/dist/src/tools/team-agents.d.ts.map +1 -0
  152. package/dist/src/tools/team-agents.js +362 -0
  153. package/dist/src/tools/team-agents.js.map +1 -0
  154. package/dist/src/tools/team-mailbox.d.ts +40 -0
  155. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  156. package/dist/src/tools/team-mailbox.js +384 -0
  157. package/dist/src/tools/team-mailbox.js.map +1 -0
  158. package/dist/src/tools/team-msg.d.ts +17 -8
  159. package/dist/src/tools/team-msg.d.ts.map +1 -1
  160. package/dist/src/tools/team-msg.js +110 -13
  161. package/dist/src/tools/team-msg.js.map +1 -1
  162. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  163. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  164. package/dist/src/tools/team-tasks-mcp.js +408 -0
  165. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  166. package/package.json +2 -1
  167. package/workflows/analyze.md +816 -816
  168. package/workflows/brainstorm.md +471 -471
  169. package/workflows/codebase-rebuild.md +332 -332
  170. package/workflows/codebase-refresh.md +240 -240
  171. package/workflows/execute.md +1 -1
  172. package/workflows/harvest.md +420 -420
  173. package/workflows/integration-test.md +343 -343
  174. package/workflows/issue-discover.md +414 -414
  175. package/workflows/map.md +111 -111
  176. package/workflows/milestone-complete.md +176 -176
  177. package/workflows/plan.md +1 -1
  178. package/workflows/quick.md +497 -497
  179. package/workflows/refactor.md +300 -300
  180. package/workflows/roadmap.md +335 -335
  181. package/workflows/spec-generate.md +640 -640
  182. package/workflows/specs-add.md +46 -81
  183. package/workflows/specs-load.md +15 -17
  184. package/workflows/specs-setup.md +40 -161
@@ -1,240 +1,240 @@
1
- # Workflow: codebase-refresh
2
-
3
- Incremental refresh of `.workflow/codebase/` documentation based on changes since the last rebuild or refresh.
4
-
5
- Detects which files have changed (via git diff), identifies which codebase docs are affected, selectively re-scans only those areas, and updates timestamps. Much faster than a full rebuild for ongoing maintenance.
6
-
7
- ## Trigger
8
-
9
- - Manual via `/workflow:codebase-refresh [--since <date>] [--deep]`
10
-
11
- ## Arguments
12
-
13
- | Arg | Description | Required |
14
- |-----|-------------|----------|
15
- | `--since <date>` | Override change detection window (ISO date or relative like "3d") | No |
16
- | `--deep` | Force deeper re-scan even for files with minor changes | No |
17
-
18
- ## Prerequisites
19
-
20
- - `.workflow/` directory exists and is initialized
21
- - `.workflow/codebase/` must contain existing docs (from prior rebuild)
22
- - `.workflow/codebase/doc-index.json` must exist (run `/workflow:codebase rebuild` first)
23
-
24
- ---
25
-
26
- ## Workflow Steps
27
-
28
- ### Step 1: Parse Input and Validate
29
-
30
- ```
31
- Parse $ARGUMENTS for --since and --deep flags.
32
-
33
- Verify .workflow/ directory exists and is initialized (project.md, state.json present).
34
- If not initialized: abort with E001.
35
-
36
- Verify .workflow/codebase/doc-index.json exists.
37
- If not: abort with E002 (suggest using codebase-rebuild instead).
38
- ```
39
-
40
- ### Step 2: Detect Changes
41
-
42
- ```
43
- Determine the change detection window:
44
- If --since provided: use that date/ref
45
- Otherwise: use codebase_last_rebuilt or codebase_last_refreshed from state.json
46
-
47
- Run git diff --name-only since the determined date to get list of changed files.
48
-
49
- If no changes detected: emit W001 and exit gracefully ("No changes detected since last refresh").
50
- ```
51
-
52
- ### Step 3: Identify Affected Documentation
53
-
54
- ```
55
- Read .workflow/codebase/doc-index.json to map changed files to documentation entries.
56
-
57
- For each changed file, identify which doc-index entries reference it:
58
- - Which tech-registry components are affected (via code_locations matching)
59
- - Which feature-map entries need updating (via component -> feature chain)
60
- - Which requirements or ADRs reference changed code
61
-
62
- Build a list of affected documentation sections:
63
- affected_components = [component entries whose code_locations include changed files]
64
- affected_features = [features whose component_ids include affected components]
65
- ```
66
-
67
- ### Step 3.5: Load Project Specs
68
-
69
- ```
70
- specs_content = maestro spec load --category planning
71
- ```
72
-
73
- Used in Step 4-5 to validate refreshed docs against architectural expectations.
74
-
75
- ---
76
-
77
- ### Step 4: Re-scan Affected Components
78
-
79
- ```
80
- For each component in affected_components:
81
- For each file_path in component.code_locations:
82
- a. Check if file still exists
83
- If not: mark for removal from code_locations, log warning
84
-
85
- b. Read file content
86
- Extract exported symbols:
87
- - export class {Name}
88
- - export function {name}
89
- - export interface {Name}
90
- - export type {Name}
91
- - export const {NAME}
92
- - export default {name/class}
93
- - module.exports patterns (for CJS)
94
-
95
- c. Update component entry:
96
- - symbols = [newly extracted symbols]
97
- - last_updated = current ISO timestamp
98
-
99
- If --deep is set, also re-scan files that import/require the changed files
100
- (follow reverse dependency chain to find additional affected components).
101
-
102
- Check for new files that should belong to this component:
103
- - Scan same directory as existing code_locations
104
- - If new files match the component's naming pattern:
105
- Log: "Potential new file for {component.id}: {file}"
106
- (Do not auto-add; report for manual review)
107
- ```
108
-
109
- ### Step 5: Check Relationship Changes
110
-
111
- ```
112
- For each refreshed component:
113
- Read import statements from code_locations files
114
- Identify imported modules that map to other components
115
-
116
- Compare with current feature_ids:
117
- If a component imports from a different feature's components:
118
- Log: "Cross-feature dependency detected: {component.id} -> {other_component.id}"
119
-
120
- For each refreshed feature:
121
- Verify all component_ids still exist in components[]
122
- Remove any stale component_ids
123
- Check if new components should be added (by directory proximity)
124
- ```
125
-
126
- ### Step 6: Update Doc Index
127
-
128
- ```
129
- Write updated entries back to doc-index.json:
130
- - Updated component entries (symbols, code_locations, last_updated)
131
- - Updated feature entries (component_ids, last_updated)
132
- - Update top-level last_updated timestamp
133
- - Update global last_refreshed timestamp
134
-
135
- Write: .workflow/codebase/doc-index.json
136
- ```
137
-
138
- ### Step 7: Regenerate Affected Docs
139
-
140
- ```
141
- For each refreshed component:
142
- Compute slug from component.name
143
- Regenerate: .workflow/codebase/tech-registry/{slug}.md
144
-
145
- # {component.name}
146
-
147
- | Field | Value |
148
- |-------|-------|
149
- | **ID** | {id} |
150
- | **Type** | {type} |
151
- | **Features** | {feature_ids joined} |
152
-
153
- ## Code Locations
154
- {bullet list of code_locations}
155
-
156
- ## Exported Symbols
157
- {bullet list of symbols}
158
-
159
- ---
160
- *Refreshed at {timestamp}*
161
-
162
- For each refreshed feature:
163
- Compute slug from feature.name
164
- Regenerate: .workflow/codebase/feature-maps/{slug}.md
165
-
166
- # {feature.name}
167
-
168
- | Field | Value |
169
- |-------|-------|
170
- | **ID** | {id} |
171
- | **Status** | {status} |
172
- | **Phase** | {phase or "unassigned"} |
173
-
174
- ## Components
175
- | ID | Name | Type |
176
- |----|------|------|
177
- {table row per component}
178
-
179
- ## Requirements
180
- {bullet list of requirement_ids with titles}
181
-
182
- ---
183
- *Refreshed at {timestamp}*
184
-
185
- Update _index.md files if any entries changed:
186
- Regenerate tech-registry/_index.md
187
- Regenerate feature-maps/_index.md
188
- ```
189
-
190
- ### Step 8: Update Timestamps
191
-
192
- ```
193
- Update .workflow/state.json:
194
- - Set codebase_last_refreshed timestamp
195
- - Update last_updated timestamp
196
- ```
197
-
198
- ### Step 9: Report
199
-
200
- ```
201
- Display summary:
202
- Refresh complete:
203
- Changed files detected: {count}
204
- Components refreshed: {count} ({IDs})
205
- Features refreshed: {count} ({IDs})
206
- Symbols updated: {count new} added, {count removed} removed
207
- Files updated in .workflow/codebase/: {list}
208
- Warnings: {any warnings from Steps 4-5}
209
- If W001: "No changes detected since last refresh"
210
-
211
- Suggest next: Skill({ skill: "manage-status" }) to review
212
- ```
213
-
214
- ---
215
-
216
- ## Error Handling
217
-
218
- | Code | Meaning |
219
- |------|---------|
220
- | E001 | .workflow/ not initialized |
221
- | E002 | No codebase/ docs exist, use codebase-rebuild instead |
222
- | W001 | No changes detected since last refresh |
223
-
224
- | Error | Action |
225
- |-------|--------|
226
- | doc-index.json missing | Fail with E002: "Run /workflow:codebase rebuild first" |
227
- | .workflow/ missing | Fail with E001 |
228
- | Code location file missing | Remove from code_locations, log warning |
229
- | No changes detected | Emit W001, exit gracefully |
230
-
231
- ## Output Files
232
-
233
- | File | Action |
234
- |------|--------|
235
- | `.workflow/codebase/doc-index.json` | Updated (affected entries + timestamps) |
236
- | `.workflow/codebase/tech-registry/{slug}.md` | Regenerated for refreshed components |
237
- | `.workflow/codebase/feature-maps/{slug}.md` | Regenerated for refreshed features |
238
- | `.workflow/codebase/tech-registry/_index.md` | Updated if entries changed |
239
- | `.workflow/codebase/feature-maps/_index.md` | Updated if entries changed |
240
- | `.workflow/state.json` | Updated with codebase_last_refreshed timestamp |
1
+ # Workflow: codebase-refresh
2
+
3
+ Incremental refresh of `.workflow/codebase/` documentation based on changes since the last rebuild or refresh.
4
+
5
+ Detects which files have changed (via git diff), identifies which codebase docs are affected, selectively re-scans only those areas, and updates timestamps. Much faster than a full rebuild for ongoing maintenance.
6
+
7
+ ## Trigger
8
+
9
+ - Manual via `/workflow:codebase-refresh [--since <date>] [--deep]`
10
+
11
+ ## Arguments
12
+
13
+ | Arg | Description | Required |
14
+ |-----|-------------|----------|
15
+ | `--since <date>` | Override change detection window (ISO date or relative like "3d") | No |
16
+ | `--deep` | Force deeper re-scan even for files with minor changes | No |
17
+
18
+ ## Prerequisites
19
+
20
+ - `.workflow/` directory exists and is initialized
21
+ - `.workflow/codebase/` must contain existing docs (from prior rebuild)
22
+ - `.workflow/codebase/doc-index.json` must exist (run `/workflow:codebase rebuild` first)
23
+
24
+ ---
25
+
26
+ ## Workflow Steps
27
+
28
+ ### Step 1: Parse Input and Validate
29
+
30
+ ```
31
+ Parse $ARGUMENTS for --since and --deep flags.
32
+
33
+ Verify .workflow/ directory exists and is initialized (project.md, state.json present).
34
+ If not initialized: abort with E001.
35
+
36
+ Verify .workflow/codebase/doc-index.json exists.
37
+ If not: abort with E002 (suggest using codebase-rebuild instead).
38
+ ```
39
+
40
+ ### Step 2: Detect Changes
41
+
42
+ ```
43
+ Determine the change detection window:
44
+ If --since provided: use that date/ref
45
+ Otherwise: use codebase_last_rebuilt or codebase_last_refreshed from state.json
46
+
47
+ Run git diff --name-only since the determined date to get list of changed files.
48
+
49
+ If no changes detected: emit W001 and exit gracefully ("No changes detected since last refresh").
50
+ ```
51
+
52
+ ### Step 3: Identify Affected Documentation
53
+
54
+ ```
55
+ Read .workflow/codebase/doc-index.json to map changed files to documentation entries.
56
+
57
+ For each changed file, identify which doc-index entries reference it:
58
+ - Which tech-registry components are affected (via code_locations matching)
59
+ - Which feature-map entries need updating (via component -> feature chain)
60
+ - Which requirements or ADRs reference changed code
61
+
62
+ Build a list of affected documentation sections:
63
+ affected_components = [component entries whose code_locations include changed files]
64
+ affected_features = [features whose component_ids include affected components]
65
+ ```
66
+
67
+ ### Step 3.5: Load Project Specs
68
+
69
+ ```
70
+ specs_content = maestro spec load --category arch
71
+ ```
72
+
73
+ Used in Step 4-5 to validate refreshed docs against architectural expectations.
74
+
75
+ ---
76
+
77
+ ### Step 4: Re-scan Affected Components
78
+
79
+ ```
80
+ For each component in affected_components:
81
+ For each file_path in component.code_locations:
82
+ a. Check if file still exists
83
+ If not: mark for removal from code_locations, log warning
84
+
85
+ b. Read file content
86
+ Extract exported symbols:
87
+ - export class {Name}
88
+ - export function {name}
89
+ - export interface {Name}
90
+ - export type {Name}
91
+ - export const {NAME}
92
+ - export default {name/class}
93
+ - module.exports patterns (for CJS)
94
+
95
+ c. Update component entry:
96
+ - symbols = [newly extracted symbols]
97
+ - last_updated = current ISO timestamp
98
+
99
+ If --deep is set, also re-scan files that import/require the changed files
100
+ (follow reverse dependency chain to find additional affected components).
101
+
102
+ Check for new files that should belong to this component:
103
+ - Scan same directory as existing code_locations
104
+ - If new files match the component's naming pattern:
105
+ Log: "Potential new file for {component.id}: {file}"
106
+ (Do not auto-add; report for manual review)
107
+ ```
108
+
109
+ ### Step 5: Check Relationship Changes
110
+
111
+ ```
112
+ For each refreshed component:
113
+ Read import statements from code_locations files
114
+ Identify imported modules that map to other components
115
+
116
+ Compare with current feature_ids:
117
+ If a component imports from a different feature's components:
118
+ Log: "Cross-feature dependency detected: {component.id} -> {other_component.id}"
119
+
120
+ For each refreshed feature:
121
+ Verify all component_ids still exist in components[]
122
+ Remove any stale component_ids
123
+ Check if new components should be added (by directory proximity)
124
+ ```
125
+
126
+ ### Step 6: Update Doc Index
127
+
128
+ ```
129
+ Write updated entries back to doc-index.json:
130
+ - Updated component entries (symbols, code_locations, last_updated)
131
+ - Updated feature entries (component_ids, last_updated)
132
+ - Update top-level last_updated timestamp
133
+ - Update global last_refreshed timestamp
134
+
135
+ Write: .workflow/codebase/doc-index.json
136
+ ```
137
+
138
+ ### Step 7: Regenerate Affected Docs
139
+
140
+ ```
141
+ For each refreshed component:
142
+ Compute slug from component.name
143
+ Regenerate: .workflow/codebase/tech-registry/{slug}.md
144
+
145
+ # {component.name}
146
+
147
+ | Field | Value |
148
+ |-------|-------|
149
+ | **ID** | {id} |
150
+ | **Type** | {type} |
151
+ | **Features** | {feature_ids joined} |
152
+
153
+ ## Code Locations
154
+ {bullet list of code_locations}
155
+
156
+ ## Exported Symbols
157
+ {bullet list of symbols}
158
+
159
+ ---
160
+ *Refreshed at {timestamp}*
161
+
162
+ For each refreshed feature:
163
+ Compute slug from feature.name
164
+ Regenerate: .workflow/codebase/feature-maps/{slug}.md
165
+
166
+ # {feature.name}
167
+
168
+ | Field | Value |
169
+ |-------|-------|
170
+ | **ID** | {id} |
171
+ | **Status** | {status} |
172
+ | **Phase** | {phase or "unassigned"} |
173
+
174
+ ## Components
175
+ | ID | Name | Type |
176
+ |----|------|------|
177
+ {table row per component}
178
+
179
+ ## Requirements
180
+ {bullet list of requirement_ids with titles}
181
+
182
+ ---
183
+ *Refreshed at {timestamp}*
184
+
185
+ Update _index.md files if any entries changed:
186
+ Regenerate tech-registry/_index.md
187
+ Regenerate feature-maps/_index.md
188
+ ```
189
+
190
+ ### Step 8: Update Timestamps
191
+
192
+ ```
193
+ Update .workflow/state.json:
194
+ - Set codebase_last_refreshed timestamp
195
+ - Update last_updated timestamp
196
+ ```
197
+
198
+ ### Step 9: Report
199
+
200
+ ```
201
+ Display summary:
202
+ Refresh complete:
203
+ Changed files detected: {count}
204
+ Components refreshed: {count} ({IDs})
205
+ Features refreshed: {count} ({IDs})
206
+ Symbols updated: {count new} added, {count removed} removed
207
+ Files updated in .workflow/codebase/: {list}
208
+ Warnings: {any warnings from Steps 4-5}
209
+ If W001: "No changes detected since last refresh"
210
+
211
+ Suggest next: Skill({ skill: "manage-status" }) to review
212
+ ```
213
+
214
+ ---
215
+
216
+ ## Error Handling
217
+
218
+ | Code | Meaning |
219
+ |------|---------|
220
+ | E001 | .workflow/ not initialized |
221
+ | E002 | No codebase/ docs exist, use codebase-rebuild instead |
222
+ | W001 | No changes detected since last refresh |
223
+
224
+ | Error | Action |
225
+ |-------|--------|
226
+ | doc-index.json missing | Fail with E002: "Run /workflow:codebase rebuild first" |
227
+ | .workflow/ missing | Fail with E001 |
228
+ | Code location file missing | Remove from code_locations, log warning |
229
+ | No changes detected | Emit W001, exit gracefully |
230
+
231
+ ## Output Files
232
+
233
+ | File | Action |
234
+ |------|--------|
235
+ | `.workflow/codebase/doc-index.json` | Updated (affected entries + timestamps) |
236
+ | `.workflow/codebase/tech-registry/{slug}.md` | Regenerated for refreshed components |
237
+ | `.workflow/codebase/feature-maps/{slug}.md` | Regenerated for refreshed features |
238
+ | `.workflow/codebase/tech-registry/_index.md` | Updated if entries changed |
239
+ | `.workflow/codebase/feature-maps/_index.md` | Updated if entries changed |
240
+ | `.workflow/state.json` | Updated with codebase_last_refreshed timestamp |
@@ -132,7 +132,7 @@ For each wave in waves:
132
132
  ## E1.5: Load Project Specs
133
133
 
134
134
  ```
135
- specs_content = maestro spec load --category execution
135
+ specs_content = maestro spec load --category coding
136
136
  ```
137
137
 
138
138
  Pass specs_content to each executor agent in E2.