gsd-antigravity-kit 2.0.1 → 2.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 (251) hide show
  1. package/.agent/skills/gsd/SKILL.md +26 -4
  2. package/.agent/skills/gsd/VERSION +1 -1
  3. package/.agent/skills/gsd/assets/templates/AI-SPEC.md +246 -0
  4. package/.agent/skills/gsd/assets/templates/DEBUG.md +7 -2
  5. package/.agent/skills/gsd/assets/templates/config.json +56 -48
  6. package/.agent/skills/gsd/assets/templates/research.md +40 -0
  7. package/.agent/skills/gsd/assets/templates/spec.md +307 -0
  8. package/.agent/skills/gsd/assets/templates/state.md +8 -0
  9. package/.agent/skills/gsd/bin/gsd-tools.cjs +212 -11
  10. package/.agent/skills/gsd/bin/help-manifest.json +8 -2
  11. package/.agent/skills/gsd/bin/hooks/gsd-check-update-worker.js +108 -0
  12. package/.agent/skills/gsd/bin/hooks/gsd-check-update.js +14 -89
  13. package/.agent/skills/gsd/bin/hooks/gsd-context-monitor.js +34 -5
  14. package/.agent/skills/gsd/bin/hooks/gsd-phase-boundary.sh +1 -0
  15. package/.agent/skills/gsd/bin/hooks/gsd-prompt-guard.js +1 -1
  16. package/.agent/skills/gsd/bin/hooks/gsd-read-guard.js +6 -1
  17. package/.agent/skills/gsd/bin/hooks/gsd-session-state.sh +1 -0
  18. package/.agent/skills/gsd/bin/hooks/gsd-statusline.js +150 -16
  19. package/.agent/skills/gsd/bin/hooks/gsd-validate-commit.sh +1 -0
  20. package/.agent/skills/gsd/bin/hooks/gsd-workflow-guard.js +1 -1
  21. package/.agent/skills/gsd/bin/lib/audit.cjs +757 -0
  22. package/.agent/skills/gsd/bin/lib/commands.cjs +17 -7
  23. package/.agent/skills/gsd/bin/lib/config.cjs +66 -20
  24. package/.agent/skills/gsd/bin/lib/core.cjs +212 -12
  25. package/.agent/skills/gsd/bin/lib/frontmatter.cjs +6 -8
  26. package/.agent/skills/gsd/bin/lib/graphify.cjs +494 -0
  27. package/.agent/skills/gsd/bin/lib/gsd2-import.cjs +511 -0
  28. package/.agent/skills/gsd/bin/lib/init.cjs +371 -18
  29. package/.agent/skills/gsd/bin/lib/intel.cjs +9 -30
  30. package/.agent/skills/gsd/bin/lib/milestone.cjs +18 -17
  31. package/.agent/skills/gsd/bin/lib/model-profiles.cjs +1 -0
  32. package/.agent/skills/gsd/bin/lib/phase.cjs +225 -98
  33. package/.agent/skills/gsd/bin/lib/profile-output.cjs +17 -5
  34. package/.agent/skills/gsd/bin/lib/roadmap.cjs +12 -5
  35. package/.agent/skills/gsd/bin/lib/state.cjs +394 -129
  36. package/.agent/skills/gsd/bin/lib/template.cjs +8 -4
  37. package/.agent/skills/gsd/bin/lib/uat.cjs +2 -1
  38. package/.agent/skills/gsd/bin/lib/verify.cjs +111 -42
  39. package/.agent/skills/gsd/migration_report.md +2 -2
  40. package/.agent/skills/gsd/references/agents/gsd-advisor-researcher.md +23 -0
  41. package/.agent/skills/gsd/references/agents/gsd-ai-researcher.md +133 -0
  42. package/.agent/skills/gsd/references/agents/gsd-code-fixer.md +11 -10
  43. package/.agent/skills/gsd/references/agents/gsd-code-reviewer.md +2 -2
  44. package/.agent/skills/gsd/references/agents/gsd-codebase-mapper.md +13 -2
  45. package/.agent/skills/gsd/references/agents/gsd-debug-session-manager.md +314 -0
  46. package/.agent/skills/gsd/references/agents/gsd-debugger.md +147 -76
  47. package/.agent/skills/gsd/references/agents/gsd-doc-verifier.md +1 -1
  48. package/.agent/skills/gsd/references/agents/gsd-doc-writer.md +615 -602
  49. package/.agent/skills/gsd/references/agents/gsd-domain-researcher.md +153 -0
  50. package/.agent/skills/gsd/references/agents/gsd-eval-auditor.md +175 -0
  51. package/.agent/skills/gsd/references/agents/gsd-eval-planner.md +154 -0
  52. package/.agent/skills/gsd/references/agents/gsd-executor.md +108 -38
  53. package/.agent/skills/gsd/references/agents/gsd-framework-selector.md +160 -0
  54. package/.agent/skills/gsd/references/agents/gsd-integration-checker.md +454 -443
  55. package/.agent/skills/gsd/references/agents/gsd-intel-updater.md +40 -20
  56. package/.agent/skills/gsd/references/agents/gsd-nyquist-auditor.md +187 -176
  57. package/.agent/skills/gsd/references/agents/gsd-pattern-mapper.md +335 -0
  58. package/.agent/skills/gsd/references/agents/gsd-phase-researcher.md +112 -13
  59. package/.agent/skills/gsd/references/agents/gsd-plan-checker.md +104 -10
  60. package/.agent/skills/gsd/references/agents/gsd-planner.md +125 -167
  61. package/.agent/skills/gsd/references/agents/gsd-project-researcher.md +25 -2
  62. package/.agent/skills/gsd/references/agents/gsd-research-synthesizer.md +3 -3
  63. package/.agent/skills/gsd/references/agents/gsd-roadmapper.md +12 -1
  64. package/.agent/skills/gsd/references/agents/gsd-security-auditor.md +139 -128
  65. package/.agent/skills/gsd/references/agents/gsd-ui-auditor.md +3 -3
  66. package/.agent/skills/gsd/references/agents/gsd-ui-checker.md +11 -2
  67. package/.agent/skills/gsd/references/agents/gsd-ui-researcher.md +27 -4
  68. package/.agent/skills/gsd/references/agents/gsd-verifier.md +13 -19
  69. package/.agent/skills/gsd/references/commands/atomic/add-todo.md +2 -2
  70. package/.agent/skills/gsd/references/commands/atomic/check-todos.md +2 -2
  71. package/.agent/skills/gsd/references/commands/atomic/cleanup.md +2 -2
  72. package/.agent/skills/gsd/references/commands/atomic/do.md +2 -2
  73. package/.agent/skills/gsd/references/commands/atomic/help.md +2 -2
  74. package/.agent/skills/gsd/references/commands/atomic/join-discord.md +2 -2
  75. package/.agent/skills/gsd/references/commands/atomic/note.md +2 -2
  76. package/.agent/skills/gsd/references/commands/atomic/session-report.md +2 -2
  77. package/.agent/skills/gsd/references/commands/atomic/ship.md +2 -2
  78. package/.agent/skills/gsd/references/commands/atomic/stats.md +2 -2
  79. package/.agent/skills/gsd/references/commands/atomic/thread.md +141 -41
  80. package/.agent/skills/gsd/references/commands/atomic/undo.md +2 -2
  81. package/.agent/skills/gsd/references/commands/milestone/add-backlog.md +15 -12
  82. package/.agent/skills/gsd/references/commands/milestone/audit-milestone.md +2 -2
  83. package/.agent/skills/gsd/references/commands/milestone/complete-milestone.md +2 -2
  84. package/.agent/skills/gsd/references/commands/milestone/milestone-summary.md +2 -2
  85. package/.agent/skills/gsd/references/commands/milestone/new-milestone.md +2 -2
  86. package/.agent/skills/gsd/references/commands/milestone/plan-milestone-gaps.md +2 -2
  87. package/.agent/skills/gsd/references/commands/milestone/plant-seed.md +2 -2
  88. package/.agent/skills/gsd/references/commands/milestone/review-backlog.md +4 -4
  89. package/.agent/skills/gsd/references/commands/misc/ai-integration-phase.md +38 -0
  90. package/.agent/skills/gsd/references/commands/misc/audit-fix.md +2 -2
  91. package/.agent/skills/gsd/references/commands/misc/audit-uat.md +2 -2
  92. package/.agent/skills/gsd/references/commands/misc/eval-review.md +34 -0
  93. package/.agent/skills/gsd/references/commands/misc/extract_learnings.md +24 -0
  94. package/.agent/skills/gsd/references/commands/misc/from-gsd2.md +49 -0
  95. package/.agent/skills/gsd/references/commands/misc/graphify.md +203 -0
  96. package/.agent/skills/gsd/references/commands/misc/inbox.md +40 -0
  97. package/.agent/skills/gsd/references/commands/misc/next.md +5 -3
  98. package/.agent/skills/gsd/references/commands/misc/progress.md +4 -3
  99. package/.agent/skills/gsd/references/commands/misc/sketch-wrap-up.md +33 -0
  100. package/.agent/skills/gsd/references/commands/misc/sketch.md +47 -0
  101. package/.agent/skills/gsd/references/commands/misc/spec-phase.md +64 -0
  102. package/.agent/skills/gsd/references/commands/misc/spike-wrap-up.md +33 -0
  103. package/.agent/skills/gsd/references/commands/misc/spike.md +43 -0
  104. package/.agent/skills/gsd/references/commands/misc/verify-work.md +2 -2
  105. package/.agent/skills/gsd/references/commands/phase/add-phase.md +2 -2
  106. package/.agent/skills/gsd/references/commands/phase/add-tests.md +2 -2
  107. package/.agent/skills/gsd/references/commands/phase/discuss-phase.md +5 -5
  108. package/.agent/skills/gsd/references/commands/phase/execute-phase.md +4 -4
  109. package/.agent/skills/gsd/references/commands/phase/insert-phase.md +2 -2
  110. package/.agent/skills/gsd/references/commands/phase/list-phase-assumptions.md +2 -2
  111. package/.agent/skills/gsd/references/commands/phase/plan-phase.md +3 -3
  112. package/.agent/skills/gsd/references/commands/phase/remove-phase.md +2 -2
  113. package/.agent/skills/gsd/references/commands/phase/research-phase.md +5 -5
  114. package/.agent/skills/gsd/references/commands/phase/secure-phase.md +2 -2
  115. package/.agent/skills/gsd/references/commands/phase/ui-phase.md +2 -2
  116. package/.agent/skills/gsd/references/commands/phase/ui-review.md +2 -2
  117. package/.agent/skills/gsd/references/commands/phase/validate-phase.md +2 -2
  118. package/.agent/skills/gsd/references/commands/phase/workstreams.md +9 -9
  119. package/.agent/skills/gsd/references/commands/project/analyze-dependencies.md +2 -2
  120. package/.agent/skills/gsd/references/commands/project/explore.md +2 -2
  121. package/.agent/skills/gsd/references/commands/project/import.md +2 -2
  122. package/.agent/skills/gsd/references/commands/project/intel.md +10 -10
  123. package/.agent/skills/gsd/references/commands/project/list-workspaces.md +2 -2
  124. package/.agent/skills/gsd/references/commands/project/map-codebase.md +2 -2
  125. package/.agent/skills/gsd/references/commands/project/new-project.md +2 -2
  126. package/.agent/skills/gsd/references/commands/project/new-workspace.md +2 -2
  127. package/.agent/skills/gsd/references/commands/project/remove-workspace.md +2 -2
  128. package/.agent/skills/gsd/references/commands/project/scan.md +2 -2
  129. package/.agent/skills/gsd/references/commands/system/autonomous.md +4 -3
  130. package/.agent/skills/gsd/references/commands/system/code-review-fix.md +3 -3
  131. package/.agent/skills/gsd/references/commands/system/code-review.md +3 -3
  132. package/.agent/skills/gsd/references/commands/system/debug.md +177 -100
  133. package/.agent/skills/gsd/references/commands/system/docs-update.md +2 -2
  134. package/.agent/skills/gsd/references/commands/system/fast.md +2 -2
  135. package/.agent/skills/gsd/references/commands/system/forensics.md +2 -2
  136. package/.agent/skills/gsd/references/commands/system/gsd-tools.md +153 -6
  137. package/.agent/skills/gsd/references/commands/system/health.md +2 -2
  138. package/.agent/skills/gsd/references/commands/system/manager.md +3 -3
  139. package/.agent/skills/gsd/references/commands/system/pause-work.md +2 -2
  140. package/.agent/skills/gsd/references/commands/system/pr-branch.md +2 -2
  141. package/.agent/skills/gsd/references/commands/system/profile-user.md +2 -2
  142. package/.agent/skills/gsd/references/commands/system/quick.md +127 -3
  143. package/.agent/skills/gsd/references/commands/system/reapply-patches.md +45 -6
  144. package/.agent/skills/gsd/references/commands/system/resume-work.md +2 -2
  145. package/.agent/skills/gsd/references/commands/system/review.md +6 -4
  146. package/.agent/skills/gsd/references/commands/system/set-profile.md +3 -3
  147. package/.agent/skills/gsd/references/commands/system/settings.md +2 -2
  148. package/.agent/skills/gsd/references/commands/system/update.md +2 -2
  149. package/.agent/skills/gsd/references/docs/ai-evals.md +156 -0
  150. package/.agent/skills/gsd/references/docs/ai-frameworks.md +186 -0
  151. package/.agent/skills/gsd/references/docs/artifact-types.md +18 -0
  152. package/.agent/skills/gsd/references/docs/autonomous-smart-discuss.md +277 -0
  153. package/.agent/skills/gsd/references/docs/checkpoints.md +30 -0
  154. package/.agent/skills/gsd/references/docs/common-bug-patterns.md +49 -49
  155. package/.agent/skills/gsd/references/docs/continuation-format.md +11 -7
  156. package/.agent/skills/gsd/references/docs/debugger-philosophy.md +76 -0
  157. package/.agent/skills/gsd/references/docs/decimal-phase-calculation.md +64 -64
  158. package/.agent/skills/gsd/references/docs/executor-examples.md +110 -0
  159. package/.agent/skills/gsd/references/docs/git-integration.md +4 -4
  160. package/.agent/skills/gsd/references/docs/git-planning-commit.md +40 -38
  161. package/.agent/skills/gsd/references/docs/ios-scaffold.md +123 -0
  162. package/.agent/skills/gsd/references/docs/mandatory-initial-read.md +2 -0
  163. package/.agent/skills/gsd/references/docs/phase-argument-parsing.md +61 -61
  164. package/.agent/skills/gsd/references/docs/planner-antipatterns.md +89 -0
  165. package/.agent/skills/gsd/references/docs/planner-revision.md +87 -87
  166. package/.agent/skills/gsd/references/docs/planner-source-audit.md +73 -0
  167. package/.agent/skills/gsd/references/docs/planning-config.md +33 -8
  168. package/.agent/skills/gsd/references/docs/project-skills-discovery.md +19 -0
  169. package/.agent/skills/gsd/references/docs/sketch-interactivity.md +41 -0
  170. package/.agent/skills/gsd/references/docs/sketch-theme-system.md +94 -0
  171. package/.agent/skills/gsd/references/docs/sketch-tooling.md +45 -0
  172. package/.agent/skills/gsd/references/docs/sketch-variant-patterns.md +81 -0
  173. package/.agent/skills/gsd/references/docs/tdd.md +67 -0
  174. package/.agent/skills/gsd/references/docs/universal-anti-patterns.md +5 -0
  175. package/.agent/skills/gsd/references/docs/workstream-flag.md +11 -11
  176. package/.agent/skills/gsd/references/mapping.md +1 -1
  177. package/.agent/skills/gsd/references/workflows/add-phase.md +112 -112
  178. package/.agent/skills/gsd/references/workflows/add-tests.md +6 -3
  179. package/.agent/skills/gsd/references/workflows/add-todo.md +5 -3
  180. package/.agent/skills/gsd/references/workflows/ai-integration-phase.md +284 -0
  181. package/.agent/skills/gsd/references/workflows/audit-fix.md +157 -157
  182. package/.agent/skills/gsd/references/workflows/audit-milestone.md +340 -340
  183. package/.agent/skills/gsd/references/workflows/audit-uat.md +109 -109
  184. package/.agent/skills/gsd/references/workflows/autonomous.md +20 -288
  185. package/.agent/skills/gsd/references/workflows/check-todos.md +4 -2
  186. package/.agent/skills/gsd/references/workflows/cleanup.md +3 -1
  187. package/.agent/skills/gsd/references/workflows/code-review-fix.md +497 -497
  188. package/.agent/skills/gsd/references/workflows/code-review.md +515 -515
  189. package/.agent/skills/gsd/references/workflows/complete-milestone.md +97 -24
  190. package/.agent/skills/gsd/references/workflows/diagnose-issues.md +238 -238
  191. package/.agent/skills/gsd/references/workflows/discovery-phase.md +2 -0
  192. package/.agent/skills/gsd/references/workflows/discuss-phase-assumptions.md +11 -11
  193. package/.agent/skills/gsd/references/workflows/discuss-phase.md +143 -19
  194. package/.agent/skills/gsd/references/workflows/do.md +8 -2
  195. package/.agent/skills/gsd/references/workflows/docs-update.md +5 -3
  196. package/.agent/skills/gsd/references/workflows/eval-review.md +155 -0
  197. package/.agent/skills/gsd/references/workflows/execute-phase.md +338 -54
  198. package/.agent/skills/gsd/references/workflows/execute-plan.md +80 -104
  199. package/.agent/skills/gsd/references/workflows/explore.md +3 -1
  200. package/.agent/skills/gsd/references/workflows/extract_learnings.md +232 -0
  201. package/.agent/skills/gsd/references/workflows/forensics.md +3 -3
  202. package/.agent/skills/gsd/references/workflows/health.md +2 -2
  203. package/.agent/skills/gsd/references/workflows/help.md +59 -1
  204. package/.agent/skills/gsd/references/workflows/import.md +3 -1
  205. package/.agent/skills/gsd/references/workflows/inbox.md +387 -384
  206. package/.agent/skills/gsd/references/workflows/insert-phase.md +130 -130
  207. package/.agent/skills/gsd/references/workflows/list-workspaces.md +56 -56
  208. package/.agent/skills/gsd/references/workflows/manager.md +5 -3
  209. package/.agent/skills/gsd/references/workflows/map-codebase.md +19 -5
  210. package/.agent/skills/gsd/references/workflows/milestone-summary.md +6 -6
  211. package/.agent/skills/gsd/references/workflows/new-milestone.md +63 -9
  212. package/.agent/skills/gsd/references/workflows/new-project.md +126 -22
  213. package/.agent/skills/gsd/references/workflows/new-workspace.md +6 -4
  214. package/.agent/skills/gsd/references/workflows/next.md +220 -153
  215. package/.agent/skills/gsd/references/workflows/note.md +2 -0
  216. package/.agent/skills/gsd/references/workflows/pause-work.md +11 -7
  217. package/.agent/skills/gsd/references/workflows/plan-milestone-gaps.md +273 -273
  218. package/.agent/skills/gsd/references/workflows/plan-phase.md +281 -62
  219. package/.agent/skills/gsd/references/workflows/plant-seed.md +4 -1
  220. package/.agent/skills/gsd/references/workflows/pr-branch.md +41 -13
  221. package/.agent/skills/gsd/references/workflows/profile-user.md +15 -13
  222. package/.agent/skills/gsd/references/workflows/progress.md +133 -21
  223. package/.agent/skills/gsd/references/workflows/quick.md +67 -27
  224. package/.agent/skills/gsd/references/workflows/remove-phase.md +155 -155
  225. package/.agent/skills/gsd/references/workflows/remove-workspace.md +4 -2
  226. package/.agent/skills/gsd/references/workflows/research-phase.md +3 -3
  227. package/.agent/skills/gsd/references/workflows/resume-project.md +3 -3
  228. package/.agent/skills/gsd/references/workflows/review.md +71 -8
  229. package/.agent/skills/gsd/references/workflows/scan.md +102 -102
  230. package/.agent/skills/gsd/references/workflows/secure-phase.md +7 -5
  231. package/.agent/skills/gsd/references/workflows/settings.md +24 -7
  232. package/.agent/skills/gsd/references/workflows/ship.md +71 -6
  233. package/.agent/skills/gsd/references/workflows/sketch-wrap-up.md +283 -0
  234. package/.agent/skills/gsd/references/workflows/sketch.md +263 -0
  235. package/.agent/skills/gsd/references/workflows/spec-phase.md +262 -0
  236. package/.agent/skills/gsd/references/workflows/spike-wrap-up.md +273 -0
  237. package/.agent/skills/gsd/references/workflows/spike.md +270 -0
  238. package/.agent/skills/gsd/references/workflows/stats.md +60 -60
  239. package/.agent/skills/gsd/references/workflows/transition.md +671 -671
  240. package/.agent/skills/gsd/references/workflows/ui-phase.md +33 -12
  241. package/.agent/skills/gsd/references/workflows/ui-review.md +6 -4
  242. package/.agent/skills/gsd/references/workflows/undo.md +3 -1
  243. package/.agent/skills/gsd/references/workflows/update.md +113 -2
  244. package/.agent/skills/gsd/references/workflows/validate-phase.md +7 -5
  245. package/.agent/skills/gsd/references/workflows/verify-phase.md +93 -10
  246. package/.agent/skills/gsd/references/workflows/verify-work.md +50 -10
  247. package/.agent/skills/gsd-converter/references/mapping.md +1 -1
  248. package/.agent/skills/gsd-converter/scripts/convert.py +36 -17
  249. package/.agent/skills/gsd-converter/scripts/regression_test.py +68 -33
  250. package/README.md +3 -2
  251. package/package.json +1 -1
