gsd-antigravity-kit 1.22.6 → 1.24.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 (117) hide show
  1. package/.agent/skills/gsd/SKILL.md +12 -4
  2. package/.agent/skills/gsd/assets/templates/UI-SPEC.md +100 -0
  3. package/.agent/skills/gsd/assets/templates/codebase/structure.md +3 -3
  4. package/.agent/skills/gsd/assets/templates/context.md +57 -2
  5. package/.agent/skills/gsd/assets/templates/copilot-instructions.md +7 -0
  6. package/.agent/skills/gsd/assets/templates/phase-prompt.md +54 -13
  7. package/.agent/skills/gsd/bin/gsd-tools.cjs +11 -0
  8. package/.agent/skills/gsd/bin/help-manifest.json +15 -3
  9. package/.agent/skills/gsd/bin/lib/commands.cjs +120 -1
  10. package/.agent/skills/gsd/bin/lib/config.cjs +157 -19
  11. package/.agent/skills/gsd/bin/lib/core.cjs +37 -23
  12. package/.agent/skills/gsd/bin/lib/init.cjs +69 -20
  13. package/.agent/skills/gsd/bin/lib/model-profiles.cjs +68 -0
  14. package/.agent/skills/gsd/bin/lib/phase.cjs +33 -23
  15. package/.agent/skills/gsd/bin/lib/roadmap.cjs +20 -12
  16. package/.agent/skills/gsd/bin/lib/state.cjs +4 -2
  17. package/.agent/skills/gsd/bin/lib/verify.cjs +8 -2
  18. package/.agent/skills/gsd/references/agents/gsd-codebase-mapper.md +0 -2
  19. package/.agent/skills/gsd/references/agents/gsd-debugger.md +85 -4
  20. package/.agent/skills/gsd/references/agents/gsd-executor.md +14 -16
  21. package/.agent/skills/gsd/references/agents/gsd-integration-checker.md +0 -2
  22. package/.agent/skills/gsd/references/agents/gsd-nyquist-auditor.md +0 -2
  23. package/.agent/skills/gsd/references/agents/gsd-phase-researcher.md +3 -5
  24. package/.agent/skills/gsd/references/agents/gsd-plan-checker.md +5 -7
  25. package/.agent/skills/gsd/references/agents/gsd-planner.md +9 -11
  26. package/.agent/skills/gsd/references/agents/gsd-project-researcher.md +1 -3
  27. package/.agent/skills/gsd/references/agents/gsd-research-synthesizer.md +3 -5
  28. package/.agent/skills/gsd/references/agents/gsd-roadmapper.md +2 -4
  29. package/.agent/skills/gsd/references/agents/gsd-ui-auditor.md +439 -0
  30. package/.agent/skills/gsd/references/agents/gsd-ui-checker.md +300 -0
  31. package/.agent/skills/gsd/references/agents/gsd-ui-researcher.md +353 -0
  32. package/.agent/skills/gsd/references/agents/gsd-verifier.md +6 -8
  33. package/.agent/skills/gsd/references/commands/add-phase.md +2 -2
  34. package/.agent/skills/gsd/references/commands/add-tests.md +2 -2
  35. package/.agent/skills/gsd/references/commands/add-todo.md +2 -2
  36. package/.agent/skills/gsd/references/commands/audit-milestone.md +2 -2
  37. package/.agent/skills/gsd/references/commands/autonomous.md +41 -0
  38. package/.agent/skills/gsd/references/commands/check-todos.md +2 -2
  39. package/.agent/skills/gsd/references/commands/cleanup.md +2 -2
  40. package/.agent/skills/gsd/references/commands/complete-milestone.md +2 -2
  41. package/.agent/skills/gsd/references/commands/debug.md +2 -2
  42. package/.agent/skills/gsd/references/commands/discuss-phase.md +3 -3
  43. package/.agent/skills/gsd/references/commands/execute-phase.md +3 -3
  44. package/.agent/skills/gsd/references/commands/health.md +2 -2
  45. package/.agent/skills/gsd/references/commands/help.md +2 -2
  46. package/.agent/skills/gsd/references/commands/insert-phase.md +2 -2
  47. package/.agent/skills/gsd/references/commands/list-phase-assumptions.md +1 -1
  48. package/.agent/skills/gsd/references/commands/map-codebase.md +1 -1
  49. package/.agent/skills/gsd/references/commands/new-milestone.md +6 -6
  50. package/.agent/skills/gsd/references/commands/new-project.md +6 -6
  51. package/.agent/skills/gsd/references/commands/pause-work.md +2 -2
  52. package/.agent/skills/gsd/references/commands/plan-milestone-gaps.md +2 -2
  53. package/.agent/skills/gsd/references/commands/plan-phase.md +3 -3
  54. package/.agent/skills/gsd/references/commands/progress.md +2 -2
  55. package/.agent/skills/gsd/references/commands/quick.md +6 -4
  56. package/.agent/skills/gsd/references/commands/reapply-patches.md +1 -1
  57. package/.agent/skills/gsd/references/commands/remove-phase.md +2 -2
  58. package/.agent/skills/gsd/references/commands/research-phase.md +3 -3
  59. package/.agent/skills/gsd/references/commands/resume-work.md +2 -2
  60. package/.agent/skills/gsd/references/commands/set-profile.md +5 -27
  61. package/.agent/skills/gsd/references/commands/settings.md +2 -2
  62. package/.agent/skills/gsd/references/commands/stats.md +18 -0
  63. package/.agent/skills/gsd/references/commands/ui-phase.md +34 -0
  64. package/.agent/skills/gsd/references/commands/ui-review.md +32 -0
  65. package/.agent/skills/gsd/references/commands/update.md +2 -2
  66. package/.agent/skills/gsd/references/commands/validate-phase.md +2 -2
  67. package/.agent/skills/gsd/references/commands/verify-work.md +3 -3
  68. package/.agent/skills/gsd/references/docs/decimal-phase-calculation.md +4 -4
  69. package/.agent/skills/gsd/references/docs/git-integration.md +3 -3
  70. package/.agent/skills/gsd/references/docs/git-planning-commit.md +2 -2
  71. package/.agent/skills/gsd/references/docs/model-profile-resolution.md +3 -1
  72. package/.agent/skills/gsd/references/docs/model-profiles.md +24 -16
  73. package/.agent/skills/gsd/references/docs/phase-argument-parsing.md +3 -3
  74. package/.agent/skills/gsd/references/docs/planning-config.md +6 -6
  75. package/.agent/skills/gsd/references/docs/verification-patterns.md +1 -1
  76. package/.agent/skills/gsd/references/workflows/add-phase.md +2 -2
  77. package/.agent/skills/gsd/references/workflows/add-tests.md +2 -2
  78. package/.agent/skills/gsd/references/workflows/add-todo.md +3 -3
  79. package/.agent/skills/gsd/references/workflows/audit-milestone.md +6 -6
  80. package/.agent/skills/gsd/references/workflows/autonomous.md +743 -0
  81. package/.agent/skills/gsd/references/workflows/check-todos.md +2 -2
  82. package/.agent/skills/gsd/references/workflows/cleanup.md +1 -1
  83. package/.agent/skills/gsd/references/workflows/complete-milestone.md +9 -7
  84. package/.agent/skills/gsd/references/workflows/diagnose-issues.md +1 -1
  85. package/.agent/skills/gsd/references/workflows/discovery-phase.md +5 -5
  86. package/.agent/skills/gsd/references/workflows/discuss-phase.md +104 -18
  87. package/.agent/skills/gsd/references/workflows/execute-phase.md +28 -19
  88. package/.agent/skills/gsd/references/workflows/execute-plan.md +52 -18
  89. package/.agent/skills/gsd/references/workflows/health.md +2 -2
  90. package/.agent/skills/gsd/references/workflows/help.md +14 -4
  91. package/.agent/skills/gsd/references/workflows/insert-phase.md +2 -2
  92. package/.agent/skills/gsd/references/workflows/map-codebase.md +2 -2
  93. package/.agent/skills/gsd/references/workflows/new-milestone.md +17 -15
  94. package/.agent/skills/gsd/references/workflows/new-project.md +18 -16
  95. package/.agent/skills/gsd/references/workflows/node-repair.md +92 -0
  96. package/.agent/skills/gsd/references/workflows/pause-work.md +2 -2
  97. package/.agent/skills/gsd/references/workflows/plan-milestone-gaps.md +2 -2
  98. package/.agent/skills/gsd/references/workflows/plan-phase.md +121 -15
  99. package/.agent/skills/gsd/references/workflows/progress.md +7 -7
  100. package/.agent/skills/gsd/references/workflows/quick.md +162 -46
  101. package/.agent/skills/gsd/references/workflows/remove-phase.md +4 -4
  102. package/.agent/skills/gsd/references/workflows/research-phase.md +4 -4
  103. package/.agent/skills/gsd/references/workflows/resume-project.md +2 -2
  104. package/.agent/skills/gsd/references/workflows/settings.md +37 -8
  105. package/.agent/skills/gsd/references/workflows/stats.md +57 -0
  106. package/.agent/skills/gsd/references/workflows/transition.md +4 -4
  107. package/.agent/skills/gsd/references/workflows/ui-phase.md +290 -0
  108. package/.agent/skills/gsd/references/workflows/ui-review.md +157 -0
  109. package/.agent/skills/gsd/references/workflows/update.md +103 -23
  110. package/.agent/skills/gsd/references/workflows/validate-phase.md +7 -7
  111. package/.agent/skills/gsd/references/workflows/verify-phase.md +9 -9
  112. package/.agent/skills/gsd/references/workflows/verify-work.md +5 -4
  113. package/CHANGELOG.md +11 -0
  114. package/README.md +2 -1
  115. package/docs/DEV_KNOWLEDGEBASE.md +11 -0
  116. package/package.json +1 -1
  117. package/.agent/skills/gsd/references/workflows/set-profile.md +0 -81
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gsd
3
- version: 1.22.4
3
+ version: 1.24.0
4
4
  description: "Antigravity GSD (Get Stuff Done) - A spec-driven hierarchical planning and execution system. Triggers on project planning, phase management, and GSD slash commands."
