@ktpartners/dgs-platform 2.9.0 → 3.3.0

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 (166) hide show
  1. package/CHANGELOG.md +197 -0
  2. package/README.md +34 -2
  3. package/agents/dgs-executor.md +124 -3
  4. package/agents/dgs-idea-researcher.md +447 -0
  5. package/agents/dgs-plan-checker.md +61 -3
  6. package/agents/dgs-planner.md +51 -8
  7. package/bin/install.js +44 -0
  8. package/commands/dgs/abandon-quick.md +28 -0
  9. package/commands/dgs/add-tests.md +2 -2
  10. package/commands/dgs/audit-milestone.md +4 -3
  11. package/commands/dgs/capture-principle.md +11 -11
  12. package/commands/dgs/cleanup.md +2 -2
  13. package/commands/dgs/complete-milestone.md +11 -11
  14. package/commands/dgs/complete-quick.md +28 -0
  15. package/commands/dgs/create-milestone-job.md +2 -2
  16. package/commands/dgs/debug.md +3 -3
  17. package/commands/dgs/develop-idea.md +1 -1
  18. package/commands/dgs/diff-report.md +124 -0
  19. package/commands/dgs/fast.md +3 -1
  20. package/commands/dgs/health.md +1 -1
  21. package/commands/dgs/map-codebase.md +6 -6
  22. package/commands/dgs/new-milestone.md +5 -5
  23. package/commands/dgs/new-project.md +8 -21
  24. package/commands/dgs/package-scan.md +43 -0
  25. package/commands/dgs/plan-milestone-gaps.md +1 -1
  26. package/commands/dgs/progress.md +3 -3
  27. package/commands/dgs/quick-abandon.md +8 -0
  28. package/commands/dgs/quick-complete.md +8 -0
  29. package/commands/dgs/quick.md +10 -3
  30. package/commands/dgs/research-idea.md +3 -2
  31. package/commands/dgs/research-phase.md +3 -3
  32. package/commands/dgs/switch-project.md +14 -1
  33. package/commands/dgs/write-spec.md +3 -3
  34. package/deliver-great-systems/bin/dgs-tools.cjs +401 -32
  35. package/deliver-great-systems/bin/lib/audit-tolerance.cjs +77 -0
  36. package/deliver-great-systems/bin/lib/audit-tolerance.test.cjs +101 -0
  37. package/deliver-great-systems/bin/lib/commands.cjs +626 -46
  38. package/deliver-great-systems/bin/lib/commands.test.cjs +451 -0
  39. package/deliver-great-systems/bin/lib/commit-verify.test.cjs +236 -0
  40. package/deliver-great-systems/bin/lib/config.cjs +80 -6
  41. package/deliver-great-systems/bin/lib/config.test.cjs +309 -0
  42. package/deliver-great-systems/bin/lib/context.cjs +120 -0
  43. package/deliver-great-systems/bin/lib/core.cjs +35 -14
  44. package/deliver-great-systems/bin/lib/core.test.cjs +79 -1
  45. package/deliver-great-systems/bin/lib/execution.cjs +49 -17
  46. package/deliver-great-systems/bin/lib/fast-routing.cjs +199 -0
  47. package/deliver-great-systems/bin/lib/fast-routing.test.cjs +108 -0
  48. package/deliver-great-systems/bin/lib/final-commit-precondition.test.cjs +87 -0
  49. package/deliver-great-systems/bin/lib/fixtures/package-scan/bundler-audit-gemfile.json +21 -0
  50. package/deliver-great-systems/bin/lib/fixtures/package-scan/gate-parity-expected.md +186 -0
  51. package/deliver-great-systems/bin/lib/fixtures/package-scan/gate-parity-runresult.json +235 -0
  52. package/deliver-great-systems/bin/lib/fixtures/package-scan/govulncheck-import.json +3 -0
  53. package/deliver-great-systems/bin/lib/fixtures/package-scan/npm-audit-v10.json +37 -0
  54. package/deliver-great-systems/bin/lib/fixtures/package-scan/osv-clean.json +3 -0
  55. package/deliver-great-systems/bin/lib/fixtures/package-scan/osv-vulns.json +77 -0
  56. package/deliver-great-systems/bin/lib/fixtures/package-scan/pip-audit-requirements.json +28 -0
  57. package/deliver-great-systems/bin/lib/fixtures/package-scan/snyk-lodash.json +30 -0
  58. package/deliver-great-systems/bin/lib/fixtures/package-scan/snyk-workspaces.json +55 -0
  59. package/deliver-great-systems/bin/lib/flat-migration.test.cjs +396 -0
  60. package/deliver-great-systems/bin/lib/frontmatter.cjs +1 -1
  61. package/deliver-great-systems/bin/lib/governance.cjs +211 -0
  62. package/deliver-great-systems/bin/lib/governance.test.cjs +339 -0
  63. package/deliver-great-systems/bin/lib/health-untracked-phase.test.cjs +269 -0
  64. package/deliver-great-systems/bin/lib/ideas.cjs +206 -91
  65. package/deliver-great-systems/bin/lib/ideas.test.cjs +244 -1
  66. package/deliver-great-systems/bin/lib/init.cjs +357 -61
  67. package/deliver-great-systems/bin/lib/init.test.cjs +625 -8
  68. package/deliver-great-systems/bin/lib/jobs.cjs +131 -25
  69. package/deliver-great-systems/bin/lib/jobs.test.cjs +193 -74
  70. package/deliver-great-systems/bin/lib/migration.cjs +409 -1
  71. package/deliver-great-systems/bin/lib/migration.test.cjs +158 -1
  72. package/deliver-great-systems/bin/lib/milestone.cjs +154 -31
  73. package/deliver-great-systems/bin/lib/milestone.test.cjs +203 -0
  74. package/deliver-great-systems/bin/lib/package-adapters.cjs +530 -0
  75. package/deliver-great-systems/bin/lib/package-adapters.test.cjs +618 -0
  76. package/deliver-great-systems/bin/lib/package-ecosystems.cjs +350 -0
  77. package/deliver-great-systems/bin/lib/package-ecosystems.test.cjs +348 -0
  78. package/deliver-great-systems/bin/lib/package-runner.cjs +199 -0
  79. package/deliver-great-systems/bin/lib/package-runner.test.cjs +198 -0
  80. package/deliver-great-systems/bin/lib/package-scan-provenance.cjs +56 -0
  81. package/deliver-great-systems/bin/lib/package-scan-provenance.test.cjs +103 -0
  82. package/deliver-great-systems/bin/lib/package-scan-report.cjs +1140 -0
  83. package/deliver-great-systems/bin/lib/package-scan-report.test.cjs +1963 -0
  84. package/deliver-great-systems/bin/lib/package-scan-skill.cjs +96 -0
  85. package/deliver-great-systems/bin/lib/package-scan-skill.test.cjs +136 -0
  86. package/deliver-great-systems/bin/lib/package-scan.cjs +919 -0
  87. package/deliver-great-systems/bin/lib/package-scan.test.cjs +2147 -0
  88. package/deliver-great-systems/bin/lib/phase.cjs +146 -3
  89. package/deliver-great-systems/bin/lib/phase.test.cjs +420 -0
  90. package/deliver-great-systems/bin/lib/plan-number-validity.test.cjs +48 -0
  91. package/deliver-great-systems/bin/lib/projects.cjs +65 -10
  92. package/deliver-great-systems/bin/lib/projects.test.cjs +198 -2
  93. package/deliver-great-systems/bin/lib/quick.cjs +739 -0
  94. package/deliver-great-systems/bin/lib/quick.test.cjs +730 -0
  95. package/deliver-great-systems/bin/lib/repos.cjs +37 -13
  96. package/deliver-great-systems/bin/lib/review.cjs +1821 -0
  97. package/deliver-great-systems/bin/lib/roadmap.cjs +34 -13
  98. package/deliver-great-systems/bin/lib/specs.cjs +3 -81
  99. package/deliver-great-systems/bin/lib/state-transition-gate.test.cjs +160 -0
  100. package/deliver-great-systems/bin/lib/state.cjs +147 -55
  101. package/deliver-great-systems/bin/lib/summary-frontmatter.cjs +54 -0
  102. package/deliver-great-systems/bin/lib/summary-frontmatter.test.cjs +78 -0
  103. package/deliver-great-systems/bin/lib/sweep-scope.test.cjs +263 -0
  104. package/deliver-great-systems/bin/lib/sync.cjs +75 -0
  105. package/deliver-great-systems/bin/lib/verify.cjs +198 -7
  106. package/deliver-great-systems/bin/lib/verify.test.cjs +82 -0
  107. package/deliver-great-systems/bin/lib/wave-0-template-rename.test.cjs +40 -0
  108. package/deliver-great-systems/bin/lib/worktrees.cjs +790 -0
  109. package/deliver-great-systems/bin/lib/worktrees.test.cjs +963 -0
  110. package/deliver-great-systems/references/agent-step-reliability.md +60 -0
  111. package/deliver-great-systems/references/conflict-resolution.md +4 -0
  112. package/deliver-great-systems/references/context-tiers.md +4 -0
  113. package/deliver-great-systems/references/package-scan-config.md +151 -0
  114. package/deliver-great-systems/references/questioning.md +0 -30
  115. package/deliver-great-systems/references/spec-review-loop.md +1 -2
  116. package/deliver-great-systems/references/workflow-conventions.md +29 -0
  117. package/deliver-great-systems/skills/dgs-tests/package-scan.md +44 -0
  118. package/deliver-great-systems/templates/REVIEW.md +35 -0
  119. package/deliver-great-systems/templates/VALIDATION.md +1 -1
  120. package/deliver-great-systems/templates/claude-md.md +27 -0
  121. package/deliver-great-systems/templates/package-scan-report.md +108 -0
  122. package/deliver-great-systems/templates/project.md +6 -170
  123. package/deliver-great-systems/templates/summary.md +3 -1
  124. package/deliver-great-systems/workflows/abandon-quick.md +89 -0
  125. package/deliver-great-systems/workflows/add-idea.md +3 -3
  126. package/deliver-great-systems/workflows/add-phase.md +5 -0
  127. package/deliver-great-systems/workflows/add-tests.md +14 -0
  128. package/deliver-great-systems/workflows/add-todo.md +1 -0
  129. package/deliver-great-systems/workflows/approve-spec.md +25 -4
  130. package/deliver-great-systems/workflows/audit-milestone.md +66 -10
  131. package/deliver-great-systems/workflows/audit-phase.md +15 -5
  132. package/deliver-great-systems/workflows/cancel-job.md +2 -2
  133. package/deliver-great-systems/workflows/check-todos.md +2 -3
  134. package/deliver-great-systems/workflows/codereview.md +103 -9
  135. package/deliver-great-systems/workflows/complete-milestone.md +218 -24
  136. package/deliver-great-systems/workflows/complete-quick.md +106 -0
  137. package/deliver-great-systems/workflows/consolidate-ideas.md +1 -1
  138. package/deliver-great-systems/workflows/create-milestone-job.md +4 -4
  139. package/deliver-great-systems/workflows/develop-idea.md +11 -11
  140. package/deliver-great-systems/workflows/diagnose-issues.md +14 -0
  141. package/deliver-great-systems/workflows/discuss-idea.md +1 -1
  142. package/deliver-great-systems/workflows/discuss-phase.md +3 -2
  143. package/deliver-great-systems/workflows/execute-phase.md +209 -33
  144. package/deliver-great-systems/workflows/execute-plan.md +22 -22
  145. package/deliver-great-systems/workflows/help.md +53 -20
  146. package/deliver-great-systems/workflows/import-spec.md +65 -7
  147. package/deliver-great-systems/workflows/init-product.md +45 -167
  148. package/deliver-great-systems/workflows/new-milestone.md +140 -33
  149. package/deliver-great-systems/workflows/new-project.md +60 -331
  150. package/deliver-great-systems/workflows/package-scan.md +59 -0
  151. package/deliver-great-systems/workflows/plan-phase.md +79 -1
  152. package/deliver-great-systems/workflows/progress-all.md +133 -0
  153. package/deliver-great-systems/workflows/quick-abandon.md +89 -0
  154. package/deliver-great-systems/workflows/quick-complete.md +106 -0
  155. package/deliver-great-systems/workflows/quick.md +328 -26
  156. package/deliver-great-systems/workflows/refine-spec.md +1 -1
  157. package/deliver-great-systems/workflows/research-idea.md +77 -139
  158. package/deliver-great-systems/workflows/resume-project.md +2 -2
  159. package/deliver-great-systems/workflows/run-job.md +29 -43
  160. package/deliver-great-systems/workflows/settings.md +13 -77
  161. package/deliver-great-systems/workflows/validate-phase.md +39 -1
  162. package/deliver-great-systems/workflows/verify-work.md +14 -0
  163. package/deliver-great-systems/workflows/write-spec.md +11 -13
  164. package/hooks/dist/dgs-enforce-discipline.js +196 -0
  165. package/package.json +1 -1
  166. package/scripts/build-hooks.js +1 -0
