ragarciaruben 1.20.19 → 1.20.21

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 (91) hide show
  1. package/.github/agents/product-owner.agent.md +98 -0
  2. package/.github/agents/verifier.agent.md +3 -0
  3. package/.github/prompts/break-down-epic.prompt.md +125 -0
  4. package/.github/prompts/create-tickets.prompt.md +93 -0
  5. package/.github/prompts/refine-backlog.prompt.md +88 -0
  6. package/bin/install.js +406 -1969
  7. package/get-shit-done/templates/AGENTS.md +83 -0
  8. package/get-shit-done/templates/opencode/agents/executor.md +61 -0
  9. package/get-shit-done/templates/opencode/agents/planner.md +77 -0
  10. package/get-shit-done/templates/opencode/agents/product-owner.md +65 -0
  11. package/{.github/copilot-context/agents/verifier.agent.md → get-shit-done/templates/opencode/agents/verifier.md} +12 -35
  12. package/get-shit-done/templates/opencode/commands/break-down-epic.md +120 -0
  13. package/get-shit-done/templates/opencode/commands/create-tickets.md +75 -0
  14. package/{.github/copilot-context/prompts/execute-phase.prompt.md → get-shit-done/templates/opencode/commands/execute-phase.md} +5 -33
  15. package/{.github/copilot-context/prompts/map-codebase.prompt.md → get-shit-done/templates/opencode/commands/map-codebase.md} +12 -41
  16. package/{.github/copilot-context/prompts/new-project.prompt.md → get-shit-done/templates/opencode/commands/new-project.md} +17 -33
  17. package/{.github/copilot-context/prompts/pause-work.prompt.md → get-shit-done/templates/opencode/commands/pause-work.md} +6 -19
  18. package/{.github/copilot-context/prompts/plan-phase.prompt.md → get-shit-done/templates/opencode/commands/plan-phase.md} +4 -27
  19. package/{.github/copilot-context/prompts/progress.prompt.md → get-shit-done/templates/opencode/commands/progress.md} +1 -4
  20. package/{.github/copilot-context/prompts/redefine-roadmap.prompt.md → get-shit-done/templates/opencode/commands/redefine-roadmap.md} +8 -21
  21. package/get-shit-done/templates/opencode/commands/refine-backlog.md +77 -0
  22. package/{.github/copilot-context/prompts/resume-work.prompt.md → get-shit-done/templates/opencode/commands/resume-work.md} +2 -13
  23. package/get-shit-done/templates/opencode/commands/set-profile.md +65 -0
  24. package/{.github/copilot-context/prompts/sync-instructions.prompt.md → get-shit-done/templates/opencode/commands/sync-instructions.md} +9 -13
  25. package/{.github/copilot-context/prompts/sync-jira.prompt.md → get-shit-done/templates/opencode/commands/sync-jira.md} +5 -17
  26. package/{.github/copilot-context/prompts/verify-work.prompt.md → get-shit-done/templates/opencode/commands/verify-work.md} +5 -33
  27. package/get-shit-done/templates/opencode.json +15 -0
  28. package/package.json +7 -17
  29. package/.github/copilot-context/README.md +0 -556
  30. package/.github/copilot-context/agents/executor.agent.md +0 -84
  31. package/.github/copilot-context/agents/planner.agent.md +0 -96
  32. package/.github/copilot-context/hooks/hooks.json +0 -11
  33. package/.github/copilot-context/hooks/inject-context.js +0 -107
  34. package/.github/copilot-context/instructions/architecture.instructions.md +0 -33
  35. package/.github/copilot-context/instructions/concerns.instructions.md +0 -30
  36. package/.github/copilot-context/instructions/conventions.instructions.md +0 -25
  37. package/.github/copilot-context/instructions/integrations.instructions.md +0 -30
  38. package/.github/copilot-context/instructions/stack.instructions.md +0 -30
  39. package/.github/copilot-context/instructions/structure.instructions.md +0 -32
  40. package/.github/copilot-context/instructions/testing.instructions.md +0 -25
  41. package/.github/copilot-context/skills/map-codebase/SKILL.md +0 -49
  42. package/.github/copilot-context/skills/project-history/SKILL.md +0 -46
  43. package/.vscode/settings.json +0 -9
  44. package/agents/gsd-codebase-mapper.md +0 -764
  45. package/agents/gsd-debugger.md +0 -1246
  46. package/agents/gsd-executor.md +0 -469
  47. package/agents/gsd-integration-checker.md +0 -443
  48. package/agents/gsd-phase-researcher.md +0 -546
  49. package/agents/gsd-plan-checker.md +0 -690
  50. package/agents/gsd-planner.md +0 -1275
  51. package/agents/gsd-project-researcher.md +0 -621
  52. package/agents/gsd-research-synthesizer.md +0 -239
  53. package/agents/gsd-roadmapper.md +0 -642
  54. package/agents/gsd-verifier.md +0 -573
  55. package/bin/setup-copilot-context.js +0 -245
  56. package/commands/gsd/add-phase.md +0 -43
  57. package/commands/gsd/add-tests.md +0 -41
  58. package/commands/gsd/add-todo.md +0 -47
  59. package/commands/gsd/audit-milestone.md +0 -36
  60. package/commands/gsd/check-todos.md +0 -45
  61. package/commands/gsd/cleanup.md +0 -18
  62. package/commands/gsd/complete-milestone.md +0 -136
  63. package/commands/gsd/debug.md +0 -167
  64. package/commands/gsd/discuss-phase.md +0 -83
  65. package/commands/gsd/execute-phase.md +0 -41
  66. package/commands/gsd/health.md +0 -22
  67. package/commands/gsd/help.md +0 -22
  68. package/commands/gsd/insert-phase.md +0 -32
  69. package/commands/gsd/join-discord.md +0 -18
  70. package/commands/gsd/list-phase-assumptions.md +0 -46
  71. package/commands/gsd/map-codebase.md +0 -71
  72. package/commands/gsd/new-milestone.md +0 -44
  73. package/commands/gsd/new-project.md +0 -42
  74. package/commands/gsd/new-project.md.bak +0 -1041
  75. package/commands/gsd/pause-work.md +0 -38
  76. package/commands/gsd/plan-milestone-gaps.md +0 -34
  77. package/commands/gsd/plan-phase.md +0 -45
  78. package/commands/gsd/progress.md +0 -24
  79. package/commands/gsd/quick.md +0 -41
  80. package/commands/gsd/reapply-patches.md +0 -110
  81. package/commands/gsd/remove-phase.md +0 -31
  82. package/commands/gsd/research-phase.md +0 -189
  83. package/commands/gsd/resume-work.md +0 -40
  84. package/commands/gsd/set-profile.md +0 -34
  85. package/commands/gsd/settings.md +0 -36
  86. package/commands/gsd/update.md +0 -37
  87. package/commands/gsd/verify-work.md +0 -38
  88. package/hooks/dist/gsd-check-update.js +0 -62
  89. package/hooks/dist/gsd-context-monitor.js +0 -122
  90. package/hooks/dist/gsd-statusline.js +0 -108
  91. package/scripts/build-hooks.js +0 -43
