gsd-opencode 1.30.0 → 1.33.1

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 (113) hide show
  1. package/agents/gsd-debugger.md +0 -1
  2. package/agents/gsd-doc-verifier.md +207 -0
  3. package/agents/gsd-doc-writer.md +608 -0
  4. package/agents/gsd-executor.md +22 -1
  5. package/agents/gsd-phase-researcher.md +41 -0
  6. package/agents/gsd-plan-checker.md +82 -0
  7. package/agents/gsd-planner.md +123 -194
  8. package/agents/gsd-security-auditor.md +129 -0
  9. package/agents/gsd-ui-auditor.md +40 -0
  10. package/agents/gsd-user-profiler.md +2 -2
  11. package/agents/gsd-verifier.md +84 -18
  12. package/commands/gsd/gsd-add-backlog.md +1 -1
  13. package/commands/gsd/gsd-analyze-dependencies.md +34 -0
  14. package/commands/gsd/gsd-autonomous.md +6 -2
  15. package/commands/gsd/gsd-cleanup.md +5 -0
  16. package/commands/gsd/gsd-debug.md +24 -21
  17. package/commands/gsd/gsd-discuss-phase.md +7 -2
  18. package/commands/gsd/gsd-docs-update.md +48 -0
  19. package/commands/gsd/gsd-execute-phase.md +4 -0
  20. package/commands/gsd/gsd-help.md +2 -0
  21. package/commands/gsd/gsd-join-discord.md +2 -1
  22. package/commands/gsd/gsd-manager.md +1 -0
  23. package/commands/gsd/gsd-new-project.md +4 -0
  24. package/commands/gsd/gsd-plan-phase.md +5 -0
  25. package/commands/gsd/gsd-quick.md +5 -3
  26. package/commands/gsd/gsd-reapply-patches.md +171 -39
  27. package/commands/gsd/gsd-research-phase.md +2 -12
  28. package/commands/gsd/gsd-review-backlog.md +1 -0
  29. package/commands/gsd/gsd-review.md +3 -2
  30. package/commands/gsd/gsd-secure-phase.md +35 -0
  31. package/commands/gsd/gsd-set-profile.md +0 -1
  32. package/commands/gsd/gsd-thread.md +1 -1
  33. package/commands/gsd/gsd-workstreams.md +7 -2
  34. package/get-shit-done/bin/gsd-tools.cjs +42 -8
  35. package/get-shit-done/bin/lib/commands.cjs +68 -14
  36. package/get-shit-done/bin/lib/config.cjs +18 -10
  37. package/get-shit-done/bin/lib/core.cjs +383 -80
  38. package/get-shit-done/bin/lib/docs.cjs +267 -0
  39. package/get-shit-done/bin/lib/frontmatter.cjs +47 -2
  40. package/get-shit-done/bin/lib/init.cjs +85 -5
  41. package/get-shit-done/bin/lib/milestone.cjs +21 -0
  42. package/get-shit-done/bin/lib/model-profiles.cjs +2 -0
  43. package/get-shit-done/bin/lib/phase.cjs +232 -189
  44. package/get-shit-done/bin/lib/profile-output.cjs +97 -1
  45. package/get-shit-done/bin/lib/roadmap.cjs +137 -113
  46. package/get-shit-done/bin/lib/schema-detect.cjs +238 -0
  47. package/get-shit-done/bin/lib/security.cjs +5 -3
  48. package/get-shit-done/bin/lib/state.cjs +366 -44
  49. package/get-shit-done/bin/lib/verify.cjs +158 -14
  50. package/get-shit-done/bin/lib/workstream.cjs +6 -2
  51. package/get-shit-done/references/agent-contracts.md +79 -0
  52. package/get-shit-done/references/artifact-types.md +113 -0
  53. package/get-shit-done/references/context-budget.md +49 -0
  54. package/get-shit-done/references/continuation-format.md +15 -15
  55. package/get-shit-done/references/domain-probes.md +125 -0
  56. package/get-shit-done/references/gate-prompts.md +100 -0
  57. package/get-shit-done/references/model-profiles.md +2 -2
  58. package/get-shit-done/references/planner-gap-closure.md +62 -0
  59. package/get-shit-done/references/planner-reviews.md +39 -0
  60. package/get-shit-done/references/planner-revision.md +87 -0
  61. package/get-shit-done/references/planning-config.md +15 -0
  62. package/get-shit-done/references/revision-loop.md +97 -0
  63. package/get-shit-done/references/ui-brand.md +2 -2
  64. package/get-shit-done/references/universal-anti-patterns.md +58 -0
  65. package/get-shit-done/references/workstream-flag.md +56 -3
  66. package/get-shit-done/templates/SECURITY.md +61 -0
  67. package/get-shit-done/templates/VALIDATION.md +3 -3
  68. package/get-shit-done/templates/claude-md.md +27 -4
  69. package/get-shit-done/templates/config.json +4 -0
  70. package/get-shit-done/templates/debug-subagent-prompt.md +2 -6
  71. package/get-shit-done/templates/planner-subagent-prompt.md +2 -10
  72. package/get-shit-done/workflows/add-phase.md +2 -2
  73. package/get-shit-done/workflows/add-todo.md +1 -1
  74. package/get-shit-done/workflows/analyze-dependencies.md +96 -0
  75. package/get-shit-done/workflows/audit-milestone.md +8 -12
  76. package/get-shit-done/workflows/autonomous.md +158 -13
  77. package/get-shit-done/workflows/check-todos.md +2 -2
  78. package/get-shit-done/workflows/complete-milestone.md +13 -4
  79. package/get-shit-done/workflows/diagnose-issues.md +8 -6
  80. package/get-shit-done/workflows/discovery-phase.md +1 -1
  81. package/get-shit-done/workflows/discuss-phase-assumptions.md +24 -6
  82. package/get-shit-done/workflows/discuss-phase-power.md +291 -0
  83. package/get-shit-done/workflows/discuss-phase.md +153 -20
  84. package/get-shit-done/workflows/docs-update.md +1093 -0
  85. package/get-shit-done/workflows/execute-phase.md +362 -66
  86. package/get-shit-done/workflows/execute-plan.md +1 -1
  87. package/get-shit-done/workflows/help.md +9 -6
  88. package/get-shit-done/workflows/insert-phase.md +2 -2
  89. package/get-shit-done/workflows/manager.md +27 -26
  90. package/get-shit-done/workflows/map-codebase.md +10 -32
  91. package/get-shit-done/workflows/new-milestone.md +14 -8
  92. package/get-shit-done/workflows/new-project.md +48 -25
  93. package/get-shit-done/workflows/next.md +1 -1
  94. package/get-shit-done/workflows/note.md +1 -1
  95. package/get-shit-done/workflows/pause-work.md +73 -10
  96. package/get-shit-done/workflows/plan-milestone-gaps.md +2 -2
  97. package/get-shit-done/workflows/plan-phase.md +184 -32
  98. package/get-shit-done/workflows/progress.md +20 -20
  99. package/get-shit-done/workflows/quick.md +102 -84
  100. package/get-shit-done/workflows/research-phase.md +2 -6
  101. package/get-shit-done/workflows/resume-project.md +4 -4
  102. package/get-shit-done/workflows/review.md +56 -3
  103. package/get-shit-done/workflows/secure-phase.md +154 -0
  104. package/get-shit-done/workflows/settings.md +13 -2
  105. package/get-shit-done/workflows/ship.md +13 -4
  106. package/get-shit-done/workflows/transition.md +6 -6
  107. package/get-shit-done/workflows/ui-phase.md +4 -14
  108. package/get-shit-done/workflows/ui-review.md +25 -7
  109. package/get-shit-done/workflows/update.md +165 -16
  110. package/get-shit-done/workflows/validate-phase.md +1 -11
  111. package/get-shit-done/workflows/verify-phase.md +127 -6
  112. package/get-shit-done/workflows/verify-work.md +69 -21
  113. package/package.json +1 -1
