cap-pro 1.0.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 (275) hide show
  1. package/.claude-plugin/README.md +26 -0
  2. package/.claude-plugin/marketplace.json +24 -0
  3. package/.claude-plugin/plugin.json +24 -0
  4. package/LICENSE +21 -0
  5. package/README.ja-JP.md +834 -0
  6. package/README.ko-KR.md +823 -0
  7. package/README.md +806 -0
  8. package/README.pt-BR.md +452 -0
  9. package/README.zh-CN.md +800 -0
  10. package/agents/cap-architect.md +269 -0
  11. package/agents/cap-brainstormer.md +207 -0
  12. package/agents/cap-curator.md +276 -0
  13. package/agents/cap-debugger.md +365 -0
  14. package/agents/cap-designer.md +246 -0
  15. package/agents/cap-historian.md +464 -0
  16. package/agents/cap-migrator.md +291 -0
  17. package/agents/cap-prototyper.md +197 -0
  18. package/agents/cap-validator.md +308 -0
  19. package/bin/install.js +5433 -0
  20. package/cap/bin/cap-tools.cjs +853 -0
  21. package/cap/bin/lib/arc-scanner.cjs +344 -0
  22. package/cap/bin/lib/cap-affinity-engine.cjs +862 -0
  23. package/cap/bin/lib/cap-anchor.cjs +228 -0
  24. package/cap/bin/lib/cap-annotation-writer.cjs +340 -0
  25. package/cap/bin/lib/cap-checkpoint.cjs +434 -0
  26. package/cap/bin/lib/cap-cluster-detect.cjs +945 -0
  27. package/cap/bin/lib/cap-cluster-display.cjs +52 -0
  28. package/cap/bin/lib/cap-cluster-format.cjs +245 -0
  29. package/cap/bin/lib/cap-cluster-helpers.cjs +295 -0
  30. package/cap/bin/lib/cap-cluster-io.cjs +212 -0
  31. package/cap/bin/lib/cap-completeness.cjs +540 -0
  32. package/cap/bin/lib/cap-deps.cjs +583 -0
  33. package/cap/bin/lib/cap-design-families.cjs +332 -0
  34. package/cap/bin/lib/cap-design.cjs +966 -0
  35. package/cap/bin/lib/cap-divergence-detector.cjs +400 -0
  36. package/cap/bin/lib/cap-doctor.cjs +752 -0
  37. package/cap/bin/lib/cap-feature-map-internals.cjs +19 -0
  38. package/cap/bin/lib/cap-feature-map-migrate.cjs +335 -0
  39. package/cap/bin/lib/cap-feature-map-monorepo.cjs +885 -0
  40. package/cap/bin/lib/cap-feature-map-shard.cjs +315 -0
  41. package/cap/bin/lib/cap-feature-map.cjs +1943 -0
  42. package/cap/bin/lib/cap-fitness-score.cjs +1075 -0
  43. package/cap/bin/lib/cap-impact-analysis.cjs +652 -0
  44. package/cap/bin/lib/cap-learn-review.cjs +1072 -0
  45. package/cap/bin/lib/cap-learning-signals.cjs +627 -0
  46. package/cap/bin/lib/cap-loader.cjs +227 -0
  47. package/cap/bin/lib/cap-logger.cjs +57 -0
  48. package/cap/bin/lib/cap-memory-bridge.cjs +764 -0
  49. package/cap/bin/lib/cap-memory-confidence.cjs +452 -0
  50. package/cap/bin/lib/cap-memory-dir.cjs +987 -0
  51. package/cap/bin/lib/cap-memory-engine.cjs +698 -0
  52. package/cap/bin/lib/cap-memory-extends.cjs +398 -0
  53. package/cap/bin/lib/cap-memory-graph.cjs +790 -0
  54. package/cap/bin/lib/cap-memory-migrate.cjs +2015 -0
  55. package/cap/bin/lib/cap-memory-pin.cjs +183 -0
  56. package/cap/bin/lib/cap-memory-platform.cjs +490 -0
  57. package/cap/bin/lib/cap-memory-prune.cjs +707 -0
  58. package/cap/bin/lib/cap-memory-schema.cjs +812 -0
  59. package/cap/bin/lib/cap-migrate-tags.cjs +309 -0
  60. package/cap/bin/lib/cap-migrate.cjs +540 -0
  61. package/cap/bin/lib/cap-pattern-apply.cjs +1203 -0
  62. package/cap/bin/lib/cap-pattern-pipeline.cjs +1034 -0
  63. package/cap/bin/lib/cap-plugin-manifest.cjs +80 -0
  64. package/cap/bin/lib/cap-realtime-affinity.cjs +399 -0
  65. package/cap/bin/lib/cap-reconcile.cjs +570 -0
  66. package/cap/bin/lib/cap-research-gate.cjs +218 -0
  67. package/cap/bin/lib/cap-scope-filter.cjs +402 -0
  68. package/cap/bin/lib/cap-semantic-pipeline.cjs +1038 -0
  69. package/cap/bin/lib/cap-session-extract.cjs +987 -0
  70. package/cap/bin/lib/cap-session.cjs +445 -0
  71. package/cap/bin/lib/cap-snapshot-linkage.cjs +963 -0
  72. package/cap/bin/lib/cap-stack-docs.cjs +646 -0
  73. package/cap/bin/lib/cap-tag-observer.cjs +371 -0
  74. package/cap/bin/lib/cap-tag-scanner.cjs +1766 -0
  75. package/cap/bin/lib/cap-telemetry.cjs +466 -0
  76. package/cap/bin/lib/cap-test-audit.cjs +1438 -0
  77. package/cap/bin/lib/cap-thread-migrator.cjs +307 -0
  78. package/cap/bin/lib/cap-thread-synthesis.cjs +545 -0
  79. package/cap/bin/lib/cap-thread-tracker.cjs +519 -0
  80. package/cap/bin/lib/cap-trace.cjs +399 -0
  81. package/cap/bin/lib/cap-trust-mode.cjs +336 -0
  82. package/cap/bin/lib/cap-ui-design-editor.cjs +642 -0
  83. package/cap/bin/lib/cap-ui-mind-map.cjs +712 -0
  84. package/cap/bin/lib/cap-ui-thread-nav.cjs +693 -0
  85. package/cap/bin/lib/cap-ui.cjs +1245 -0
  86. package/cap/bin/lib/cap-upgrade.cjs +1028 -0
  87. package/cap/bin/lib/cli/arg-helpers.cjs +49 -0
  88. package/cap/bin/lib/cli/frontmatter-router.cjs +31 -0
  89. package/cap/bin/lib/cli/init-router.cjs +68 -0
  90. package/cap/bin/lib/cli/phase-router.cjs +102 -0
  91. package/cap/bin/lib/cli/state-router.cjs +61 -0
  92. package/cap/bin/lib/cli/template-router.cjs +37 -0
  93. package/cap/bin/lib/cli/uat-router.cjs +29 -0
  94. package/cap/bin/lib/cli/validation-router.cjs +26 -0
  95. package/cap/bin/lib/cli/verification-router.cjs +31 -0
  96. package/cap/bin/lib/cli/workstream-router.cjs +39 -0
  97. package/cap/bin/lib/commands.cjs +961 -0
  98. package/cap/bin/lib/config.cjs +467 -0
  99. package/cap/bin/lib/convention-reader.cjs +258 -0
  100. package/cap/bin/lib/core.cjs +1241 -0
  101. package/cap/bin/lib/feature-aggregator.cjs +423 -0
  102. package/cap/bin/lib/frontmatter.cjs +337 -0
  103. package/cap/bin/lib/init.cjs +1443 -0
  104. package/cap/bin/lib/manifest-generator.cjs +383 -0
  105. package/cap/bin/lib/milestone.cjs +253 -0
  106. package/cap/bin/lib/model-profiles.cjs +69 -0
  107. package/cap/bin/lib/monorepo-context.cjs +226 -0
  108. package/cap/bin/lib/monorepo-migrator.cjs +509 -0
  109. package/cap/bin/lib/phase.cjs +889 -0
  110. package/cap/bin/lib/profile-output.cjs +989 -0
  111. package/cap/bin/lib/profile-pipeline.cjs +540 -0
  112. package/cap/bin/lib/roadmap.cjs +330 -0
  113. package/cap/bin/lib/security.cjs +394 -0
  114. package/cap/bin/lib/session-manager.cjs +292 -0
  115. package/cap/bin/lib/skeleton-generator.cjs +179 -0
  116. package/cap/bin/lib/state.cjs +1032 -0
  117. package/cap/bin/lib/template.cjs +231 -0
  118. package/cap/bin/lib/test-detector.cjs +62 -0
  119. package/cap/bin/lib/uat.cjs +283 -0
  120. package/cap/bin/lib/verify.cjs +889 -0
  121. package/cap/bin/lib/workspace-detector.cjs +371 -0
  122. package/cap/bin/lib/workstream.cjs +492 -0
  123. package/cap/commands/gsd/workstreams.md +63 -0
  124. package/cap/references/arc-standard.md +315 -0
  125. package/cap/references/cap-agent-architecture.md +101 -0
  126. package/cap/references/cap-gitignore-template +9 -0
  127. package/cap/references/cap-zero-deps.md +158 -0
  128. package/cap/references/checkpoints.md +778 -0
  129. package/cap/references/continuation-format.md +249 -0
  130. package/cap/references/contract-test-templates.md +312 -0
  131. package/cap/references/feature-map-template.md +25 -0
  132. package/cap/references/git-integration.md +295 -0
  133. package/cap/references/git-planning-commit.md +38 -0
  134. package/cap/references/model-profiles.md +174 -0
  135. package/cap/references/phase-numbering.md +126 -0
  136. package/cap/references/planning-config.md +202 -0
  137. package/cap/references/property-test-templates.md +316 -0
  138. package/cap/references/security-test-templates.md +347 -0
  139. package/cap/references/session-template.json +8 -0
  140. package/cap/references/tdd.md +263 -0
  141. package/cap/references/user-profiling.md +681 -0
  142. package/cap/references/verification-patterns.md +612 -0
  143. package/cap/templates/UAT.md +265 -0
  144. package/cap/templates/claude-md.md +175 -0
  145. package/cap/templates/codebase/architecture.md +255 -0
  146. package/cap/templates/codebase/concerns.md +310 -0
  147. package/cap/templates/codebase/conventions.md +307 -0
  148. package/cap/templates/codebase/integrations.md +280 -0
  149. package/cap/templates/codebase/stack.md +186 -0
  150. package/cap/templates/codebase/structure.md +285 -0
  151. package/cap/templates/codebase/testing.md +480 -0
  152. package/cap/templates/config.json +44 -0
  153. package/cap/templates/context.md +352 -0
  154. package/cap/templates/continue-here.md +78 -0
  155. package/cap/templates/copilot-instructions.md +7 -0
  156. package/cap/templates/debug-subagent-prompt.md +91 -0
  157. package/cap/templates/discussion-log.md +63 -0
  158. package/cap/templates/milestone-archive.md +123 -0
  159. package/cap/templates/milestone.md +115 -0
  160. package/cap/templates/phase-prompt.md +610 -0
  161. package/cap/templates/planner-subagent-prompt.md +117 -0
  162. package/cap/templates/project.md +186 -0
  163. package/cap/templates/requirements.md +231 -0
  164. package/cap/templates/research-project/ARCHITECTURE.md +204 -0
  165. package/cap/templates/research-project/FEATURES.md +147 -0
  166. package/cap/templates/research-project/PITFALLS.md +200 -0
  167. package/cap/templates/research-project/STACK.md +120 -0
  168. package/cap/templates/research-project/SUMMARY.md +170 -0
  169. package/cap/templates/research.md +552 -0
  170. package/cap/templates/roadmap.md +202 -0
  171. package/cap/templates/state.md +176 -0
  172. package/cap/templates/summary.md +364 -0
  173. package/cap/templates/user-preferences.md +498 -0
  174. package/cap/templates/verification-report.md +322 -0
  175. package/cap/workflows/add-phase.md +112 -0
  176. package/cap/workflows/add-tests.md +351 -0
  177. package/cap/workflows/add-todo.md +158 -0
  178. package/cap/workflows/audit-milestone.md +340 -0
  179. package/cap/workflows/audit-uat.md +109 -0
  180. package/cap/workflows/autonomous.md +891 -0
  181. package/cap/workflows/check-todos.md +177 -0
  182. package/cap/workflows/cleanup.md +152 -0
  183. package/cap/workflows/complete-milestone.md +767 -0
  184. package/cap/workflows/diagnose-issues.md +231 -0
  185. package/cap/workflows/discovery-phase.md +289 -0
  186. package/cap/workflows/discuss-phase-assumptions.md +653 -0
  187. package/cap/workflows/discuss-phase.md +1049 -0
  188. package/cap/workflows/do.md +104 -0
  189. package/cap/workflows/execute-phase.md +846 -0
  190. package/cap/workflows/execute-plan.md +514 -0
  191. package/cap/workflows/fast.md +105 -0
  192. package/cap/workflows/forensics.md +265 -0
  193. package/cap/workflows/health.md +181 -0
  194. package/cap/workflows/help.md +660 -0
  195. package/cap/workflows/insert-phase.md +130 -0
  196. package/cap/workflows/list-phase-assumptions.md +178 -0
  197. package/cap/workflows/list-workspaces.md +56 -0
  198. package/cap/workflows/manager.md +362 -0
  199. package/cap/workflows/map-codebase.md +377 -0
  200. package/cap/workflows/milestone-summary.md +223 -0
  201. package/cap/workflows/new-milestone.md +486 -0
  202. package/cap/workflows/new-project.md +1250 -0
  203. package/cap/workflows/new-workspace.md +237 -0
  204. package/cap/workflows/next.md +97 -0
  205. package/cap/workflows/node-repair.md +92 -0
  206. package/cap/workflows/note.md +156 -0
  207. package/cap/workflows/pause-work.md +176 -0
  208. package/cap/workflows/plan-milestone-gaps.md +273 -0
  209. package/cap/workflows/plan-phase.md +857 -0
  210. package/cap/workflows/plant-seed.md +169 -0
  211. package/cap/workflows/pr-branch.md +129 -0
  212. package/cap/workflows/profile-user.md +449 -0
  213. package/cap/workflows/progress.md +507 -0
  214. package/cap/workflows/quick.md +757 -0
  215. package/cap/workflows/remove-phase.md +155 -0
  216. package/cap/workflows/remove-workspace.md +90 -0
  217. package/cap/workflows/research-phase.md +82 -0
  218. package/cap/workflows/resume-project.md +326 -0
  219. package/cap/workflows/review.md +228 -0
  220. package/cap/workflows/session-report.md +146 -0
  221. package/cap/workflows/settings.md +283 -0
  222. package/cap/workflows/ship.md +228 -0
  223. package/cap/workflows/stats.md +60 -0
  224. package/cap/workflows/transition.md +671 -0
  225. package/cap/workflows/ui-phase.md +298 -0
  226. package/cap/workflows/ui-review.md +161 -0
  227. package/cap/workflows/update.md +323 -0
  228. package/cap/workflows/validate-phase.md +170 -0
  229. package/cap/workflows/verify-phase.md +254 -0
  230. package/cap/workflows/verify-work.md +637 -0
  231. package/commands/cap/annotate.md +165 -0
  232. package/commands/cap/brainstorm.md +393 -0
  233. package/commands/cap/checkpoint.md +106 -0
  234. package/commands/cap/completeness.md +94 -0
  235. package/commands/cap/continue.md +72 -0
  236. package/commands/cap/debug.md +588 -0
  237. package/commands/cap/deps.md +169 -0
  238. package/commands/cap/design.md +479 -0
  239. package/commands/cap/init.md +354 -0
  240. package/commands/cap/iterate.md +249 -0
  241. package/commands/cap/learn.md +459 -0
  242. package/commands/cap/memory.md +275 -0
  243. package/commands/cap/migrate-feature-map.md +91 -0
  244. package/commands/cap/migrate-memory.md +108 -0
  245. package/commands/cap/migrate-tags.md +91 -0
  246. package/commands/cap/migrate.md +131 -0
  247. package/commands/cap/prototype.md +510 -0
  248. package/commands/cap/reconcile.md +121 -0
  249. package/commands/cap/review.md +360 -0
  250. package/commands/cap/save.md +72 -0
  251. package/commands/cap/scan.md +404 -0
  252. package/commands/cap/start.md +356 -0
  253. package/commands/cap/status.md +118 -0
  254. package/commands/cap/test-audit.md +262 -0
  255. package/commands/cap/test.md +394 -0
  256. package/commands/cap/trace.md +133 -0
  257. package/commands/cap/ui.md +167 -0
  258. package/hooks/dist/cap-check-update.js +115 -0
  259. package/hooks/dist/cap-context-monitor.js +185 -0
  260. package/hooks/dist/cap-learn-review-hook.js +114 -0
  261. package/hooks/dist/cap-learning-hook.js +192 -0
  262. package/hooks/dist/cap-memory.js +299 -0
  263. package/hooks/dist/cap-prompt-guard.js +97 -0
  264. package/hooks/dist/cap-statusline.js +157 -0
  265. package/hooks/dist/cap-tag-observer.js +115 -0
  266. package/hooks/dist/cap-version-check.js +112 -0
  267. package/hooks/dist/cap-workflow-guard.js +175 -0
  268. package/hooks/hooks.json +55 -0
  269. package/package.json +58 -0
  270. package/scripts/base64-scan.sh +262 -0
  271. package/scripts/build-hooks.js +93 -0
  272. package/scripts/cap-removal-checklist.md +202 -0
  273. package/scripts/prompt-injection-scan.sh +199 -0
  274. package/scripts/run-tests.cjs +181 -0
  275. package/scripts/secret-scan.sh +227 -0