@@ -0,0 +1,89 @@
1
+ # Planner Anti-Patterns and Specificity Examples
2
+
3
+ > Reference file for gsd-planner agent. Loaded on-demand via `@` reference.
4
+ > For sub-200K context windows, this content is stripped from the agent prompt and available here for on-demand loading.
5
+
6
+ ## Checkpoint Anti-Patterns
7
+
8
+ ### Bad — Asking human to automate
9
+
10
+ ```xml
11
+ <task type="checkpoint:human-action">
12
+ <action>Deploy to Vercel</action>
13
+ <instructions>Visit vercel.com, import repo, click deploy...</instructions>
14
+ </task>
15
+ ```
16
+
17
+ **Why bad:** Vercel has a CLI. Antigravity should run `vercel --yes`. Never ask the user to do what Antigravity can automate via CLI/API.
18
+
19
+ ### Bad — Too many checkpoints
20
+
21
+ ```xml
22
+ <task type="auto">Create schema</task>
23
+ <task type="checkpoint:human-verify">Check schema</task>
24
+ <task type="auto">Create API</task>
25
+ <task type="checkpoint:human-verify">Check API</task>
26
+ ```
27
+
28
+ **Why bad:** Verification fatigue. Users should not be asked to verify every small step. Combine into one checkpoint at the end of meaningful work.
29
+
30
+ ### Good — Single verification checkpoint
31
+
32
+ ```xml
33
+ <task type="auto">Create schema</task>
34
+ <task type="auto">Create API</task>
35
+ <task type="auto">Create UI</task>
36
+ <task type="checkpoint:human-verify">
37
+ <what-built>Complete auth flow (schema + API + UI)</what-built>
38
+ <how-to-verify>Test full flow: register, login, access protected page</how-to-verify>
39
+ </task>
40
+ ```
41
+
42
+ ### Bad — Mixing checkpoints with implementation
43
+
44
+ A plan should not interleave multiple checkpoint types with implementation tasks. Checkpoints belong at natural verification boundaries, not scattered throughout.
45
+
46
+ ## Specificity Examples
47
+
48
+ | TOO VAGUE | JUST RIGHT |
49
+ |-----------|------------|
50
+ | "Add authentication" | "Add JWT auth with refresh rotation using jose library, store in httpOnly cookie, 15min access / 7day refresh" |
51
+ | "Create the API" | "Create POST /api/projects endpoint accepting {name, description}, validates name length 3-50 chars, returns 201 with project object" |
52
+ | "Style the dashboard" | "Add Tailwind classes to Dashboard.tsx: grid layout (3 cols on lg, 1 on mobile), card shadows, hover states on action buttons" |
53
+ | "Handle errors" | "Wrap API calls in try/catch, return {error: string} on 4xx/5xx, show toast via sonner on client" |
54
+ | "Set up the database" | "Add User and Project models to schema.prisma with UUID ids, email unique constraint, createdAt/updatedAt timestamps, run prisma db push" |
55
+
56
+ **Specificity test:** Could a different Antigravity instance execute the task without asking clarifying questions? If not, add more detail.
57
+
58
+ ## Context Section Anti-Patterns
59
+
60
+ ### Bad — Reflexive SUMMARY chaining
61
+
62
+ ```markdown
63
+ <context>
64
+ @.planning/phases/01-foundation/01-01-SUMMARY.md
65
+ @.planning/phases/01-foundation/01-02-SUMMARY.md <!-- Does Plan 02 actually need Plan 01's output? -->
66
+ @.planning/phases/01-foundation/01-03-SUMMARY.md <!-- Chain grows, context bloats -->
67
+ </context>
68
+ ```
69
+
70
+ **Why bad:** Plans are often independent. Reflexive chaining (02 refs 01, 03 refs 02...) wastes context. Only reference prior SUMMARY files when the plan genuinely uses types/exports from that prior plan or a decision from it affects the current plan.
71
+
72
+ ### Good — Selective context
73
+
74
+ ```markdown
75
+ <context>
76
+ @.planning/PROJECT.md
77
+ @.planning/STATE.md
78
+ @.planning/phases/01-foundation/01-01-SUMMARY.md <!-- Uses User type defined in Plan 01 -->
79
+ </context>
80
+ ```
81
+
82
+ ## Scope Reduction Anti-Patterns
83
+
84
+ **Prohibited language in task actions:**
85
+ - "v1", "v2", "simplified version", "static for now", "hardcoded for now"
86
+ - "future enhancement", "placeholder", "basic version", "minimal implementation"
87
+ - "will be wired later", "dynamic in future phase", "skip for now"
88
+
89
+ If a decision from CONTEXT.md says "display cost calculated from billing table in impulses", the plan must deliver exactly that. Not "static label /min" as a "v1". If the phase is too complex, recommend a phase split instead of silently reducing scope.
@@ -1,87 +1,87 @@
1
- # Revision Mode — Planner Reference
2
-
3
- Triggered when orchestrator provides `<revision_context>` with checker issues. NOT starting fresh — making targeted updates to existing plans.
4
-
5
- **Mindset:** Surgeon, not architect. Minimal changes for specific issues.
6
-
7
- ### Step 1: Load Existing Plans
8
-
9
- ```bash
10
- cat .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
11
- ```
12
-
13
- Build mental model of current plan structure, existing tasks, must_haves.
14
-
15
- ### Step 2: Parse Checker Issues
16
-
17
- Issues come in structured format:
18
-
19
- ```yaml
20
- issues:
21
- - plan: "16-01"
22
- dimension: "task_completeness"
23
- severity: "blocker"
24
- description: "Task 2 missing <verify> element"
25
- fix_hint: "Add verification command for build output"
26
- ```
27
-
28
- Group by plan, dimension, severity.
29
-
30
- ### Step 3: Revision Strategy
31
-
32
- | Dimension | Strategy |
33
- |-----------|----------|
34
- | requirement_coverage | Add task(s) for missing requirement |
35
- | task_completeness | Add missing elements to existing task |
36
- | dependency_correctness | Fix depends_on, recompute waves |
37
- | key_links_planned | Add wiring task or update action |
38
- | scope_sanity | Split into multiple plans |
39
- | must_haves_derivation | Derive and add must_haves to frontmatter |
40
-
41
- ### Step 4: Make Targeted Updates
42
-
43
- **DO:** Edit specific flagged sections, preserve working parts, update waves if dependencies change.
44
-
45
- **DO NOT:** Rewrite entire plans for minor issues, add unnecessary tasks, break existing working plans.
46
-
47
- ### Step 5: Validate Changes
48
-
49
- - [ ] All flagged issues addressed
50
- - [ ] No new issues introduced
51
- - [ ] Wave numbers still valid
52
- - [ ] Dependencies still correct
53
- - [ ] Files on disk updated
54
-
55
- ### Step 6: Commit
56
-
57
- ```bash
58
- .agent/skills/gsd/bin/gsd-tools.cjs" commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
59
- ```
60
-
61
- ### Step 7: Return Revision Summary
62
-
63
- ```markdown
64
- ## REVISION COMPLETE
65
-
66
- **Issues addressed:** {N}/{M}
67
-
68
- ### Changes Made
69
-
70
- | Plan | Change | Issue Addressed |
71
- |------|--------|-----------------|
72
- | 16-01 | Added <verify> to Task 2 | task_completeness |
73
- | 16-02 | Added logout task | requirement_coverage (AUTH-02) |
74
-
75
- ### Files Updated
76
-
77
- - .planning/phases/16-xxx/16-01-PLAN.md
78
- - .planning/phases/16-xxx/16-02-PLAN.md
79
-
80
- {If any issues NOT addressed:}
81
-
82
- ### Unaddressed Issues
83
-
84
- | Issue | Reason |
85
- |-------|--------|
86
- | {issue} | {why - needs user input, architectural change, etc.} |
87
- ```
1
+ # Revision Mode — Planner Reference
2
+
3
+ Triggered when orchestrator provides `<revision_context>` with checker issues. NOT starting fresh — making targeted updates to existing plans.
4
+
5
+ **Mindset:** Surgeon, not architect. Minimal changes for specific issues.
6
+
7
+ ### Step 1: Load Existing Plans
8
+
9
+ ```bash
10
+ cat .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
11
+ ```
12
+
13
+ Build mental model of current plan structure, existing tasks, must_haves.
14
+
15
+ ### Step 2: Parse Checker Issues
16
+
17
+ Issues come in structured format:
18
+
19
+ ```yaml
20
+ issues:
21
+ - plan: "16-01"
22
+ dimension: "task_completeness"
23
+ severity: "blocker"
24
+ description: "Task 2 missing <verify> element"
25
+ fix_hint: "Add verification command for build output"
26
+ ```
27
+
28
+ Group by plan, dimension, severity.
29
+
30
+ ### Step 3: Revision Strategy
31
+
32
+ | Dimension | Strategy |
33
+ |-----------|----------|
34
+ | requirement_coverage | Add task(s) for missing requirement |
35
+ | task_completeness | Add missing elements to existing task |
36
+ | dependency_correctness | Fix depends_on, recompute waves |
37
+ | key_links_planned | Add wiring task or update action |
38
+ | scope_sanity | Split into multiple plans |
39
+ | must_haves_derivation | Derive and add must_haves to frontmatter |
40
+
41
+ ### Step 4: Make Targeted Updates
42
+
43
+ **DO:** Edit specific flagged sections, preserve working parts, update waves if dependencies change.
44
+
45
+ **DO NOT:** Rewrite entire plans for minor issues, add unnecessary tasks, break existing working plans.
46
+
47
+ ### Step 5: Validate Changes
48
+
49
+ - [ ] All flagged issues addressed
50
+ - [ ] No new issues introduced
51
+ - [ ] Wave numbers still valid
52
+ - [ ] Dependencies still correct
53
+ - [ ] Files on disk updated
54
+
55
+ ### Step 6: Commit
56
+
57
+ ```bash
58
+ gsd-sdk query commit "fix($PHASE): revise plans based on checker feedback" .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
59
+ ```
60
+
61
+ ### Step 7: Return Revision Summary
62
+
63
+ ```markdown
64
+ ## REVISION COMPLETE
65
+
66
+ **Issues addressed:** {N}/{M}
67
+
68
+ ### Changes Made
69
+
70
+ | Plan | Change | Issue Addressed |
71
+ |------|--------|-----------------|
72
+ | 16-01 | Added <verify> to Task 2 | task_completeness |
73
+ | 16-02 | Added logout task | requirement_coverage (AUTH-02) |
74
+
75
+ ### Files Updated
76
+
77
+ - .planning/phases/16-xxx/16-01-PLAN.md
78
+ - .planning/phases/16-xxx/16-02-PLAN.md
79
+
80
+ {If any issues NOT addressed:}
81
+
82
+ ### Unaddressed Issues
83
+
84
+ | Issue | Reason |
85
+ |-------|--------|
86
+ | {issue} | {why - needs user input, architectural change, etc.} |
87
+ ```
@@ -0,0 +1,73 @@
1
+ # Planner Source Audit & Authority Limits
2
+
3
+ Reference for `agents/gsd-planner.md` — extended rules for multi-source coverage audits and planner authority constraints.
4
+
5
+ ## Multi-Source Coverage Audit Format
6
+
7
+ Before finalizing plans, produce a **source audit** covering ALL four artifact types:
8
+
9
+ ```
10
+ SOURCE | ID | Feature/Requirement | Plan | Status | Notes
11
+ --------- | ------- | ---------------------------- | ----- | --------- | ------
12
+ GOAL | — | {phase goal from ROADMAP.md} | 01-03 | COVERED |
13
+ REQ | REQ-14 | OAuth login with Google + GH | 02 | COVERED |
14
+ REQ | REQ-22 | Email verification flow | 03 | COVERED |
15
+ RESEARCH | — | Rate limiting on auth routes | 01 | COVERED |
16
+ RESEARCH | — | Refresh token rotation | NONE | ⚠ MISSING | No plan covers this
17
+ CONTEXT | D-01 | Use jose library for JWT | 02 | COVERED |
18
+ CONTEXT | D-04 | 15min access / 7day refresh | 02 | COVERED |
19
+ ```
20
+
21
+ ### Four Source Types
22
+
23
+ 1. **GOAL** — The `goal:` field from ROADMAP.md for this phase. The primary success condition.
24
+ 2. **REQ** — Every REQ-ID in `phase_req_ids`. Cross-reference REQUIREMENTS.md for descriptions.
25
+ 3. **RESEARCH** — Technical approaches, discovered constraints, and features identified in RESEARCH.md. Exclude items explicitly marked "out of scope" or "future work" by the researcher.
26
+ 4. **CONTEXT** — Every D-XX decision from CONTEXT.md `<decisions>` section.
27
+
28
+ ### What is NOT a Gap
29
+
30
+ Do not flag these as MISSING:
31
+ - Items in `## Deferred Ideas` in CONTEXT.md — developer chose to defer these
32
+ - Items scoped to a different phase via `phase_req_ids` — not assigned to this phase
33
+ - Items in RESEARCH.md explicitly marked "out of scope" or "future work" by the researcher
34
+
35
+ ### Handling MISSING Items
36
+
37
+ If ANY row is `⚠ MISSING`, do NOT finalize the plan set silently. Return to the orchestrator:
38
+
39
+ ```
40
+ ## ⚠ Source Audit: Unplanned Items Found
41
+
42
+ The following items from source artifacts have no corresponding plan:
43
+
44
+ 1. **{SOURCE}: {item description}** (from {artifact file}, section "{section}")
45
+ - {why this was identified as required}
46
+
47
+ Options:
48
+ A) Add a plan to cover this item
49
+ B) Split phase: move to a sub-phase
50
+ C) Defer explicitly: add to backlog with developer confirmation
51
+
52
+ → Awaiting developer decision before finalizing plan set.
53
+ ```
54
+
55
+ If ALL rows are COVERED → return `## PLANNING COMPLETE` as normal.
56
+
57
+ ---
58
+
59
+ ## Authority Limits — Constraint Examples
60
+
61
+ The planner's only legitimate reasons to split or flag a feature are **constraints**, not judgments about difficulty:
62
+
63
+ **Valid (constraints):**
64
+ - ✓ "This task touches 9 files and would consume ~45% context — split into two tasks"
65
+ - ✓ "No API key or endpoint is defined in any source artifact — need developer input"
66
+ - ✓ "This feature depends on the auth system built in Phase 03, which is not yet complete"
67
+
68
+ **Invalid (difficulty judgments):**
69
+ - ✗ "This is complex and would be difficult to implement correctly"
70
+ - ✗ "Integrating with an external service could take a long time"
71
+ - ✗ "This is a challenging feature that might be better left to a future phase"
72
+
73
+ If a feature has none of the three legitimate constraints (context cost, missing information, dependency conflict), it gets planned. Period.
@@ -35,6 +35,7 @@ Configuration options for `.planning/` directory behavior.
35
35
  | `git.quick_branch_template` | `null` | Optional branch template for quick-task runs |