5
5
  ---
6
6
 
@@ -25,6 +25,7 @@ This skill should be used when:
25
25
  - `gsd:add-tests`
26
26
  - `gsd:add-todo`
27
27
  - `gsd:audit-milestone`
28
+ - `gsd:autonomous`
28
29
  - `gsd:check-todos`
29
30
  - `gsd:cleanup`
30
31
  - `gsd:complete-milestone`
@@ -51,6 +52,9 @@ This skill should be used when:
51
52
  - `gsd:resume-work`
52
53
  - `gsd:set-profile`
53
54
  - `gsd:settings`
55
+ - `gsd:stats`
56
+ - `gsd:ui-phase`
57
+ - `gsd:ui-review`
54
58
  - `gsd:update`
55
59
  - `gsd:validate-phase`
56
60
  - `gsd:verify-work`
@@ -70,11 +74,12 @@ The following slash commands are available in this skill. Use them to drive the
70
74
  - **[`gsd:add-tests`](references/commands/add-tests.md)**: Generate tests for a completed phase based on UAT criteria and implementation
71
75
  - **[`gsd:add-todo`](references/commands/add-todo.md)**: Capture idea or task as todo from current conversation context
72
76
  - **[`gsd:audit-milestone`](references/commands/audit-milestone.md)**: Audit milestone completion against original intent before archiving