@@ -9,8 +9,55 @@ parallel milestone work by multiple OpenCode instances on the same codebase.
9
9
 
10
10
  1. `--ws <name>` flag (explicit, highest priority)
11
11
  2. `GSD_WORKSTREAM` environment variable (per-instance)
12
- 3. `.planning/active-workstream` file (shared, last-writer-wins)
13
- 4. `null` flat mode (no workstreams)
12
+ 3. Session-scoped active workstream pointer in temp storage (per runtime session / terminal)
13
+ 4. `.planning/active-workstream` file (legacy shared fallback when no session key exists)
14
+ 5. `null` — flat mode (no workstreams)
15
+
16
+ ## Why session-scoped pointers exist
17
+
18
+ The shared `.planning/active-workstream` file is fundamentally unsafe when multiple
19
+ OpenCode/Codex instances are active on the same repo at the same time. One session can
20
+ silently repoint another session's `STATE.md`, `ROADMAP.md`, and phase paths.
21
+
22
+ GSD now prefers a session-scoped pointer keyed by runtime/session identity
23
+ (`GSD_SESSION_KEY`, `CODEX_THREAD_ID`, `CLAUDE_CODE_SSE_PORT`, terminal session IDs,
24
+ or the controlling TTY). This keeps concurrent sessions isolated while preserving
25
+ legacy compatibility for runtimes that do not expose a stable session key.
26
+
27
+ ## Session Identity Resolution
28
+
29
+ When GSD resolves the session-scoped pointer in step 3 above, it uses this order:
30
+
31
+ 1. Explicit runtime/session env vars such as `GSD_SESSION_KEY`, `CODEX_THREAD_ID`,
32
+ `CLAUDE_SESSION_ID`, `CLAUDE_CODE_SSE_PORT`, `OPENCODE_SESSION_ID`,
33
+ `GEMINI_SESSION_ID`, `CURSOR_SESSION_ID`, `WINDSURF_SESSION_ID`,
34
+ `TERM_SESSION_ID`, `WT_SESSION`, `TMUX_PANE`, and `ZELLIJ_SESSION_NAME`
35
+ 2. `TTY` or `SSH_TTY` if the shell/runtime already exposes the terminal path
36
+ 3. A single best-effort `tty` probe, but only when stdin is interactive
37
+
38
+ If none of those produce a stable identity, GSD does not keep probing. It falls
39
+ back directly to the legacy shared `.planning/active-workstream` file.
40
+
41
+ This matters in headless or stripped environments: when stdin is already
42
+ non-interactive, GSD intentionally skips shelling out to `tty` because that path
43
+ cannot discover a stable session identity and only adds avoidable failures on the
44
+ routing hot path.
45
+
46
+ ## Pointer Lifecycle
47
+
48
+ Session-scoped pointers are intentionally lightweight and best-effort:
49
+
50
+ - Clearing a workstream for one session removes only that session's pointer file
51
+ - If that was the last pointer for the repo, GSD also removes the now-empty
52
+ per-project temp directory
53
+ - If sibling session pointers still exist, the temp directory is left in place
54
+ - When a pointer refers to a workstream directory that no longer exists, GSD
55
+ treats it as stale state: it removes that pointer file and resolves to `null`
56
+ until the session explicitly sets a new active workstream again
57
+
58
+ GSD does not currently run a background garbage collector for historical temp
59
+ directories. Cleanup is opportunistic at the pointer being cleared or self-healed,
60
+ and broader temp hygiene is left to OS temp cleanup or future maintenance work.
14
61
 