@@ -0,0 +1,498 @@
1
+ # User Preferences (Merged Template)
2
+
3
+ > This file contains three logical sections, each consumed by a different
4
+ > generator. The CJS loader in `cap/bin/lib/profile-output.cjs` extracts the
5
+ > relevant section by anchor (`## Section: <name>`) before applying Mustache
6
+ > substitutions. Do not remove the `## Section:` markers — they are load-bearing.
7
+ >
8
+ > Sections:
9
+ > - profile (Mustache template for USER-PROFILE.md)
10
+ > - setup (Documentation/schema for {phase}-USER-SETUP.md)
11
+ > - dev-preferences (Mustache template for /gsd:dev-preferences command)
12
+
13
+ ## Section: profile
14
+
15
+ # Developer Profile
16
+
17
+ > This profile was generated from session analysis. It contains behavioral directives
18
+ > for Claude to follow when working with this developer. HIGH confidence dimensions
19
+ > should be acted on directly. LOW confidence dimensions should be approached with
20
+ > hedging ("Based on your profile, I'll try X -- let me know if that's off").
21
+
22
+ **Generated:** {{generated_at}}
23
+ **Source:** {{data_source}}
24
+ **Projects Analyzed:** {{projects_list}}
25
+ **Messages Analyzed:** {{message_count}}
26
+
27
+ ---
28
+
29
+ ## Quick Reference
30
+
31
+ {{summary_instructions}}
32
+
33
+ ---
34
+
35
+ ## Communication Style
36
+
37
+ **Rating:** {{communication_style.rating}} | **Confidence:** {{communication_style.confidence}}
38
+
39
+ **Directive:** {{communication_style.claude_instruction}}
40
+
41
+ {{communication_style.summary}}
42
+
43
+ **Evidence:**
44
+
45
+ {{communication_style.evidence}}
46
+
47
+ ---
48
+
49
+ ## Decision Speed
50
+
51
+ **Rating:** {{decision_speed.rating}} | **Confidence:** {{decision_speed.confidence}}
52
+
53
+ **Directive:** {{decision_speed.claude_instruction}}
54
+
55
+ {{decision_speed.summary}}
56
+
57
+ **Evidence:**
58
+
59
+ {{decision_speed.evidence}}
60
+
61
+ ---
62
+
63
+ ## Explanation Depth
64
+
65
+ **Rating:** {{explanation_depth.rating}} | **Confidence:** {{explanation_depth.confidence}}
66
+
67
+ **Directive:** {{explanation_depth.claude_instruction}}
68
+
69
+ {{explanation_depth.summary}}
70
+
71
+ **Evidence:**
72
+
73
+ {{explanation_depth.evidence}}
74
+
75
+ ---
76
+
77
+ ## Debugging Approach
78
+
79
+ **Rating:** {{debugging_approach.rating}} | **Confidence:** {{debugging_approach.confidence}}
80
+
81
+ **Directive:** {{debugging_approach.claude_instruction}}
82
+
83
+ {{debugging_approach.summary}}
84
+
85
+ **Evidence:**
86
+
87
+ {{debugging_approach.evidence}}
88
+
89
+ ---
90
+
91
+ ## UX Philosophy
92
+
93
+ **Rating:** {{ux_philosophy.rating}} | **Confidence:** {{ux_philosophy.confidence}}
94
+
95
+ **Directive:** {{ux_philosophy.claude_instruction}}
96
+
97
+ {{ux_philosophy.summary}}
98
+
99
+ **Evidence:**
100
+
101
+ {{ux_philosophy.evidence}}
102
+
103
+ ---
104
+
105
+ ## Vendor Philosophy
106
+
107
+ **Rating:** {{vendor_philosophy.rating}} | **Confidence:** {{vendor_philosophy.confidence}}
108
+
109
+ **Directive:** {{vendor_philosophy.claude_instruction}}
110
+
111
+ {{vendor_philosophy.summary}}
112
+
113
+ **Evidence:**
114
+
115
+ {{vendor_philosophy.evidence}}
116
+
117
+ ---
118
+
119
+ ## Frustration Triggers
120
+
121
+ **Rating:** {{frustration_triggers.rating}} | **Confidence:** {{frustration_triggers.confidence}}
122
+
123
+ **Directive:** {{frustration_triggers.claude_instruction}}
124
+
125
+ {{frustration_triggers.summary}}
126
+
127
+ **Evidence:**
128
+
129
+ {{frustration_triggers.evidence}}
130
+
131
+ ---
132
+
133
+ ## Learning Style
134
+
135
+ **Rating:** {{learning_style.rating}} | **Confidence:** {{learning_style.confidence}}
136
+
137
+ **Directive:** {{learning_style.claude_instruction}}
138
+
139
+ {{learning_style.summary}}
140
+
141
+ **Evidence:**
142
+
143
+ {{learning_style.evidence}}
144
+
145
+ ---
146
+
147
+ ## Profile Metadata
148
+
149
+ | Field | Value |
150
+ |-------|-------|
151
+ | Profile Version | {{profile_version}} |
152
+ | Generated | {{generated_at}} |
153
+ | Source | {{data_source}} |
154
+ | Projects | {{projects_count}} |
155
+ | Messages | {{message_count}} |
156
+ | Dimensions Scored | {{dimensions_scored}}/8 |
157
+ | High Confidence | {{high_confidence_count}} |
158
+ | Medium Confidence | {{medium_confidence_count}} |
159
+ | Low Confidence | {{low_confidence_count}} |
160
+ | Sensitive Content Excluded | {{sensitive_excluded_summary}} |
161
+
162
+ ## Section: setup
163
+
164
+ # User Setup Template
165
+
166
+ Template for `.planning/phases/XX-name/{phase}-USER-SETUP.md` - human-required configuration that Claude cannot automate.
167
+
168
+ **Purpose:** Document setup tasks that literally require human action - account creation, dashboard configuration, secret retrieval. Claude automates everything possible; this file captures only what remains.
169
+
170
+ ---
171
+
172
+ ## File Template
173
+
174
+ ```markdown
175
+ # Phase {X}: User Setup Required
176
+
177
+ **Generated:** [YYYY-MM-DD]
178
+ **Phase:** {phase-name}
179
+ **Status:** Incomplete
180
+
181
+ Complete these items for the integration to function. Claude automated everything possible; these items require human access to external dashboards/accounts.
182
+
183
+ ## Environment Variables
184
+
185
+ | Status | Variable | Source | Add to |
186
+ |--------|----------|--------|--------|
187
+ | [ ] | `ENV_VAR_NAME` | [Service Dashboard → Path → To → Value] | `.env.local` |
188
+ | [ ] | `ANOTHER_VAR` | [Service Dashboard → Path → To → Value] | `.env.local` |
189
+
190
+ ## Account Setup
191
+
192
+ [Only if new account creation is required]
193
+
194
+ - [ ] **Create [Service] account**
195
+ - URL: [signup URL]
196
+ - Skip if: Already have account
197
+
198
+ ## Dashboard Configuration
199
+
200
+ [Only if dashboard configuration is required]
201
+
202
+ - [ ] **[Configuration task]**
203
+ - Location: [Service Dashboard → Path → To → Setting]
204
+ - Set to: [Required value or configuration]
205
+ - Notes: [Any important details]
206
+
207
+ ## Verification
208
+
209
+ After completing setup, verify with:
210
+
211
+ ```bash
212
+ # [Verification commands]
213
+ ```
214
+
215
+ Expected results:
216
+ - [What success looks like]
217
+
218
+ ---
219
+
220
+ **Once all items complete:** Mark status as "Complete" at top of file.
221
+ ```
222
+
223
+ ---
224
+
225
+ ## When to Generate
226
+
227
+ Generate `{phase}-USER-SETUP.md` when plan frontmatter contains `user_setup` field.
228
+
229
+ **Trigger:** `user_setup` exists in PLAN.md frontmatter and has items.
230
+
231
+ **Location:** Same directory as PLAN.md and SUMMARY.md.
232
+
233
+ **Timing:** Generated during execute-plan.md after tasks complete, before SUMMARY.md creation.
234
+
235
+ ---
236
+
237
+ ## Frontmatter Schema
238
+
239
+ In PLAN.md, `user_setup` declares human-required configuration:
240
+
241
+ ```yaml
242
+ user_setup:
243
+ - service: stripe
244
+ why: "Payment processing requires API keys"
245
+ env_vars:
246
+ - name: STRIPE_SECRET_KEY
247
+ source: "Stripe Dashboard → Developers → API keys → Secret key"
248
+ - name: STRIPE_WEBHOOK_SECRET
249
+ source: "Stripe Dashboard → Developers → Webhooks → Signing secret"
250
+ dashboard_config:
251
+ - task: "Create webhook endpoint"
252
+ location: "Stripe Dashboard → Developers → Webhooks → Add endpoint"
253
+ details: "URL: https://[your-domain]/api/webhooks/stripe, Events: checkout.session.completed, customer.subscription.*"
254
+ local_dev:
255
+ - "Run: stripe listen --forward-to localhost:3000/api/webhooks/stripe"
256
+ - "Use the webhook secret from CLI output for local testing"
257
+ ```
258
+
259
+ ---
260
+
261
+ ## The Automation-First Rule
262
+
263
+ **USER-SETUP.md contains ONLY what Claude literally cannot do.**
264
+
265
+ | Claude CAN Do (not in USER-SETUP) | Claude CANNOT Do (→ USER-SETUP) |
266
+ |-----------------------------------|--------------------------------|
267
+ | `npm install stripe` | Create Stripe account |
268
+ | Write webhook handler code | Get API keys from dashboard |
269
+ | Create `.env.local` file structure | Copy actual secret values |
270
+ | Run `stripe listen` | Authenticate Stripe CLI (browser OAuth) |
271
+ | Configure package.json | Access external service dashboards |
272
+ | Write any code | Retrieve secrets from third-party systems |
273
+
274
+ **The test:** "Does this require a human in a browser, accessing an account Claude doesn't have credentials for?"
275
+ - Yes → USER-SETUP.md
276
+ - No → Claude does it automatically
277
+
278
+ ---
279
+
280
+ ## Service-Specific Examples
281
+
282
+ <stripe_example>
283
+ ```markdown
284
+ # Phase 10: User Setup Required
285
+
286
+ **Generated:** 2025-01-14
287
+ **Phase:** 10-monetization
288
+ **Status:** Incomplete
289
+
290
+ Complete these items for Stripe integration to function.
291
+
292
+ ## Environment Variables
293
+
294
+ | Status | Variable | Source | Add to |
295
+ |--------|----------|--------|--------|
296
+ | [ ] | `STRIPE_SECRET_KEY` | Stripe Dashboard → Developers → API keys → Secret key | `.env.local` |
297
+ | [ ] | `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY` | Stripe Dashboard → Developers → API keys → Publishable key | `.env.local` |
298
+ | [ ] | `STRIPE_WEBHOOK_SECRET` | Stripe Dashboard → Developers → Webhooks → [endpoint] → Signing secret | `.env.local` |
299
+
300
+ ## Account Setup
301
+
302
+ - [ ] **Create Stripe account** (if needed)
303
+ - URL: https://dashboard.stripe.com/register
304
+ - Skip if: Already have Stripe account
305
+
306
+ ## Dashboard Configuration
307
+
308
+ - [ ] **Create webhook endpoint**
309
+ - Location: Stripe Dashboard → Developers → Webhooks → Add endpoint
310
+ - Endpoint URL: `https://[your-domain]/api/webhooks/stripe`
311
+ - Events to send:
312
+ - `checkout.session.completed`
313
+ - `customer.subscription.created`
314
+ - `customer.subscription.updated`
315
+ - `customer.subscription.deleted`
316
+
317
+ - [ ] **Create products and prices** (if using subscription tiers)
318
+ - Location: Stripe Dashboard → Products → Add product
319
+ - Create each subscription tier
320
+ - Copy Price IDs to:
321
+ - `STRIPE_STARTER_PRICE_ID`
322
+ - `STRIPE_PRO_PRICE_ID`
323
+
324
+ ## Local Development
325
+
326
+ For local webhook testing:
327
+ ```bash
328
+ stripe listen --forward-to localhost:3000/api/webhooks/stripe
329
+ ```
330
+ Use the webhook signing secret from CLI output (starts with `whsec_`).
331
+
332
+ ## Verification
333
+
334
+ After completing setup:
335
+
336
+ ```bash
337
+ # Check env vars are set
338
+ grep STRIPE .env.local
339
+
340
+ # Verify build passes
341
+ npm run build
342
+
343
+ # Test webhook endpoint (should return 400 bad signature, not 500 crash)
344
+ curl -X POST http://localhost:3000/api/webhooks/stripe \
345
+ -H "Content-Type: application/json" \
346
+ -d '{}'
347
+ ```
348
+
349
+ Expected: Build passes, webhook returns 400 (signature validation working).
350
+
351
+ ---
352
+
353
+ **Once all items complete:** Mark status as "Complete" at top of file.
354
+ ```
355
+ </stripe_example>
356
+
357
+ <supabase_example>
358
+ ```markdown
359
+ # Phase 2: User Setup Required
360
+
361
+ **Generated:** 2025-01-14
362
+ **Phase:** 02-authentication
363
+ **Status:** Incomplete
364
+
365
+ Complete these items for Supabase Auth to function.
366
+
367
+ ## Environment Variables
368
+
369
+ | Status | Variable | Source | Add to |
370
+ |--------|----------|--------|--------|
371
+ | [ ] | `NEXT_PUBLIC_SUPABASE_URL` | Supabase Dashboard → Settings → API → Project URL | `.env.local` |
372
+ | [ ] | `NEXT_PUBLIC_SUPABASE_ANON_KEY` | Supabase Dashboard → Settings → API → anon public | `.env.local` |
373
+ | [ ] | `SUPABASE_SERVICE_ROLE_KEY` | Supabase Dashboard → Settings → API → service_role | `.env.local` |
374
+
375
+ ## Account Setup
376
+
377
+ - [ ] **Create Supabase project**
378
+ - URL: https://supabase.com/dashboard/new
379
+ - Skip if: Already have project for this app
380
+
381
+ ## Dashboard Configuration
382
+
383
+ - [ ] **Enable Email Auth**
384
+ - Location: Supabase Dashboard → Authentication → Providers
385
+ - Enable: Email provider
386
+ - Configure: Confirm email (on/off based on preference)
387
+
388
+ - [ ] **Configure OAuth providers** (if using social login)
389
+ - Location: Supabase Dashboard → Authentication → Providers
390
+ - For Google: Add Client ID and Secret from Google Cloud Console
391
+ - For GitHub: Add Client ID and Secret from GitHub OAuth Apps
392
+
393
+ ## Verification
394
+
395
+ After completing setup:
396
+
397
+ ```bash
398
+ # Check env vars
399
+ grep SUPABASE .env.local
400
+
401
+ # Verify connection (run in project directory)
402
+ npx supabase status
403
+ ```
404
+
405
+ ---
406
+
407
+ **Once all items complete:** Mark status as "Complete" at top of file.
408
+ ```
409
+ </supabase_example>
410
+
411
+ <sendgrid_example>
412
+ ```markdown
413
+ # Phase 5: User Setup Required
414
+
415
+ **Generated:** 2025-01-14
416
+ **Phase:** 05-notifications
417
+ **Status:** Incomplete
418
+
419
+ Complete these items for SendGrid email to function.
420
+
421
+ ## Environment Variables
422
+
423
+ | Status | Variable | Source | Add to |
424
+ |--------|----------|--------|--------|
425
+ | [ ] | `SENDGRID_API_KEY` | SendGrid Dashboard → Settings → API Keys → Create API Key | `.env.local` |
426
+ | [ ] | `SENDGRID_FROM_EMAIL` | Your verified sender email address | `.env.local` |
427
+
428
+ ## Account Setup
429
+
430
+ - [ ] **Create SendGrid account**
431
+ - URL: https://signup.sendgrid.com/
432
+ - Skip if: Already have account
433
+
434
+ ## Dashboard Configuration
435
+
436
+ - [ ] **Verify sender identity**
437
+ - Location: SendGrid Dashboard → Settings → Sender Authentication
438
+ - Option 1: Single Sender Verification (quick, for dev)
439
+ - Option 2: Domain Authentication (production)
440
+
441
+ - [ ] **Create API Key**
442
+ - Location: SendGrid Dashboard → Settings → API Keys → Create API Key
443
+ - Permission: Restricted Access → Mail Send (Full Access)
444
+ - Copy key immediately (shown only once)
445
+
446
+ ## Verification
447
+
448
+ After completing setup:
449
+
450
+ ```bash
451
+ # Check env var
452
+ grep SENDGRID .env.local
453
+
454
+ # Test email sending (replace with your test email)
455
+ curl -X POST http://localhost:3000/api/test-email \
456
+ -H "Content-Type: application/json" \
457
+ -d '{"to": "your@email.com"}'
458
+ ```
459
+
460
+ ---
461
+
462
+ **Once all items complete:** Mark status as "Complete" at top of file.
463
+ ```
464
+ </sendgrid_example>
465
+
466
+ ---
467
+
468
+ ## Guidelines
469
+
470
+ **Never include:** Actual secret values. Steps Claude can automate (package installs, code changes).
471
+
472
+ **Naming:** `{phase}-USER-SETUP.md` matches the phase number pattern.
473
+ **Status tracking:** User marks checkboxes and updates status line when complete.
474
+ **Searchability:** `grep -r "USER-SETUP" .planning/` finds all phases with user requirements.
475
+
476
+ ## Section: dev-preferences
477
+
478
+ ---
479
+ description: Load developer preferences into this session
480
+ ---
481
+
482
+ # Developer Preferences
483
+
484
+ > Generated by GSD on {{generated_at}} from {{data_source}}.
485
+ > Run `/gsd:profile-user --refresh` to regenerate.
486
+
487
+ ## Behavioral Directives
488
+
489
+ Follow these directives when working with this developer. Higher confidence
490
+ directives should be applied directly. Lower confidence directives should be
491
+ tried with hedging ("Based on your profile, I'll try X -- let me know if
492
+ that's off").
493
+
494
+ {{behavioral_directives}}
495
+
496
+ ## Stack Preferences
497
+
498
+ {{stack_preferences}}