36
36
  | `workflow.use_worktrees` | `true` | Whether executor agents run in isolated git worktrees. Set to `false` to disable worktrees — agents execute sequentially on the main working tree instead. Recommended for solo developers or when worktree merges cause issues. |
37
37
  | `workflow.subagent_timeout` | `300000` | Timeout in milliseconds for parallel subagent tasks (e.g. codebase mapping). Increase for large codebases or slower models. Default: 300000 (5 minutes). |
38
+ | `workflow.inline_plan_threshold` | `2` | Plans with this many tasks or fewer execute inline (Pattern C) instead of spawning a subagent. Avoids ~14K token spawn overhead for small plans. Set to `0` to always spawn subagents. |
38
39
  | `manager.flags.discuss` | `""` | Flags passed to `/gsd-discuss-phase` when dispatched from manager (e.g. `"--auto --analyze"`) |
39
40
  | `manager.flags.plan` | `""` | Flags passed to plan workflow when dispatched from manager |
40
41
  | `manager.flags.execute` | `""` | Flags passed to execute workflow when dispatched from manager |
@@ -57,15 +58,15 @@ Configuration options for `.planning/` directory behavior.
57
58
 
58
59
  ```bash
59
60
  # Commit with automatic commit_docs + gitignore checks:
60
- .agent/skills/gsd/bin/gsd-tools.cjs" commit "docs: update state" --files .planning/STATE.md
61
+ gsd-sdk query commit "docs: update state" .planning/STATE.md
61
62
 
62
63
  # Load config via state load (returns JSON):
63
- .agent/skills/gsd/bin/gsd-tools.cjs" state load)
64
+ INIT=$(gsd-sdk query state.load)
64
65
  if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
65
66
  # commit_docs is available in the JSON output
66
67
 
67
68
  # Or use init commands which include commit_docs:
68
- .agent/skills/gsd/bin/gsd-tools.cjs" init execute-phase "1")
69
+ INIT=$(gsd-sdk query init.execute-phase "1")
69
70
  if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
70
71
  # commit_docs is included in all init command outputs
71
72
  ```
