get-research-done 1.1.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 (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +560 -0
  3. package/agents/grd-architect.md +789 -0
  4. package/agents/grd-codebase-mapper.md +738 -0
  5. package/agents/grd-critic.md +1065 -0
  6. package/agents/grd-debugger.md +1203 -0
  7. package/agents/grd-evaluator.md +948 -0
  8. package/agents/grd-executor.md +784 -0
  9. package/agents/grd-explorer.md +2063 -0
  10. package/agents/grd-graduator.md +484 -0
  11. package/agents/grd-integration-checker.md +423 -0
  12. package/agents/grd-phase-researcher.md +641 -0
  13. package/agents/grd-plan-checker.md +745 -0
  14. package/agents/grd-planner.md +1386 -0
  15. package/agents/grd-project-researcher.md +865 -0
  16. package/agents/grd-research-synthesizer.md +256 -0
  17. package/agents/grd-researcher.md +2361 -0
  18. package/agents/grd-roadmapper.md +605 -0
  19. package/agents/grd-verifier.md +778 -0
  20. package/bin/install.js +1294 -0
  21. package/commands/grd/add-phase.md +207 -0
  22. package/commands/grd/add-todo.md +193 -0
  23. package/commands/grd/architect.md +283 -0
  24. package/commands/grd/audit-milestone.md +277 -0
  25. package/commands/grd/check-todos.md +228 -0
  26. package/commands/grd/complete-milestone.md +136 -0
  27. package/commands/grd/debug.md +169 -0
  28. package/commands/grd/discuss-phase.md +86 -0
  29. package/commands/grd/evaluate.md +1095 -0
  30. package/commands/grd/execute-phase.md +339 -0
  31. package/commands/grd/explore.md +258 -0
  32. package/commands/grd/graduate.md +323 -0
  33. package/commands/grd/help.md +482 -0
  34. package/commands/grd/insert-phase.md +227 -0
  35. package/commands/grd/insights.md +231 -0
  36. package/commands/grd/join-discord.md +18 -0
  37. package/commands/grd/list-phase-assumptions.md +50 -0
  38. package/commands/grd/map-codebase.md +71 -0
  39. package/commands/grd/new-milestone.md +721 -0
  40. package/commands/grd/new-project.md +1008 -0
  41. package/commands/grd/pause-work.md +134 -0
  42. package/commands/grd/plan-milestone-gaps.md +295 -0
  43. package/commands/grd/plan-phase.md +525 -0
  44. package/commands/grd/progress.md +364 -0
  45. package/commands/grd/quick-explore.md +236 -0
  46. package/commands/grd/quick.md +309 -0
  47. package/commands/grd/remove-phase.md +349 -0
  48. package/commands/grd/research-phase.md +200 -0
  49. package/commands/grd/research.md +681 -0
  50. package/commands/grd/resume-work.md +40 -0
  51. package/commands/grd/set-profile.md +106 -0
  52. package/commands/grd/settings.md +136 -0
  53. package/commands/grd/update.md +172 -0
  54. package/commands/grd/verify-work.md +219 -0
  55. package/get-research-done/config/default.json +15 -0
  56. package/get-research-done/references/checkpoints.md +1078 -0
  57. package/get-research-done/references/continuation-format.md +249 -0
  58. package/get-research-done/references/git-integration.md +254 -0
  59. package/get-research-done/references/model-profiles.md +73 -0
  60. package/get-research-done/references/planning-config.md +94 -0
  61. package/get-research-done/references/questioning.md +141 -0
  62. package/get-research-done/references/tdd.md +263 -0
  63. package/get-research-done/references/ui-brand.md +160 -0
  64. package/get-research-done/references/verification-patterns.md +612 -0
  65. package/get-research-done/templates/DEBUG.md +159 -0
  66. package/get-research-done/templates/UAT.md +247 -0
  67. package/get-research-done/templates/archive-reason.md +195 -0
  68. package/get-research-done/templates/codebase/architecture.md +255 -0
  69. package/get-research-done/templates/codebase/concerns.md +310 -0
  70. package/get-research-done/templates/codebase/conventions.md +307 -0
  71. package/get-research-done/templates/codebase/integrations.md +280 -0
  72. package/get-research-done/templates/codebase/stack.md +186 -0
  73. package/get-research-done/templates/codebase/structure.md +285 -0
  74. package/get-research-done/templates/codebase/testing.md +480 -0
  75. package/get-research-done/templates/config.json +35 -0
  76. package/get-research-done/templates/context.md +283 -0
  77. package/get-research-done/templates/continue-here.md +78 -0
  78. package/get-research-done/templates/critic-log.md +288 -0
  79. package/get-research-done/templates/data-report.md +173 -0
  80. package/get-research-done/templates/debug-subagent-prompt.md +91 -0
  81. package/get-research-done/templates/decision-log.md +58 -0
  82. package/get-research-done/templates/decision.md +138 -0
  83. package/get-research-done/templates/discovery.md +146 -0
  84. package/get-research-done/templates/experiment-readme.md +104 -0
  85. package/get-research-done/templates/graduated-script.md +180 -0
  86. package/get-research-done/templates/iteration-summary.md +234 -0
  87. package/get-research-done/templates/milestone-archive.md +123 -0
  88. package/get-research-done/templates/milestone.md +115 -0
  89. package/get-research-done/templates/objective.md +271 -0
  90. package/get-research-done/templates/phase-prompt.md +567 -0
  91. package/get-research-done/templates/planner-subagent-prompt.md +117 -0
  92. package/get-research-done/templates/project.md +184 -0
  93. package/get-research-done/templates/requirements.md +231 -0
  94. package/get-research-done/templates/research-project/ARCHITECTURE.md +204 -0
  95. package/get-research-done/templates/research-project/FEATURES.md +147 -0
  96. package/get-research-done/templates/research-project/PITFALLS.md +200 -0
  97. package/get-research-done/templates/research-project/STACK.md +120 -0
  98. package/get-research-done/templates/research-project/SUMMARY.md +170 -0
  99. package/get-research-done/templates/research.md +529 -0
  100. package/get-research-done/templates/roadmap.md +202 -0
  101. package/get-research-done/templates/scorecard.json +113 -0
  102. package/get-research-done/templates/state.md +287 -0
  103. package/get-research-done/templates/summary.md +246 -0
  104. package/get-research-done/templates/user-setup.md +311 -0
  105. package/get-research-done/templates/verification-report.md +322 -0
  106. package/get-research-done/workflows/complete-milestone.md +756 -0
  107. package/get-research-done/workflows/diagnose-issues.md +231 -0
  108. package/get-research-done/workflows/discovery-phase.md +289 -0
  109. package/get-research-done/workflows/discuss-phase.md +433 -0
  110. package/get-research-done/workflows/execute-phase.md +657 -0
  111. package/get-research-done/workflows/execute-plan.md +1844 -0
  112. package/get-research-done/workflows/list-phase-assumptions.md +178 -0
  113. package/get-research-done/workflows/map-codebase.md +322 -0
  114. package/get-research-done/workflows/resume-project.md +307 -0
  115. package/get-research-done/workflows/transition.md +556 -0
  116. package/get-research-done/workflows/verify-phase.md +628 -0
  117. package/get-research-done/workflows/verify-work.md +596 -0
  118. package/hooks/dist/grd-check-update.js +61 -0
  119. package/hooks/dist/grd-statusline.js +84 -0
  120. package/package.json +47 -0
  121. package/scripts/audit-help-commands.sh +115 -0
  122. package/scripts/build-hooks.js +42 -0
  123. package/scripts/verify-all-commands.sh +246 -0
  124. package/scripts/verify-architect-warning.sh +35 -0
  125. package/scripts/verify-insights-mode.sh +40 -0
  126. package/scripts/verify-quick-mode.sh +20 -0
  127. package/scripts/verify-revise-data-routing.sh +139 -0
@@ -0,0 +1,249 @@
1
+ # Continuation Format
2
+
3
+ Standard format for presenting next steps after completing a command or workflow.
4
+
5
+ ## Core Structure
6
+
7
+ ```
8
+ ---
9
+
10
+ ## ▶ Next Up
11
+
12
+ **{identifier}: {name}** — {one-line description}
13
+
14
+ `{command to copy-paste}`
15
+
16
+ <sub>`/clear` first → fresh context window</sub>
17
+
18
+ ---
19
+
20
+ **Also available:**
21
+ - `{alternative option 1}` — description
22
+ - `{alternative option 2}` — description
23
+
24
+ ---
25
+ ```
26
+
27
+ ## Format Rules
28
+
29
+ 1. **Always show what it is** — name + description, never just a command path
30
+ 2. **Pull context from source** — ROADMAP.md for phases, PLAN.md `<objective>` for plans
31
+ 3. **Command in inline code** — backticks, easy to copy-paste, renders as clickable link
32
+ 4. **`/clear` explanation** — always include, keeps it concise but explains why
33
+ 5. **"Also available" not "Other options"** — sounds more app-like
34
+ 6. **Visual separators** — `---` above and below to make it stand out
35
+
36
+ ## Variants
37
+
38
+ ### Execute Next Plan
39
+
40
+ ```
41
+ ---
42
+
43
+ ## ▶ Next Up
44
+
45
+ **02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
46
+
47
+ `/grd:execute-phase 2`
48
+
49
+ <sub>`/clear` first → fresh context window</sub>
50
+
51
+ ---
52
+
53
+ **Also available:**
54
+ - Review plan before executing
55
+ - `/grd:list-phase-assumptions 2` — check assumptions
56
+
57
+ ---
58
+ ```
59
+
60
+ ### Execute Final Plan in Phase
61
+
62
+ Add note that this is the last plan and what comes after:
63
+
64
+ ```
65
+ ---
66
+
67
+ ## ▶ Next Up
68
+
69
+ **02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
70
+ <sub>Final plan in Phase 2</sub>
71
+
72
+ `/grd:execute-phase 2`
73
+
74
+ <sub>`/clear` first → fresh context window</sub>
75
+
76
+ ---
77
+
78
+ **After this completes:**
79
+ - Phase 2 → Phase 3 transition
80
+ - Next: **Phase 3: Core Features** — User dashboard and settings
81
+
82
+ ---
83
+ ```
84
+
85
+ ### Plan a Phase
86
+
87
+ ```
88
+ ---
89
+
90
+ ## ▶ Next Up
91
+
92
+ **Phase 2: Authentication** — JWT login flow with refresh tokens
93
+
94
+ `/grd:plan-phase 2`
95
+
96
+ <sub>`/clear` first → fresh context window</sub>
97
+
98
+ ---
99
+
100
+ **Also available:**
101
+ - `/grd:discuss-phase 2` — gather context first
102
+ - `/grd:research-phase 2` — investigate unknowns
103
+ - Review roadmap
104
+
105
+ ---
106
+ ```
107
+
108
+ ### Phase Complete, Ready for Next
109
+
110
+ Show completion status before next action:
111
+
112
+ ```
113
+ ---
114
+
115
+ ## ✓ Phase 2 Complete
116
+
117
+ 3/3 plans executed
118
+
119
+ ## ▶ Next Up
120
+
121
+ **Phase 3: Core Features** — User dashboard, settings, and data export
122
+
123
+ `/grd:plan-phase 3`
124
+
125
+ <sub>`/clear` first → fresh context window</sub>
126
+
127
+ ---
128
+
129
+ **Also available:**
130
+ - `/grd:discuss-phase 3` — gather context first
131
+ - `/grd:research-phase 3` — investigate unknowns
132
+ - Review what Phase 2 built
133
+
134
+ ---
135
+ ```
136
+
137
+ ### Multiple Equal Options
138
+
139
+ When there's no clear primary action:
140
+
141
+ ```
142
+ ---
143
+
144
+ ## ▶ Next Up
145
+
146
+ **Phase 3: Core Features** — User dashboard, settings, and data export
147
+
148
+ **To plan directly:** `/grd:plan-phase 3`
149
+
150
+ **To discuss context first:** `/grd:discuss-phase 3`
151
+
152
+ **To research unknowns:** `/grd:research-phase 3`
153
+
154
+ <sub>`/clear` first → fresh context window</sub>
155
+
156
+ ---
157
+ ```
158
+
159
+ ### Milestone Complete
160
+
161
+ ```
162
+ ---
163
+
164
+ ## 🎉 Milestone v1.0 Complete
165
+
166
+ All 4 phases shipped
167
+
168
+ ## ▶ Next Up
169
+
170
+ **Start v1.1** — questioning → research → requirements → roadmap
171
+
172
+ `/grd:new-milestone`
173
+
174
+ <sub>`/clear` first → fresh context window</sub>
175
+
176
+ ---
177
+ ```
178
+
179
+ ## Pulling Context
180
+
181
+ ### For phases (from ROADMAP.md):
182
+
183
+ ```markdown
184
+ ### Phase 2: Authentication
185
+ **Goal**: JWT login flow with refresh tokens
186
+ ```
187
+
188
+ Extract: `**Phase 2: Authentication** — JWT login flow with refresh tokens`
189
+
190
+ ### For plans (from ROADMAP.md):
191
+
192
+ ```markdown
193
+ Plans:
194
+ - [ ] 02-03: Add refresh token rotation
195
+ ```
196
+
197
+ Or from PLAN.md `<objective>`:
198
+
199
+ ```xml
200
+ <objective>
201
+ Add refresh token rotation with sliding expiry window.
202
+
203
+ Purpose: Extend session lifetime without compromising security.
204
+ </objective>
205
+ ```
206
+
207
+ Extract: `**02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry`
208
+
209
+ ## Anti-Patterns
210
+
211
+ ### Don't: Command-only (no context)
212
+
213
+ ```
214
+ ## To Continue
215
+
216
+ Run `/clear`, then paste:
217
+ /grd:execute-phase 2
218
+ ```
219
+
220
+ User has no idea what 02-03 is about.
221
+
222
+ ### Don't: Missing /clear explanation
223
+
224
+ ```
225
+ `/grd:plan-phase 3`
226
+
227
+ Run /clear first.
228
+ ```
229
+
230
+ Doesn't explain why. User might skip it.
231
+
232
+ ### Don't: "Other options" language
233
+
234
+ ```
235
+ Other options:
236
+ - Review roadmap
237
+ ```
238
+
239
+ Sounds like an afterthought. Use "Also available:" instead.
240
+
241
+ ### Don't: Fenced code blocks for commands
242
+
243
+ ```
244
+ ```
245
+ /grd:plan-phase 3
246
+ ```
247
+ ```
248
+
249
+ Fenced blocks inside templates create nesting ambiguity. Use inline backticks instead.
@@ -0,0 +1,254 @@
1
+ <overview>
2
+ Git integration for GRD framework.
3
+ </overview>
4
+
5
+ <core_principle>
6
+
7
+ **Commit outcomes, not process.**
8
+
9
+ The git log should read like a changelog of what shipped, not a diary of planning activity.
10
+ </core_principle>
11
+
12
+ <commit_points>
13
+
14
+ | Event | Commit? | Why |
15
+ | ----------------------- | ------- | ------------------------------------------------ |
16
+ | BRIEF + ROADMAP created | YES | Project initialization |
17
+ | PLAN.md created | NO | Intermediate - commit with plan completion |
18
+ | RESEARCH.md created | NO | Intermediate |
19
+ | DISCOVERY.md created | NO | Intermediate |
20
+ | **Task completed** | YES | Atomic unit of work (1 commit per task) |
21
+ | **Plan completed** | YES | Metadata commit (SUMMARY + STATE + ROADMAP) |
22
+ | Handoff created | YES | WIP state preserved |
23
+
24
+ </commit_points>
25
+
26
+ <git_check>
27
+
28
+ ```bash
29
+ [ -d .git ] && echo "GIT_EXISTS" || echo "NO_GIT"
30
+ ```
31
+
32
+ If NO_GIT: Run `git init` silently. GRD projects always get their own repo.
33
+ </git_check>
34
+
35
+ <commit_formats>
36
+
37
+ <format name="initialization">
38
+ ## Project Initialization (brief + roadmap together)
39
+
40
+ ```
41
+ docs: initialize [project-name] ([N] phases)
42
+
43
+ [One-liner from PROJECT.md]
44
+
45
+ Phases:
46
+ 1. [phase-name]: [goal]
47
+ 2. [phase-name]: [goal]
48
+ 3. [phase-name]: [goal]
49
+ ```
50
+
51
+ What to commit:
52
+
53
+ ```bash
54
+ git add .planning/
55
+ git commit
56
+ ```
57
+
58
+ </format>
59
+
60
+ <format name="task-completion">
61
+ ## Task Completion (During Plan Execution)
62
+
63
+ Each task gets its own commit immediately after completion.
64
+
65
+ ```
66
+ {type}({phase}-{plan}): {task-name}
67
+
68
+ - [Key change 1]
69
+ - [Key change 2]
70
+ - [Key change 3]
71
+ ```
72
+
73
+ **Commit types:**
74
+ - `feat` - New feature/functionality
75
+ - `fix` - Bug fix
76
+ - `test` - Test-only (TDD RED phase)
77
+ - `refactor` - Code cleanup (TDD REFACTOR phase)
78
+ - `perf` - Performance improvement
79
+ - `chore` - Dependencies, config, tooling
80
+
81
+ **Examples:**
82
+
83
+ ```bash
84
+ # Standard task
85
+ git add src/api/auth.ts src/types/user.ts
86
+ git commit -m "feat(08-02): create user registration endpoint
87
+
88
+ - POST /auth/register validates email and password
89
+ - Checks for duplicate users
90
+ - Returns JWT token on success
91
+ "
92
+
93
+ # TDD task - RED phase
94
+ git add src/__tests__/jwt.test.ts
95
+ git commit -m "test(07-02): add failing test for JWT generation
96
+
97
+ - Tests token contains user ID claim
98
+ - Tests token expires in 1 hour
99
+ - Tests signature verification
100
+ "
101
+
102
+ # TDD task - GREEN phase
103
+ git add src/utils/jwt.ts
104
+ git commit -m "feat(07-02): implement JWT generation
105
+
106
+ - Uses jose library for signing
107
+ - Includes user ID and expiry claims
108
+ - Signs with HS256 algorithm
109
+ "
110
+ ```
111
+
112
+ </format>
113
+
114
+ <format name="plan-completion">
115
+ ## Plan Completion (After All Tasks Done)
116
+
117
+ After all tasks committed, one final metadata commit captures plan completion.
118
+
119
+ ```
120
+ docs({phase}-{plan}): complete [plan-name] plan
121
+
122
+ Tasks completed: [N]/[N]
123
+ - [Task 1 name]
124
+ - [Task 2 name]
125
+ - [Task 3 name]
126
+
127
+ SUMMARY: .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md
128
+ ```
129
+
130
+ What to commit:
131
+
132
+ ```bash
133
+ git add .planning/phases/XX-name/{phase}-{plan}-PLAN.md
134
+ git add .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md
135
+ git add .planning/STATE.md
136
+ git add .planning/ROADMAP.md
137
+ git commit
138
+ ```
139
+
140
+ **Note:** Code files NOT included - already committed per-task.
141
+
142
+ </format>
143
+
144
+ <format name="handoff">
145
+ ## Handoff (WIP)
146
+
147
+ ```
148
+ wip: [phase-name] paused at task [X]/[Y]
149
+
150
+ Current: [task name]
151
+ [If blocked:] Blocked: [reason]
152
+ ```
153
+
154
+ What to commit:
155
+
156
+ ```bash
157
+ git add .planning/
158
+ git commit
159
+ ```
160
+
161
+ </format>
162
+ </commit_formats>
163
+
164
+ <example_log>
165
+
166
+ **Old approach (per-plan commits):**
167
+ ```
168
+ a7f2d1 feat(checkout): Stripe payments with webhook verification
169
+ 3e9c4b feat(products): catalog with search, filters, and pagination
170
+ 8a1b2c feat(auth): JWT with refresh rotation using jose
171
+ 5c3d7e feat(foundation): Next.js 15 + Prisma + Tailwind scaffold
172
+ 2f4a8d docs: initialize ecommerce-app (5 phases)
173
+ ```
174
+
175
+ **New approach (per-task commits):**
176
+ ```
177
+ # Phase 04 - Checkout
178
+ 1a2b3c docs(04-01): complete checkout flow plan
179
+ 4d5e6f feat(04-01): add webhook signature verification
180
+ 7g8h9i feat(04-01): implement payment session creation
181
+ 0j1k2l feat(04-01): create checkout page component
182
+
183
+ # Phase 03 - Products
184
+ 3m4n5o docs(03-02): complete product listing plan
185
+ 6p7q8r feat(03-02): add pagination controls
186
+ 9s0t1u feat(03-02): implement search and filters
187
+ 2v3w4x feat(03-01): create product catalog schema
188
+
189
+ # Phase 02 - Auth
190
+ 5y6z7a docs(02-02): complete token refresh plan
191
+ 8b9c0d feat(02-02): implement refresh token rotation
192
+ 1e2f3g test(02-02): add failing test for token refresh
193
+ 4h5i6j docs(02-01): complete JWT setup plan
194
+ 7k8l9m feat(02-01): add JWT generation and validation
195
+ 0n1o2p chore(02-01): install jose library
196
+
197
+ # Phase 01 - Foundation
198
+ 3q4r5s docs(01-01): complete scaffold plan
199
+ 6t7u8v feat(01-01): configure Tailwind and globals
200
+ 9w0x1y feat(01-01): set up Prisma with database
201
+ 2z3a4b feat(01-01): create Next.js 15 project
202
+
203
+ # Initialization
204
+ 5c6d7e docs: initialize ecommerce-app (5 phases)
205
+ ```
206
+
207
+ Each plan produces 2-4 commits (tasks + metadata). Clear, granular, bisectable.
208
+
209
+ </example_log>
210
+
211
+ <anti_patterns>
212
+
213
+ **Still don't commit (intermediate artifacts):**
214
+ - PLAN.md creation (commit with plan completion)
215
+ - RESEARCH.md (intermediate)
216
+ - DISCOVERY.md (intermediate)
217
+ - Minor planning tweaks
218
+ - "Fixed typo in roadmap"
219
+
220
+ **Do commit (outcomes):**
221
+ - Each task completion (feat/fix/test/refactor)
222
+ - Plan completion metadata (docs)
223
+ - Project initialization (docs)
224
+
225
+ **Key principle:** Commit working code and shipped outcomes, not planning process.
226
+
227
+ </anti_patterns>
228
+
229
+ <commit_strategy_rationale>
230
+
231
+ ## Why Per-Task Commits?
232
+
233
+ **Context engineering for AI:**
234
+ - Git history becomes primary context source for future Claude sessions
235
+ - `git log --grep="{phase}-{plan}"` shows all work for a plan
236
+ - `git diff <hash>^..<hash>` shows exact changes per task
237
+ - Less reliance on parsing SUMMARY.md = more context for actual work
238
+
239
+ **Failure recovery:**
240
+ - Task 1 committed ✅, Task 2 failed ❌
241
+ - Claude in next session: sees task 1 complete, can retry task 2
242
+ - Can `git reset --hard` to last successful task
243
+
244
+ **Debugging:**
245
+ - `git bisect` finds exact failing task, not just failing plan
246
+ - `git blame` traces line to specific task context
247
+ - Each commit is independently revertable
248
+
249
+ **Observability:**
250
+ - Solo developer + Claude workflow benefits from granular attribution
251
+ - Atomic commits are git best practice
252
+ - "Commit noise" irrelevant when consumer is Claude, not humans
253
+
254
+ </commit_strategy_rationale>
@@ -0,0 +1,73 @@
1
+ # Model Profiles
2
+
3
+ Model profiles control which Claude model each GRD agent uses. This allows balancing quality vs token spend.
4
+
5
+ ## Profile Definitions
6
+
7
+ | Agent | `quality` | `balanced` | `budget` |
8
+ |-------|-----------|------------|----------|
9
+ | grd-planner | opus | opus | sonnet |
10
+ | grd-roadmapper | opus | sonnet | sonnet |
11
+ | grd-executor | opus | sonnet | sonnet |
12
+ | grd-phase-researcher | opus | sonnet | haiku |
13
+ | grd-project-researcher | opus | sonnet | haiku |
14
+ | grd-research-synthesizer | sonnet | sonnet | haiku |
15
+ | grd-debugger | opus | sonnet | sonnet |
16
+ | grd-codebase-mapper | sonnet | haiku | haiku |
17
+ | grd-verifier | sonnet | sonnet | haiku |
18
+ | grd-plan-checker | sonnet | sonnet | haiku |
19
+ | grd-integration-checker | sonnet | sonnet | haiku |
20
+
21
+ ## Profile Philosophy
22
+
23
+ **quality** - Maximum reasoning power
24
+ - Opus for all decision-making agents
25
+ - Sonnet for read-only verification
26
+ - Use when: quota available, critical architecture work
27
+
28
+ **balanced** (default) - Smart allocation
29
+ - Opus only for planning (where architecture decisions happen)
30
+ - Sonnet for execution and research (follows explicit instructions)
31
+ - Sonnet for verification (needs reasoning, not just pattern matching)
32
+ - Use when: normal development, good balance of quality and cost
33
+
34
+ **budget** - Minimal Opus usage
35
+ - Sonnet for anything that writes code
36
+ - Haiku for research and verification
37
+ - Use when: conserving quota, high-volume work, less critical phases
38
+
39
+ ## Resolution Logic
40
+
41
+ Orchestrators resolve model before spawning:
42
+
43
+ ```
44
+ 1. Read .planning/config.json
45
+ 2. Get model_profile (default: "balanced")
46
+ 3. Look up agent in table above
47
+ 4. Pass model parameter to Task call
48
+ ```
49
+
50
+ ## Switching Profiles
51
+
52
+ Runtime: `/grd:set-profile <profile>`
53
+
54
+ Per-project default: Set in `.planning/config.json`:
55
+ ```json
56
+ {
57
+ "model_profile": "balanced"
58
+ }
59
+ ```
60
+
61
+ ## Design Rationale
62
+
63
+ **Why Opus for grd-planner?**
64
+ Planning involves architecture decisions, goal decomposition, and task design. This is where model quality has the highest impact.
65
+
66
+ **Why Sonnet for grd-executor?**
67
+ Executors follow explicit PLAN.md instructions. The plan already contains the reasoning; execution is implementation.
68
+
69
+ **Why Sonnet (not Haiku) for verifiers in balanced?**
70
+ Verification requires goal-backward reasoning - checking if code *delivers* what the phase promised, not just pattern matching. Sonnet handles this well; Haiku may miss subtle gaps.
71
+
72
+ **Why Haiku for grd-codebase-mapper?**
73
+ Read-only exploration and pattern extraction. No reasoning required, just structured output from file contents.
@@ -0,0 +1,94 @@
1
+ <planning_config>
2
+
3
+ Configuration options for `.planning/` directory behavior.
4
+
5
+ <config_schema>
6
+ ```json
7
+ "planning": {
8
+ "commit_docs": true,
9
+ "search_gitignored": false
10
+ }
11
+ ```
12
+
13
+ | Option | Default | Description |
14
+ |--------|---------|-------------|
15
+ | `commit_docs` | `true` | Whether to commit planning artifacts to git |
16
+ | `search_gitignored` | `false` | Add `--no-ignore` to broad rg searches |
17
+ </config_schema>
18
+
19
+ <commit_docs_behavior>
20
+
21
+ **When `commit_docs: true` (default):**
22
+ - Planning files committed normally
23
+ - SUMMARY.md, STATE.md, ROADMAP.md tracked in git
24
+ - Full history of planning decisions preserved
25
+
26
+ **When `commit_docs: false`:**
27
+ - Skip all `git add`/`git commit` for `.planning/` files
28
+ - User must add `.planning/` to `.gitignore`
29
+ - Useful for: OSS contributions, client projects, keeping planning private
30
+
31
+ **Checking the config:**
32
+
33
+ ```bash
34
+ # Check config.json first
35
+ COMMIT_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
36
+
37
+ # Auto-detect gitignored (overrides config)
38
+ git check-ignore -q .planning 2>/dev/null && COMMIT_DOCS=false
39
+ ```
40
+
41
+ **Auto-detection:** If `.planning/` is gitignored, `commit_docs` is automatically `false` regardless of config.json. This prevents git errors when users have `.planning/` in `.gitignore`.
42
+
43
+ **Conditional git operations:**
44
+
45
+ ```bash
46
+ if [ "$COMMIT_DOCS" = "true" ]; then
47
+ git add .planning/STATE.md
48
+ git commit -m "docs: update state"
49
+ fi
50
+ ```
51
+
52
+ </commit_docs_behavior>
53
+
54
+ <search_behavior>
55
+
56
+ **When `search_gitignored: false` (default):**
57
+ - Standard rg behavior (respects .gitignore)
58
+ - Direct path searches work: `rg "pattern" .planning/` finds files
59
+ - Broad searches skip gitignored: `rg "pattern"` skips `.planning/`
60
+
61
+ **When `search_gitignored: true`:**
62
+ - Add `--no-ignore` to broad rg searches that should include `.planning/`
63
+ - Only needed when searching entire repo and expecting `.planning/` matches
64
+
65
+ **Note:** Most GRD operations use direct file reads or explicit paths, which work regardless of gitignore status.
66
+
67
+ </search_behavior>
68
+
69
+ <setup_uncommitted_mode>
70
+
71
+ To use uncommitted mode:
72
+
73
+ 1. **Set config:**
74
+ ```json
75
+ "planning": {
76
+ "commit_docs": false,
77
+ "search_gitignored": true
78
+ }
79
+ ```
80
+
81
+ 2. **Add to .gitignore:**
82
+ ```
83
+ .planning/
84
+ ```
85
+
86
+ 3. **Existing tracked files:** If `.planning/` was previously tracked:
87
+ ```bash
88
+ git rm -r --cached .planning/
89
+ git commit -m "chore: stop tracking planning docs"
90
+ ```
91
+
92
+ </setup_uncommitted_mode>
93
+
94
+ </planning_config>