@ktpartners/dgs-platform 2.7.3 → 2.7.5

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.
@@ -92,6 +92,32 @@ If a requirement fits multiple phases → assign to ONE (usually the first that
92
92
 
93
93
  </philosophy>
94
94
 
95
+ <milestone_handling>
96
+
97
+ ## Milestone Version
98
+
99
+ The orchestrator passes a `<milestone>` block in the planning context with `version` and `name`.
100
+
101
+ **Reading:** Extract `version` (e.g., "v17.0") and `name` (e.g., "Git Push and Pull Integration") from the `<milestone>` tag in the prompt.
102
+
103
+ **If no `<milestone>` block provided:** Default to `v1.0` / `milestone` (greenfield).
104
+
105
+ **Usage:**
106
+
107
+ When writing **STATE.md frontmatter**, use the provided version:
108
+ ```yaml
109
+ ---
110
+ dgs_state_version: 1.0
111
+ milestone: {version} # e.g., v17.0, NOT hardcoded v1.0
112
+ milestone_name: {name}
113
+ status: planning
114
+ ---
115
+ ```
116
+
117
+ When writing **ROADMAP.md**, use the version in milestone headings and references instead of assuming v1.0.
118
+
119
+ </milestone_handling>
120
+
95
121
  <goal_backward_phases>
96
122
 
97
123
  ## Deriving Phase Success Criteria
@@ -402,6 +428,7 @@ Orchestrator provides:
402
428
  - REQUIREMENTS.md content (v1 requirements with REQ-IDs)
403
429
  - research/SUMMARY.md content (if exists - phase suggestions)
404
430
  - config.json (granularity setting)
431
+ - Milestone version and name (from `<milestone>` block -- use when writing STATE.md/ROADMAP.md)
405
432
 
406
433
  Parse and confirm understanding before proceeding.
407
434
 
@@ -462,8 +489,10 @@ If gaps found, include in draft for user decision.
462
489
  Write files first, then return. This ensures artifacts persist even if context is lost.
463
490
 
464
491
  1. **Write ROADMAP.md** using output format
492
+ Use milestone version from `<milestone>` block for headings (e.g., "v17.0 [Name]" not "v1.0 MVP").
465
493
 
466
494
  2. **Write STATE.md** using output format
495
+ Use milestone version from `<milestone>` block in frontmatter (`milestone: {version}`, `milestone_name: {name}`).
467
496
 
468
497
  3. **Update REQUIREMENTS.md traceability section**
469
498
 
@@ -397,6 +397,7 @@ function cmdInitNewProject(cwd, raw) {
397
397
  const config = loadConfig(cwd);
398
398
  const ctx = resolveProjectContext(cwd);
399
399
  const planRootRel = path.relative(cwd, getPlanningRoot(cwd)) || '.';
400
+ const milestone = getMilestoneInfo(cwd);
400
401
 
401
402
  // Detect Brave Search API key availability
402
403
  const homedir = require('os').homedir();
@@ -461,6 +462,10 @@ function cmdInitNewProject(cwd, raw) {
461
462
  requirements_path: ctx.root ? path.join(ctx.root, 'REQUIREMENTS.md') : path.join(planRootRel, 'REQUIREMENTS.md'),
462
463
  research_dir: ctx.root ? path.join(ctx.root, 'research') : path.join(planRootRel, 'research'),
463
464
 
465
+ // Milestone info (product-level, shared across projects)
466
+ milestone_version: milestone.version,
467
+ milestone_name: milestone.name,
468
+
464
469
  // v2 context
465
470
  dgs_mode: ctx.dgs_mode,
466
471
  current_project: ctx.current_project,
@@ -227,6 +227,14 @@ describe('v1 mode: init new-project', () => {
227
227
  it('returns dgs_mode v1', () => {
228
228
  assert.equal(result.dgs_mode, 'v1');
229
229
  });
230
+
231
+ it('returns milestone_version defaulting to v1.0 when no milestones exist', () => {
232
+ assert.equal(result.milestone_version, 'v1.0');
233
+ });
234
+
235
+ it('returns milestone_name defaulting to milestone', () => {
236
+ assert.equal(result.milestone_name, 'milestone');
237
+ });
230
238
  });
231
239
 
232
240
  // ─── v1 Mode: other init commands ────────────────────────────────────────────
@@ -462,6 +470,10 @@ describe('v2 mode with project: init new-project', () => {
462
470
  it('returns dgs_mode v2', () => {
463
471
  assert.equal(result.dgs_mode, 'v2');
464
472
  });
473
+
474
+ it('returns milestone_version defaulting to v1.0 when no milestones exist', () => {
475
+ assert.equal(result.milestone_version, 'v1.0');
476
+ });
465
477
  });
466
478
 
467
479
  describe('v2 mode with project: init progress', () => {
@@ -64,7 +64,7 @@ If the `--auto` argument references a spec file path or spec ID:
64
64
  INIT=$(node ~/.claude/deliver-great-systems/bin/dgs-tools.cjs init new-project)
65
65
  ```
66
66
 
67
- Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`, `project_path`, `state_path`, `roadmap_path`, `requirements_path`, `research_dir`.
67
+ Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`, `project_path`, `state_path`, `roadmap_path`, `requirements_path`, `research_dir`, `milestone_version`, `milestone_name`.
68
68
 
69
69
  Load planning-tier context files:
70
70
 
@@ -857,6 +857,11 @@ Task(prompt="
857
857
  ${product_doc_files}
858
858
  </files_to_read>
859
859
 
860
+ <milestone>
861
+ version: ${milestone_version}
862
+ name: ${milestone_name}
863
+ </milestone>
864
+
860
865
  </planning_context>
861
866
 
862
867
  <instructions>
@@ -864,6 +869,7 @@ Create roadmap:
864
869
  1. Derive phases from requirements (don't impose structure)
865
870
  2. Map every v1 requirement to exactly one phase
866
871
  3. Derive 2-5 success criteria per phase (observable user behaviors)
872
+ Use the milestone version from <milestone> when writing STATE.md frontmatter and ROADMAP.md headings.
867
873
  4. Validate 100% coverage
868
874
  5. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
869
875
  6. Return ROADMAP CREATED with summary
@@ -208,8 +208,7 @@ Commit message is NOT shown to user before committing — just commit silently.
208
208
  **F5. Commit**
209
209
 
210
210
  ```bash
211
- git add -A
212
- git commit -m "${commit_message}"
211
+ node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" commit "${commit_message}" --push
213
212
  ```
214
213
 
215
214
  Get the short hash:
@@ -264,11 +263,11 @@ If archival occurred (result contains `"archived": true`), `.planning/quick/HIST
264
263
  Commit STATE.md and HISTORY.md together so archival data is persisted:
265
264
 
266
265
  ```bash
267
- git add "${state_path}"
266
+ FILE_LIST="${state_path}"
268
267
  if [ -f "${project_root}/quick/HISTORY.md" ]; then
269
- git add "${project_root}/quick/HISTORY.md"
268
+ FILE_LIST="${FILE_LIST} ${project_root}/quick/HISTORY.md"
270
269
  fi
271
- git commit -m "docs(quick-${quick_id}): track fast task" 2>/dev/null || true
270
+ node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" commit "docs(quick-${quick_id}): track fast task" --push --files ${FILE_LIST} 2>/dev/null || true
272
271
  ```
273
272
 
274
273
  The `|| true` handles the case where nothing changed (e.g., STATE.md wasn't modified).
@@ -276,6 +276,11 @@ Set config:
276
276
  node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" config-set workflow.discipline true
277
277
  ```
278
278
 
279
+ Track CLAUDE.md as modified:
280
+ ```bash
281
+ MODIFIED_FILES="${MODIFIED_FILES} ./CLAUDE.md"
282
+ ```
283
+
279
284
  Display: `Workflow discipline: On`
280
285
 
281
286
  **If user selects "Off" (toggle off):**
@@ -314,6 +319,11 @@ Set config:
314
319
  node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" config-set workflow.discipline false
315
320
  ```
316
321
 
322
+ Track CLAUDE.md as modified:
323
+ ```bash
324
+ MODIFIED_FILES="${MODIFIED_FILES} ./CLAUDE.md"
325
+ ```
326
+
317
327
  Display: `Workflow discipline: Off`
318
328
 
319
329
  **If "Cancel":**
@@ -421,6 +431,12 @@ Do NOT use AskUserQuestion for any review settings.
421
431
  </step>
422
432
 
423
433
  <step name="update_config">
434
+ Track which files will be modified for the commit step:
435
+
436
+ ```bash
437
+ MODIFIED_FILES="${config_path}"
438
+ ```
439
+
424
440
  Merge new settings into existing config:
425
441
 
426
442
  ```json
@@ -497,6 +513,20 @@ Write `~/.dgs/defaults.json` with:
497
513
  ```
498
514
  </step>
499
515
 
516
+ <step name="commit_and_push">
517
+ Commit the config changes and push if sync_push is enabled:
518
+
519
+ ```bash
520
+ node "$HOME/.claude/deliver-great-systems/bin/dgs-tools.cjs" commit "chore: update DGS settings" --push --files ${MODIFIED_FILES}
521
+ ```
522
+
523
+ This uses dgs-tools commit which:
524
+ - Stages only the specified files
525
+ - Creates the commit
526
+ - With --push, reads sync_push from config and pushes when mode is "auto" (silently) or "prompt" (asks first)
527
+ - If sync_push is "off", no push occurs (commit-only)
528
+ </step>
529
+
500
530
  <step name="confirm">
501
531
  Display:
502
532
 
@@ -121,7 +121,7 @@ Exit.
121
121
  <step name="show_changes_and_confirm">
122
122
  **If update available**, fetch and show what's new BEFORE updating:
123
123
 
124
- 1. Fetch changelog from GitHub raw URL
124
+ 1. Read changelog from installed package (CHANGELOG.md in the DGS install directory)
125
125
  2. Extract entries between installed and latest versions
126
126
  3. Display preview and ask for confirmation:
127
127
 
@@ -209,7 +209,7 @@ Format completion message (changelog was already shown in confirmation step):
209
209
 
210
210
  ⚠️ Restart Claude Code to pick up the new commands.
211
211
 
212
- [View full changelog](https://github.com/glittercowboy/deliver-great-systems/blob/main/CHANGELOG.md)
212
+ [View full changelog](https://github.com/KT-Partners-Ltd/deliver-great-systems/blob/main/CHANGELOG.md)
213
213
  ```
214
214
  </step>
215
215
 
package/package.json CHANGED
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "@ktpartners/dgs-platform",
3
3
  "homepage": "https://kt-partners-ltd.github.io/dgs-platform-docs/",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git+https://github.com/KT-Partners-Ltd/deliver-great-systems.git"
7
+ },
4
8
  "bugs": {
5
9
  "url": "https://github.com/KT-Partners-Ltd/dgs-platform-docs/issues"
6
10
  },
7
- "version": "2.7.3",
11
+ "version": "2.7.5",
8
12
  "description": "Deliver Great Systems Platform — A meta-prompting, context engineering and spec-driven development system for Claude Code and Gemini by KT Partners.",
9
13
  "bin": {
10
14
  "dgs": "bin/install.js"
@@ -18,7 +22,8 @@
18
22
  "agents",
19
23
  "hooks/dist",
20
24
  "scripts",
21
- "LICENSE"
25
+ "LICENSE",
26
+ "CHANGELOG.md"
22
27
  ],
23
28
  "keywords": [
24
29
  "claude",