77
+ - **[`gsd:autonomous`](references/commands/autonomous.md)**: Run all remaining phases autonomously — discuss→plan→execute per phase
73
78
  - **[`gsd:check-todos`](references/commands/check-todos.md)**: List pending todos and select one to work on
74
79
  - **[`gsd:cleanup`](references/commands/cleanup.md)**: Archive accumulated phase directories from completed milestones
75
80
  - **[`gsd:complete-milestone`](references/commands/complete-milestone.md)**: Archive completed milestone and prepare for next version
76
81
  - **[`gsd:debug`](references/commands/debug.md)**: Systematic debugging with persistent state across context resets
77
- - **[`gsd:discuss-phase`](references/commands/discuss-phase.md)**: Gather phase context through adaptive questioning before planning
82
+ - **[`gsd:discuss-phase`](references/commands/discuss-phase.md)**: Gather phase context through adaptive questioning before planning. Use --auto to skip interactive questions (Antigravity picks recommended defaults).
78
83
  - **[`gsd:execute-phase`](references/commands/execute-phase.md)**: Execute all plans in a phase with wave-based parallelization
79
84
  - **[`gsd:gsd-tools`](references/commands/gsd-tools.md)**: Direct access to GSD internal CLI tools for atomic operations (state, roadmap, phase, config, etc.)
80
85
  - **[`gsd:health`](references/commands/health.md)**: Diagnose planning directory health and optionally repair issues
@@ -94,8 +99,11 @@ The following slash commands are available in this skill. Use them to drive the
94
99
  - **[`gsd:remove-phase`](references/commands/remove-phase.md)**: Remove a future phase from roadmap and renumber subsequent phases
95
100
  - **[`gsd:research-phase`](references/commands/research-phase.md)**: Research how to implement a phase (standalone - usually use /gsd:plan-phase instead)
96
101
  - **[`gsd:resume-work`](references/commands/resume-work.md)**: Resume work from previous session with full context restoration
97
- - **[`gsd:set-profile`](references/commands/set-profile.md)**: Switch model profile for GSD agents (quality/balanced/budget)
102
+ - **[`gsd:set-profile`](references/commands/set-profile.md)**: Switch model profile for GSD agents (quality/balanced/budget/inherit)
98
103
  - **[`gsd:settings`](references/commands/settings.md)**: Configure GSD workflow toggles and model profile
104
+ - **[`gsd:stats`](references/commands/stats.md)**: Display project statistics — phases, plans, requirements, git metrics, and timeline
105
+ - **[`gsd:ui-phase`](references/commands/ui-phase.md)**: Generate UI design contract (UI-SPEC.md) for frontend phases
106
+ - **[`gsd:ui-review`](references/commands/ui-review.md)**: Retroactive 6-pillar visual audit of implemented frontend code
99
107
  - **[`gsd:update`](references/commands/update.md)**: Update GSD to latest version with changelog display
100
108
  - **[`gsd:validate-phase`](references/commands/validate-phase.md)**: Retroactively audit and fill Nyquist validation gaps for a completed phase
101
109
  - **[`gsd:verify-work`](references/commands/verify-work.md)**: Validate built features through conversational UAT
@@ -133,4 +141,4 @@ General documentation on the GSD philosophy, usage patterns, and configuration.
133
141
  5. **CLI Invocation**: `gsd-tools` is **NOT** a global command. Always invoke it with the full node path: `node .agent/skills/gsd/bin/gsd-tools.cjs <command> [args]`. Never run `gsd-tools` bare.
134
142
 
135
143
  ---