@@ -1,17 +1,11 @@
1
1
  ---
2
- name: map-codebase
3
2
  description: Analyze the codebase and generate structured context documents in .planning/codebase/
4
- mode: agent
5
- tools:
6
- - editFiles
7
- - runInTerminal
8
- - search
9
- - fetch
3
+ agent: executor
10
4
  ---
11
5
 
12
6
  # Map Codebase
13
7
 
14
- Analyze this codebase thoroughly and generate 7 structured context documents in `.planning/codebase/`. These documents will be used by Copilot on every future request to understand the project's architecture, conventions, and constraints.
8
+ Analyze this codebase thoroughly and generate 7 structured context documents in `.planning/codebase/`. These documents will be used on every future request to understand the project's architecture, conventions, and constraints.
15
9
 
16
10
  ## Process
17
11
 
@@ -23,22 +17,17 @@ Work through 4 focus areas in sequence. For each area, explore the codebase usin
23
17
 
24
18
  **Explore:**
25
19
  ```bash
26
- # Package manifests
27
20
  cat package.json 2>/dev/null | head -100
28
21
  cat requirements.txt 2>/dev/null || cat pyproject.toml 2>/dev/null | head -50
29
22
  cat go.mod 2>/dev/null | head -30
30
-
31
- # Config files (list only — NEVER read .env contents)
32
23
  ls -la *.config.* tsconfig.json .nvmrc .python-version 2>/dev/null
33
- ls .env* 2>/dev/null # Note existence only
34
-
35
- # Find external integrations
24
+ ls .env* 2>/dev/null # Note existence only — NEVER read .env contents
36
25
  grep -r "import.*stripe\|import.*supabase\|import.*aws\|import.*prisma\|import.*redis\|import.*sendgrid\|import.*twilio\|import.*openai" src/ --include="*.ts" --include="*.py" 2>/dev/null | head -40
37
26
  ```
38
27
 
39
28
  **Write `.planning/codebase/STACK.md`** with: runtime, frameworks, key dependencies table, dev toolchain, infrastructure, environment variables.
40
29
 
41
- **Write `.planning/codebase/INTEGRATIONS.md`** with: a section per external service including SDK used, config file location, required env vars, key operations.
30
+ **Write `.planning/codebase/INTEGRATIONS.md`** with: a section per external service.
42
31
 
43
32
  ---
44
33
 
@@ -46,19 +35,14 @@ grep -r "import.*stripe\|import.*supabase\|import.*aws\|import.*prisma\|import.*
46
35
 
47
36
  **Explore:**
48
37
  ```bash
49
- # Directory structure
50
- find . -type d -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/.planning/*' -not -path '*/.github/*' | sort | head -60
51
-
52
- # Entry points
38
+ find . -type d -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/.planning/*' -not -path '*/.github/*' -not -path '*/.opencode/*' | sort | head -60
53
39
  ls src/index.* src/main.* src/app.* src/server.* app/page.* 2>/dev/null
54
-
55
- # Understanding layer imports
56
40
  grep -r "^import\|^from" src/ --include="*.ts" --include="*.py" 2>/dev/null | head -80
57
41
  ```