15
62
  ## Routing Propagation
16
63
 
@@ -29,7 +76,7 @@ This ensures workstream scope chains automatically through the workflow:
29
76
  ├── config.json # Shared
30
77
  ├── milestones/ # Shared
31
78
  ├── codebase/ # Shared
32
- ├── active-workstream # Points to current ws
79
+ ├── active-workstream # Legacy shared fallback only
33
80
  └── workstreams/
34
81
  ├── feature-a/ # Workstream A
35
82
  │ ├── STATE.md
@@ -50,6 +97,12 @@ This ensures workstream scope chains automatically through the workflow:
50
97
  node gsd-tools.cjs state json --ws feature-a
51
98
  node gsd-tools.cjs find-phase 3 --ws feature-b
52
99
 
100
+ # Session-local switching without --ws on every command
101
+ GSD_SESSION_KEY=my-terminal-a node gsd-tools.cjs workstream set feature-a
102
+ GSD_SESSION_KEY=my-terminal-a node gsd-tools.cjs state json
103
+ GSD_SESSION_KEY=my-terminal-b node gsd-tools.cjs workstream set feature-b
104
+ GSD_SESSION_KEY=my-terminal-b node gsd-tools.cjs state json
105
+
53
106
  # Workstream CRUD
54
107
  node gsd-tools.cjs workstream create <name>