package/bin/install.js CHANGED
@@ -1806,6 +1806,50 @@ function install(isGlobal, runtime = 'claude') {
1806
1806
  });
1807
1807
  console.log(` ${green}✓${reset} Configured context window monitor hook`);
1808
1808
  }
1809
+
1810
+ // Configure PreToolUse hook for workflow discipline enforcement
1811
+ const disciplineCommand = isGlobal
1812
+ ? buildHookCommand(targetDir, 'dgs-enforce-discipline.js')
1813
+ : 'node ' + dirName + '/hooks/dgs-enforce-discipline.js';
1814
+
1815
+ if (!settings.hooks.PreToolUse) {
1816
+ settings.hooks.PreToolUse = [];
1817
+ }
1818
+
1819
+ const hasDisciplineHook = settings.hooks.PreToolUse.some(entry =>
1820
+ entry.hooks && entry.hooks.some(h => h.command && h.command.includes('dgs-enforce-discipline'))
1821
+ );
1822
+
1823
+ if (!hasDisciplineHook) {
1824
+ settings.hooks.PreToolUse.push({
1825
+ matcher: 'Edit|Write|Skill',
1826
+ hooks: [
1827
+ {
1828
+ type: 'command',
1829
+ command: disciplineCommand
1830
+ }
1831
+ ]
1832
+ });
1833
+ console.log(` ${green}✓${reset} Configured workflow discipline hook`);
1834
+ }
1835
+
1836
+ // Configure PostToolUse hook for discipline marker cleanup (Skill completion)
1837
+ const hasDisciplinePostHook = settings.hooks.PostToolUse.some(entry =>
1838
+ entry.hooks && entry.hooks.some(h => h.command && h.command.includes('dgs-enforce-discipline'))
1839
+ );
1840
+
1841
+ if (!hasDisciplinePostHook) {
1842
+ settings.hooks.PostToolUse.push({
1843
+ matcher: 'Skill',
1844
+ hooks: [
1845
+ {
1846
+ type: 'command',
1847
+ command: disciplineCommand
1848
+ }
1849
+ ]
1850
+ });
1851
+ console.log(` ${green}✓${reset} Configured discipline marker cleanup hook`);
1852
+ }
1809
1853
  }
