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
|
@@ -5,14 +5,49 @@ argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--level
|
|
|
5
5
|
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
When `--yes` or `-y`: Auto-confirm dimension selection, skip interactive validation, use defaults for level detection.
|
|
8
|
+
<purpose>
|
|
9
|
+
Wave-based multi-dimensional code review using `spawn_agents_on_csv`. Decomposes review into independent dimension agents (Wave 1), then aggregates findings into a unified report with verdict (Wave 2).
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
**Core workflow**: Collect Files -> Decompose Dimensions -> Parallel Review -> Aggregate + Verdict
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
```
|
|
14
|
+
+---------------------------------------------------------------------------+
|
|
15
|
+
| CODE REVIEW CSV WAVE WORKFLOW |
|
|
16
|
+
+---------------------------------------------------------------------------+
|
|
17
|
+
| |
|
|
18
|
+
| Phase 1: Phase Resolution -> CSV |
|
|
19
|
+
| +-- Resolve phase directory from arguments |
|
|
20
|
+
| +-- Collect changed files from task summaries |
|
|
21
|
+
| +-- Auto-detect review level (quick/standard/deep) |
|
|
22
|
+
| +-- Determine active dimensions |
|
|
23
|
+
| +-- Generate tasks.csv with one row per dimension |
|
|
24
|
+
| +-- User validates dimension breakdown (skip if -y) |
|
|
25
|
+
| |
|
|
26
|
+
| Phase 2: Wave Execution Engine |
|
|
27
|
+
| +-- Wave 1: Dimension Review (parallel) |
|
|
28
|
+
| | +-- Each dimension agent reviews all changed files |
|
|
29
|
+
| | +-- Agent classifies findings by severity |
|
|
30
|
+
| | +-- Discoveries shared via board (patterns, conventions) |
|
|
31
|
+
| | +-- Results: severity_counts + top_issues per dimension |
|
|
32
|
+
| +-- Wave 2: Aggregation + Deep-Dive (if needed) |
|
|
33
|
+
| | +-- Aggregate all dimension findings |
|
|
34
|
+
| | +-- If criticals > 0 (standard) or always (deep): deep-dive |
|
|
35
|
+
| | +-- Cross-dimension impact analysis |
|
|
36
|
+
| | +-- Generate verdict: PASS / WARN / BLOCK |
|
|
37
|
+
| +-- discoveries.ndjson shared across all waves (append-only) |
|
|
38
|
+
| |
|
|
39
|
+
| Phase 3: Results Aggregation |
|
|
40
|
+
| +-- Export results.csv + review.json |
|
|
41
|
+
| +-- Generate context.md with all findings |
|
|
42
|
+
| +-- Auto-create issues for qualifying findings |
|
|
43
|
+
| +-- Update phase index.json with review status |
|
|
44
|
+
| +-- Display summary with verdict + next steps |
|
|
45
|
+
| |
|
|
46
|
+
+---------------------------------------------------------------------------+
|
|
47
|
+
```
|
|
48
|
+
</purpose>
|
|
15
49
|
|
|
50
|
+
<context>
|
|
16
51
|
```bash
|
|
17
52
|
$quality-review "3"
|
|
18
53
|
$quality-review -c 6 "3 --level deep"
|
|
@@ -25,56 +60,13 @@ $quality-review --continue "review-phase3-20260318"
|
|
|
25
60
|
- `-c, --concurrency N`: Max concurrent agents within each wave (default: 6)
|
|
26
61
|
- `--continue`: Resume existing session
|
|
27
62
|
|
|
63
|
+
When `--yes` or `-y`: Auto-confirm dimension selection, skip interactive validation, use defaults for level detection.
|
|
64
|
+
|
|
28
65
|
**Output Directory**: `.workflow/.csv-wave/{session-id}/`
|
|
29
66
|
**Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `review.json` (structured review output)
|
|
67
|
+
</context>
|
|
30
68
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
## Overview
|
|
34
|
-
|
|
35
|
-
Wave-based multi-dimensional code review using `spawn_agents_on_csv`. Decomposes review into independent dimension agents (Wave 1), then aggregates findings into a unified report with verdict (Wave 2).
|
|
36
|
-
|
|
37
|
-
**Core workflow**: Collect Files → Decompose Dimensions → Parallel Review → Aggregate + Verdict
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
┌─────────────────────────────────────────────────────────────────────────┐
|
|
41
|
-
│ CODE REVIEW CSV WAVE WORKFLOW │
|
|
42
|
-
├─────────────────────────────────────────────────────────────────────────┤
|
|
43
|
-
│ │
|
|
44
|
-
│ Phase 1: Phase Resolution → CSV │
|
|
45
|
-
│ ├─ Resolve phase directory from arguments │
|
|
46
|
-
│ ├─ Collect changed files from task summaries │
|
|
47
|
-
│ ├─ Auto-detect review level (quick/standard/deep) │
|
|
48
|
-
│ ├─ Determine active dimensions │
|
|
49
|
-
│ ├─ Generate tasks.csv with one row per dimension │
|
|
50
|
-
│ └─ User validates dimension breakdown (skip if -y) │
|
|
51
|
-
│ │
|
|
52
|
-
│ Phase 2: Wave Execution Engine │
|
|
53
|
-
│ ├─ Wave 1: Dimension Review (parallel) │
|
|
54
|
-
│ │ ├─ Each dimension agent reviews all changed files │
|
|
55
|
-
│ │ ├─ Agent classifies findings by severity │
|
|
56
|
-
│ │ ├─ Discoveries shared via board (patterns, conventions) │
|
|
57
|
-
│ │ └─ Results: severity_counts + top_issues per dimension │
|
|
58
|
-
│ ├─ Wave 2: Aggregation + Deep-Dive (if needed) │
|
|
59
|
-
│ │ ├─ Aggregate all dimension findings │
|
|
60
|
-
│ │ ├─ If criticals > 0 (standard) or always (deep): deep-dive │
|
|
61
|
-
│ │ ├─ Cross-dimension impact analysis │
|
|
62
|
-
│ │ └─ Generate verdict: PASS / WARN / BLOCK │
|
|
63
|
-
│ └─ discoveries.ndjson shared across all waves (append-only) │
|
|
64
|
-
│ │
|
|
65
|
-
│ Phase 3: Results Aggregation │
|
|
66
|
-
│ ├─ Export results.csv + review.json │
|
|
67
|
-
│ ├─ Generate context.md with all findings │
|
|
68
|
-
│ ├─ Auto-create issues for qualifying findings │
|
|
69
|
-
│ ├─ Update phase index.json with review status │
|
|
70
|
-
│ └─ Display summary with verdict + next steps │
|
|
71
|
-
│ │
|
|
72
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## CSV Schema
|
|
69
|
+
<csv_schema>
|
|
78
70
|
|
|
79
71
|
### tasks.csv (Master State)
|
|
80
72
|
|
|
@@ -99,11 +91,11 @@ id,title,description,dimension,changed_files,project_specs,review_level,deps,con
|
|
|
99
91
|
| `dimension` | Input | Review dimension: correctness/security/performance/architecture/maintainability/best-practices/aggregation |
|
|
100
92
|
| `changed_files` | Input | Semicolon-separated file paths to review |
|
|
101
93
|
| `project_specs` | Input | Relevant project specs/conventions context |
|
|
102
|
-
| `review_level` | Input | quick/standard/deep
|
|
94
|
+
| `review_level` | Input | quick/standard/deep -- controls depth |
|
|
103
95
|
| `deps` | Input | Semicolon-separated dependency task IDs |
|
|
104
96
|
| `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
|
|
105
97
|
| `wave` | Computed | Wave number (1 = dimension review, 2 = aggregation) |
|
|
106
|
-
| `status` | Output | `pending`
|
|
98
|
+
| `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
|
|
107
99
|
| `findings` | Output | Key review findings summary (max 500 chars) |
|
|
108
100
|
| `severity_counts` | Output | JSON: `{"critical":N,"high":N,"medium":N,"low":N}` |
|
|
109
101
|
| `top_issues` | Output | Top 5 issues with `[severity] description (file:line)` format |
|
|
@@ -113,36 +105,42 @@ id,title,description,dimension,changed_files,project_specs,review_level,deps,con
|
|
|
113
105
|
|
|
114
106
|
Each wave generates `wave-{N}.csv` with extra `prev_context` column.
|
|
115
107
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
## Output Artifacts
|
|
108
|
+
### Output Artifacts
|
|
119
109
|
|
|
120
110
|
| File | Purpose | Lifecycle |
|
|
121
111
|
|------|---------|-----------|
|
|
122
|
-
| `tasks.csv` | Master state
|
|
112
|
+
| `tasks.csv` | Master state -- all tasks with status/findings | Updated after each wave |
|
|
123
113
|
| `wave-{N}.csv` | Per-wave input (temporary) | Created before wave, deleted after |
|
|
124
114
|
| `results.csv` | Final export of all task results | Created in Phase 3 |
|
|
125
115
|
| `discoveries.ndjson` | Shared exploration board | Append-only, carries across waves |
|
|
126
116
|
| `context.md` | Human-readable review report | Created in Phase 3 |
|
|
127
117
|
| `review.json` | Structured review output for downstream | Created in Phase 3 |
|
|
128
118
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
## Session Structure
|
|
119
|
+
### Session Structure
|
|
132
120
|
|
|
133
121
|
```
|
|
134
122
|
.workflow/.csv-wave/review-{phase}-{date}/
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
123
|
+
+-- tasks.csv
|
|
124
|
+
+-- results.csv
|
|
125
|
+
+-- discoveries.ndjson
|
|
126
|
+
+-- context.md
|
|
127
|
+
+-- review.json
|
|
128
|
+
+-- wave-{N}.csv (temporary)
|
|
141
129
|
```
|
|
130
|
+
</csv_schema>
|
|
142
131
|
|
|
143
|
-
|
|
132
|
+
<invariants>
|
|
133
|
+
1. **Start Immediately**: First action is session initialization, then Phase 1
|
|
134
|
+
2. **Wave Order is Sacred**: Never execute wave 2 before wave 1 completes and results are merged
|
|
135
|
+
3. **CSV is Source of Truth**: Master tasks.csv holds all state
|
|
136
|
+
4. **Context Propagation**: prev_context built from master CSV, not from memory
|
|
137
|
+
5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
|
|
138
|
+
6. **Skip on Failure**: If all dimension agents failed, skip aggregation
|
|
139
|
+
7. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
|
|
140
|
+
8. **DO NOT STOP**: Continuous execution until all waves complete
|
|
141
|
+
</invariants>
|
|
144
142
|
|
|
145
|
-
|
|
143
|
+
<execution>
|
|
146
144
|
|
|
147
145
|
### Session Initialization
|
|
148
146
|
|
|
@@ -171,24 +169,22 @@ const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
|
171
169
|
Bash(`mkdir -p ${sessionFolder}`)
|
|
172
170
|
```
|
|
173
171
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
### Phase 1: Phase Resolution → CSV
|
|
172
|
+
### Phase 1: Phase Resolution -> CSV
|
|
177
173
|
|
|
178
174
|
**Objective**: Resolve phase, collect changed files, determine review level, generate tasks.csv.
|
|
179
175
|
|
|
180
176
|
**Decomposition Rules**:
|
|
181
177
|
|
|
182
|
-
1. **Phase resolution**: Resolve `{phaseArg}` to `.workflow/phases/{NN}-{slug}/`
|
|
183
|
-
2. **File collection**: Read `.task/TASK-*.json`
|
|
178
|
+
1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
|
|
179
|
+
2. **File collection**: Read `.task/TASK-*.json` -> collect all `files[].path` where action != "read"
|
|
184
180
|
3. **Level detection**:
|
|
185
181
|
|
|
186
182
|
| Condition | Level |
|
|
187
183
|
|-----------|-------|
|
|
188
184
|
| `--level` flag provided | Use explicit level |
|
|
189
|
-
|
|
|
185
|
+
| <=3 changed files | quick |
|
|
190
186
|
| 4-19 changed files | standard |
|
|
191
|
-
|
|
|
187
|
+
| >=20 files OR phase marked critical | deep |
|
|
192
188
|
|
|
193
189
|
4. **Dimension selection**:
|
|
194
190
|
|
|
@@ -204,12 +200,10 @@ If `--dimensions` flag provided, override with explicit list.
|
|
|
204
200
|
|
|
205
201
|
6. **CSV generation**: One row per dimension + one aggregation row.
|
|
206
202
|
|
|
207
|
-
**Wave computation**: Simple 2-wave
|
|
203
|
+
**Wave computation**: Simple 2-wave -- all dimension tasks = wave 1, aggregation = wave 2.
|
|
208
204
|
|
|
209
205
|
**User validation**: Display task breakdown (skip if AUTO_YES).
|
|
210
206
|
|
|
211
|
-
---
|
|
212
|
-
|
|
213
207
|
### Phase 2: Wave Execution Engine
|
|
214
208
|
|
|
215
209
|
**Objective**: Execute dimension reviews wave-by-wave via spawn_agents_on_csv.
|
|
@@ -252,7 +246,7 @@ spawn_agents_on_csv({
|
|
|
252
246
|
|
|
253
247
|
1. Read master `tasks.csv`
|
|
254
248
|
2. Filter rows where `wave == 2` AND `status == pending`
|
|
255
|
-
3. Check deps
|
|
249
|
+
3. Check deps -- if all wave 1 tasks failed, skip aggregation
|
|
256
250
|
4. Build `prev_context` from wave 1 findings:
|
|
257
251
|
```
|
|
258
252
|
[Task 1: Correctness Review] Found 2 critical issues: null pointer in login handler...
|
|
@@ -264,8 +258,6 @@ spawn_agents_on_csv({
|
|
|
264
258
|
7. Merge results into master `tasks.csv`
|
|
265
259
|
8. Delete `wave-2.csv`
|
|
266
260
|
|
|
267
|
-
---
|
|
268
|
-
|
|
269
261
|
### Phase 3: Results Aggregation
|
|
270
262
|
|
|
271
263
|
**Objective**: Generate final results and human-readable report.
|
|
@@ -292,7 +284,7 @@ spawn_agents_on_csv({
|
|
|
292
284
|
4. Generate `context.md`:
|
|
293
285
|
|
|
294
286
|
```markdown
|
|
295
|
-
# Code Review Report
|
|
287
|
+
# Code Review Report -- Phase {phase}
|
|
296
288
|
|
|
297
289
|
## Summary
|
|
298
290
|
- Level: {level}
|
|
@@ -340,15 +332,13 @@ spawn_agents_on_csv({
|
|
|
340
332
|
| standard | critical + high |
|
|
341
333
|
| deep | critical + high + medium |
|
|
342
334
|
|
|
343
|
-
7. **Phase index update**: Update
|
|
335
|
+
7. **Phase index update**: Update `{phase_dir}/index.json` with review status.
|
|
344
336
|
|
|
345
337
|
8. Display summary.
|
|
346
338
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
## Shared Discovery Board Protocol
|
|
339
|
+
### Shared Discovery Board Protocol
|
|
350
340
|
|
|
351
|
-
|
|
341
|
+
#### Standard Discovery Types
|
|
352
342
|
|
|
353
343
|
| Type | Dedup Key | Data Schema | Description |
|
|
354
344
|
|------|-----------|-------------|-------------|
|
|
@@ -358,7 +348,7 @@ spawn_agents_on_csv({
|
|
|
358
348
|
| `blocker` | `data.issue` | `{issue, severity, impact}` | Blocking issue found |
|
|
359
349
|
| `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack info |
|
|
360
350
|
|
|
361
|
-
|
|
351
|
+
#### Domain Discovery Types
|
|
362
352
|
|
|
363
353
|
| Type | Dedup Key | Data Schema | Description |
|
|
364
354
|
|------|-----------|-------------|-------------|
|
|
@@ -367,7 +357,7 @@ spawn_agents_on_csv({
|
|
|
367
357
|
| `performance_hotspot` | `data.location` | `{location, type, impact}` | Performance issue |
|
|
368
358
|
| `architecture_violation` | `data.location` | `{location, rule, description}` | Architecture rule violation |
|
|
369
359
|
|
|
370
|
-
|
|
360
|
+
#### Protocol
|
|
371
361
|
|
|
372
362
|
1. **Read** `{session_folder}/discoveries.ndjson` before own review
|
|
373
363
|
2. **Skip covered**: If discovery of same type + dedup key exists, skip
|
|
@@ -378,31 +368,29 @@ spawn_agents_on_csv({
|
|
|
378
368
|
```bash
|
|
379
369
|
echo '{"ts":"<ISO>","worker":"{id}","type":"vulnerability","data":{"location":"src/auth/login.ts:42","type":"sql_injection","severity":"critical","cwe":"CWE-89"}}' >> {session_folder}/discoveries.ndjson
|
|
380
370
|
```
|
|
371
|
+
</execution>
|
|
381
372
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
## Error Handling
|
|
373
|
+
<error_codes>
|
|
385
374
|
|
|
386
375
|
| Error | Resolution |
|
|
387
376
|
|-------|------------|
|
|
388
377
|
| Phase directory not found | Abort with error: "Phase {N} not found" |
|
|
389
|
-
| No task summaries found | Abort with error: "No execution results
|
|
378
|
+
| No task summaries found | Abort with error: "No execution results -- run execute first" |
|
|
390
379
|
| No changed files | Abort with error: "No changed files detected" |
|
|
391
380
|
| Dimension agent timeout | Mark as failed, skip dependent aggregation if all failed |
|
|
392
381
|
| Aggregation agent failed | Use wave 1 results directly, verdict based on raw counts |
|
|
393
382
|
| CSV parse error | Validate format, show line number |
|
|
394
383
|
| discoveries.ndjson corrupt | Ignore malformed lines |
|
|
395
384
|
| Continue mode: no session found | List available sessions |
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
8. **DO NOT STOP**: Continuous execution until all waves complete
|
|
385
|
+
</error_codes>
|
|
386
|
+
|
|
387
|
+
<success_criteria>
|
|
388
|
+
- [ ] Session folder created with valid tasks.csv
|
|
389
|
+
- [ ] All dimension reviews executed in parallel (wave 1)
|
|
390
|
+
- [ ] Aggregation + deep-dive executed (wave 2)
|
|
391
|
+
- [ ] review.json produced with verdict and severity distribution
|
|
392
|
+
- [ ] context.md produced with full review report
|
|
393
|
+
- [ ] Issues auto-created for qualifying severity findings
|
|
394
|
+
- [ ] Phase index.json updated with review status
|
|
395
|
+
- [ ] discoveries.ndjson append-only throughout
|
|
396
|
+
</success_criteria>
|
|
@@ -1,89 +1,101 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: quality-sync
|
|
3
|
-
description: Sync codebase docs after code changes -- traces git diff through component/feature/requirement layers
|
|
4
|
-
argument-hint: "[--full] [--since <commit|HEAD~N>] [--dry-run]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
$quality-sync
|
|
16
|
-
$quality-sync "--
|
|
17
|
-
$quality-sync "--
|
|
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
|
-
Update
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
|
89
|
-
|
|
1
|
+
---
|
|
2
|
+
name: quality-sync
|
|
3
|
+
description: Sync codebase docs after code changes -- traces git diff through component/feature/requirement layers
|
|
4
|
+
argument-hint: "[--full] [--since <commit|HEAD~N>] [--dry-run]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Sync codebase documentation after code changes by tracing git diff through component, feature, and requirement layers. Updates `.workflow/codebase/` docs to reflect current source state.
|
|
10
|
+
</purpose>
|
|
11
|
+
|
|
12
|
+
<context>
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
$quality-sync
|
|
16
|
+
$quality-sync "--since HEAD~5"
|
|
17
|
+
$quality-sync "--full"
|
|
18
|
+
$quality-sync "--dry-run"
|
|
19
|
+
$quality-sync "--since abc123 --dry-run"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Flags**:
|
|
23
|
+
- `--full` -- Complete resync of all tracked files (ignores git diff)
|
|
24
|
+
- `--since <commit|HEAD~N>` -- Diff since specific commit (default: last sync timestamp)
|
|
25
|
+
- `--dry-run` -- Show what would be updated without writing
|
|
26
|
+
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<execution>
|
|
30
|
+
|
|
31
|
+
### Step 1: Validate
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
test -d .workflow || exit 1 # E001: not initialized
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 2: Detect Changes
|
|
38
|
+
|
|
39
|
+
If `--full`: skip diff, mark all tracked files as changed.
|
|
40
|
+
|
|
41
|
+
Otherwise:
|
|
42
|
+
1. Read last sync timestamp from `state.json` field `last_synced`
|
|
43
|
+
2. If `--since` provided, use that as baseline
|
|
44
|
+
3. Run `git diff --name-only {baseline} HEAD` to get changed files
|
|
45
|
+
|
|
46
|
+
If no changes and not `--full`, report clean state (W001) and exit.
|
|
47
|
+
|
|
48
|
+
### Step 3: Trace Impact Chain
|
|
49
|
+
|
|
50
|
+
For each changed file, trace through `doc-index.json` impact layers:
|
|
51
|
+
1. **File layer** -- Which doc entries reference this file directly
|
|
52
|
+
2. **Component layer** -- Which components contain this file
|
|
53
|
+
3. **Feature layer** -- Which features depend on affected components
|
|
54
|
+
4. **Requirement layer** -- Which requirements trace to affected features
|
|
55
|
+
|
|
56
|
+
Build the full set of affected documentation entries.
|
|
57
|
+
|
|
58
|
+
### Step 4: Update Documentation
|
|
59
|
+
|
|
60
|
+
If `--dry-run`: display affected entries and exit.
|
|
61
|
+
|
|
62
|
+
For each affected entry:
|
|
63
|
+
1. Re-read source files
|
|
64
|
+
2. Regenerate the documentation section in `.workflow/codebase/`
|
|
65
|
+
3. Update `doc-index.json` with new timestamp and content hash
|
|
66
|
+
|
|
67
|
+
### Step 5: Update State
|
|
68
|
+
|
|
69
|
+
Update `state.json`:
|
|
70
|
+
- `last_synced: "{ISO timestamp}"`
|
|
71
|
+
- `last_synced_commit: "{HEAD commit hash}"`
|
|
72
|
+
|
|
73
|
+
Update affected `index.json` files in phase directories if task files were modified.
|
|
74
|
+
|
|
75
|
+
Display summary:
|
|
76
|
+
```
|
|
77
|
+
=== SYNC COMPLETE ===
|
|
78
|
+
Files changed: {N}
|
|
79
|
+
Components affected: {C}
|
|
80
|
+
Features affected: {F}
|
|
81
|
+
Docs updated: {D}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
</execution>
|
|
85
|
+
|
|
86
|
+
<error_codes>
|
|
87
|
+
|
|
88
|
+
| Code | Severity | Description |
|
|
89
|
+
|------|----------|-------------|
|
|
90
|
+
| E001 | error | `.workflow/` not initialized -- run `Skill({ skill: "maestro-init" })` first |
|
|
91
|
+
| W001 | warning | No changes detected since last sync |
|
|
92
|
+
|
|
93
|
+
</error_codes>
|
|
94
|
+
|
|
95
|
+
<success_criteria>
|
|
96
|
+
- [ ] Changed files detected (or full resync triggered)
|
|
97
|
+
- [ ] Impact chain traced through all layers
|
|
98
|
+
- [ ] Documentation entries updated in `.workflow/codebase/`
|
|
99
|
+
- [ ] `state.json` updated with sync timestamp and commit hash
|
|
100
|
+
- [ ] Summary report displayed
|
|
101
|
+
</success_criteria>
|