55
108
  node gsd-tools.cjs workstream list
@@ -0,0 +1,61 @@
1
+ ---
2
+ phase: {N}
3
+ slug: {phase-slug}
4
+ status: draft
5
+ threats_open: 0
6
+ asvs_level: 1
7
+ created: {date}
8
+ ---
9
+
10
+ # Phase {N} — Security
11
+
12
+ > Per-phase security contract: threat register, accepted risks, and audit trail.
13
+
14
+ ---
15
+
16
+ ## Trust Boundaries
17
+
18
+ | Boundary | Description | Data Crossing |
19
+ |----------|-------------|---------------|
20
+ | {boundary} | {description} | {data type / sensitivity} |
21
+
22
+ ---
23
+
24
+ ## Threat Register
25
+
26
+ | Threat ID | Category | Component | Disposition | Mitigation | Status |
27
+ |-----------|----------|-----------|-------------|------------|--------|
28
+ | T-{N}-01 | {STRIDE category} | {component} | {mitigate / accept / transfer} | {control or reference} | open |
29
+
30
+ *Status: open · closed*
31
+ *Disposition: mitigate (implementation required) · accept (documented risk) · transfer (third-party)*
32
+
33
+ ---
34
+
35
+ ## Accepted Risks Log
36
+
37
+ | Risk ID | Threat Ref | Rationale | Accepted By | Date |
38
+ |---------|------------|-----------|-------------|------|
39
+
40
+ *Accepted risks do not resurface in future audit runs.*
41
+
42
+ *If none: "No accepted risks."*
43
+
44
+ ---
45
+
46
+ ## Security Audit Trail
47
+
48
+ | Audit Date | Threats Total | Closed | Open | Run By |
49
+ |------------|---------------|--------|------|--------|
50
+ | {YYYY-MM-DD} | {N} | {N} | {N} | {name / agent} |
51
+
52
+ ---
53
+
54
+ ## Sign-Off
55
+
56
+ - [ ] All threats have a disposition (mitigate / accept / transfer)
57
+ - [ ] Accepted risks documented in Accepted Risks Log
58
+ - [ ] `threats_open: 0` confirmed
59
+ - [ ] `status: verified` set in frontmatter
60
+
61
+ **Approval:** {pending / verified YYYY-MM-DD}
@@ -36,9 +36,9 @@ created: {date}
36
36
 
37
37
  ## Per-task Verification Map
38
38
 
39
- | task ID | Plan | Wave | Requirement | Test Type | Automated Command | File Exists | Status |
40
- |---------|------|------|-------------|-----------|-------------------|-------------|--------|
41
- | {N}-01-01 | 01 | 1 | REQ-{XX} | unit | `{command}` | ✅ / ❌ W0 | ⬜ pending |
39
+ | task ID | Plan | Wave | Requirement | Threat Ref | Secure Behavior | Test Type | Automated Command | File Exists | Status |
40
+ |---------|------|------|-------------|------------|-----------------|-----------|-------------------|-------------|--------|
41
+ | {N}-01-01 | 01 | 1 | REQ-{XX} | T-{N}-01 / — | {expected secure behavior or "N/A"} | unit | `{command}` | ✅ / ❌ W0 | ⬜ pending |
42
42
 
43
43
  *Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
44
44
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  Template for project-root `AGENTS.md` — auto-generated by `gsd-tools generate-OpenCode-md`.
4
4
 