1810
1854
 
1811
1855
  // Write file manifest for future modification detection
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: dgs:abandon-quick
3
+ description: Abandon active quick task — remove worktree without merging
4
+ argument-hint: ""
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - AskUserQuestion
9
+ ---
10
+ <objective>
11
+ Abandon the active product-level quick task.
12
+
13
+ Remove the worktree directory and branch without merging any changes to main. All committed and uncommitted work in the worktree is discarded.
14
+
15
+ Requires confirmation before proceeding. This action cannot be undone.
16
+ </objective>
17
+
18
+ <execution_context>
19
+ @~/.claude/deliver-great-systems/workflows/abandon-quick.md
20
+ </execution_context>
21
+
22
+ <context>
23
+ $ARGUMENTS
24
+ </context>
25
+
26
+ <process>
27
+ Execute the abandon-quick workflow from @~/.claude/deliver-great-systems/workflows/abandon-quick.md end-to-end.
28
+ </process>
@@ -31,8 +31,8 @@ Output: Test files committed with message `test(phase-{N}): add unit and E2E tes
31
31
  <context>
32
32
  Phase: $ARGUMENTS
33
33
 
34
- @.planning/STATE.md
35
- @.planning/ROADMAP.md
34
+ @${state_path}
35
+ @${roadmap_path}
36
36
  </context>
37
37
 
38
38
  <process>
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: dgs:audit-milestone
3
3
  description: Audit milestone completion against original intent before archiving
4
- argument-hint: "[version]"
4
+ argument-hint: "[version] [--strict-audit]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Glob
@@ -22,12 +22,13 @@ Verify milestone achieved its definition of done. Check requirements coverage, c
22
22
 
23
23
  <context>
24
24
  Version: $ARGUMENTS (optional — defaults to current milestone)
25
+ Flags: `--strict-audit` (optional — preserves old strict behaviour where empty SUMMARY `requirements_completed` always yields `partial` regardless of VERIFICATION state; default omits this and applies REL-10 soft-tolerance).
25
26
 
26
27
  Core planning files are resolved in-workflow (`init milestone-op`) and loaded only as needed.
27
28
 
28
29
  **Completed Work:**
29
- Glob: .planning/phases/*/*-SUMMARY.md
30
- Glob: .planning/phases/*/*-VERIFICATION.md
30
+ Glob: ${project_root}/phases/*/*-SUMMARY.md
31
+ Glob: ${project_root}/phases/*/*-VERIFICATION.md
31
32
  </context>
32
33
 
33
34
  <process>
@@ -11,7 +11,7 @@ allowed-tools:
11
11
  ---
12
12
 
13
13
  <objective>
14
- Extract a design principle from the current conversation context (e.g., a debugging session, root cause analysis, or architectural discussion) and save it to `.planning/docs/product/DESIGN-PRINCIPLES.md`.
14
+ Extract a design principle from the current conversation context (e.g., a debugging session, root cause analysis, or architectural discussion) and save it to `docs/product/DESIGN-PRINCIPLES.md` in the planning repo.
15
15
 
16
16
  Principles are product-level artifacts — actionable rules distilled from hard-won lessons. They are loaded automatically by any workflow that reads product docs (Planning, Execution, and Verification tiers), preventing the same mistakes from recurring.
17
17
  </objective>
@@ -19,27 +19,27 @@ Principles are product-level artifacts — actionable rules distilled from hard-
19
19
  <context>
20
20
  Arguments: $ARGUMENTS (optional seed text for the principle)
21
21
 
22
- State is resolved in-process via `state load` and git repo root detection.
22
+ State is resolved via `init milestone-op` which provides planning-repo-relative paths.
23
23
  </context>
24
24
 
25
25
  <process>
26
26
 
27
27
  ## 1. Resolve Target Path
28
28
 
29
- Determine where `DESIGN-PRINCIPLES.md` lives:
29
+ Resolve the planning repo root and product docs path:
30
30
 
31
31
  ```bash
