sdd-jc-methodology 0.2.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 (148) hide show
  1. package/.claude/commands/sdd-archive.md +122 -0
  2. package/.claude/commands/sdd-constitution.md +240 -0
  3. package/.claude/commands/sdd-execute.md +132 -0
  4. package/.claude/commands/sdd-propose.md +149 -0
  5. package/.claude/commands/sdd-seo.md +251 -0
  6. package/.claude/commands/sdd-specify.md +264 -0
  7. package/.claude/commands/sdd-test.md +128 -0
  8. package/.claude/commands/sdd-validate.md +165 -0
  9. package/.claude/skills/api-design-principles/SKILL.md +528 -0
  10. package/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  11. package/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
  12. package/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  13. package/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
  14. package/.claude/skills/aws-serverless/SKILL.md +323 -0
  15. package/.claude/skills/brainstorming/SKILL.md +96 -0
  16. package/.claude/skills/error-handling-patterns/SKILL.md +641 -0
  17. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  18. package/.claude/skills/frontend-design/SKILL.md +272 -0
  19. package/.claude/skills/nestjs-expert/SKILL.md +552 -0
  20. package/.claude/skills/product-manager-toolkit/SKILL.md +351 -0
  21. package/.claude/skills/product-manager-toolkit/references/prd_templates.md +317 -0
  22. package/.claude/skills/product-manager-toolkit/scripts/customer_interview_analyzer.py +441 -0
  23. package/.claude/skills/product-manager-toolkit/scripts/rice_prioritizer.py +296 -0
  24. package/.claude/skills/react-doctor/AGENTS.md +15 -0
  25. package/.claude/skills/react-doctor/SKILL.md +19 -0
  26. package/.claude/skills/shadcn-ui/SKILL.md +1677 -0
  27. package/.claude/skills/shadcn-ui/references/learn.md +145 -0
  28. package/.claude/skills/shadcn-ui/references/official-ui-reference.md +1725 -0
  29. package/.claude/skills/shadcn-ui/references/reference.md +586 -0
  30. package/.claude/skills/shadcn-ui/references/ui-reference.md +1578 -0
  31. package/.claude/skills/stitch-design/README.md +50 -0
  32. package/.claude/skills/stitch-design/SKILL.md +84 -0
  33. package/.claude/skills/stitch-design/examples/DESIGN.md +22 -0
  34. package/.claude/skills/stitch-design/examples/enhanced-prompt.md +28 -0
  35. package/.claude/skills/stitch-design/references/design-mappings.md +45 -0
  36. package/.claude/skills/stitch-design/references/prompt-keywords.md +114 -0
  37. package/.claude/skills/stitch-design/references/tool-schemas.md +76 -0
  38. package/.claude/skills/stitch-design/workflows/edit-design.md +44 -0
  39. package/.claude/skills/stitch-design/workflows/generate-design-md.md +63 -0
  40. package/.claude/skills/stitch-design/workflows/text-to-design.md +47 -0
  41. package/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
  42. package/.claude/skills/systematic-debugging/SKILL.md +296 -0
  43. package/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  44. package/.claude/skills/systematic-debugging/condition-based-waiting.md +115 -0
  45. package/.claude/skills/systematic-debugging/defense-in-depth.md +122 -0
  46. package/.claude/skills/systematic-debugging/find-polluter.sh +63 -0
  47. package/.claude/skills/systematic-debugging/root-cause-tracing.md +169 -0
  48. package/.claude/skills/systematic-debugging/test-academic.md +14 -0
  49. package/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
  50. package/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
  51. package/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
  52. package/.claude/skills/tailwind-design-system/SKILL.md +874 -0
  53. package/.claude/skills/ui-ux-pro-max/SKILL.md +377 -0
  54. package/.claude/skills/ui-ux-pro-max/data/charts.csv +26 -0
  55. package/.claude/skills/ui-ux-pro-max/data/colors.csv +97 -0
  56. package/.claude/skills/ui-ux-pro-max/data/icons.csv +101 -0
  57. package/.claude/skills/ui-ux-pro-max/data/landing.csv +31 -0
  58. package/.claude/skills/ui-ux-pro-max/data/products.csv +97 -0
  59. package/.claude/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  60. package/.claude/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  61. package/.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  62. package/.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  63. package/.claude/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  64. package/.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  65. package/.claude/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  66. package/.claude/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  67. package/.claude/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  68. package/.claude/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  69. package/.claude/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  70. package/.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  71. package/.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  72. package/.claude/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  73. package/.claude/skills/ui-ux-pro-max/data/styles.csv +68 -0
  74. package/.claude/skills/ui-ux-pro-max/data/typography.csv +58 -0
  75. package/.claude/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  76. package/.claude/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  77. package/.claude/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  78. package/.claude/skills/ui-ux-pro-max/scripts/core.py +253 -0
  79. package/.claude/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  80. package/.claude/skills/ui-ux-pro-max/scripts/search.py +114 -0
  81. package/.claude/skills/vercel-react-best-practices/AGENTS.md +2934 -0
  82. package/.claude/skills/vercel-react-best-practices/SKILL.md +136 -0
  83. package/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  84. package/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  85. package/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  86. package/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  87. package/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  88. package/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  89. package/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  90. package/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  91. package/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  92. package/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  93. package/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  94. package/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  95. package/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  96. package/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  97. package/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  98. package/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  99. package/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  100. package/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  101. package/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  102. package/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  103. package/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  104. package/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  105. package/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  106. package/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  107. package/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  108. package/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  109. package/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  110. package/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  111. package/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  112. package/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  113. package/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  114. package/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  115. package/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  116. package/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  117. package/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  118. package/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  119. package/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  120. package/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  121. package/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  122. package/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  123. package/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  124. package/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  125. package/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  126. package/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  127. package/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  128. package/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  129. package/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  130. package/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  131. package/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  132. package/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  133. package/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  134. package/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  135. package/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  136. package/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  137. package/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  138. package/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  139. package/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  140. package/.mcp.json.example +12 -0
  141. package/CHANGELOG.md +61 -0
  142. package/LICENSE +21 -0
  143. package/README.md +571 -0
  144. package/assets/jc-fox-mark.svg +10 -0
  145. package/assets/jc-methodology-badge.png +0 -0
  146. package/bin/sdd-jc.js +379 -0
  147. package/package.json +43 -0
  148. package/scripts/gsc_verify.py +162 -0