5
- Contains 6 marker-bounded sections. Each section is independently updatable.
6
- The `generate-OpenCode-md` subcommand manages 5 sections (project, stack, conventions, architecture, workflow enforcement).
5
+ Contains 7 marker-bounded sections. Each section is independently updatable.
6
+ The `generate-OpenCode-md` subcommand manages 6 sections (project, stack, conventions, architecture, skills, workflow enforcement).
7
7
  The profile section is managed exclusively by `generate-OpenCode-profile`.
8
8
 
9
9
  ---
@@ -66,6 +66,28 @@ Conventions not yet established. Will populate as patterns emerge during develop
66
66
  Architecture not yet mapped. Follow existing patterns found in the codebase.
67
67
  ```
68
68
 
69
+ ### Skills Section
70
+ ```
71
+ <!-- GSD:skills-start source:skills/ -->
72
+ ## Project Skills
73
+
74
+ | skill | Description | Path |
75
+ | -------------- | --------------------- | ------------------------- |
76
+ | {{skill_name}} | {{skill_description}} | `{{skill_path}}/SKILL.md` |
77
+ <!-- GSD:skills-end -->
78
+ ```
79
+
80
+ **Fallback text:**
81
+ ```
82
+ No project skills found. Add skills to any of: `.OpenCode/skills/`, `.agents/skills/`, `.cursor/skills/`, or `.github/skills/` with a `SKILL.md` index file.
83
+ ```
84
+
85
+ **Discovery behavior:**
86
+ - Scans `.OpenCode/skills/`, `.agents/skills/`, `.cursor/skills/`, `.github/skills/` for subdirectories containing `SKILL.md`
87
+ - Extracts `name` and `description` from YAML frontmatter (supports multi-line descriptions)
88
+ - Skips GSD's own installed skills (directories starting with `gsd-`)
89
+ - Deduplicates by skill name across directories
90
+
69
91
  ### Workflow Enforcement Section
70
92
  ```
71
93
  <!-- GSD:workflow-start source:GSD defaults -->
@@ -104,8 +126,9 @@ AGENTS.md file and no profile section exists yet.
104
126
  2. **Stack** — Technology choices (what tools are used)
105
127
  3. **Conventions** — Code patterns and rules (how code is written)
106
128
  4. **Architecture** — System structure (how components fit together)
107
- 5. **Workflow Enforcement** — Default GSD entry points for file-changing work
108
- 6. **Profile** — Developer behavioral preferences (how to interact)
129
+ 5. **Skills** — Discovered project skills with name and description (what domain knowledge is available)
130
+ 6. **Workflow Enforcement** — Default GSD entry points for file-changing work
131
+ 7. **Profile** — Developer behavioral preferences (how to interact)
109
132
 
110
133
  ## Marker Format
111
134
 
@@ -7,6 +7,9 @@
7
7
  "verifier": true,
8
8
  "auto_advance": false,
9
9
  "nyquist_validation": true,
10
+ "security_enforcement": true,
11
+ "security_asvs_level": 1,
12
+ "security_block_on": "high",
10
13
  "discuss_mode": "discuss",
11
14
  "research_before_questions": false
12
15
  },
@@ -40,5 +43,6 @@
40
43
  "hooks": {
41
44
  "context_warnings": true
42
45
  },
46
+ "project_code": null,
43
47
  "agent_skills": {}
44
48
  }
@@ -53,16 +53,12 @@ Create: .planning/debug/{slug}.md
53
53
 
54
54
  **From /gsd-debug:**
55
55
  ```python
56
- task(
57
- prompt=filled_template,
58
- subagent_type="gsd-debugger",
59
- description="Debug {slug}"
60
- )
56
+ @gsd-debugger filled_template
61
57
  ```
62
58
 
63
59
  **From diagnose-issues (UAT):**
64
60
  ```python
65
- task(prompt=template, subagent_type="gsd-debugger", description="Debug UAT-001")
61
+ @gsd-debugger template
66
62
  ```
67
63
 
68
64
  ---
@@ -70,20 +70,12 @@ Before returning PLANNING COMPLETE:
70
70
 
71
71
  **From /gsd-plan-phase (standard mode):**
72
72
  ```python
73
- task(
74
- prompt=filled_template,
75
- subagent_type="gsd-planner",
76
- description="Plan Phase {phase}"
77
- )
73
+ @gsd-planner filled_template
78
74
  ```