58
42
 
59
- **Write `.planning/codebase/ARCHITECTURE.md`** with: architectural style + rationale, layer diagram with file paths, data flow example (trace a typical request end-to-end), key abstractions table, entry points table, cross-cutting concerns (error handling, logging, auth, validation).
43
+ **Write `.planning/codebase/ARCHITECTURE.md`** with: architectural style, layer diagram, data flow example, key abstractions, entry points, cross-cutting concerns.
60
44
 
61
- **Write `.planning/codebase/STRUCTURE.md`** with: root layout, source tree, and most importantly a **"Where to Put New Code"** table that tells exactly which directory and naming convention to use for each type of file (routes, services, repositories, models, utils, tests, components, etc.).
45
+ **Write `.planning/codebase/STRUCTURE.md`** with: root layout, source tree, and a **"Where to Put New Code"** table.
62
46
 
63
47
  ---
64
48
 
@@ -66,22 +50,17 @@ grep -r "^import\|^from" src/ --include="*.ts" --include="*.py" 2>/dev/null | he
66
50
 
67
51
  **Explore:**
68
52
  ```bash
69
- # Formatting/linting config
70
53
  cat .prettierrc .eslintrc.js .eslintrc.json biome.json 2>/dev/null | head -60
71
54
  cat pyproject.toml 2>/dev/null | grep -A 20 "\[tool\."
72
-
73
- # Test framework
74
55
  ls jest.config.* vitest.config.* pytest.ini setup.cfg 2>/dev/null
75
56
  find . -name "*.test.*" -o -name "*.spec.*" | grep -v node_modules | head -20
76
-
77
- # Look at real code for patterns
78
57
  find src/ -name "*.ts" -not -name "*.test.*" 2>/dev/null | head -5 | xargs head -40 2>/dev/null
79
58
  find tests/ -name "*.test.*" 2>/dev/null | head -3 | xargs head -60 2>/dev/null
80
59
  ```
81
60
 
82
- **Write `.planning/codebase/CONVENTIONS.md`** — be prescriptive ("Use X" not "X is used"). Include: language/formatting rules, naming conventions table, import ordering, error handling patterns, function patterns, TypeScript specifics, comment style. Include real code examples from the codebase.
61
+ **Write `.planning/codebase/CONVENTIONS.md`** — be prescriptive. Include: naming conventions, import ordering, error handling, function patterns, comment style. Include real code examples.
83
62
 
84
- **Write `.planning/codebase/TESTING.md`** with: test framework and run commands, file organization, test structure pattern with real example, mocking strategy, test data approach (factories), integration test setup, what to test and what NOT to test.
63
+ **Write `.planning/codebase/TESTING.md`** with: test framework, run commands, file organization, mocking strategy, what to test and what NOT to test.
85
64
 
86
65
  ---
87
66
 
@@ -89,27 +68,19 @@ find tests/ -name "*.test.*" 2>/dev/null | head -3 | xargs head -60 2>/dev/null
89
68
 
90
69
  **Explore:**
91
70
  ```bash
92
- # TODO/FIXME/HACK comments
93
71
  grep -rn "TODO\|FIXME\|HACK\|XXX\|TEMP\|@deprecated" src/ --include="*.ts" --include="*.py" 2>/dev/null | head -40
94
-
95
- # Potential issues
96
72
  grep -rn "any\b\|@ts-ignore\|@ts-nocheck\|eslint-disable\|# type: ignore\|# noqa" src/ --include="*.ts" --include="*.py" 2>/dev/null | head -30
97
-
98
- # Security patterns
99
73
  grep -rn "eval\|innerHTML\|dangerouslySetInnerHTML\|exec\|shell=True" src/ --include="*.ts" --include="*.py" 2>/dev/null | head -20
100
-
101
- # Large/complex files
102
74
  find src/ -name "*.ts" -o -name "*.py" 2>/dev/null | xargs wc -l 2>/dev/null | sort -rn | head -15
103
75
  ```
104
76
 
105
- **Write `.planning/codebase/CONCERNS.md`** with: health summary table (critical/high/medium counts), critical issues section (with file paths, impact, root cause, fix approach), high-priority debt, fragile areas table with safe-approach guidance, security notes, performance bottlenecks, scaling limits.
77
+ **Write `.planning/codebase/CONCERNS.md`** with: health summary, critical issues, fragile areas, security notes, performance bottlenecks.
106
78
 
107
79
  ---
108
80
 
109
81
  ## Completion
110
82
 
111
- After all 7 files are written, update `.github/copilot-instructions.md`:
83
+ After all 7 files are written, update `AGENTS.md`:
112
84
  - Fill in the "What This Project Is" section from what you learned
113
- - Keep it to 2-3 sentences describing what the product does
114
85
 