@@ -75,7 +76,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
75
76
  **Commit via CLI (handles checks automatically):**
76
77
 
77
78
  ```bash
78
- .agent/skills/gsd/bin/gsd-tools.cjs" commit "docs: update state" --files .planning/STATE.md
79
+ gsd-sdk query commit "docs: update state" .planning/STATE.md
79
80
  ```
80
81
 
81
82
  The CLI checks `commit_docs` config and gitignore status internally — no manual conditionals needed.
@@ -163,14 +164,14 @@ To use uncommitted mode:
163
164
 
164
165
  Use `init execute-phase` which returns all config as JSON:
165
166
  ```bash
166
- .agent/skills/gsd/bin/gsd-tools.cjs" init execute-phase "1")
167
+ INIT=$(gsd-sdk query init.execute-phase "1")
167
168
  if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
168
169
  # JSON output includes: branching_strategy, phase_branch_template, milestone_branch_template
169
170
  ```
170
171
 
171
172
  Or use `state load` for the config values:
172
173
  ```bash
173
- .agent/skills/gsd/bin/gsd-tools.cjs" state load)
174
+ INIT=$(gsd-sdk query state.load)
174
175
  if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
175
176
  # Parse branching_strategy, phase_branch_template, milestone_branch_template from JSON
176
177
  ```