79
75
 
80
76
  **From /gsd-plan-phase --gaps (gap closure mode):**
81
77
  ```python
82
- task(
83
- prompt=filled_template, # with mode: gap_closure
84
- subagent_type="gsd-planner",
85
- description="Plan gaps for Phase {phase}"
86
- )
78
+ @gsd-planner filled_template
87
79
  ```
88
80
 
89
81
  ---
@@ -87,9 +87,9 @@ Roadmap updated: .planning/ROADMAP.md
87
87
 
88
88
  **Phase {N}: {description}**
89
89
 
90
- `/gsd-plan-phase {N}`
90
+ `/new` then:
91
91
 
92
- *`/new` first → fresh context window*
92
+ `/gsd-plan-phase {N}`
93
93
 
94
94
  ---
95
95
 
@@ -20,7 +20,7 @@ Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos
20
20
 
21
21
  Ensure directories exist:
22
22
  ```bash
23
- mkdir -p .planning/todos/pending .planning/todos/done
23
+ mkdir -p .planning/todos/pending .planning/todos/completed
24
24
  ```
25
25
 
26
26
  Note existing areas from the todos array for consistency in infer_area step.
@@ -0,0 +1,96 @@
1
+ <objective>
2
+ Analyze ROADMAP.md phases for dependency relationships before execution. Detect file overlap between phases, semantic API/data-flow dependencies, and suggest `Depends on` entries to prevent merge conflicts during parallel execution by `/gsd-manager`.
3
+ </objective>
4
+
5
+ <process>
6
+
7
+ ## 1. Load ROADMAP.md
8
+
9
+ read `.planning/ROADMAP.md`. If it does not exist, error: "No ROADMAP.md found — run `/gsd-new-project` first."
10
+
11
+ Extract all phases. For each phase capture:
12
+ - Phase number and name
13
+ - Scope/Goal description
14
+ - Files listed in `Files` or `files_modified` fields (if present)
15
+ - Existing `Depends on` field value
16
+
17
+ ## 2. Infer Likely File Modifications
18
+
19
+ For each phase without explicit `files_modified`, analyze the scope/goal description to infer which files will likely be modified. Use these heuristics:
20
+
21
+ - **Database/schema phases** → migration files, schema definitions, model files
22
+ - **API/backend phases** → route files, controller files, service files, handler files
23
+ - **Frontend/UI phases** → component files, page files, style files
24
+ - **Auth phases** → middleware files, auth route files, session/token files
25
+ - **Config/infra phases** → config files, environment files, CI/CD files
26
+ - **Test phases** → test files, spec files, fixture files
27
+ - **Shared utility phases** → lib/utils files, shared type definitions
28
+
29
+ Group phases by their inferred file domain (database, API, frontend, auth, config, shared).
30
+
31
+ ## 3. Detect Dependency Relationships
32
+
33
+ For each pair of phases (A, B), check for dependency signals:
34
+
35
+ ### File Overlap Detection
36
+ If phases A and B will both modify files in the same domain or the same specific files, one must run before the other. The phase that *provides* the foundation runs first.
37
+
38
+ ### Semantic Dependency Detection
39
+ read each phase's scope/goal for these patterns:
40
+ - Phase B mentions consuming, using, or calling something that Phase A creates/implements
41
+ - Phase B references an "API", "schema", "model", "endpoint", or "interface" that Phase A builds
42
+ - Phase B says "after X is complete", "once X is built", "using the X from Phase N"
43
+ - Phase B extends or modifies code that Phase A establishes
44
+
45
+ ### Data Flow Detection
46
+ - Phase A creates data structures, schemas, or types → Phase B consumes or transforms them
47
+ - Phase A seeds/migrates the database → Phase B reads from that database
48
+ - Phase A exposes an API contract → Phase B implements the client for that contract
49
+
50
+ ## 4. Build Dependency Table
51
+
52
+ Output a dependency suggestion table:
53
+
54
+ ```
55
+ Phase Dependency Analysis
56
+ =========================
57
+
58
+ Phase N: <name>
59
+ Scope: <brief scope>
60
+ Likely touches: <inferred file domains>
61
+
62
+ Suggested dependencies:
63
+ → Depends on: <Phase M> — reason: <overlap/semantic/data-flow explanation>
64
+
65
+ Current "Depends on": <existing value or "(none)">
66
+ ```
67
+
68
+ For phase pairs with no detected dependency, state: "No dependency detected between Phase X and Phase Y."
69
+
70
+ ## 5. Summarize Suggested Changes
71
+
72
+ Show a consolidated diff of proposed ROADMAP.md `Depends on` changes:
73
+
74
+ ```
75
+ Suggested ROADMAP.md updates:
76
+ Phase 3: add "Depends on: 1, 2" (file overlap: database schema)
77
+ Phase 5: add "Depends on: 3" (semantic: uses auth API from Phase 3)
78
+ Phase 4: no change needed (independent scope)
79
+ ```
80
+
81
+ ## 6. Confirm and Apply
82
+
83
+ Ask the user: "Apply these `Depends on` suggestions to ROADMAP.md? (yes / no / edit)"
84
+
85
+ - **yes** — write all suggested `Depends on` entries to ROADMAP.md. Confirm each write.
86
+ - **no** — Print the suggestions as text only. User updates manually.
87
+ - **edit** — Present each suggestion individually with yes/no/skip per suggestion.
88
+
89
+ When writing to ROADMAP.md:
90
+ - Locate the phase entry and add or update the `Depends on:` field
91
+ - Preserve all other phase content unchanged
92
+ - Do not reorder phases
93
+
94
+ After applying: "ROADMAP.md updated. Run `/gsd-manager` to execute phases in the correct order."
95
+
96
+ </process>
@@ -67,8 +67,7 @@ With phase context collected:
67
67
  Extract `MILESTONE_REQ_IDS` from REQUIREMENTS.md traceability table — all REQ-IDs assigned to phases in this milestone.