32
- REPO_ROOT=$(git rev-parse --show-toplevel)
32
+ INIT=$(node ~/.claude/deliver-great-systems/bin/dgs-tools.cjs init milestone-op)
33
33
  ```
34
34
 
35
- The target is always at `${REPO_ROOT}/.planning/docs/product/DESIGN-PRINCIPLES.md`.
35
+ Extract `commit_docs` and `project_root` from the init JSON.
36
36
 
37
- Load state for commit_docs setting:
37
+ Resolve the product docs directory:
38
38
  ```bash
39
- INIT=$(node ~/.claude/deliver-great-systems/bin/dgs-tools.cjs state load)
39
+ DOCS_DIR=$(node -e "const d = require('$HOME/.claude/deliver-great-systems/bin/lib/docs.cjs'); process.stdout.write(d.resolveDocsDir(process.cwd(), 'product'))")
40
40
  ```
41
41
 
42
- Extract `commit_docs` from the init JSON.
42
+ The target is always at `${DOCS_DIR}/DESIGN-PRINCIPLES.md`.
43
43
 
44
44
  ## 2. Extract Principle from Context
45
45
 
@@ -71,7 +71,7 @@ If the user provides edits, incorporate them and re-present. If the user rejects
71
71
 
72
72
  ## 4. Read Existing DESIGN-PRINCIPLES.md
73
73
 
74
- Read `.planning/docs/product/DESIGN-PRINCIPLES.md` at the resolved path.
74
+ Read `${DOCS_DIR}/DESIGN-PRINCIPLES.md`.
75
75
 
76
76
  If the file does **not** exist, create it with this template:
77
77
 
@@ -90,7 +90,7 @@ Actionable design rules distilled from project experience. Loaded automatically
90
90
 
91
91
  Also ensure the directory exists:
92
92
  ```bash
93
- mkdir -p "${REPO_ROOT}/.planning/docs/product"
93
+ mkdir -p "${DOCS_DIR}"
94
94
  ```
95
95
 
96
96
  If the file exists, read and parse existing principles (look for `### ` headings under `## Principles`).
@@ -124,7 +124,7 @@ Use today's date for the `Added` field.
124
124
 
125
125
  If `commit_docs` is true:
126
126
  ```bash
127
- node ~/.claude/deliver-great-systems/bin/dgs-tools.cjs commit "docs: capture design principle - {title}" --push --files .planning/docs/product/DESIGN-PRINCIPLES.md
127
+ node ~/.claude/deliver-great-systems/bin/dgs-tools.cjs commit "docs: capture design principle - {title}" --push --files docs/product/DESIGN-PRINCIPLES.md
128
128
  ```
129
129
 
130
130
  If `commit_docs` is false, just save the file without committing.
@@ -3,9 +3,9 @@ name: dgs:cleanup
3
3
  description: Archive milestone phase directories and clean up completed quick task directories
4
4
  ---
5
5
  <objective>
6
- Archive phase directories from completed milestones into `.planning/milestones/v{X.Y}-phases/`, and remove planning directories for completed quick/fast tasks from `.planning/quick/`.
6
+ Archive phase directories from completed milestones into `${project_root}/milestones/v{X.Y}-phases/`, and remove planning directories for completed quick/fast tasks from `${project_root}/quick/`.
7
7
 
8
- Use when `.planning/phases/` has accumulated directories from past milestones, or `.planning/quick/` has many completed task directories.
8
+ Use when `${project_root}/phases/` has accumulated directories from past milestones, or `${project_root}/quick/` has many completed task directories.
9
9
  </objective>