136
- *Generated by gsd-converter on 2026-03-13*
144
+ *Generated by gsd-converter on 2026-03-15*
@@ -0,0 +1,100 @@
1
+ ---
2
+ phase: {N}
3
+ slug: {phase-slug}
4
+ status: draft
5
+ shadcn_initialized: false
6
+ preset: none
7
+ created: {date}
8
+ ---
9
+
10
+ # Phase {N} — UI Design Contract
11
+
12
+ > Visual and interaction contract for frontend phases. Generated by gsd-ui-researcher, verified by gsd-ui-checker.
13
+
14
+ ---
15
+
16
+ ## Design System
17
+
18
+ | Property | Value |
19
+ |----------|-------|
20
+ | Tool | {shadcn / none} |
21
+ | Preset | {preset string or "not applicable"} |
22
+ | Component library | {radix / base-ui / none} |
23
+ | Icon library | {library} |
24
+ | Font | {font} |
25
+
26
+ ---
27
+
28
+ ## Spacing Scale
29
+
30
+ Declared values (must be multiples of 4):
31
+
32
+ | Token | Value | Usage |
33
+ |-------|-------|-------|
34
+ | xs | 4px | Icon gaps, inline padding |
35
+ | sm | 8px | Compact element spacing |
36
+ | md | 16px | Default element spacing |
37
+ | lg | 24px | Section padding |
38
+ | xl | 32px | Layout gaps |
39
+ | 2xl | 48px | Major section breaks |
40
+ | 3xl | 64px | Page-level spacing |
41
+
42
+ Exceptions: {list any, or "none"}
43
+
44
+ ---
45
+
46
+ ## Typography
47
+
48
+ | Role | Size | Weight | Line Height |
49
+ |------|------|--------|-------------|
50
+ | Body | {px} | {weight} | {ratio} |
51
+ | Label | {px} | {weight} | {ratio} |
52
+ | Heading | {px} | {weight} | {ratio} |
53
+ | Display | {px} | {weight} | {ratio} |
54
+
55
+ ---
56
+
57
+ ## Color
58
+
59
+ | Role | Value | Usage |
60
+ |------|-------|-------|
61
+ | Dominant (60%) | {hex} | Background, surfaces |
62
+ | Secondary (30%) | {hex} | Cards, sidebar, nav |
63
+ | Accent (10%) | {hex} | {list specific elements only} |
64
+ | Destructive | {hex} | Destructive actions only |
65
+
66
+ Accent reserved for: {explicit list — never "all interactive elements"}
67
+
68
+ ---
69
+
70
+ ## Copywriting Contract
71
+
72
+ | Element | Copy |
73
+ |---------|------|
74
+ | Primary CTA | {specific verb + noun} |
75
+ | Empty state heading | {copy} |
76
+ | Empty state body | {copy + next step} |
77
+ | Error state | {problem + solution path} |
78
+ | Destructive confirmation | {action name}: {confirmation copy} |
79
+
80
+ ---
81
+
82
+ ## Registry Safety
83
+
84
+ | Registry | Blocks Used | Safety Gate |
85
+ |----------|-------------|-------------|
86
+ | shadcn official | {list} | not required |
87
+ | {third-party name} | {list} | shadcn view + diff required |
88
+
89
+ ---
90
+
91
+ ## Checker Sign-Off
92
+
93
+ - [ ] Dimension 1 Copywriting: PASS
94
+ - [ ] Dimension 2 Visuals: PASS
95
+ - [ ] Dimension 3 Color: PASS
96
+ - [ ] Dimension 4 Typography: PASS
97
+ - [ ] Dimension 5 Spacing: PASS
98
+ - [ ] Dimension 6 Registry Safety: PASS
99
+
100
+ **Approval:** {pending / approved YYYY-MM-DD}
@@ -216,7 +216,7 @@ get-shit-done/
216
216
 
217
217
  **New Workflow:**
218
218
  - Implementation: `get-shit-done/workflows/{name}.md`
219
- - Usage: Reference from command with `@references/workflows/{name}.md`
219
+ - Usage: Reference from command with `@C:/projects/GSD-Antigravityreferences/workflows/{name}.md`
220
220
 
221
221
  **New Reference Document:**
222
222
  - Implementation: `get-shit-done/references/{name}.md`
@@ -229,12 +229,12 @@ get-shit-done/
229
229
  ## Special Directories
230
230
 