68
68
 
69
69
  ```
70
- task(
71
- prompt="Check cross-phase integration and E2E flows.
70
+ @gsd-integration-checker "Check cross-phase integration and E2E flows.
72
71
 
73
72
  Phases: {phase_dirs}
74
73
  Phase exports: {from SUMMARYs}
@@ -80,10 +79,7 @@ Milestone Requirements:
80
79
  MUST map each integration finding to affected requirement IDs where applicable.
81
80
 
82
81
  Verify cross-phase wiring and E2E user flows.
83
- ${AGENT_SKILLS_CHECKER}",
84
- subagent_type="gsd-integration-checker",
85
- model="{integration_checker_model}"
86
- )
82
+ ${AGENT_SKILLS_CHECKER}"
87
83
  ```
88
84
 
89
85
  ## 4. Collect Results
@@ -229,9 +225,9 @@ All requirements covered. Cross-phase integration verified. E2E flows complete.
229
225
 
230
226
  **Complete milestone** — archive and tag
231
227
 
232
- /gsd-complete-milestone {version}
228
+ /new then:
233
229
 
234
- */new first → fresh context window*
230
+ /gsd-complete-milestone {version}
235
231
 
236
232
  ───────────────────────────────────────────────────────────────
237
233
 
@@ -274,9 +270,9 @@ Phases needing validation: run `/gsd-validate-phase {N}` for each flagged phase.
274
270
 
275
271
  **Plan gap closure** — create phases to complete milestone
276
272
 
277
- /gsd-plan-milestone-gaps
273
+ /new then:
278
274
 
279
- */new first → fresh context window*
275
+ /gsd-plan-milestone-gaps
280
276
 
281
277
  ───────────────────────────────────────────────────────────────
282
278
 
@@ -316,9 +312,9 @@ All requirements met. No critical blockers. Accumulated tech debt needs review.
316
312
 
317
313
  **B. Plan cleanup phase** — address debt before completing
318
314
 
319
- /gsd-plan-milestone-gaps
315
+ /new then:
320
316
 
321
- */new first → fresh context window*
317
+ /gsd-plan-milestone-gaps
322
318
 
323
319
  ───────────────────────────────────────────────────────────────
324
320
  </offer_next>