@@ -225,7 +226,7 @@ Generated from `CONFIG_DEFAULTS` (core.cjs) and `VALID_CONFIG_KEYS` (config.cjs)
225
226
  | Key | Type | Default | Allowed Values | Description |
226
227
  |-----|------|---------|----------------|-------------|
227
228
  | `model_profile` | string | `"balanced"` | `"quality"`, `"balanced"`, `"budget"`, `"inherit"` | Model selection preset for subagents |
228
- | `mode` | string | (none) | `"code-first"`, `"plan-first"`, `"hybrid"` | Per-phase workflow mode controlling discuss/plan/execute flow |
229
+ | `mode` | string | `"interactive"` | `"interactive"`, `"yolo"` | Operation mode: `"interactive"` shows gates and confirmations; `"yolo"` runs autonomously without prompts |
229
230
  | `granularity` | string | (none) | `"coarse"`, `"standard"`, `"fine"` | Planning depth for phase plans (migrated from deprecated `depth`) |
230
231
  | `commit_docs` | boolean | `true` | `true`, `false` | Commit .planning/ artifacts to git (auto-false if .planning/ is gitignored) |
231
232
  | `search_gitignored` | boolean | `false` | `true`, `false` | Include gitignored paths in broad rg searches via `--no-ignore` |