115
- Then confirm: "Codebase mapping complete. Generated 7 documents in `.planning/codebase/`. Use `/sync-instructions` to update the Copilot instructions digest."
86
+ Then confirm: "Codebase mapping complete. Generated 7 documents in `.planning/codebase/`. Use `/sync-instructions` to update the instructions digest."
@@ -1,16 +1,11 @@
1
1
  ---
2
- name: new-project
3
2
  description: Initialize .planning/ documentation for a new or existing project — creates PROJECT.md, REQUIREMENTS.md, ROADMAP.md, and STATE.md
4
- mode: agent
5
- tools:
6
- - editFiles
7
- - search
8
- - jira/*
3
+ agent: executor
9
4
  ---
10
5
 
11
6
  # New Project Initialization
12
7
 
13
- Initialize the `.planning/` documentation structure for this project. This generates the source-of-truth documents that power all other Copilot context.
8
+ Initialize the `.planning/` documentation structure for this project. This generates the source-of-truth documents that power all other context.
14
9
 
15
10
  ## Step 1: Gather Project Context
16
11
 
@@ -31,12 +26,8 @@ If the user can't answer some questions, use reasonable defaults and note them a
31
26
 
32
27
  If the user chose Jira as the requirements source:
33
28
 
34
- 1. **Discover the board/sprint:** Use `jira_get_agile_boards` to find the board, then `jira_get_sprints_from_board` to find active/future sprints
35
- 2. **Fetch tickets:** Use the appropriate tool based on what the user provided:
36
- - Project key → `jira_get_project_issues` or `jira_search` with JQL `project = PROJ AND status != Done`
37
- - Sprint → `jira_get_sprint_issues`
38
- - JQL query → `jira_search` with the user's query
39
- - Specific tickets → `jira_get_issue` for each
29
+ 1. **Discover the board/sprint:** Find the board, then find active/future sprints
30
+ 2. **Fetch tickets:** Use the appropriate method based on what the user provided
40
31
  3. **Extract from each ticket:**
41
32
  - Title and description → becomes a requirement
42
33
  - Acceptance criteria → becomes success criteria
@@ -47,59 +38,53 @@ If the user chose Jira as the requirements source:
47
38
 
48
39
  If Jira is not used, skip to Step 3 using manual requirements from the conversation.
49
40
 
50
- ## Step 2: Create PROJECT.md
41
+ ## Step 3: Create PROJECT.md
51
42
 
52
43
  Write `.planning/PROJECT.md` with:
53
44
  - **What This Is:** User's description of the project
54
45
  - **Core Value:** Single sentence of what must always work
55
46
  - **Requirements > Active:** List of v1 requirements as checkboxes
56
- - **Requirements > Out of Scope:** Anything explicitly excluded (infer 2-3 common exclusions from the project type)
47
+ - **Requirements > Out of Scope:** Anything explicitly excluded
57
48
  - **Context:** Background from the conversation
58
49
  - **Constraints:** What the user listed + inferred constraints
59
50
 
60
- ## Step 3: Create REQUIREMENTS.md
51
+ ## Step 4: Create REQUIREMENTS.md
61
52
 
62
53
  Extract requirements into `.planning/REQUIREMENTS.md`:
63
54
  - Assign IDs: `[CATEGORY]-[NN]` (e.g., AUTH-01, CORE-01, UI-01)
64
55
  - **If from Jira:** include the Jira ticket ID alongside the requirement ID (e.g., `AUTH-01 (PROJ-42)`)
65
56
  - Group by logical category (Authentication, Core Features, UI, etc.)
66
57
  - v2 requirements: anything out of scope for now but likely future
67
- - Traceability table: map each requirement to its source (Jira ticket or manual) and Phase (TBD until roadmap)
58
+ - Traceability table: map each requirement to its source and Phase (TBD until roadmap)
68
59
 
69
- ## Step 4: Create ROADMAP.md
60
+ ## Step 5: Create ROADMAP.md
70
61
 
71
62
  Design a logical phase sequence in `.planning/ROADMAP.md`:
72
63
  - **If from Jira:** group related tickets into phases (epics → phase groups, stories → plans within a phase)
73
64
  - **If manual:** group related requirements into phases
74
65
  - Each phase delivers a user-visible increment
75
66
  - Earlier phases enable later phases (dependency chain)
76
- - Phase names should be clear and action-oriented (e.g., "Authentication & User Management", "Core Feature MVP")
77
- - Each phase includes:
78
- - Goal and dependencies
79
- - Requirements covered (with Jira ticket IDs if applicable)
80
- - 2-4 success criteria (from Jira acceptance criteria where available)
81
- - Source: `Jira: PROJ-42, PROJ-43` or `Manual`
82
- - Planned plan count (TBD is fine)
67
+ - Phase names should be clear and action-oriented
68
+ - Each phase includes: Goal, dependencies, requirements covered, 2-4 success criteria, source
83
69
  - Typically 4-8 phases for a standard project
84
70
  - Order by: Jira priority → dependency chain → logical progression
85
71
 
86
- ## Step 5: Create STATE.md
72
+ ## Step 6: Create STATE.md
87
73
 
88
74
  Initialize `.planning/STATE.md`:
89
75
  - Phase: 1 of [N]
90
76
  - Status: Ready to plan
91
77
  - Progress: 0%
92
78
  - Last activity: today's date + "Project initialized"
93
- - All metrics at zero
94
79
 
95
- ## Step 6: Update copilot-instructions.md
80
+ ## Step 7: Update AGENTS.md
96
81
 
97
- Update `.github/copilot-instructions.md`:
82
+ Update `AGENTS.md`:
98
83
  - Fill in "What This Project Is" with the 2-3 sentence description
99
84
  - Fill in "Core value"
100
85
  - Set "Phase: 1 of [N] — [Phase Name]"
101
86
  - Set "Status: Ready to plan"
102
- - Fill in "Active Constraints" from the constraints list
87
+ - Fill in "Active Constraints"
103
88
 
104
89
  ## Completion
105
90
 
@@ -107,13 +92,12 @@ Print a summary:
107
92
  ```
108
93
  ✅ Project initialized: [Project Name]
109
94
  .planning/PROJECT.md — requirements + decisions
110
- .planning/REQUIREMENTS.md — [N] requirements with IDs [+ N from Jira]
95
+ .planning/REQUIREMENTS.md — [N] requirements with IDs
111
96
  .planning/ROADMAP.md — [N] phases
112
97
  .planning/STATE.md — ready to plan
113
- [Jira source: PROJECT / Sprint NAME — N tickets imported]
114
98
 
115
99
  Next steps:
116
100
  1. Run /map-codebase (if existing codebase)
117
- 2. Run @Planner "Plan phase 1" to plan the first phase
101
+ 2. Run /plan-phase 1 to plan the first phase
118
102
  3. Run /redefine-roadmap if priorities change later
119
103
  ```
@@ -1,11 +1,6 @@
1
1
  ---
2
- name: pause-work
3
2
  description: Save current session state so work can be resumed in a new session — writes .planning/continue-here.md
4
- mode: agent
5
- tools:
6
- - editFiles
7
- - runInTerminal
8
- - search
3
+ agent: executor
9
4
  ---
10
5
 
11
6
  # Pause Work
@@ -17,14 +12,9 @@ Save the current session state to `.planning/continue-here.md` so the next sessi
17
12
  Gather current state information:
18
13
 
19
14
  ```bash
20
- # Last few commits
21
15
  git log --oneline -5
22
-
23
- # Uncommitted changes
24
16
  git status
25
17
  git diff --stat HEAD
26
-
27
- # Test status
28
18
  npm test 2>&1 | tail -10
29
19
  ```
30
20
 
@@ -33,9 +23,9 @@ Read `.planning/STATE.md` for project-level context.
33
23
  ## Step 2: Document Current State
34
24
 
35
25
  Think through:
36
- - What was the last **completed** action? (Be concrete — a test passing, a file created, a PR merged)
26
+ - What was the last **completed** action?
37
27
  - What work is **in progress** and where exactly did it stop?
38
- - What **remains** in the current plan? What comes after?
28
+ - What **remains** in the current plan?
39
29
  - What **decisions** were made this session?
40
30
  - Are there any **blockers** or watch-outs for the next session?
41
31
  - What is the **exact next action** to resume?
@@ -55,9 +45,7 @@ Write `.planning/continue-here.md`:
55
45
 
56
46
  ## What Was Just Completed
57
47
 
58
- [Concrete description of the last completed action]
59
-
60
- - ✅ [Completed item 1 — file created / test passing / feature shipped]
48
+ - [Completed item 1]
61
49
  - ✅ [Completed item 2]
62
50
 
63
51
  ## What Remains
@@ -71,16 +59,15 @@ Upcoming plans:
71
59
 
72
60
  ## Decisions Made This Session
73
61
 
74
- - [Decision and rationale — lock these in]
75
62
  - [Decision and rationale]
76
63
 
77
64
  ## Blockers / Watch-Outs
78
65
 
79
- - [Any issue the next session needs to know before touching code]
66
+ - [Any issue the next session needs to know]
80
67
 
81
68
  ## Exact Next Action
82
69
 
83
- **Resume by doing:** [Single, concrete action — e.g., "Open `src/services/user.service.ts` and implement the `sendWelcomeEmail()` call at line ~45, then run `npm test` to verify"]
70
+ **Resume by doing:** [Single, concrete action]
84
71
 
85
72
  ---
86
73
  *Saved: [timestamp]*
@@ -1,11 +1,6 @@
1
1
  ---
2
- name: plan-phase
3
2
  description: Plan implementation for a roadmap phase — produces a detailed, executable step-by-step plan
4
- mode: agent
5
- tools:
6
- - editFiles
7
- - search
8
- - runInTerminal
3
+ agent: planner
9
4
  ---
10
5
 
11
6
  # Plan Phase
@@ -37,10 +32,7 @@ Load relevant codebase docs based on the phase type:
37
32
 
38
33
  Before planning, explore the codebase to understand the current state:
39
34
  ```bash
40
- # Find existing code related to the phase domain
41
35
  grep -rn "[relevant terms]" src/ --include="*.ts" 2>/dev/null | head -30
42
-
43
- # Check existing file structure for the area
44
36
  ls -la src/[relevant-directory]/ 2>/dev/null
45
37
  ```
46
38
 
@@ -91,47 +83,32 @@ status: ready
91
83
  **Implementation:**
92
84
  [Specifics — data structures, algorithms, API contracts, patterns to follow]
93
85
 
94
- ### 2. [Step name]
95
- [etc.]
96
-
97
86
  ### N. Tests
98
- [Specific test cases to write — description of each scenario]
87
+ [Specific test cases to write]
99
88
 
100
89
  ## Success Criteria
101
90
  - [ ] [Observable behavior that proves this plan is complete]
102
- - [ ] [Observable behavior]
103
91
  - [ ] All tests pass (`npm test`)
104
92
  - [ ] No TypeScript errors (`tsc --noEmit`)
105
93
  ```
106
94
 
107
- If the phase requires multiple plans, create `[NN]-02-[name].md`, `[NN]-03-[name].md`, etc.
95
+ If the phase requires multiple plans, create `[NN]-02-[name].md`, etc.
108
96
 
109
97
  ## Step 5: Update ROADMAP.md
110
98
 
111
- Update the plan list in `.planning/ROADMAP.md` for this phase:
112
- ```
113
- Plans:
114
- - [ ] [NN]-01: [Brief description]
115
- - [ ] [NN]-02: [Brief description]
116
- ```
99
+ Update the plan list in `.planning/ROADMAP.md` for this phase.
117
100
 
118
101
  ## Step 6: Update STATE.md
119
102
 
120
103
  Update `.planning/STATE.md`:
121
104
  - Status: `Ready to execute`
122
105
  - Current focus: this phase
123
- - Note the key decisions made during planning under Accumulated Context
124
106
 
125
107
  ## Completion
126
108
 
127
- Print a summary:
128
109
  ```
129
110
  ✅ Phase [N] planned: [Phase Name]
130
111
  [N] plans created in .planning/phases/[NN]-[name]/
131
112
 
132
- Plans:
133
- [NN]-01: [Name] — [brief description]
134
- [NN]-02: [Name] — [brief description]
135
-
136
113
  Ready to execute. Run /execute-phase [N] to start implementation.
137
114
  ```
@@ -1,9 +1,6 @@
1
1
  ---
2
- name: progress
3
2
  description: Show current project progress — phase status, completion percentage, and what's next
4
- mode: ask
5
- tools:
6
- - search
3
+ agent: planner
7
4
  ---
8
5
 
9
6
  # Show Progress
@@ -1,10 +1,6 @@
1
1
  ---
2
2
  description: "Restructure your project roadmap — reorder, regroup, reprioritize, or rebuild phases from scratch"
3
- mode: agent
4
- tools:
5
- - editFiles
6
- - search
7
- - jira/*
3
+ agent: executor
8
4
  ---
9
5
 
10
6
  # Redefine Roadmap
@@ -23,7 +19,7 @@ Restructure `.planning/ROADMAP.md` — reorder phases, reprioritize, split/merge
23
19
 
24
20
  Ask the user what kind of restructuring they want:
25
21
 
26
- 1. **Reorder** — "Move phase 3 before phase 2", "Priority changed, X is now urgent"
22
+ 1. **Reorder** — "Move phase 3 before phase 2"
27
23
  2. **Split** — "Phase 2 is too big, break it into smaller phases"
28
24
  3. **Merge** — "Phases 3 and 4 are related, combine them"
29
25
  4. **Rebuild from Jira** — "Forget the current roadmap, rebuild from sprint [X]"
@@ -34,14 +30,14 @@ Ask the user what kind of restructuring they want:
34
30
 
35
31
  ### Step 1: Load current state
36
32
 
37
- Read these files:
33
+ Read:
38
34
  - `.planning/ROADMAP.md` — current phase structure
39
35
  - `.planning/STATE.md` — what phase is in progress, what's completed
40
36
  - `.planning/REQUIREMENTS.md` — which requirements are mapped to which phases
41
37
 
42
38
  ### Step 2: Understand the change
43
39
 
44
- Based on user input, determine:
40
+ Determine:
45
41
  - Which phases are **locked** (completed — never modify these)
46
42
  - Which phases are **in progress** (warn before modifying)
47
43
  - Which phases are **changeable** (not started)
@@ -49,12 +45,7 @@ Based on user input, determine:
49
45
 
50
46
  ### Step 3: If rebuilding from Jira
51
47
 
52
- Use Jira tools to fetch the new source of truth:
53
- - `mcp_jira_jira_search` — flexible JQL queries
54
- - `mcp_jira_jira_get_issue` — individual ticket details
55
- - `mcp_jira_jira_get_sprint_issues` — sprint-based planning
56
-
57
- Map tickets to new phases (same logic as `/sync-jira`).
48
+ Use Jira MCP tools to fetch the new source of truth. Map tickets to new phases.
58
49
 
59
50
  ### Step 4: Apply changes
60
51
 
@@ -65,16 +56,12 @@ Map tickets to new phases (same logic as `/sync-jira`).
65
56
 
66
57
  ### Step 5: Show diff summary
67
58
 
68
- Display:
69
- - **Before:** old phase list with statuses
70
- - **After:** new phase list
71
- - **Changes:** what was reordered, split, merged, added, or removed
72
- - **Warnings:** any completed work that was affected, any in-progress phases that moved
59
+ Display before/after comparison, changes made, and any warnings.
73
60
 
74
61
  ## Safety Rules
75
62
 
76
- - **NEVER modify completed phases** — they are locked and represent shipped work
63
+ - **NEVER modify completed phases** — they are locked
77
64
  - **Warn before modifying in-progress phases** — ask for confirmation
78
- - **Preserve Jira ticket IDs** — maintain traceability through restructuring
65
+ - **Preserve Jira ticket IDs** — maintain traceability
79
66
  - **Back up before major restructuring** — suggest committing current state first
80
67
  - Always show the before/after comparison before writing changes
@@ -0,0 +1,77 @@
1
+ ---
2
+ description: "Review and improve existing Jira tickets — add acceptance criteria, clarify descriptions, fix structure"
3
+ agent: product-owner
4
+ ---
5
+
6
+ # Refine Backlog
7
+
8
+ Review existing Jira tickets and improve their quality: add missing acceptance criteria, clarify vague descriptions, standardize structure, and identify gaps.
9
+
10
+ ## What You Need
11
+
12
+ The user should provide ONE of:
13
+ - **Specific ticket IDs** (e.g., `PROJ-101, PROJ-102`)
14
+ - **A JQL query** (e.g., `project = PROJ AND status = "To Do" AND "Acceptance Criteria" is EMPTY`)
15
+ - **A project key** — review all backlog items
16
+ - **A sprint** — review tickets in the current/next sprint
17
+
18
+ If none provided, ask: "Which tickets or project should I review?"
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Fetch tickets
23
+
24
+ Read the specified tickets from Jira. For each ticket, evaluate:
25
+
26
+ 1. **Title quality** — Is it clear and action-oriented? Or vague like "Fix stuff"?
27
+ 2. **Description completeness** — Does it explain what and why?
28
+ 3. **Acceptance criteria** — Are they specific, testable, measurable? Or missing/vague?
29
+ 4. **Type correctness** — Is a task really a task, or should it be a story/bug?
30
+ 5. **Priority** — Is it set? Does it make sense relative to other tickets?
31
+ 6. **Links** — Are dependencies and relationships captured?
32
+ 7. **Labels/Components** — Are they consistent with the project's conventions?
33
+
34
+ ### Step 2: Present findings
35
+
36
+ For each ticket that needs improvement, show:
37
+
38
+ ```
39
+ PROJ-101: "Fix login" ⚠️ Needs work
40
+ Current: No AC, vague title, no description
41
+ Proposed:
42
+ Title: "Fix login timeout causing session expiry after 5 minutes"
43
+ Description: Users report being logged out after 5 min of inactivity...
44
+ AC:
45
+ - [ ] Session persists for configured timeout period (default 30min)
46
+ - [ ] Refresh token extends session on activity
47
+ - [ ] User sees warning 2 min before expiry
48
+ Priority: High (was: unset)
49
+
50
+ PROJ-102: "User dashboard" ✅ Looks good
51
+ (no changes needed)
52
+
53
+ Apply changes to [N] tickets? (yes/no/edit)
54
+ ```
55
+
56
+ ### Step 3: Apply (only after confirmation)
57
+
58
+ - Update each approved ticket
59
+ - Report what was changed
60
+
61
+ ## Refinement Checklist
62
+
63
+ For every ticket, ensure:
64
+ - [ ] Title is clear, specific, and action-oriented
65
+ - [ ] Description explains the what and why
66
+ - [ ] At least 2-3 measurable acceptance criteria
67
+ - [ ] Priority is set
68
+ - [ ] Type is correct (story/task/bug/epic)
69
+ - [ ] Dependencies are linked
70
+ - [ ] No duplicates exist in the backlog
71
+
72
+ ## Important
73
+
74
+ - **NEVER modify tickets that are In Progress or later** — warn and skip
75
+ - **Always show before/after** — never update silently
76
+ - Don't change ticket scope — only improve clarity and structure
77
+ - If a ticket is too big, suggest splitting it (use `/break-down-epic`)
@@ -1,10 +1,6 @@
1
1
  ---
2
- name: resume-work
3
2
  description: Resume work from a saved session state — reads .planning/continue-here.md and .planning/STATE.md to orient the next session
4
- mode: ask
5
- tools:
6
- - search
7
- - runInTerminal
3
+ agent: planner
8
4
  ---
9
5
 
10
6
  # Resume Work
@@ -23,12 +19,9 @@ If `.planning/continue-here.md` does not exist, fall back to STATE.md and ROADMA
23
19
  ## Step 2: Verify Environment
24
20
 
25
21
  ```bash
26
- # Confirm current git state
27
22
  git status
28
23
  git log --oneline -3
29
24
  git branch --show-current
30
-
31
- # Quick test health check
32
25
  npm test 2>&1 | tail -15
33
26
  ```
34
27
 
@@ -36,8 +29,6 @@ Note any unexpected test failures or uncommitted changes.
36
29
 
37
30
  ## Step 3: Present Resume Summary
38
31
 
39
- Format the context summary clearly:
40
-
41
32
  ```
42
33
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
34
  Resuming: [Project Name]
@@ -50,7 +41,6 @@ Where We Left Off
50
41
 
51
42
  Last Completed
52
43
  ✅ [Last completed item]
53
- ✅ [Item before that]
54
44
 
55
45
  What Remains (current plan)
56
46
  ◻ [Next task]
@@ -58,10 +48,9 @@ What Remains (current plan)
58
48
 
59
49
  Decisions Locked In
60
50
  • [Decision 1]
61
- • [Decision 2]
62
51
 
63
52
  Watch-Outs
64
- ⚠️ [Any blocker or fragile area to be aware of]
53
+ ⚠️ [Any blocker or fragile area]
65
54
 
66
55
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
67
56
 
@@ -0,0 +1,65 @@
1
+ ---
2
+ description: Switch the AI model used by all GSD agents (quality / balanced / budget) or set per-agent overrides
3
+ agent: executor
4
+ ---
5
+
6
+ # Set Model Profile
7
+
8
+ Switch the model used by the Planner, Executor, and Verifier agents. This edits the `model:` field in all agent files in `.opencode/agents/` and saves your choice to `.planning/config.json`.
9
+
10
+ ## Profile Table
11
+
12
+ | Profile | Planner | Executor | Verifier | Best for |
13
+ |---------|---------|----------|----------|----------|
14
+ | `quality` | anthropic/claude-opus-4 | anthropic/claude-opus-4 | anthropic/claude-sonnet-4 | Critical architecture, max reasoning |
15
+ | `balanced` | anthropic/claude-sonnet-4 | anthropic/claude-sonnet-4 | anthropic/claude-sonnet-4 | Normal development (default) |
16
+ | `budget` | openai/gpt-4.1 | openai/gpt-4.1 | openai/gpt-4.1-mini | High-volume, cost-sensitive work |
17
+ | `gpt` | openai/gpt-4.1 | openai/gpt-4.1 | openai/gpt-4.1 | Prefer OpenAI models throughout |
18
+
19
+ ## Steps
20
+
21
+ 1. **Read current config** — load `.planning/config.json` and note the current `model_profile` value.
22
+
23
+ 2. **Ask the user** which profile they want (quality / balanced / budget / gpt), or if they want a per-agent override.
24
+
25
+ 3. **Apply the chosen profile** — update the `model:` field in ALL of the following agent files:
26
+ - `.opencode/agents/planner.md`
27
+ - `.opencode/agents/executor.md`
28
+ - `.opencode/agents/verifier.md`
29
+
30
+ Use this mapping per agent:
31
+
32
+ | Agent file | quality | balanced | budget | gpt |
33
+ |------------|---------|----------|--------|-----|
34
+ | planner.md | anthropic/claude-opus-4 | anthropic/claude-sonnet-4 | openai/gpt-4.1 | openai/gpt-4.1 |
35
+ | executor.md | anthropic/claude-opus-4 | anthropic/claude-sonnet-4 | openai/gpt-4.1 | openai/gpt-4.1 |
36
+ | verifier.md | anthropic/claude-sonnet-4 | anthropic/claude-sonnet-4 | openai/gpt-4.1-mini | openai/gpt-4.1 |
37
+
38
+ The line to change looks like:
39
+ ```
40
+ model: anthropic/claude-sonnet-4
41
+ ```
42
+ Change only that line in the frontmatter block (between the `---` delimiters).
43
+
44
+ 4. **Also update `opencode.json`** — set the top-level `model` field to match the executor's model.
45
+
46
+ 5. **Save to config** — update `.planning/config.json`:
47
+ - Set `"model_profile"` to the chosen profile name
48
+ - If they set overrides, add them to `"model_overrides"`
49
+
50
+ 6. **Confirm** — report the final state:
51
+ ```
52
+ Profile: balanced
53
+ Planner → anthropic/claude-sonnet-4
54
+ Executor → anthropic/claude-sonnet-4
55
+ Verifier → anthropic/claude-sonnet-4
56
+ ```
57
+
58
+ ## Available model IDs (OpenCode format: provider/model)
59
+
60
+ - `anthropic/claude-opus-4` — Claude Opus 4 (most capable)
61
+ - `anthropic/claude-sonnet-4` — Claude Sonnet 4 (fast + smart)
62
+ - `openai/gpt-4.1` — GPT-4.1
63
+ - `openai/gpt-4.1-mini` — GPT-4.1 Mini (fastest/cheapest)
64
+ - `openai/o3` — OpenAI o3 (reasoning)
65
+ - `google/gemini-2.5-pro` — Gemini 2.5 Pro