10
10
 
11
11
  <execution_context>
@@ -25,10 +25,10 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag
25
25
 
26
26
  <context>
27
27
  **Project files:**
28
- - `.planning/ROADMAP.md`
29
- - `.planning/REQUIREMENTS.md`
30
- - `.planning/STATE.md`
31
- - `.planning/PROJECT.md`
28
+ - `${roadmap_path}`
29
+ - `${project_root}/REQUIREMENTS.md`
30
+ - `${state_path}`
31
+ - `${project_path}`
32
32
 
33
33
  **User input:**
34
34
 
@@ -41,7 +41,7 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag
41
41
 
42
42
  0. **Check for audit:**
43
43
 
44
- - Look for `.planning/v{{version}}-MILESTONE-AUDIT.md`
44
+ - Look for `${project_root}/v{{version}}-MILESTONE-AUDIT.md`
45
45
  - If missing or stale: recommend `/dgs:audit-milestone` first
46
46
  - If audit status is `gaps_found`: recommend `/dgs:plan-milestone-gaps` first
47
47
  - If audit status is `passed`: proceed to step 1
@@ -82,17 +82,17 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag
82
82
 
83
83
  4. **Archive milestone:**
84
84
 
85
- - Create `.planning/milestones/v{{version}}-ROADMAP.md`
85
+ - Create `${project_root}/milestones/v{{version}}-ROADMAP.md`
86
86
  - Extract full phase details from ROADMAP.md
87
87
  - Fill milestone-archive.md template
88
88
  - Update ROADMAP.md to one-line summary with link
89
89
 
90
90
  5. **Archive requirements:**
91
91
 
92
- - Create `.planning/milestones/v{{version}}-REQUIREMENTS.md`
92
+ - Create `${project_root}/milestones/v{{version}}-REQUIREMENTS.md`
93
93
  - Mark all v1 requirements as complete (checkboxes checked)
94
94
  - Note requirement outcomes (validated, adjusted, dropped)
95
- - Delete `.planning/REQUIREMENTS.md` (fresh one created for next milestone)
95
+ - Delete `${project_root}/REQUIREMENTS.md` (fresh one created for next milestone)
96
96
 
97
97
  6. **Update PROJECT.md:**
98
98
 
@@ -114,9 +114,9 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag
114
114
 
115
115
  <success_criteria>
116
116
 
117
- - Milestone archived to `.planning/milestones/v{{version}}-ROADMAP.md`
118
- - Requirements archived to `.planning/milestones/v{{version}}-REQUIREMENTS.md`
119
- - `.planning/REQUIREMENTS.md` deleted (fresh for next milestone)
117
+ - Milestone archived to `${project_root}/milestones/v{{version}}-ROADMAP.md`
118
+ - Requirements archived to `${project_root}/milestones/v{{version}}-REQUIREMENTS.md`
119
+ - `${project_root}/REQUIREMENTS.md` deleted (fresh for next milestone)
120
120
  - ROADMAP.md collapsed to one-line entry
121
121
  - PROJECT.md updated with current state
122
122
  - Git tag v{{version}} created
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: dgs:complete-quick
3
+ description: Complete active quick task — rebase, merge to main, push, clean up worktree
4
+ argument-hint: ""
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - AskUserQuestion
9
+ ---
10
+ <objective>
11
+ Complete the active product-level quick task.
12
+
13
+ Rebase the quick branch onto the latest base_branch, fast-forward merge to main, push to remote, and remove the worktree directory and branch.
14
+
15
+ Only valid for product-level quicks. Milestone-context quicks merge with the milestone via /dgs:complete-milestone.
16
+ </objective>
17
+
18
+ <execution_context>
19
+ @~/.claude/deliver-great-systems/workflows/complete-quick.md
20
+ </execution_context>
21
+
22
+ <context>
23
+ $ARGUMENTS
24
+ </context>
25
+
26
+ <process>
27
+ Execute the complete-quick workflow from @~/.claude/deliver-great-systems/workflows/complete-quick.md end-to-end.
28
+ </process>
@@ -14,7 +14,7 @@ Generate a milestone build job that plans and executes all remaining phases, wit
14
14
 
15
15
  Purpose: Reads the roadmap, determines which phases still need work, generates the step sequence, shows it for approval, and writes the job file on confirmation.
16
16
 
17
- Output: Job file at `.planning/jobs/pending/milestone-{version}.md` ready for `/dgs:run-job`.
17
+ Output: Job file at `jobs/pending/milestone-{version}.md` ready for `/dgs:run-job`.
18
18
  </objective>
19
19
 
20
20
  <execution_context>
@@ -26,7 +26,7 @@ Arguments: $ARGUMENTS
26
26
 
27
27
  Flags:
28
28
  - `version` (optional): Milestone version (e.g., `v6`). Auto-detects from ROADMAP.md if omitted.
29
- - `--no-check`: Skip audit-milestone and complete-milestone steps in the generated job.
29
+ - `--no-check`: Skip the audit-milestone step in the generated job.
30
30
 
31
31
  State is resolved in-workflow via `dgs-tools.cjs jobs milestone-preview` and `jobs create-milestone`.
32
32
  </context>
@@ -22,7 +22,7 @@ User's issue: $ARGUMENTS
22
22
 
23
23
  Check for active sessions:
24
24
  ```bash
25
- ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5
25
+ ls ${project_root}/debug/*.md 2>/dev/null | grep -v resolved | head -5
26
26
  ```
27
27
  </context>
28
28
 
@@ -85,7 +85,7 @@ goal: find_and_fix
85
85
  </mode>
86
86
 
87
87
  <debug_file>
88
- Create: .planning/debug/{slug}.md
88
+ Create: ${project_root}/debug/{slug}.md
89
89
  </debug_file>