@@ -234,6 +235,8 @@ Generated from `CONFIG_DEFAULTS` (core.cjs) and `VALID_CONFIG_KEYS` (config.cjs)
234
235
  | `response_language` | string\|null | `null` | Any language name | Language for user-facing prompts (e.g., `"Portuguese"`, `"Japanese"`) |
235
236
  | `context_window` | number | `200000` | `200000`, `1000000` | Context window size; set `1000000` for 1M-context models |
236
237
  | `resolve_model_ids` | boolean\|string | `false` | `false`, `true`, `"omit"` | Map model aliases to full Antigravity IDs; `"omit"` returns empty string |
238
+ | `context` | string\|null | `null` | `"dev"`, `"research"`, `"review"` | Execution context profile that adjusts agent behavior: `"dev"` for development tasks, `"research"` for investigation/exploration, `"review"` for code review workflows |
239
+ | `review.models.<cli>` | string\|null | `null` | Any model ID string | Per-CLI model override for /gsd-review (e.g., `review.models.gemini`). Falls back to CLI default when null. |
237
240
 
238
241
  ### Workflow Fields
239
242
 
@@ -245,17 +248,22 @@ Set via `workflow.*` namespace in config.json (e.g., `"workflow": { "research":
245
248
  | `workflow.plan_check` | boolean | `true` | `true`, `false` | Run plan-checker agent to validate plans. _Alias:_ `plan_checker` is the flat-key form used in `CONFIG_DEFAULTS`; `workflow.plan_check` is the canonical namespaced form. |
246
249
  | `workflow.verifier` | boolean | `true` | `true`, `false` | Run verifier agent after execution |
247
250
  | `workflow.nyquist_validation` | boolean | `true` | `true`, `false` | Enable Nyquist-inspired validation gates |
251
+ | `workflow.auto_prune_state` | boolean | `false` | `true`, `false` | Automatically prune old STATE.md entries on phase completion (keeps 3 most recent phases) |
248
252
  | `workflow.auto_advance` | boolean | `false` | `true`, `false` | Auto-advance to next phase after completion |
249
253
  | `workflow.node_repair` | boolean | `true` | `true`, `false` | Attempt automatic repair of failed plan nodes |
250
254
  | `workflow.node_repair_budget` | number | `2` | Any positive integer | Max repair retries per failed node |
255
+ | `workflow.ai_integration_phase` | boolean | `true` | `true`, `false` | Run /gsd-ai-integration-phase before planning AI system phases |
251
256
  | `workflow.ui_phase` | boolean | `true` | `true`, `false` | Generate UI-SPEC.md for frontend phases |
252
257
  | `workflow.ui_safety_gate` | boolean | `true` | `true`, `false` | Require safety gate approval for UI changes |
253
258
  | `workflow.text_mode` | boolean | `false` | `true`, `false` | Use plain-text numbered lists instead of AskUserQuestion menus |
254
259
  | `workflow.research_before_questions` | boolean | `false` | `true`, `false` | Run research before interactive questions in discuss phase |
255
- | `workflow.discuss_mode` | string | `"discuss"` | `"discuss"`, `"auto"`, `"analyze"` | Default mode for discuss-phase agent |
260
+ | `workflow.discuss_mode` | string | `"discuss"` | `"discuss"`, `"assumptions"` | Default mode for discuss-phase: `"discuss"` runs interactive questioning; `"assumptions"` analyzes codebase and surfaces assumptions instead |
256
261
  | `workflow.skip_discuss` | boolean | `false` | `true`, `false` | Skip discuss phase entirely |
257
262
  | `workflow.use_worktrees` | boolean | `true` | `true`, `false` | Run executor agents in isolated git worktrees |
258
263
  | `workflow.subagent_timeout` | number | `300000` | Any positive integer (ms) | Timeout for parallel subagent tasks (default: 5 minutes) |
264
+ | `workflow.inline_plan_threshold` | number | `2` | `0`–`10` | Plans with ≤N tasks execute inline instead of spawning a subagent |
265
+ | `workflow.code_review` | boolean | `true` | `true`, `false` | Enable built-in code review step in the ship workflow |
266
+ | `workflow.code_review_depth` | string | `"standard"` | `"light"`, `"standard"`, `"deep"` | Depth level for code review analysis in the ship workflow |
259
267
  | `workflow._auto_chain_active` | boolean | `false` | `true`, `false` | Internal: tracks whether autonomous chaining is active |
260
268
 
261
269
  ### Git Fields
@@ -287,6 +295,7 @@ Set via `features.*` namespace (e.g., `"features": { "thinking_partner": true }`
287
295
  | Key | Type | Default | Allowed Values | Description |
288
296
  |-----|------|---------|----------------|-------------|
289
297
  | `features.thinking_partner` | boolean | `false` | `true`, `false` | Enable conditional extended thinking at workflow decision points (used by discuss-phase and plan-phase for architectural tradeoff analysis) |
298
+ | `features.global_learnings` | boolean | `false` | `true`, `false` | Enable injection of global learnings from `~/.gsd/learnings/` into agent prompts |
290
299
 
291
300
  ### Hook Fields
292
301
 
@@ -296,6 +305,22 @@ Set via `hooks.*` namespace (e.g., `"hooks": { "context_warnings": true }`).
296
305
  |-----|------|---------|----------------|-------------|
297
306
  | `hooks.context_warnings` | boolean | `true` | `true`, `false` | Show warnings when context budget is exceeded |
298
307
 
308
+ ### Learnings Fields
309
+
310
+ Set via `learnings.*` namespace (e.g., `"learnings": { "max_inject": 5 }`). Used together with `features.global_learnings`.
311
+
312
+ | Key | Type | Default | Allowed Values | Description |
313
+ |-----|------|---------|----------------|-------------|
314
+ | `learnings.max_inject` | number | `10` | Any positive integer | Maximum number of global learning entries to inject into agent prompts per session |
315
+
316
+ ### Intel Fields
317
+
318
+ Set via `intel.*` namespace (e.g., `"intel": { "enabled": true }`). Controls the queryable codebase intelligence system consumed by `/gsd-intel`.
319
+
320
+ | Key | Type | Default | Allowed Values | Description |
321
+ |-----|------|---------|----------------|-------------|
322
+ | `intel.enabled` | boolean | `false` | `true`, `false` | Enable queryable codebase intelligence system. When `true`, `/gsd-intel` commands build and query a JSON index in `.planning/intel/`. |
323
+
299
324
  ### Manager Fields
300
325
 
301
326
  Set via `manager.*` namespace (e.g., `"manager": { "flags": { "discuss": "--auto" } }`).
@@ -0,0 +1,19 @@
1
+ # Project Skills Discovery
2
+
3
+ Before execution, check for project-defined skills and apply their rules.
4
+
5
+ **Discovery steps (shared across all GSD agents):**
6
+ 1. Check `.antigravity/skills/` or `.agents/skills/` directory — if neither exists, skip.
7
+ 2. List available skills (subdirectories).
8
+ 3. Read `SKILL.md` for each skill (lightweight index, typically ~130 lines).
9
+ 4. Load specific `rules/*.md` files only as needed during the current task.
10
+ 5. Do NOT load full `AGENTS.md` files — they are large (100KB+) and cost significant context.
11
+
12
+ **Application** — how to apply the loaded rules depends on the calling agent:
13
+ - Planners account for project skill patterns and conventions in the plan.
14
+ - Executors follow skill rules relevant to the task being implemented.
15
+ - Researchers ensure research output accounts for project skill patterns.
16
+ - Verifiers apply skill rules when scanning for anti-patterns and verifying quality.
17
+ - Debuggers follow skill rules relevant to the bug being investigated and the fix being applied.
18
+
19
+ The caller's agent file should specify which application applies.
@@ -0,0 +1,41 @@
1
+ # Making Sketches Feel Alive
2
+
3
+ Static mockups are barely better than screenshots. Every interactive element in a sketch must respond to interaction.
4
+
5
+ ## Required Interactivity
6
+
7
+ | Element | Must Have |
8
+ |---------|-----------|
9
+ | Buttons | Click handler with visible feedback (state change, animation, toast) |
10
+ | Forms | Input validation on blur, submit handler that shows success state |
11
+ | Lists | Add/remove items, empty state, populated state |
12
+ | Toggles/switches | Working toggle with visible state change |
13
+ | Tabs/nav | Click to switch content |
14
+ | Modals/drawers | Open/close with transition |
15
+ | Hover states | Every clickable element needs a hover effect |
16
+ | Dropdowns | Open/close, item selection |
17
+
18
+ ## Transitions
19
+
20
+ Add `transition: all 0.15s ease` as a baseline to interactive elements. Subtle motion makes the sketch feel real and helps judge whether the interaction pattern works.
21
+
22
+ ## Fake the Backend
23
+
24
+ If the sketch shows a "Save" button, clicking it should show a brief loading state then a success message. If it shows a search bar, typing should filter hardcoded results. The goal is to feel the full interaction loop, not just see the resting state.
25
+
26
+ ## State Cycling
27
+
28
+ If the sketch has multiple states (empty, loading, populated, error), include buttons to cycle through them. Label each state clearly. This lets the user experience how the design handles different data conditions.
29
+
30
+ ## Implementation
31
+
32
+ Use vanilla JS in inline `<script>` tags. No frameworks, no build step. Keep it simple:
33
+
34
+ ```html
35
+ <script>
36
+ // Toggle a panel
37
+ document.querySelector('.panel-toggle').addEventListener('click', (e) => {
38
+ e.target.closest('.panel').classList.toggle('collapsed');
39
+ });
40
+ </script>
41
+ ```
@@ -0,0 +1,94 @@
1
+ # Shared Theme System
2
+
3
+ All sketches share a CSS variable theme so design decisions compound across sketches.
4
+
5
+ ## Setup
6
+
7
+ On the first sketch, create `.planning/sketches/themes/` with a default theme:
8
+
9
+ ```
10
+ .planning/sketches/
11
+ themes/
12
+ default.css <- all sketches link to this
13
+ 001-dashboard-layout/
14
+ index.html <- links to ../themes/default.css
15
+ ```
16
+
17
+ ## Theme File Structure
18
+
19
+ Each theme defines CSS custom properties only — no component styles, no layout rules. Just the visual vocabulary:
20
+
21
+ ```css
22
+ :root {
23
+ /* Colors */
24
+ --color-bg: #fafafa;
25
+ --color-surface: #ffffff;
26
+ --color-border: #e5e5e5;
27
+ --color-text: #1a1a1a;
28
+ --color-text-muted: #6b6b6b;
29
+ --color-primary: #2563eb;
30
+ --color-primary-hover: #1d4ed8;
31
+ --color-accent: #f59e0b;
32
+ --color-danger: #ef4444;
33
+ --color-success: #22c55e;
34
+
35
+ /* Typography */
36
+ --font-sans: 'Inter', system-ui, sans-serif;
37
+ --font-mono: 'JetBrains Mono', monospace;
38
+ --text-xs: 0.75rem;
39
+ --text-sm: 0.875rem;
40
+ --text-base: 1rem;
41
+ --text-lg: 1.125rem;
42
+ --text-xl: 1.25rem;
43
+ --text-2xl: 1.5rem;
44
+ --text-3xl: 1.875rem;
45
+
46
+ /* Spacing */
47
+ --space-1: 4px;
48
+ --space-2: 8px;
49
+ --space-3: 12px;
50
+ --space-4: 16px;
51
+ --space-6: 24px;
52
+ --space-8: 32px;
53
+ --space-12: 48px;
54
+
55
+ /* Shapes */
56
+ --radius-sm: 4px;
57
+ --radius-md: 8px;
58
+ --radius-lg: 12px;
59
+ --radius-full: 9999px;
60
+
61
+ /* Shadows */
62
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
63
+ --shadow-md: 0 4px 6px rgba(0,0,0,0.07);
64
+ --shadow-lg: 0 10px 15px rgba(0,0,0,0.1);
65
+ }
66
+ ```
67
+
68
+ Adapt the default theme to match the mood/direction established during intake. The values above are a starting point — change colors, fonts, spacing, and shapes to match the agreed aesthetic.
69
+
70
+ ## Linking
71
+
72
+ Every sketch links to the theme:
73
+
74
+ ```html
75
+ <link rel="stylesheet" href="../themes/default.css">
76
+ ```
77
+
78
+ ## Creating New Themes
79
+
80
+ When a sketch reveals an aesthetic fork ("should this feel clinical or warm?"), create both as theme files rather than arguing about it. The user can switch and feel the difference.
81
+
82
+ Name themes descriptively: `midnight.css`, `warm-minimal.css`, `brutalist.css`.
83
+
84
+ ## Theme Switcher
85
+
86
+ Include in every sketch (part of the sketch toolbar):
87
+
88
+ ```html
89
+ <select id="theme-switcher" onchange="document.querySelector('link[href*=themes]').href='../themes/'+this.value+'.css'">
90
+ <option value="default">Default</option>
91
+ </select>
92
+ ```
93
+
94
+ Dynamically populate options by listing available theme files, or hardcode the known themes.
@@ -0,0 +1,45 @@
1
+ # Sketch Toolbar
2
+
3
+ Include a small floating toolbar in every sketch. It provides utilities without competing with the actual design.
4
+
5
+ ## Implementation
6
+
7
+ A small `<div>` fixed to the bottom-right, semi-transparent, expands on hover:
8
+
9
+ ```html
10
+ <div id="sketch-tools" style="position:fixed;bottom:12px;right:12px;z-index:9999;font-family:system-ui;font-size:12px;background:rgba(0,0,0,0.7);color:white;padding:8px 12px;border-radius:8px;opacity:0.4;transition:opacity 0.2s;" onmouseenter="this.style.opacity='1'" onmouseleave="this.style.opacity='0.4'">
11
+ <!-- Theme switcher -->
12
+ <!-- Viewport buttons -->
13
+ <!-- Annotation toggle -->
14
+ </div>
15
+ ```
16
+
17
+ ## Components
18
+
19
+ ### Theme Switcher
20
+
21
+ A dropdown that swaps the theme CSS file at runtime:
22
+
23
+ ```html
24
+ <select onchange="document.querySelector('link[href*=themes]').href='../themes/'+this.value+'.css'">
25
+ <option value="default">Default</option>
26
+ </select>
27
+ ```
28
+
29
+ ### Viewport Preview
30
+
31
+ Three buttons that constrain the sketch content area to standard widths:
32
+
33
+ - Phone: 375px
34
+ - Tablet: 768px
35
+ - Desktop: 1280px (or full width)
36
+
37
+ Implemented by wrapping sketch content in a container and adjusting its `max-width`.
38
+
39
+ ### Annotation Mode
40
+
41
+ A toggle that overlays spacing values, color hex codes, and font sizes on hover. Implemented as a JS snippet that reads computed styles and shows them in a tooltip. Helps understand visual decisions without opening dev tools.
42
+
43
+ ## Styling
44
+
45
+ The toolbar should be unobtrusive — small, dark, semi-transparent. It should never compete with the sketch visually. Style it independently of the theme (hardcoded dark background, white text).