package/README.md ADDED
@@ -0,0 +1,571 @@
1
+ # sdd-jc-methodology
2
+
3
+ <img src="assets/jc-methodology-badge.png" alt="JC Methodology Badge" width="420">
4
+
5
+ Portable Claude configuration for the SDD JC methodology.
6
+
7
+ SDD JC is a constitution-first, spec-driven methodology for AI-assisted development. It keeps product intent, UX direction, technical design, implementation tasks, tests, and validation evidence in repository documentation so humans and agents can work from the same durable context.
8
+
9
+ ## Repository Structure
10
+
11
+ - `.claude/commands/` — custom SDD command prompts
12
+ - `.claude/skills/` — required and preferred skills used by the methodology
13
+ - `scripts/` — helper scripts referenced by commands (e.g. `gsc_verify.py`)
14
+ - `.mcp.json.example` — reference MCP server configuration (e.g. `gsc`)
15
+ - `dotfiles/` — environment snapshots for Neovim and tmux
16
+
17
+ ## Contents
18
+
19
+ - `.claude/commands/`
20
+ - `sdd-constitution.md`
21
+ - `sdd-propose.md`
22
+ - `sdd-specify.md`
23
+ - `sdd-execute.md`
24
+ - `sdd-test.md`
25
+ - `sdd-validate.md`
26
+ - `sdd-archive.md`
27
+ - `sdd-seo.md`
28
+ - `.claude/skills/`
29
+ - `api-design-principles`
30
+ - `aws-serverless`
31
+ - `brainstorming`
32
+ - `error-handling-patterns`
33
+ - `frontend-design`
34
+ - `nestjs-expert`
35
+ - `product-manager-toolkit`
36
+ - `react-doctor`
37
+ - `shadcn-ui`
38
+ - `stitch-design`
39
+ - `systematic-debugging`
40
+ - `tailwind-design-system`
41
+ - `ui-ux-pro-max`
42
+ - `vercel-react-best-practices`
43
+
44
+ ## Install
45
+
46
+ Install the methodology with the bundled CLI. The installer can target Claude, OpenCode, or both.
47
+
48
+ ### Prerequisites
49
+
50
+ - Node.js 18 or newer
51
+ - `pnpm`, `npm`, or another Node package runner
52
+ - Claude Code and/or OpenCode installed, depending on where you want to use the methodology
53
+
54
+ ### Step 1: Choose The Target Tool
55
+
56
+ | Target | Use When | Default Install Path |
57
+ |---|---|---|
58
+ | Claude | You use Claude Code slash commands and Claude skills | `~/.claude` |
59
+ | OpenCode | You use OpenCode commands and skills | `~/.config/opencode` |
60
+ | Both | You switch between Claude Code and OpenCode | both paths |
61
+
62
+ ### Step 2: Install With `pnpm dlx`
63
+
64
+ Install for Claude:
65
+
66
+ ```bash
67
+ pnpm dlx sdd-jc-methodology install --tool claude
68
+ ```
69
+
70
+ Install for OpenCode:
71
+
72
+ ```bash
73
+ pnpm dlx sdd-jc-methodology install --tool opencode
74
+ ```
75
+
76
+ Install for both tools:
77
+
78
+ ```bash
79
+ pnpm dlx sdd-jc-methodology install --tool both
80
+ ```
81
+
82
+ Claude is the default, so this is equivalent to `--tool claude`:
83
+
84
+ ```bash
85
+ pnpm dlx sdd-jc-methodology install
86
+ ```
87
+
88
+ ### Step 3: Verify The Installation
89
+
90
+ Check Claude installation:
91
+
92
+ ```bash
93
+ pnpm dlx sdd-jc-methodology doctor --tool claude
94
+ ```
95
+
96
+ Check OpenCode installation:
97
+
98
+ ```bash
99
+ pnpm dlx sdd-jc-methodology doctor --tool opencode
100
+ ```
101
+
102
+ Check both:
103
+
104
+ ```bash
105
+ pnpm dlx sdd-jc-methodology doctor --tool both
106
+ ```
107
+
108
+ Expected result: every command, skill, and helper resource shows `OK`.
109
+
110
+ ### Step 4: Restart Your Tool
111
+
112
+ Restart Claude Code or OpenCode after installation. Running sessions may not pick up new commands or skills until the tool restarts.
113
+
114
+ ### Step 5: Confirm Commands Are Available
115
+
116
+ In Claude Code or OpenCode, type `/` and confirm these commands are available:
117
+
118
+ ```text
119
+ /sdd-constitution
120
+ /sdd-propose
121
+ /sdd-specify
122
+ /sdd-execute
123
+ /sdd-test
124
+ /sdd-validate
125
+ /sdd-archive
126
+ /sdd-seo
127
+ ```
128
+
129
+ Then start a project with:
130
+
131
+ ```text
132
+ /sdd-constitution
133
+ ```
134
+
135
+ Or, if the project already has a strong baseline:
136
+
137
+ ```text
138
+ /sdd-propose add-my-feature
139
+ ```
140
+
141
+ ### Local Checkout Install
142
+
143
+ If you are installing from this repository before publishing to npm, run:
144
+
145
+ ```bash
146
+ node bin/sdd-jc.js install
147
+ node bin/sdd-jc.js install --tool opencode
148
+ node bin/sdd-jc.js install --tool both
149
+ ```
150
+
151
+ Verify local checkout install:
152
+
153
+ ```bash
154
+ node bin/sdd-jc.js doctor --tool both
155
+ ```
156
+
157
+ ### Global Install
158
+
159
+ If you prefer a persistent global CLI:
160
+
161
+ ```bash
162
+ pnpm add -g sdd-jc-methodology
163
+ sdd-jc install
164
+ sdd-jc install --tool opencode
165
+ sdd-jc doctor --tool opencode
166
+ ```
167
+
168
+ ### Install Paths
169
+
170
+ Default targets:
171
+
172
+ ```text
173
+ Claude: ~/.claude
174
+ OpenCode: ~/.config/opencode
175
+ ```
176
+
177
+ For Claude, the installer writes:
178
+
179
+ ```text
180
+ ~/.claude/commands/
181
+ ~/.claude/skills/
182
+ ~/.claude/sdd-jc/scripts/
183
+ ~/.claude/sdd-jc/.mcp.json.example
184
+ ```
185
+
186
+ For OpenCode, the installer writes:
187
+
188
+ ```text
189
+ ~/.config/opencode/commands/
190
+ ~/.config/opencode/skills/
191
+ ~/.config/opencode/sdd-jc/scripts/
192
+ ~/.config/opencode/sdd-jc/.mcp.json.example
193
+ ```
194
+
195
+ OpenCode loads global command markdown files from `~/.config/opencode/commands/` and skills from `~/.config/opencode/skills/`. Restart OpenCode after install or update so it loads the new files.
196
+
197
+ ### Updating
198
+
199
+ Update Claude:
200
+
201
+ ```bash
202
+ pnpm dlx sdd-jc-methodology update --tool claude --force
203
+ ```
204
+
205
+ Update OpenCode:
206
+
207
+ ```bash
208
+ pnpm dlx sdd-jc-methodology update --tool opencode --force
209
+ ```
210
+
211
+ Update both:
212
+
213
+ ```bash
214
+ pnpm dlx sdd-jc-methodology update --tool both --force
215
+ ```
216
+
217
+ Use `--force` when you want packaged files to replace older installed files. Without `--force`, existing files are skipped.
218
+
219
+ ### CLI Commands
220
+
221
+ | Command | Purpose |
222
+ |---|---|
223
+ | `sdd-jc install` | Install commands, skills, and helper resources |
224
+ | `sdd-jc update` | Reinstall packaged commands, skills, and helper resources |
225
+ | `sdd-jc list` | Show packaged commands, skills, and helper resources |
226
+ | `sdd-jc doctor` | Check whether expected files are installed |
227
+
228
+ Useful options:
229
+
230
+ ```bash
231
+ sdd-jc install --dry-run
232
+ sdd-jc install --tool claude --target ./.claude
233
+ sdd-jc install --tool opencode --target ./.config/opencode
234
+ sdd-jc install --tool both --claude-target ./.claude --opencode-target ./.config/opencode
235
+ sdd-jc update --force
236
+ sdd-jc update --tool both --force
237
+ sdd-jc doctor --commands-only
238
+ sdd-jc doctor --tool opencode --skills-only
239
+ ```
240
+
241
+ Installer safety rules:
242
+
243
+ - existing files are skipped by default
244
+ - use `--force` to overwrite existing files
245
+ - use `--dry-run` to preview changes
246
+ - use `--tool claude`, `--tool opencode`, or `--tool both` to choose the destination
247
+ - use `--target <path>` to install a single selected tool somewhere custom
248
+ - use `--claude-target <path>` and `--opencode-target <path>` with `--tool both`
249
+
250
+ The helper resources under the target `sdd-jc/` folder support commands such as `/sdd-seo`, including the bundled Google Search Console verification helper.
251
+
252
+ ### Troubleshooting
253
+
254
+ If commands do not appear:
255
+
256
+ - run `sdd-jc doctor --tool <claude|opencode|both>`
257
+ - restart Claude Code or OpenCode
258
+ - confirm you installed into the expected target path
259
+ - rerun install with `--force` if old files should be replaced
260
+
261
+ If you want to preview installation without writing files:
262
+
263
+ ```bash
264
+ sdd-jc install --tool both --dry-run
265
+ ```
266
+
267
+ ### Manual Install
268
+
269
+ If you do not want to use the CLI, copy the repository `.claude/commands` and `.claude/skills` folders into your tool configuration location.
270
+
271
+ Typical global install target:
272
+
273
+ - `~/.claude/commands/`
274
+ - `~/.claude/skills/`
275
+
276
+ Typical OpenCode global install target:
277
+
278
+ - `~/.config/opencode/commands/`
279
+ - `~/.config/opencode/skills/`
280
+
281
+ Example:
282
+
283
+ ```bash
284
+ cp -R .claude/commands/* ~/.claude/commands/
285
+ cp -R .claude/skills/* ~/.claude/skills/
286
+ ```
287
+
288
+ Manual OpenCode example:
289
+
290
+ ```bash
291
+ mkdir -p ~/.config/opencode/commands ~/.config/opencode/skills
292
+ cp -R .claude/commands/* ~/.config/opencode/commands/
293
+ cp -R .claude/skills/* ~/.config/opencode/skills/
294
+ ```
295
+
296
+ ## Dotfiles
297
+
298
+ The repository also includes editor and terminal configuration snapshots under `dotfiles/`:
299
+
300
+ - `dotfiles/.config/nvim/`
301
+ - `dotfiles/.tmux/`
302
+ - `dotfiles/.tmux.conf`
303
+
304
+ These are stored as portable references or backup material for the environment used with this methodology.
305
+
306
+ ### Restore Neovim
307
+
308
+ ```bash
309
+ mkdir -p ~/.config
310
+ cp -R dotfiles/.config/nvim ~/.config/
311
+ ```
312
+
313
+ ### Restore tmux
314
+
315
+ ```bash
316
+ cp dotfiles/.tmux.conf ~/.tmux.conf
317
+ cp -R dotfiles/.tmux ~/.tmux
318
+ ```
319
+
320
+ If you prefer a lighter restore, keep `~/.tmux.conf` and reinstall plugins separately instead of copying the full plugin snapshot.
321
+
322
+ ## Start Here
323
+
324
+ Use this flow for normal feature work:
325
+
326
+ 1. `/sdd-constitution` - create or strengthen the project baseline.
327
+ 2. `/sdd-propose <change-name-or-spec-path>` - capture intent, scope, and reviewable direction.
328
+ 3. `/sdd-specify <spec-path>` - define one feature, module, bugfix, or enhancement.
329
+ 4. `/sdd-execute <spec-path>` - implement the next approved task.
330
+ 5. `/sdd-test <spec-path>` - prove the behavior with tests and traceability.
331
+ 6. `/sdd-validate <spec-path>` - audit conformance before calling the work done.
332
+ 7. `/sdd-archive <spec-path>` - preserve completed work and remove it from active specs.
333
+
334
+ Run `/sdd-constitution` first in a new repository, after a major product pivot, or when the baseline docs are missing. For an established repository with a good baseline, start at `/sdd-propose <change-name>` or `/sdd-specify <spec-path>`.
335
+
336
+ Use `/sdd-propose` when the change needs review before full specification. For very small, obvious work, you may start directly with `/sdd-specify <spec-path>`.
337
+
338
+ ## Command Map
339
+
340
+ | Command | Use When | Main Output |
341
+ |---|---|---|
342
+ | `/sdd-constitution` | Starting a repo or repairing weak project context | `docs/prd.md`, system design, detailed design, general spec templates, `CLAUDE.md` guidance |
343
+ | `/sdd-propose <change-name-or-spec-path>` | Aligning on intent before full specification | `proposal.md` under `docs/specs/<spec-path>/` |
344
+ | `/sdd-specify <spec-path>` | Planning one bounded change before code | `requirements.md`, `design.md`, `tasks.md` under `docs/specs/<spec-path>/` |
345
+ | `/sdd-execute <spec-path>` | Implementing approved tasks | Code changes, updated `tasks.md`, `execution.md` |
346
+ | `/sdd-test <spec-path>` | Adding or running test evidence | `test-report.md` with requirement-to-test traceability |
347
+ | `/sdd-validate <spec-path>` | Checking implementation against the spec | `validation-report.md` with pass, warning, failure, and remediation items |
348
+ | `/sdd-archive <spec-path>` | Closing completed work after validation | Archived spec folder under `docs/specs/archive/` with `archive-summary.md` |
349
+ | `/sdd-seo <site-domain>` | Auditing deployed SEO and Search Console state | `seo-setup-report.md`, `seo-audit-report.md` |
350
+
351
+ ## How To Choose The Right Depth
352
+
353
+ Use the lightest documentation that still makes the work clear and verifiable.
354
+
355
+ | Work Type | Recommended Depth | What To Capture |
356
+ |---|---|---|
357
+ | Small bugfix or UI tweak | Lite | Problem, affected requirement, scenario, focused task, verification command |
358
+ | Normal feature | Standard | Requirements, scenarios, design decisions, task breakdown, tests |
359
+ | High-risk change | Full | Business context, alternatives, data/API contracts, rollout, risks, observability, rollback |
360
+ | Cross-cutting architecture | Full plus constitution review | Updates to project baseline docs and affected specs |
361
+
362
+ Lite mode does not skip rigor. It keeps the documents short, but every requirement still needs a testable scenario and every task still needs a done criterion.
363
+
364
+ ## Core Concepts
365
+
366
+ | Concept | Meaning |
367
+ |---|---|
368
+ | Constitution | Project-wide context that should not be rediscovered every session |
369
+ | Proposal | A lightweight review document for intent, scope, options, and risks |
370
+ | Spec path | A folder under `docs/specs/` for one bounded piece of work |
371
+ | Requirement | A testable statement of expected behavior |
372
+ | Scenario | A concrete Given/When/Then example that proves a requirement |
373
+ | Design | The technical and UX approach for satisfying requirements |
374
+ | Task | A small executable unit linked to requirements and design sections |
375
+ | Report | Evidence that the implementation was tested and validated |
376
+ | Archive | Completed SDD history moved under `docs/specs/archive/` |
377
+
378
+ ## Spec Folder Shape
379
+
380
+ Each feature or change should live in one folder:
381
+
382
+ ```text
383
+ docs/specs/<spec-path>/
384
+ ├── proposal.md # created by /sdd-propose, optional but recommended
385
+ ├── requirements.md
386
+ ├── design.md
387
+ ├── tasks.md
388
+ ├── execution.md # created by /sdd-execute
389
+ ├── test-report.md # created by /sdd-test
390
+ ├── validation-report.md # created by /sdd-validate
391
+ └── archive-summary.md # created by /sdd-archive before moving
392
+ ```
393
+
394
+ Choose paths that describe the domain and intent:
395
+
396
+ ```text
397
+ docs/specs/loan/
398
+ docs/specs/enhancements/renewals/
399
+ docs/specs/admin/user-management/
400
+ docs/specs/bugfix/login-redirect/
401
+ docs/specs/changes/add-remember-me/
402
+ ```
403
+
404
+ When `/sdd-propose add-remember-me` receives a bare change name, it defaults to `docs/specs/changes/add-remember-me/`. When it receives a nested path such as `bugfix/login-redirect`, it uses that path directly.
405
+
406
+ ## Requirement Delta Preview
407
+
408
+ Proposals can include a lightweight delta preview. This makes reviews faster for brownfield work:
409
+
410
+ ```markdown
411
+ ## Requirement Delta Preview
412
+
413
+ ### ADDED Requirements
414
+
415
+ - The system SHALL allow users to opt into extended sessions.
416
+
417
+ ### MODIFIED Requirements
418
+
419
+ - Session expiration changes from a fixed timeout to configurable timeout policies.
420
+
421
+ ### REMOVED Requirements
422
+
423
+ - Legacy session persistence behavior is removed after migration.
424
+ ```
425
+
426
+ During `/sdd-specify`, these previews become full requirements, scenarios, design decisions, and tasks.
427
+
428
+ ## Writing Good Requirements
429
+
430
+ Write requirements as behavior contracts, not implementation plans.
431
+
432
+ Use this shape when possible:
433
+
434
+ ```markdown
435
+ ### Requirement: Session Expiration
436
+
437
+ The system SHALL expire inactive user sessions after the configured timeout.
438
+
439
+ #### Scenario: Idle timeout
440
+
441
+ - GIVEN an authenticated user has an active session
442
+ - WHEN the session remains inactive past the configured timeout
443
+ - THEN the system invalidates the session
444
+ - AND the user must authenticate again before accessing protected pages
445
+ ```
446
+
447
+ Good requirements are:
448
+
449
+ - observable by a user, system, API client, or operator
450
+ - measurable enough to test
451
+ - independent from internal class names or library choices
452
+ - linked to at least one implementation task
453
+ - covered by test evidence or an explicit accepted gap
454
+
455
+ ## Review Points
456
+
457
+ Before implementation, review:
458
+
459
+ - whether the problem and scope are clear
460
+ - whether every requirement has at least one scenario
461
+ - whether design decisions explain trade-offs instead of only listing files
462
+ - whether tasks are small enough to execute independently
463
+ - whether every task has verification criteria
464
+
465
+ Before completion, review:
466
+
467
+ - whether all intended tasks are complete
468
+ - whether tests cover the key scenarios
469
+ - whether validation found unresolved failures
470
+ - whether the spec should be updated based on implementation discoveries
471
+
472
+ ## Practical Example
473
+
474
+ For a new admin user-management feature:
475
+
476
+ ```text
477
+ /sdd-constitution
478
+ /sdd-propose admin/user-management
479
+ /sdd-specify admin/user-management
480
+ /sdd-execute admin/user-management
481
+ /sdd-test admin/user-management
482
+ /sdd-validate admin/user-management
483
+ /sdd-archive admin/user-management
484
+ ```
485
+
486
+ For a small login redirect bugfix in an established repo:
487
+
488
+ ```text
489
+ /sdd-specify bugfix/login-redirect
490
+ /sdd-execute bugfix/login-redirect
491
+ /sdd-test bugfix/login-redirect
492
+ /sdd-validate bugfix/login-redirect
493
+ /sdd-archive bugfix/login-redirect
494
+ ```
495
+
496
+ For a reviewable named change using the default `changes/` path:
497
+
498
+ ```text
499
+ /sdd-propose add-remember-me
500
+ /sdd-specify changes/add-remember-me
501
+ /sdd-execute changes/add-remember-me
502
+ /sdd-test changes/add-remember-me
503
+ /sdd-validate changes/add-remember-me
504
+ /sdd-archive changes/add-remember-me
505
+ ```
506
+
507
+ ## Planned Improvements Inspired By OpenSpec
508
+
509
+ OpenSpec has useful ideas that fit this methodology well. Some are now supported through `/sdd-propose` and `/sdd-archive`. Remaining planned improvements:
510
+
511
+ - automated sync lifecycle for completed specs
512
+ - schema-style workflow templates for feature, bugfix, migration, SEO, and research-first work
513
+ - broader command portability beyond Claude-specific command files
514
+
515
+ ### Auxiliary commands
516
+
517
+ - `/sdd-seo <site-domain>` — SEO setup & audit via Google Search Console. Verifies a domain through DNS TXT using a service account, adds the property to GSC, then audits index coverage, sitemaps, structured data, search analytics, server-side render, and internal linking. Produces `seo-setup-report.md` and `seo-audit-report.md` under `docs/specs/seo/<domain>/`, including a copy-paste implementation prompt for fixing every High-severity finding.
518
+
519
+ Dependencies bundled with this repo:
520
+
521
+ - `scripts/gsc_verify.py` — Site Verification API helper (token + verify), because the `gsc` MCP only wraps Search Console, not Site Verification.
522
+ - `.mcp.json.example` — reference MCP server entry for `@mikusnuz/gsc-mcp`.
523
+
524
+ Setup once per environment:
525
+
526
+ 1. Enable **Site Verification API** and **Search Console API** in your Google Cloud project.
527
+ 2. Create a service account, download its JSON key, store outside the repo.
528
+ 3. Install Python deps: `pip install google-auth google-api-python-client`.
529
+ 4. Copy the `gsc` block from `.mcp.json.example` into your global `~/.claude.json` (or a project `.mcp.json`) and set `GSC_SERVICE_ACCOUNT_KEY_PATH` to the absolute path of the key.
530
+
531
+ ## Spec Paths
532
+
533
+ Commands accept a relative path under `docs/specs/`, not only a flat module name.
534
+
535
+ Examples:
536
+
537
+ - `loan`
538
+ - `enhancements/renewals`
539
+ - `admin/user-management`
540
+
541
+ ## Dependencies
542
+
543
+ Included skills cover the default methodology path, including `ui-ux-pro-max`.
544
+
545
+ Fallback rule:
546
+
547
+ - when `ui-ux-pro-max` is unavailable, use `frontend-design` + `stitch-design` for system-design work and `frontend-design` for UI validation/testing support.
548
+
549
+ ## Methodology Contract
550
+
551
+ - `/sdd-constitution` establishes the project baseline docs and `docs/specs/general-setup/` templates.
552
+ - `/sdd-propose` creates a lightweight proposal before full specification.
553
+ - `/sdd-specify` must follow those templates when generating module specs.
554
+ - `/sdd-execute` implements tasks from an approved spec path.
555
+ - `/sdd-test` validates requirement-to-test traceability.
556
+ - `/sdd-validate` audits implementation conformance against the spec and constitutional baseline.
557
+ - `/sdd-archive` preserves completed specs under `docs/specs/archive/` after validation.
558
+ - `/sdd-seo` operates outside the main spec lifecycle: it provisions Google Search Console ownership for a domain and produces a standalone SEO audit under `docs/specs/seo/<domain>/`. Run it any time after deployment; rerun after major content or schema changes.
559
+
560
+ ## Host Assumptions
561
+
562
+ - The host Claude environment can ask follow-up questions to the user during command execution.
563
+ - The host environment can load local skills referenced by the commands.
564
+ - Repository-specific build, lint, and test commands should be preferred over hardcoded stack assumptions.
565
+
566
+ ## Notes
567
+
568
+ - Commands were sourced from the current global Claude command setup.
569
+ - Skills were copied with their bundled references and helper assets.
570
+ - This repository stores the current methodology baseline so it can be reused or versioned independently.
571
+ - Dotfiles are snapshots of the working environment and may include plugin source copies for portability.
@@ -0,0 +1,10 @@
1
+ <svg width="640" height="180" viewBox="0 0 640 180" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="640" height="180" rx="24" fill="#0F172A"/>
3
+ <path d="M88 118L118 58L144 88L172 54L206 118H88Z" fill="#F59E0B"/>
4
+ <path d="M132 88L152 108L172 88" stroke="#0F172A" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <circle cx="138" cy="92" r="4" fill="#0F172A"/>
6
+ <circle cx="166" cy="92" r="4" fill="#0F172A"/>
7
+ <text x="220" y="121" fill="#E5E7EB" font-family="Inter, Arial, sans-serif" font-size="104" font-weight="700" letter-spacing="2">SD</text>
8
+ <text x="387" y="121" fill="#38BDF8" font-family="Inter, Arial, sans-serif" font-size="104" font-weight="700" letter-spacing="2">D</text>
9
+ <text x="219" y="42" fill="#94A3B8" font-family="Inter, Arial, sans-serif" font-size="16" letter-spacing="3.2">JC METHODOLOGY</text>
10
+ </svg>
Binary file