90
90
  ```
91
91
 
@@ -130,7 +130,7 @@ Continue debugging {slug}. Evidence is in the debug file.
130
130
 
131
131
  <prior_state>
132
132
  <files_to_read>
133
- - .planning/debug/{slug}.md (Debug session state)
133
+ - ${project_root}/debug/{slug}.md (Debug session state)
134
134
  </files_to_read>
135
135
  </prior_state>
136
136
 
@@ -26,7 +26,7 @@ If discussion concludes that the idea is not viable, research is skipped entirel
26
26
 
27
27
  When re-running on an idea with prior history, the user is offered a choice: re-do both, just discuss, or just research.
28
28
 
29
- The output is a Discussion Log entry in the idea file, a research document at `.planning/docs/ideas/pending/{slug}-research.md`, and a Research Log entry in the idea file -- all committed at appropriate stages.
29
+ The output is a Discussion Log entry in the idea file, a research document at `${project_root}/docs/ideas/pending/{slug}-research.md`, and a Research Log entry in the idea file -- all committed at appropriate stages.
30
30
  </objective>
31
31
 
32
32
  <execution_context>
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: dgs:diff-report
3
+ description: Generate a diff report (REVIEW.md) on demand for any milestone or quick task
4
+ argument-hint: "[version|--quick slug] [--detailed]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ ---
9
+
10
+ # /dgs:diff-report -- On-Demand Diff Report
11
+
12
+ Generate a REVIEW.md on demand without requiring audit-milestone or complete-quick.
13
+
14
+ ## Usage
15
+
16
+ ```
17
+ /dgs:diff-report -- Auto-detect: active quick task or current milestone
18
+ /dgs:diff-report v21.0 -- Generate for a specific milestone version
19
+ /dgs:diff-report --quick slug -- Generate for a specific quick task
20
+ /dgs:diff-report --detailed -- Use LLM-powered detailed analysis mode
21
+ ```
22
+
23
+ ## Steps
24
+
25
+ <step name="parse_arguments">
26
+ Parse $ARGUMENTS for:
27
+ - A version string (e.g., `v21.0`, `v22.0`) — milestone target
28
+ - `--quick <slug>` — quick task target with explicit slug
29
+ - `--detailed` — pass through to underlying CLI command
30
+ - No arguments — auto-detect mode
31
+
32
+ Store as `TARGET_TYPE` (one of: `milestone`, `quick`, `auto`), `TARGET_VALUE` (version or slug, may be empty), and `DETAILED` (boolean).
33
+ </step>
34
+
35
+ <step name="detect_context">
36
+ **If TARGET_TYPE is `auto`** (no version or --quick specified):
37
+
38
+ Check for an active quick task first:
39
+ ```bash
40
+ ACTIVE_QUICK=$(node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" quick generate-review --raw 2>&1)
41
+ QUICK_EXIT=$?
42
+ ```
43
+
44
+ If `QUICK_EXIT` is 0 and the output contains `"generated": true` or `"fastForward": true`:
45
+ - Set `TARGET_TYPE = quick` (auto-detected)
46
+ - The command already ran and produced the review
47
+
48
+ If `QUICK_EXIT` is non-zero (no active quick task):
49
+ - Set `TARGET_TYPE = milestone` (fall back to current milestone)
50
+
51
+ **If TARGET_TYPE is `milestone`:**
52
+ Use the version argument if provided. Otherwise auto-detection happens inside the CLI command.
53
+
54
+ **If TARGET_TYPE is `quick`:**
55
+ Use the slug argument if provided. Otherwise auto-detection happens inside the CLI command.
56
+ </step>
57
+
58
+ <step name="show_context">
59
+ Display what will be generated before proceeding:
60
+
61
+ **If auto-detected quick task:**
62
+ ```
63
+ Generating review for quick task...
64
+ ```
65
+
66
+ **If milestone (with version):**
67
+ ```
68
+ Generating review for milestone {version}...
69
+ ```
70
+
71
+ **If milestone (auto-detect):**
72
+ ```
73
+ Generating review for current milestone...
74
+ ```
75
+
76
+ **If explicit quick task:**
77
+ ```
78
+ Generating review for quick task {slug}...
79
+ ```
80
+ </step>
81
+
82
+ <step name="generate">
83
+ Run the appropriate CLI command:
84
+
85
+ **For milestone reports:**
86
+ ```bash
87
+ RESULT=$(node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" jobs generate-review ${TARGET_VALUE} ${DETAILED_FLAG} 2>&1)
88
+ EXIT_CODE=$?
89
+ ```
90
+
91
+ Where `${TARGET_VALUE}` is the version (e.g., `v21.0`) or empty for auto-detect, and `${DETAILED_FLAG}` is `--detailed` if requested or empty.
92
+
93
+ **For quick task reports:**
94
+ ```bash
95
+ RESULT=$(node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" quick generate-review ${TARGET_VALUE} ${DETAILED_FLAG} 2>&1)
96
+ EXIT_CODE=$?
97
+ ```
98
+
99
+ Where `${TARGET_VALUE}` is the slug or empty for auto-detect.
100
+
101
+ Note: If auto-detect already ran the quick command in step 2 and succeeded, skip re-running — use the result from step 2.
102
+ </step>
103
+
104
+ <step name="report">
105
+ **If EXIT_CODE is 0:**
106
+
107
+ Display the result from the CLI command (it includes file path and stats).
108
+
109
+ **If EXIT_CODE is non-zero:**
110
+
111
+ Display the error from the CLI command. The underlying commands already produce actionable error messages:
112
+ - `No version specified and no active job found` — no milestone to generate for
113
+ - `No active quick task found` — no quick task to generate for
114
+ - `No job file found for [version]` — missing job file, need to run a milestone job first
115
+ - `No code changes detected` — fast-forwarded quick task (informational, not an error)
116
+ </step>
117
+
118
+ ## Success Criteria
119
+
120
+ - [ ] Auto-detects quick task vs milestone context
121
+ - [ ] Delegates to existing CLI commands (no code duplication)
122
+ - [ ] --detailed flag passed through to underlying command
123
+ - [ ] Shows context line before generating
124
+ - [ ] Error messages are actionable (from underlying CLI commands)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: dgs:fast
3
3
  description: Make a trivial edit with a single atomic commit — no subagents, no ceremony
4
- argument-hint: "<description> [--dry-run]"
4
+ argument-hint: "<description> [--dry-run] [--main]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Write
@@ -20,6 +20,8 @@ Make a trivial edit and commit it atomically. Fast mode is the lightest DGS comm
20
20
  - Warns if scope exceeds 3 files or 30 lines (suggests /dgs:quick instead)
21
21
 
22
22
  **`--dry-run` flag:** Shows proposed changes as a diff, then asks "Apply these changes?" before committing.
23
+
24
+ **`--main` flag:** Forces product-level mode even when a milestone is active. Commits to `base_branch` in the main checkout instead of the milestone worktree.
23
25
  </objective>
24
26
 
25
27
  <execution_context>
@@ -9,7 +9,7 @@ allowed-tools:
9
9
  - AskUserQuestion
10
10
  ---
11
11
  <objective>
12
- Validate `.planning/` directory integrity and jobs directory structure. Reports actionable issues for both planning health and job management health.
12
+ Validate planning directory integrity and jobs directory structure. Reports actionable issues for both planning health and job management health.
13
13
  </objective>
14
14
 
15
15
  <execution_context>
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: dgs:map-codebase
3
- description: Analyze registered repos with parallel mapper agents to produce per-repo .planning/codebase/<repo>/ documents and cross-repo analysis
3
+ description: Analyze registered repos with parallel mapper agents to produce per-repo codebase/<repo>/ documents and cross-repo analysis
4
4
  argument-hint: "[<repo-name>]"
5
5
  allowed-tools:
6
6
  - Read
@@ -18,9 +18,9 @@ Supports two modes:
18
18
  - **Refresh mode** (default, no flags): Clears all existing codebase maps and remaps everything from scratch.
19
19
  - **Update mode** (`<repo-name>` or `--only <repo-name>`): Re-maps only the specified repo and regenerates unified files from all repos.
20
20
 
21
- Reads REPOS.md to discover registered repos, then spawns 4 mapper agents per repo (or just the targeted repo in update mode). Each agent explores the repo's actual path and writes documents directly to `.planning/codebase/<repo-name>/`. The orchestrator only receives confirmations.
21
+ Reads REPOS.md to discover registered repos, then spawns 4 mapper agents per repo (or just the targeted repo in update mode). Each agent explores the repo's actual path and writes documents directly to `codebase/<repo-name>/`. The orchestrator only receives confirmations.
22
22
 
23
- Output: .planning/codebase/<repo-name>/ folders, each with 7 structured documents about that repo's codebase state, plus 7 unified top-level files synthesized from per-repo content, plus CROSS-REPO.md with cross-repo comparison tables (when 2+ repos).
23
+ Output: codebase/<repo-name>/ folders, each with 7 structured documents about that repo's codebase state, plus 7 unified top-level files synthesized from per-repo content, plus CROSS-REPO.md with cross-repo comparison tables (when 2+ repos).
24
24
  </objective>
25
25
 
26
26
  <execution_context>
@@ -31,7 +31,7 @@ Output: .planning/codebase/<repo-name>/ folders, each with 7 structured document
31
31
  **Reads REPOS.md** to discover registered repos and their paths.
32
32
 
33
33
  **Load project state if exists:**
34
- Check for .planning/STATE.md - loads context if project already initialized
34
+ Check for ${state_path} - loads context if project already initialized
35
35
 
36
36
  **This command can run:**
37
37
  - Before /dgs:new-project (brownfield codebases) - creates codebase maps first
@@ -60,7 +60,7 @@ Check for .planning/STATE.md - loads context if project already initialized
60
60
  3. Mode-aware cleanup:
61
61
  - Refresh: Delete all existing codebase docs and per-repo subdirectories
62
62
  - Update: Delete only the targeted repo's subdirectory (other repos untouched)
63
- 4. Create .planning/codebase/<repo-name>/ directories (all repos or just targeted repo)
63
+ 4. Create codebase/<repo-name>/ directories (all repos or just targeted repo)
64
64
  5. Spawn 4 parallel dgs-codebase-mapper agents per repo (all run in parallel):
65
65
  - Agent 1: tech focus -> writes STACK.md, INTEGRATIONS.md
66
66
  - Agent 2: arch focus -> writes ARCHITECTURE.md, STRUCTURE.md
@@ -78,7 +78,7 @@ Check for .planning/STATE.md - loads context if project already initialized
78
78
  </process>
79
79
 
80
80
  <success_criteria>
81
- - [ ] .planning/codebase/<repo-name>/ directories created for each registered repo (or targeted repo in update mode)
81
+ - [ ] codebase/<repo-name>/ directories created for each registered repo (or targeted repo in update mode)
82
82
  - [ ] All 7 codebase documents written per repo by mapper agents
83
83
  - [ ] Documents follow template structure
84
84
  - [ ] Parallel agents completed without errors
@@ -15,11 +15,11 @@ Start a new milestone: questioning → research (optional) → requirements →
15
15
  Brownfield equivalent of new-project. Project exists, PROJECT.md has history. Gathers "what's next", updates PROJECT.md, then runs requirements → roadmap cycle.
16
16
 
17
17
  **Creates/Updates:**
18
- - `.planning/PROJECT.md` — updated with new milestone goals
19
- - `.planning/research/` — domain research (optional, NEW features only)
20
- - `.planning/REQUIREMENTS.md` — scoped requirements for this milestone
21
- - `.planning/ROADMAP.md` — phase structure (continues numbering)
22
- - `.planning/STATE.md` — reset for new milestone
18
+ - `${project_path}` — updated with new milestone goals
19
+ - `${project_root}/research/` — domain research (optional, NEW features only)
20
+ - `${project_root}/REQUIREMENTS.md` — scoped requirements for this milestone
21
+ - `${roadmap_path}` — phase structure (continues numbering)
22
+ - `${state_path}` — reset for new milestone
23
23
 
24
24
  **After:** `/dgs:plan-phase [N]` to start execution.
25
25
  </objective>
@@ -1,42 +1,29 @@
1
1
  ---
2
2
  name: dgs:new-project
3
- description: Initialize a new project with deep context gathering and PROJECT.md
4
- argument-hint: "[--auto]"
3
+ description: Initialize a new project as a thin skeleton (name + one-liner).
4
+ argument-hint: "[<name>]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Bash
8
8
  - Write
9
- - Task
10
- - AskUserQuestion
11
9
  ---
12
- <context>
13
- **Flags:**
14
- - `--auto` — Automatic mode. After config questions, runs research → requirements → roadmap without further interaction. Expects idea document via @ reference.
15
- </context>
16
-
17
10
  <objective>
18
- Initialize a new project through unified flow: questioning research (optional) requirements → roadmap.
11
+ Initialize a new project as a thin skeleton. Projects are holders specs and
12
+ milestones carry the real work.
19
13
 
20
14
  **Creates:**
21
- - `.planning/PROJECT.md` project context
22
- - `.planning/config.json` — workflow preferences
23
- - `.planning/research/` — domain research (optional)
24
- - `.planning/REQUIREMENTS.md` — scoped requirements
25
- - `.planning/ROADMAP.md` — phase structure
26
- - `.planning/STATE.md` — project memory
15
+ - `${project_path}` — thin PROJECT.md (title + one-line placeholder)
27
16
 
28
- **After this command:** Run `/dgs:plan-phase 1` to start execution.
17
+ **After this command:** Run `/dgs:write-spec` to capture what you're building,
18
+ then `/dgs:new-milestone --auto <spec-id>` to start the first milestone.
29
19
  </objective>
30
20
 
31
21
  <execution_context>
32
22
  @~/.claude/deliver-great-systems/workflows/new-project.md
33
- @~/.claude/deliver-great-systems/references/questioning.md
34
23
  @~/.claude/deliver-great-systems/references/ui-brand.md
35
24
  @~/.claude/deliver-great-systems/templates/project.md
36
- @~/.claude/deliver-great-systems/templates/requirements.md
37
25
  </execution_context>
38
26
 
39
27
  <process>
40
- Execute the new-project workflow from @~/.claude/deliver-great-systems/workflows/new-project.md end-to-end.
41
- Preserve all workflow gates (validation, approvals, commits, routing).
28
+ Execute the new-project workflow end-to-end. Preserve gates (--auto error, commit).
42
29
  </process>
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: dgs:package-scan
3
+ description: Scan all repos for dependency vulnerabilities and licence compliance
4
+ argument-hint: "[--threshold <sev>] [--repo <name>]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Edit
9
+ - Write
10
+ - Glob
11
+ - Grep
12
+ ---
13
+ <objective>
14
+ Scan all registered repos and the product root for dependency vulnerabilities via a tool cascade (Snyk → OSV-Scanner → ecosystem-native). Produces a markdown report with YAML frontmatter (programmatic consumption) and a human-readable body, committed atomically to the active phase directory / active milestone / project root depending on lifecycle context.
15
+
16
+ Purpose: Surface known CVEs and licence compliance issues across every language ecosystem in the project within seconds, with no configuration beyond REPOS.md.
17
+
18
+ Output: `{phase-dir}/{phase}-PACKAGE-SCAN.md` (when run during a phase), or `milestones/v{X}.{Y}-PACKAGE-SCAN.md` (during a milestone), or `PACKAGE-SCAN-{YYYY-MM-DD-HHmm}.md` at project root (standalone). The report is atomically committed via `dgs-tools commit --files`.
19
+ </objective>
20
+
21
+ <execution_context>
22
+ @~/.claude/deliver-great-systems/workflows/package-scan.md
23
+ </execution_context>
24
+
25
+ <context>
26
+ Arguments: $ARGUMENTS
27
+
28
+ **Flags** (Phase 153 will wire these; the command accepts them silently now):
29
+ - `--threshold <sev>` — filter to findings at `<sev>` severity or higher (critical/high/medium/low)
30
+ - `--repo <name>` — scan a single repo by name (must match REPOS.md entry)
31
+
32
+ **Config keys** (see `deliver-great-systems/references/package-scan-config.md`):
33
+ - `testing.packages.tool` — `auto` (default), `snyk`, `osv`, or `native`
34
+ - `testing.packages.severity_threshold` — minimum severity to include
35
+ - `testing.packages.include_dev_dependencies` — boolean, default `true`
36
+ - `testing.packages.timeout_seconds` — integer, default 300
37
+ - `testing.packages.snyk_token` — local-only (use `dgs-tools config-local-set`)
38
+ </context>
39
+
40
+ <process>
41
+ Execute the package-scan workflow from @~/.claude/deliver-great-systems/workflows/package-scan.md end-to-end.
42
+ Preserve all workflow gates (init, scan invocation, report-write-and-commit composition).
43
+ </process>