231
231
  **get-shit-done/**
232
- - Purpose: Resources installed to ./.antigravity/
232
+ - Purpose: Resources installed to C:/projects/GSD-Antigravity/.antigravity/
233
233
  - Source: Copied by bin/install.js during installation
234
234
  - Committed: Yes (source of truth)
235
235
 
236
236
  **commands/**
237
- - Purpose: Slash commands installed to ./.antigravity/commands/
237
+ - Purpose: Slash commands installed to C:/projects/GSD-Antigravity/.antigravity/commands/
238
238
  - Source: Copied by bin/install.js during installation
239
239
  - Committed: Yes (source of truth)
240
240
 
@@ -54,6 +54,24 @@ Template for `.planning/phases/XX-name/{phase_num}-CONTEXT.md` - captures implem
54
54
 
55
55
  </specifics>
56
56
 
57
+ <canonical_refs>
58
+ ## Canonical References
59
+
60
+ **Downstream agents MUST read these before planning or implementing.**
61
+
62
+ [List every spec, ADR, feature doc, or design doc that defines requirements or constraints for this phase. Use full relative paths so agents can read them directly. Group by topic area when the phase has multiple concerns.]
63
+
64
+ ### [Topic area 1]
65
+ - `path/to/spec-or-adr.md` — [What this doc decides/defines that's relevant]
66
+ - `path/to/doc.md` §N — [Specific section and what it covers]
67
+
68
+ ### [Topic area 2]
69
+ - `path/to/feature-doc.md` — [What capability this defines]
70
+
71
+ [If the project has no external specs: "No external specs — requirements are fully captured in decisions above"]
72
+
73
+ </canonical_refs>
74
+
57
75
  <code_context>
58
76
  ## Existing Code Insights
59
77
 
@@ -124,6 +142,18 @@ Display posts from followed users in a scrollable feed. Users can view posts and
124
142
 
125
143
  </decisions>
126
144
 
145
+ <canonical_refs>
146
+ ## Canonical References
147
+
148
+ ### Feed display
149
+ - `docs/features/social-feed.md` — Feed requirements, post card fields, engagement display rules
150
+ - `docs/decisions/adr-012-infinite-scroll.md` — Scroll strategy decision, virtualization requirements
151
+
152
+ ### Empty states
153
+ - `docs/design/empty-states.md` — Empty state patterns, illustration guidelines
154
+
155
+ </canonical_refs>
156
+
127
157
  <specifics>
128
158
  ## Specific Ideas
129
159
 
@@ -186,6 +216,15 @@ CLI command to backup database to local file or S3. Supports full and incrementa
186
216
 
187
217
  </decisions>
188
218
 
219
+ <canonical_refs>
220
+ ## Canonical References
221
+
222
+ ### Backup CLI
223
+ - `docs/features/backup-restore.md` — Backup requirements, supported backends, encryption spec
224
+ - `docs/decisions/adr-007-cli-conventions.md` — Flag naming, exit codes, output format standards
225
+
226
+ </canonical_refs>
227
+
189
228
  <specifics>
190
229
  ## Specific Ideas
191
230
 
@@ -248,6 +287,15 @@ Organize existing photo library into structured folders. Handle duplicates and a
248
287
 
249
288
  </decisions>
250
289
 
290
+ <canonical_refs>
291
+ ## Canonical References
292
+
293
+ ### Organization rules
294
+ - `docs/features/photo-organization.md` — Grouping rules, duplicate policy, naming spec
295
+ - `docs/decisions/adr-003-exif-handling.md` — EXIF extraction strategy, fallback for missing metadata
296
+
297
+ </canonical_refs>
298
+
251
299
  <specifics>
252
300
  ## Specific Ideas
253
301
 
@@ -291,7 +339,14 @@ The output should answer: "What does the researcher need to investigate? What ch
291
339
 
292
340
  **After creation:**
293
341
  - File lives in phase directory: `.planning/phases/XX-name/{phase_num}-CONTEXT.md`
294
- - `gsd-phase-researcher` uses decisions to focus investigation
295
- - `gsd-planner` uses decisions + research to create executable tasks
342
+ - `gsd-phase-researcher` uses decisions to focus investigation AND reads canonical_refs to know WHAT docs to study
343
+ - `gsd-planner` uses decisions + research to create executable tasks AND reads canonical_refs to verify alignment
296
344
  - Downstream agents should NOT need to ask the user again about captured decisions
345
+
346
+ **CRITICAL — Canonical references:**
347
+ - The `<canonical_refs>` section is MANDATORY. Every CONTEXT.md must have one.
348
+ - If your project has external specs, ADRs, or design docs, list them with full relative paths grouped by topic
349
+ - If ROADMAP.md lists `Canonical refs:` per phase, extract and expand those
350
+ - Inline mentions like "see ADR-019" scattered in decisions are useless to downstream agents — they need full paths and section references in a dedicated section they can find
351
+ - If no external specs exist, say so explicitly — don't silently omit the section
297
352
  </guidelines>
@@ -0,0 +1,7 @@
1
+ # Instructions for GSD
2
+
3
+ - Use the get-shit-done skill when the user asks for GSD or uses a `gsd-*` command.
4
+ - Treat `/gsd-...` or `gsd-...` as command invocations and load the matching file from `.github/skills/gsd-*`.
5
+ - When a command says to spawn a subagent, prefer a matching custom agent from `.github/agents`.
6
+ - Do not apply GSD workflows unless the user explicitly asks for them.
7
+ - After completing any `gsd-*` command (or any deliverable it triggers: feature, bug fix, tests, docs, etc.), ALWAYS: (1) offer the user the next step by prompting via `ask_user`; repeat this feedback loop until the user explicitly indicates they are done.
@@ -38,10 +38,10 @@ Output: [What artifacts will be created]
38
38
  </objective>
39
39
 
40
40
  <execution_context>
41
- @references/workflows/execute-plan.md
42
- @assets/templates/summary.md
41
+ @C:/projects/GSD-Antigravityreferences/workflows/execute-plan.md
42
+ @C:/projects/GSD-Antigravityassets/templates/summary.md
43
43
  [If plan contains checkpoint tasks (type="checkpoint:*"), add:]
44
- @references/docs/checkpoints.md
44
+ @C:/projects/GSD-Antigravity/.antigravity/get-shit-done/references/checkpoints.md
45
45
  </execution_context>
46
46
 
47
47
  <context>
@@ -63,21 +63,29 @@ Output: [What artifacts will be created]
63
63
  <task type="auto">
64
64
  <name>Task 1: [Action-oriented name]</name>
65
65
  <files>path/to/file.ext, another/file.ext</files>
66
- <action>[Specific implementation - what to do, how to do it, what to avoid and WHY]</action>
66
+ <read_first>path/to/reference.ext, path/to/source-of-truth.ext</read_first>
67
+ <action>[Specific implementation - what to do, how to do it, what to avoid and WHY. Include CONCRETE values: exact identifiers, parameters, expected outputs, file paths, command arguments. Never say "align X with Y" without specifying the exact target state.]</action>
67
68
  <verify>[Command or check to prove it worked]</verify>
69
+ <acceptance_criteria>
70
+ - [Grep-verifiable condition: "file.ext contains 'exact string'"]
71
+ - [Measurable condition: "output.ext uses 'expected-value', NOT 'wrong-value'"]
72
+ </acceptance_criteria>
68
73
  <done>[Measurable acceptance criteria]</done>
69
74
  </task>
70
75
 
71
76
  <task type="auto">
72
77
  <name>Task 2: [Action-oriented name]</name>
73
78
  <files>path/to/file.ext</files>
74
- <action>[Specific implementation]</action>
79
+ <read_first>path/to/reference.ext</read_first>
80
+ <action>[Specific implementation with concrete values]</action>
75
81
  <verify>[Command or check]</verify>
82
+ <acceptance_criteria>
83
+ - [Grep-verifiable condition]
84
+ </acceptance_criteria>
76
85
  <done>[Acceptance criteria]</done>
77
86
  </task>
78
87
 
79
- <!-- For checkpoint task examples and patterns, see @references/docs/checkpoints.md -->
80
- <!-- Key rule: Antigravity starts dev server BEFORE human-verify checkpoints. User only visits URLs. -->
88
+ <!-- For checkpoint task examples and patterns, see @C:/projects/GSD-Antigravity/.antigravity/get-shit-done/references/checkpoints.md -->
81
89
 
82
90
  <task type="checkpoint:decision" gate="blocking">
83
91
  <decision>[What needs deciding]</decision>
@@ -270,7 +278,7 @@ TDD features get dedicated plans with `type: tdd`.
270
278
  → Yes: Create a TDD plan
271
279
  → No: Standard task in standard plan
272
280
 
273
- See `./.antigravity/get-shit-done/references/tdd.md` for TDD plan structure.
281
+ See `C:/projects/GSD-Antigravity/.antigravity/get-shit-done/references/tdd.md` for TDD plan structure.
274
282
 
275
283
  ---
276
284
 
@@ -374,9 +382,9 @@ Output: Working dashboard component.
374
382
  </objective>
375
383
 
376
384
  <execution_context>
377
- @references/workflows/execute-plan.md
378
- @assets/templates/summary.md
379
- @references/docs/checkpoints.md
385
+ @C:/projects/GSD-Antigravityreferences/workflows/execute-plan.md
386
+ @C:/projects/GSD-Antigravityassets/templates/summary.md
387
+ @C:/projects/GSD-Antigravity/.antigravity/get-shit-done/references/checkpoints.md
380
388
  </execution_context>
381
389
 
382
390
  <context>
@@ -456,6 +464,39 @@ files_modified: [...]
456
464
  </task>
457
465
  ```
458
466
 
467
+ **Bad: Missing read_first (executor modifies files it hasn't read)**
468
+ ```xml
469
+ <task type="auto">
470
+ <name>Update database config</name>
471
+ <files>src/config/database.ts</files>
472
+ <!-- No read_first! Executor doesn't know current state or conventions -->
473
+ <action>Update the database config to match production settings</action>
474
+ </task>
475
+ ```
476
+
477
+ **Bad: Vague acceptance criteria (not verifiable)**
478
+ ```xml
479
+ <acceptance_criteria>
480
+ - Config is properly set up
481
+ - Database connection works correctly
482
+ </acceptance_criteria>
483
+ ```
484
+
485
+ **Good: Concrete with read_first + verifiable criteria**
486
+ ```xml
487
+ <task type="auto">
488
+ <name>Update database config for connection pooling</name>
489
+ <files>src/config/database.ts</files>
490
+ <read_first>src/config/database.ts, .env.example, docker-compose.yml</read_first>
491
+ <action>Add pool configuration: min=2, max=20, idleTimeoutMs=30000. Add SSL config: rejectUnauthorized=true when NODE_ENV=production. Add .env.example entry: DATABASE_POOL_MAX=20.</action>
492
+ <acceptance_criteria>
493
+ - database.ts contains "max: 20" and "idleTimeoutMillis: 30000"
494
+ - database.ts contains SSL conditional on NODE_ENV
495
+ - .env.example contains DATABASE_POOL_MAX
496
+ </acceptance_criteria>
497
+ </task>
498
+ ```
499
+
459
500
  ---
460
501
 
461
502
  ## Guidelines
@@ -499,7 +540,7 @@ user_setup:
499
540
 
500
541
  **Result:** Execute-plan generates `{phase}-USER-SETUP.md` with checklist for the user.
501
542
 
502
- See `assets/templates/user-setup.md` for full schema and examples
543
+ See `C:/projects/GSD-Antigravityassets/templates/user-setup.md` for full schema and examples
503
544
 
504
545
  ---
505
546
 
@@ -566,4 +607,4 @@ Task completion ≠ Goal achievement. A task "create chat component" can complet
566
607
  5. Gaps found → fix plans created → execute → re-verify
567
608
  6. All must_haves pass → phase complete
568
609
 
569
- See `references/workflows/verify-phase.md` for verification logic.
610
+ See `C:/projects/GSD-Antigravityreferences/workflows/verify-phase.md` for verification logic.
@@ -294,6 +294,11 @@ async function main() {
294
294
  break;
295
295
  }
296
296
 
297
+ case "config-set-model-profile": {
298
+ config.cmdConfigSetModelProfile(cwd, args[1], raw);
299
+ break;
300
+ }
301
+
297
302
  case 'config-get': {
298
303
  config.cmdConfigGet(cwd, args[1], raw);
299
304
  break;
@@ -405,6 +410,12 @@ async function main() {
405
410
  break;
406
411
  }
407
412
 
413
+ case 'stats': {
414
+ const subcommand = args[1] || 'json';
415
+ commands.cmdStats(cwd, subcommand, raw);
416
+ break;
417
+ }
418
+
408
419
  case 'todo': {
409
420
  const subcommand = args[1];
410
421
  if (subcommand === 'complete') {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.22.4",
2
+ "version": "1.24.0",
3
3
  "commands": {
4
4
  "add-phase": {
5
5
  "description": "Add phase to end of current milestone in roadmap"
@@ -13,6 +13,9 @@
13
13
  "audit-milestone": {
14
14
  "description": "Audit milestone completion against original intent before archiving"
15
15
  },
16
+ "autonomous": {
17
+ "description": "Run all remaining phases autonomously \u2014 discuss\u2192plan\u2192execute per phase"
18
+ },
16
19
  "check-todos": {
17
20
  "description": "List pending todos and select one to work on"
18
21
  },
@@ -26,7 +29,7 @@
26
29
  "description": "Systematic debugging with persistent state across context resets"
27
30
  },
28
31
  "discuss-phase": {
29
- "description": "Gather phase context through adaptive questioning before planning"
32
+ "description": "Gather phase context through adaptive questioning before planning. Use --auto to skip interactive questions (Antigravity picks recommended defaults)."
30
33
  },
31
34
  "execute-phase": {
32
35
  "description": "Execute all plans in a phase with wave-based parallelization"
@@ -87,11 +90,20 @@
87
90
  "description": "Resume work from previous session with full context restoration"
88
91
  },
89
92
  "set-profile": {
90
- "description": "Switch model profile for GSD agents (quality/balanced/budget)"
93
+ "description": "Switch model profile for GSD agents (quality/balanced/budget/inherit)"
91
94
  },
92
95
  "settings": {
93
96
  "description": "Configure GSD workflow toggles and model profile"
94
97
  },
98
+ "stats": {
99
+ "description": "Display project statistics \u2014 phases, plans, requirements, git metrics, and timeline"
100
+ },
101
+ "ui-phase": {
102
+ "description": "Generate UI design contract (UI-SPEC.md) for frontend phases"
103
+ },
104
+ "ui-review": {
105
+ "description": "Retroactive 6-pillar visual audit of implemented frontend code"
106
+ },
95
107
  "update": {
96
108
  "description": "Update GSD to latest version with changelog display"
97
109
  },
@@ -4,8 +4,9 @@
4
4
  const fs = require('fs');
5
5
  const path = require('path');
6
6
  const { execSync } = require('child_process');
7
- const { safeReadFile, loadConfig, isGitIgnored, execGit, normalizePhaseName, comparePhaseNum, getArchivedPhaseDirs, generateSlugInternal, getMilestoneInfo, resolveModelInternal, MODEL_PROFILES, toPosixPath, output, error, findPhaseInternal } = require('./core.cjs');
7
+ const { safeReadFile, loadConfig, isGitIgnored, execGit, normalizePhaseName, comparePhaseNum, getArchivedPhaseDirs, generateSlugInternal, getMilestoneInfo, resolveModelInternal, toPosixPath, output, error, findPhaseInternal } = require('./core.cjs');
8
8
  const { extractFrontmatter } = require('./frontmatter.cjs');
9
+ const { MODEL_PROFILES } = require('./model-profiles.cjs');
9
10
 
10
11
  function cmdGenerateSlug(text, raw) {
11
12
  if (!text) {
@@ -532,6 +533,123 @@ function cmdScaffold(cwd, type, options, raw) {
532
533
  output({ created: true, path: relPath }, raw, relPath);
533
534
  }
534
535
 
536
+ function cmdStats(cwd, format, raw) {
537
+ const phasesDir = path.join(cwd, '.planning', 'phases');
538
+ const reqPath = path.join(cwd, '.planning', 'REQUIREMENTS.md');
539
+ const statePath = path.join(cwd, '.planning', 'STATE.md');
540
+ const milestone = getMilestoneInfo(cwd);
541
+
542
+ // Phase & plan stats (reuse progress pattern)
543
+ const phases = [];
544
+ let totalPlans = 0;
545
+ let totalSummaries = 0;
546
+
547
+ try {
548
+ const entries = fs.readdirSync(phasesDir, { withFileTypes: true });
549
+ const dirs = entries.filter(e => e.isDirectory()).map(e => e.name).sort((a, b) => comparePhaseNum(a, b));
550
+
551
+ for (const dir of dirs) {
552
+ const dm = dir.match(/^(\d+(?:\.\d+)*)-?(.*)/);
553
+ const phaseNum = dm ? dm[1] : dir;
554
+ const phaseName = dm && dm[2] ? dm[2].replace(/-/g, ' ') : '';
555
+ const phaseFiles = fs.readdirSync(path.join(phasesDir, dir));
556
+ const plans = phaseFiles.filter(f => f.endsWith('-PLAN.md') || f === 'PLAN.md').length;
557
+ const summaries = phaseFiles.filter(f => f.endsWith('-SUMMARY.md') || f === 'SUMMARY.md').length;
558
+
559
+ totalPlans += plans;
560
+ totalSummaries += summaries;
561
+
562
+ let status;
563
+ if (plans === 0) status = 'Pending';
564
+ else if (summaries >= plans) status = 'Complete';
565
+ else if (summaries > 0) status = 'In Progress';
566
+ else status = 'Planned';
567
+
568
+ phases.push({ number: phaseNum, name: phaseName, plans, summaries, status });
569
+ }
570
+ } catch {}
571
+
572
+ const percent = totalPlans > 0 ? Math.min(100, Math.round((totalSummaries / totalPlans) * 100)) : 0;
573
+
574
+ // Requirements stats
575
+ let requirementsTotal = 0;
576
+ let requirementsComplete = 0;
577
+ try {
578
+ if (fs.existsSync(reqPath)) {
579
+ const reqContent = fs.readFileSync(reqPath, 'utf-8');
580
+ const checked = reqContent.match(/^- \[x\] \*\*/gm);
581
+ const unchecked = reqContent.match(/^- \[ \] \*\*/gm);
582
+ requirementsComplete = checked ? checked.length : 0;
583
+ requirementsTotal = requirementsComplete + (unchecked ? unchecked.length : 0);
584
+ }
585
+ } catch {}
586
+
587
+ // Last activity from STATE.md
588
+ let lastActivity = null;
589
+ try {
590
+ if (fs.existsSync(statePath)) {
591
+ const stateContent = fs.readFileSync(statePath, 'utf-8');
592
+ const activityMatch = stateContent.match(/\*\*Last Activity:\*\*\s*(.+)/);
593
+ if (activityMatch) lastActivity = activityMatch[1].trim();
594
+ }
595
+ } catch {}
596
+
597
+ // Git stats
598
+ let gitCommits = 0;
599
+ let gitFirstCommitDate = null;
600
+ try {
601
+ const commitCount = execGit(cwd, ['rev-list', '--count', 'HEAD']);
602
+ gitCommits = parseInt(commitCount.trim(), 10) || 0;
603
+ const firstDate = execGit(cwd, ['log', '--reverse', '--format=%as', '--max-count=1']);
604
+ gitFirstCommitDate = firstDate.trim() || null;
605
+ } catch {}
606
+
607
+ const completedPhases = phases.filter(p => p.status === 'Complete').length;
608
+
609
+ const result = {
610
+ milestone_version: milestone.version,
611
+ milestone_name: milestone.name,
612
+ phases,
613
+ phases_completed: completedPhases,
614
+ phases_total: phases.length,
615
+ total_plans: totalPlans,
616
+ total_summaries: totalSummaries,
617
+ percent,
618
+ requirements_total: requirementsTotal,
619
+ requirements_complete: requirementsComplete,
620
+ git_commits: gitCommits,
621
+ git_first_commit_date: gitFirstCommitDate,
622
+ last_activity: lastActivity,
623
+ };
624
+
625
+ if (format === 'table') {
626
+ const barWidth = 10;
627
+ const filled = Math.round((percent / 100) * barWidth);
628
+ const bar = '\u2588'.repeat(filled) + '\u2591'.repeat(barWidth - filled);
629
+ let out = `# ${milestone.version} ${milestone.name} \u2014 Statistics\n\n`;
630
+ out += `**Progress:** [${bar}] ${totalSummaries}/${totalPlans} plans (${percent}%)\n`;
631
+ out += `**Phases:** ${completedPhases}/${phases.length} complete\n`;
632
+ if (requirementsTotal > 0) {
633
+ out += `**Requirements:** ${requirementsComplete}/${requirementsTotal} complete\n`;
634
+ }
635
+ out += '\n';
636
+ out += `| Phase | Name | Plans | Completed | Status |\n`;
637
+ out += `|-------|------|-------|-----------|--------|\n`;
638
+ for (const p of phases) {
639
+ out += `| ${p.number} | ${p.name} | ${p.plans} | ${p.summaries} | ${p.status} |\n`;
640
+ }
641
+ if (gitCommits > 0) {
642
+ out += `\n**Git:** ${gitCommits} commits`;
643
+ if (gitFirstCommitDate) out += ` (since ${gitFirstCommitDate})`;
644
+ out += '\n';
645
+ }
646
+ if (lastActivity) out += `**Last activity:** ${lastActivity}\n`;
647
+ output({ rendered: out }, raw, out);
648
+ } else {
649
+ output(result, raw);
650
+ }
651
+ }
652
+
535
653
  module.exports = {
536
654
  cmdGenerateSlug,
537
655
  cmdCurrentTimestamp,
@@ -545,4 +663,5 @@ module.exports = {
545
663
  cmdProgressRender,
546
664
  cmdTodoComplete,
547
665
  cmdScaffold,
666
+ cmdStats,
548
667
  };