maestro-flow 0.3.10 → 0.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/conceptual-planning-agent.md +1 -0
- package/.claude/agents/workflow-analyzer.md +114 -114
- package/.claude/agents/workflow-collab-planner.md +144 -144
- package/.claude/agents/workflow-debugger.md +102 -103
- package/.claude/agents/workflow-executor.md +127 -128
- package/.claude/agents/workflow-integration-checker.md +82 -82
- package/.claude/agents/workflow-nyquist-auditor.md +85 -84
- package/.claude/agents/workflow-phase-researcher.md +85 -85
- package/.claude/agents/workflow-plan-checker.md +90 -90
- package/.claude/agents/workflow-planner.md +178 -178
- package/.claude/agents/workflow-roadmapper.md +81 -83
- package/.claude/agents/workflow-verifier.md +119 -119
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +3 -3
- package/.claude/commands/learn-second-opinion.md +2 -2
- package/.claude/commands/maestro-brainstorm.md +1 -0
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-fork.md +133 -111
- package/.claude/commands/maestro-merge.md +85 -77
- package/.claude/commands/maestro-plan.md +88 -2
- package/.claude/commands/maestro-roadmap.md +113 -2
- package/.claude/commands/maestro.md +1 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue.md +2 -2
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +3 -2
- package/.claude/commands/quality-retrospective.md +6 -4
- package/.claude/commands/quality-review.md +1 -1
- package/.claude/commands/quality-test-gen.md +5 -4
- package/.claude/commands/spec-add.md +67 -56
- package/.claude/commands/spec-load.md +66 -64
- package/.claude/commands/spec-setup.md +5 -9
- package/.codex/skills/learn-decompose/SKILL.md +119 -0
- package/.codex/skills/learn-follow/SKILL.md +83 -0
- package/.codex/skills/learn-investigate/SKILL.md +83 -0
- package/.codex/skills/learn-retro/SKILL.md +83 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
- package/.codex/skills/maestro/SKILL.md +151 -279
- package/.codex/skills/maestro-analyze/SKILL.md +59 -71
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +95 -110
- package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
- package/.codex/skills/maestro-execute/SKILL.md +435 -446
- package/.codex/skills/maestro-fork/SKILL.md +98 -0
- package/.codex/skills/maestro-init/SKILL.md +172 -167
- package/.codex/skills/maestro-learn/SKILL.md +80 -0
- package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
- package/.codex/skills/maestro-merge/SKILL.md +69 -0
- package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
- package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
- package/.codex/skills/maestro-overlay/SKILL.md +188 -185
- package/.codex/skills/maestro-plan/SKILL.md +58 -69
- package/.codex/skills/maestro-quick/SKILL.md +26 -23
- package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
- package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
- package/.codex/skills/maestro-ui-design/SKILL.md +35 -32
- package/.codex/skills/maestro-verify/SKILL.md +556 -566
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
- package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
- package/.codex/skills/manage-harvest/SKILL.md +82 -0
- package/.codex/skills/manage-issue/SKILL.md +80 -65
- package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
- package/.codex/skills/manage-learn/SKILL.md +190 -186
- package/.codex/skills/manage-memory/SKILL.md +95 -72
- package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
- package/.codex/skills/manage-status/SKILL.md +102 -89
- package/.codex/skills/quality-business-test/SKILL.md +228 -223
- package/.codex/skills/quality-debug/SKILL.md +54 -66
- package/.codex/skills/quality-integration-test/SKILL.md +532 -544
- package/.codex/skills/quality-refactor/SKILL.md +197 -191
- package/.codex/skills/quality-retrospective/SKILL.md +512 -505
- package/.codex/skills/quality-review/SKILL.md +95 -107
- package/.codex/skills/quality-sync/SKILL.md +101 -89
- package/.codex/skills/quality-test/SKILL.md +202 -198
- package/.codex/skills/quality-test-gen/SKILL.md +94 -105
- package/.codex/skills/spec-add/SKILL.md +58 -39
- package/.codex/skills/spec-load/SKILL.md +45 -40
- package/.codex/skills/spec-map/SKILL.md +180 -182
- package/.codex/skills/spec-setup/SKILL.md +94 -76
- package/.codex/skills/team-coordinate/SKILL.md +346 -357
- package/.codex/skills/team-executor/SKILL.md +70 -112
- package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
- package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
- package/.codex/skills/team-review/SKILL.md +232 -225
- package/.codex/skills/team-tech-debt/SKILL.md +78 -100
- package/.codex/skills/team-testing/SKILL.md +242 -235
- package/.codex/skills/wiki-connect/SKILL.md +75 -0
- package/.codex/skills/wiki-digest/SKILL.md +87 -0
- package/README.md +9 -4
- package/README.zh-CN.md +9 -4
- package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
- package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
- package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
- package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
- package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
- package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
- package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
- package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
- package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
- package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
- package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
- package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
- package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
- package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
- package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
- package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
- package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
- package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
- package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
- package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
- package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
- package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
- package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
- package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
- package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
- package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
- package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
- package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
- package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
- package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +10 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +28 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
- package/dashboard/dist-server/src/hooks/constants.d.ts +3 -1
- package/dashboard/dist-server/src/hooks/constants.js +4 -2
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dist/shared/agent-types.d.ts +4 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/commands/collab.js +4 -4
- package/dist/src/commands/collab.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +66 -1
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +29 -18
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +7 -2
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js +23 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
- package/dist/src/hooks/constants.d.ts +3 -1
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +4 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +1 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +1 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
- package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
- package/dist/src/hooks/guards/spec-validator.js +66 -0
- package/dist/src/hooks/guards/spec-validator.js.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.js +96 -0
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/skill-context.d.ts +3 -0
- package/dist/src/hooks/skill-context.d.ts.map +1 -1
- package/dist/src/hooks/skill-context.js +95 -9
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/hooks/spec-bridge.d.ts +40 -0
- package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
- package/dist/src/hooks/spec-bridge.js +97 -0
- package/dist/src/hooks/spec-bridge.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +18 -12
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +6 -3
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/team/phase-orchestrator.d.ts +52 -0
- package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
- package/dist/src/team/phase-orchestrator.js +165 -0
- package/dist/src/team/phase-orchestrator.js.map +1 -0
- package/dist/src/team/phase-types.d.ts +51 -0
- package/dist/src/team/phase-types.d.ts.map +1 -0
- package/dist/src/team/phase-types.js +41 -0
- package/dist/src/team/phase-types.js.map +1 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +6 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/merge-validator.d.ts.map +1 -1
- package/dist/src/tools/merge-validator.js +114 -16
- package/dist/src/tools/merge-validator.js.map +1 -1
- package/dist/src/tools/spec-entry-parser.d.ts +56 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
- package/dist/src/tools/spec-entry-parser.js +196 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +66 -92
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +30 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
- package/dist/src/tools/spec-keyword-index.js +101 -0
- package/dist/src/tools/spec-keyword-index.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +3 -3
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +49 -23
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-agents.d.ts +27 -0
- package/dist/src/tools/team-agents.d.ts.map +1 -0
- package/dist/src/tools/team-agents.js +362 -0
- package/dist/src/tools/team-agents.js.map +1 -0
- package/dist/src/tools/team-mailbox.d.ts +40 -0
- package/dist/src/tools/team-mailbox.d.ts.map +1 -0
- package/dist/src/tools/team-mailbox.js +384 -0
- package/dist/src/tools/team-mailbox.js.map +1 -0
- package/dist/src/tools/team-msg.d.ts +17 -8
- package/dist/src/tools/team-msg.d.ts.map +1 -1
- package/dist/src/tools/team-msg.js +110 -13
- package/dist/src/tools/team-msg.js.map +1 -1
- package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
- package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
- package/dist/src/tools/team-tasks-mcp.js +408 -0
- package/dist/src/tools/team-tasks-mcp.js.map +1 -0
- package/package.json +2 -1
- package/shared/agent-types.ts +4 -0
- package/templates/worktree-scope.json +9 -10
- package/templates/worktrees.json +26 -27
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +480 -471
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/debug.md +16 -6
- package/workflows/execute.md +1 -1
- package/workflows/fork.md +100 -36
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +355 -343
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue.md +14 -4
- package/workflows/learn.md +19 -5
- package/workflows/maestro.md +1 -0
- package/workflows/map.md +111 -111
- package/workflows/merge.md +113 -55
- package/workflows/milestone-complete.md +176 -176
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +497 -497
- package/workflows/refactor.md +300 -300
- package/workflows/retrospective.md +61 -22
- package/workflows/review.md +17 -4
- package/workflows/roadmap.md +335 -335
- package/workflows/spec-generate.md +640 -640
- package/workflows/specs-add.md +46 -81
- package/workflows/specs-load.md +15 -17
- package/workflows/specs-setup.md +40 -161
- package/workflows/test.md +12 -2
- package/workflows/ui-style.md +9 -2
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
- package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
- package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
- package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
- package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
- package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
- package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
- package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
- package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
|
@@ -1,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
|
|
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 |
|
package/workflows/debug.md
CHANGED
|
@@ -14,11 +14,10 @@ When root causes found, auto-updates originating uat.md with diagnosis.
|
|
|
14
14
|
### Step 1: Check Active Sessions
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
#
|
|
18
|
-
find .workflow/
|
|
19
|
-
|
|
20
|
-
# Standalone scratch debug sessions
|
|
17
|
+
# Check both scratch (artifact registry) and legacy phases for debug sessions
|
|
18
|
+
find .workflow/scratch -path "*/.debug/*" -name "understanding.md" 2>/dev/null | head -5
|
|
21
19
|
find .workflow/scratch -type d -name "debug-*" 2>/dev/null | head -5
|
|
20
|
+
find .workflow/phases -path "*/.debug/*" -name "understanding.md" 2>/dev/null | head -5
|
|
22
21
|
```
|
|
23
22
|
|
|
24
23
|
**If active sessions exist AND no $ARGUMENTS:**
|
|
@@ -137,10 +136,21 @@ Create debug session directory and proceed to Step 6.
|
|
|
137
136
|
|
|
138
137
|
| Mode | Directory |
|
|
139
138
|
|------|-----------|
|
|
140
|
-
| Phase-scoped (from UAT) |
|
|
139
|
+
| Phase-scoped (from UAT) | `{PHASE_DIR}/.debug/{gap-slug}/` (PHASE_DIR resolved via artifact registry or legacy phases/) |
|
|
141
140
|
| Standalone | `.workflow/scratch/debug-{slug}-{date}/` |
|
|
142
141
|
|
|
143
|
-
```
|
|
142
|
+
```
|
|
143
|
+
IF TARGET_TYPE == "phase":
|
|
144
|
+
Read .workflow/state.json → state
|
|
145
|
+
artifacts = state.artifacts ?? []
|
|
146
|
+
IF artifacts.length > 0:
|
|
147
|
+
art = artifacts.find(a => a.type === 'execute' && a.phase === phaseNum)
|
|
148
|
+
DEBUG_DIR = ".workflow/" + art.path + "/.debug/{gap-slug}/"
|
|
149
|
+
ELSE:
|
|
150
|
+
DEBUG_DIR = ".workflow/phases/{NN}-{slug}/.debug/{gap-slug}/"
|
|
151
|
+
ELSE:
|
|
152
|
+
DEBUG_DIR = ".workflow/scratch/debug-{slug}-{date}/"
|
|
153
|
+
|
|
144
154
|
mkdir -p "$DEBUG_DIR"
|
|
145
155
|
```
|
|
146
156
|
|
package/workflows/execute.md
CHANGED