gsd-antigravity-kit 1.21.1 → 1.22.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 (109) hide show
  1. package/.agent/skills/gsd/SKILL.md +2 -2
  2. package/.agent/skills/gsd/assets/templates/context.md +14 -0
  3. package/.agent/skills/gsd/bin/lib/core.cjs +2 -0
  4. package/.agent/skills/gsd/bin/lib/phase.cjs +14 -7
  5. package/.agent/skills/gsd/bin/lib/state.cjs +2 -1
  6. package/.agent/skills/gsd/references/agents/gsd-debugger.md +2 -2
  7. package/.agent/skills/gsd/references/agents/gsd-executor.md +22 -12
  8. package/.agent/skills/gsd/references/agents/gsd-phase-researcher.md +4 -4
  9. package/.agent/skills/gsd/references/agents/gsd-plan-checker.md +8 -6
  10. package/.agent/skills/gsd/references/agents/gsd-planner.md +27 -7
  11. package/.agent/skills/gsd/references/agents/gsd-project-researcher.md +1 -1
  12. package/.agent/skills/gsd/references/agents/gsd-research-synthesizer.md +1 -1
  13. package/.agent/skills/gsd/references/agents/gsd-verifier.md +7 -7
  14. package/.agent/skills/gsd/references/commands/debug.md +2 -2
  15. package/.agent/skills/gsd/references/commands/discuss-phase.md +8 -5
  16. package/.agent/skills/gsd/references/commands/research-phase.md +3 -3
  17. package/.agent/skills/gsd/references/docs/decimal-phase-calculation.md +4 -4
  18. package/.agent/skills/gsd/references/docs/git-integration.md +3 -3
  19. package/.agent/skills/gsd/references/docs/git-planning-commit.md +2 -2
  20. package/.agent/skills/gsd/references/docs/phase-argument-parsing.md +3 -3
  21. package/.agent/skills/gsd/references/docs/planning-config.md +6 -6
  22. package/.agent/skills/gsd/references/workflows/add-phase.md +2 -2
  23. package/.agent/skills/gsd/references/workflows/add-tests.md +2 -2
  24. package/.agent/skills/gsd/references/workflows/add-todo.md +3 -3
  25. package/.agent/skills/gsd/references/workflows/audit-milestone.md +5 -5
  26. package/.agent/skills/gsd/references/workflows/check-todos.md +2 -2
  27. package/.agent/skills/gsd/references/workflows/cleanup.md +1 -1
  28. package/.agent/skills/gsd/references/workflows/complete-milestone.md +6 -6
  29. package/.agent/skills/gsd/references/workflows/diagnose-issues.md +1 -1
  30. package/.agent/skills/gsd/references/workflows/discuss-phase.md +93 -20
  31. package/.agent/skills/gsd/references/workflows/execute-phase.md +9 -9
  32. package/.agent/skills/gsd/references/workflows/execute-plan.md +12 -12
  33. package/.agent/skills/gsd/references/workflows/health.md +2 -2
  34. package/.agent/skills/gsd/references/workflows/insert-phase.md +2 -2
  35. package/.agent/skills/gsd/references/workflows/map-codebase.md +2 -2
  36. package/.agent/skills/gsd/references/workflows/new-milestone.md +6 -6
  37. package/.agent/skills/gsd/references/workflows/new-project.md +7 -7
  38. package/.agent/skills/gsd/references/workflows/pause-work.md +2 -2
  39. package/.agent/skills/gsd/references/workflows/plan-milestone-gaps.md +2 -2
  40. package/.agent/skills/gsd/references/workflows/plan-phase.md +9 -9
  41. package/.agent/skills/gsd/references/workflows/progress.md +6 -6
  42. package/.agent/skills/gsd/references/workflows/quick.md +4 -4
  43. package/.agent/skills/gsd/references/workflows/remove-phase.md +4 -4
  44. package/.agent/skills/gsd/references/workflows/research-phase.md +2 -2
  45. package/.agent/skills/gsd/references/workflows/resume-project.md +1 -1
  46. package/.agent/skills/gsd/references/workflows/set-profile.md +2 -2
  47. package/.agent/skills/gsd/references/workflows/settings.md +2 -2
  48. package/.agent/skills/gsd/references/workflows/transition.md +4 -4
  49. package/.agent/skills/gsd/references/workflows/update.md +2 -6
  50. package/.agent/skills/gsd/references/workflows/verify-phase.md +6 -6
  51. package/.agent/skills/gsd/references/workflows/verify-work.md +2 -2
  52. package/.agent/skills/release-manager/SKILL.md +2 -2
  53. package/.claude/agents/gsd-debugger.md +2 -2
  54. package/.claude/agents/gsd-executor.md +22 -12
  55. package/.claude/agents/gsd-phase-researcher.md +4 -4
  56. package/.claude/agents/gsd-plan-checker.md +8 -6
  57. package/.claude/agents/gsd-planner.md +27 -7
  58. package/.claude/agents/gsd-project-researcher.md +1 -1
  59. package/.claude/agents/gsd-research-synthesizer.md +1 -1
  60. package/.claude/agents/gsd-verifier.md +7 -7
  61. package/.claude/commands/gsd/debug.md +2 -2
  62. package/.claude/commands/gsd/discuss-phase.md +8 -5
  63. package/.claude/commands/gsd/research-phase.md +3 -3
  64. package/.claude/get-shit-done/VERSION +1 -1
  65. package/.claude/get-shit-done/bin/lib/core.cjs +2 -0
  66. package/.claude/get-shit-done/bin/lib/phase.cjs +14 -7
  67. package/.claude/get-shit-done/bin/lib/state.cjs +2 -1
  68. package/.claude/get-shit-done/references/decimal-phase-calculation.md +4 -4
  69. package/.claude/get-shit-done/references/git-integration.md +3 -3
  70. package/.claude/get-shit-done/references/git-planning-commit.md +2 -2
  71. package/.claude/get-shit-done/references/phase-argument-parsing.md +3 -3
  72. package/.claude/get-shit-done/references/planning-config.md +6 -6
  73. package/.claude/get-shit-done/templates/context.md +14 -0
  74. package/.claude/get-shit-done/workflows/add-phase.md +2 -2
  75. package/.claude/get-shit-done/workflows/add-tests.md +2 -2
  76. package/.claude/get-shit-done/workflows/add-todo.md +3 -3
  77. package/.claude/get-shit-done/workflows/audit-milestone.md +5 -5
  78. package/.claude/get-shit-done/workflows/check-todos.md +2 -2
  79. package/.claude/get-shit-done/workflows/cleanup.md +1 -1
  80. package/.claude/get-shit-done/workflows/complete-milestone.md +6 -6
  81. package/.claude/get-shit-done/workflows/diagnose-issues.md +1 -1
  82. package/.claude/get-shit-done/workflows/discuss-phase.md +93 -20
  83. package/.claude/get-shit-done/workflows/execute-phase.md +9 -9
  84. package/.claude/get-shit-done/workflows/execute-plan.md +12 -12
  85. package/.claude/get-shit-done/workflows/health.md +2 -2
  86. package/.claude/get-shit-done/workflows/insert-phase.md +2 -2
  87. package/.claude/get-shit-done/workflows/map-codebase.md +2 -2
  88. package/.claude/get-shit-done/workflows/new-milestone.md +6 -6
  89. package/.claude/get-shit-done/workflows/new-project.md +7 -7
  90. package/.claude/get-shit-done/workflows/pause-work.md +2 -2
  91. package/.claude/get-shit-done/workflows/plan-milestone-gaps.md +2 -2
  92. package/.claude/get-shit-done/workflows/plan-phase.md +9 -9
  93. package/.claude/get-shit-done/workflows/progress.md +6 -6
  94. package/.claude/get-shit-done/workflows/quick.md +4 -4
  95. package/.claude/get-shit-done/workflows/remove-phase.md +4 -4
  96. package/.claude/get-shit-done/workflows/research-phase.md +2 -2
  97. package/.claude/get-shit-done/workflows/resume-project.md +1 -1
  98. package/.claude/get-shit-done/workflows/set-profile.md +2 -2
  99. package/.claude/get-shit-done/workflows/settings.md +2 -2
  100. package/.claude/get-shit-done/workflows/transition.md +4 -4
  101. package/.claude/get-shit-done/workflows/update.md +2 -6
  102. package/.claude/get-shit-done/workflows/verify-phase.md +6 -6
  103. package/.claude/get-shit-done/workflows/verify-work.md +2 -2
  104. package/.claude/gsd-file-manifest.json +53 -53
  105. package/CHANGELOG.md +13 -3
  106. package/README.md +1 -1
  107. package/docs/DEV_KNOWLEDGEBASE.md +9 -8
  108. package/gsd-antigravity-kit_v1.22.0.zip +0 -0
  109. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gsd
3
- version: 1.21.1
3
+ version: 1.22.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
 
@@ -130,4 +130,4 @@ General documentation on the GSD philosophy, usage patterns, and configuration.
130
130
  4. **One Context**: Keep separate contexts (channels/threads) for Planning vs Execution to avoid contamination.
131
131
 
132
132
  ---
133
- *Generated by gsd-converter on 2026-02-27*
133
+ *Generated by gsd-converter on 2026-03-01*
@@ -54,6 +54,20 @@ Template for `.planning/phases/XX-name/{phase_num}-CONTEXT.md` - captures implem
54
54
 
55
55
  </specifics>
56
56
 
57
+ <code_context>
58
+ ## Existing Code Insights
59
+
60
+ ### Reusable Assets
61
+ - [Component/hook/utility]: [How it could be used in this phase]
62
+
63
+ ### Established Patterns
64
+ - [Pattern]: [How it constrains/enables this phase]
65
+
66
+ ### Integration Points
67
+ - [Where new code connects to existing system]
68
+
69
+ </code_context>
70
+
57
71
  <deferred>
58
72
  ## Deferred Ideas
59
73
 
@@ -76,6 +76,7 @@ function loadConfig(cwd) {
76
76
  research: true,
77
77
  plan_checker: true,
78
78
  verifier: true,
79
+ nyquist_validation: false,
79
80
  parallelization: true,
80
81
  brave_search: false,
81
82
  };
@@ -109,6 +110,7 @@ function loadConfig(cwd) {
109
110
  research: get('research', { section: 'workflow', field: 'research' }) ?? defaults.research,
110
111
  plan_checker: get('plan_checker', { section: 'workflow', field: 'plan_check' }) ?? defaults.plan_checker,
111
112
  verifier: get('verifier', { section: 'workflow', field: 'verifier' }) ?? defaults.verifier,
113
+ nyquist_validation: get('nyquist_validation', { section: 'workflow', field: 'nyquist_validation' }) ?? defaults.nyquist_validation,
112
114
  parallelization,
113
115
  brave_search: get('brave_search') ?? defaults.brave_search,
114
116
  model_overrides: parsed.model_overrides || null,
@@ -193,6 +193,11 @@ function cmdFindPhase(cwd, phase, raw) {
193
193
  }
194
194
  }
195
195
 
196
+ function extractObjective(content) {
197
+ const m = content.match(/<objective>\s*\n?\s*(.+)/);
198
+ return m ? m[1].trim() : null;
199
+ }
200
+
196
201
  function cmdPhasePlanIndex(cwd, phase, raw) {
197
202
  if (!phase) {
198
203
  error('phase required for phase-plan-index');
@@ -242,9 +247,10 @@ function cmdPhasePlanIndex(cwd, phase, raw) {
242
247
  const content = fs.readFileSync(planPath, 'utf-8');
243
248
  const fm = extractFrontmatter(content);
244
249
 
245
- // Count tasks (## Task N patterns)
246
- const taskMatches = content.match(/##\s*Task\s*\d+/gi) || [];
247
- const taskCount = taskMatches.length;
250
+ // Count tasks: XML <task> tags (canonical) or ## Task N markdown (legacy)
251
+ const xmlTasks = content.match(/<task[\s>]/gi) || [];
252
+ const mdTasks = content.match(/##\s*Task\s*\d+/gi) || [];
253
+ const taskCount = xmlTasks.length || mdTasks.length;
248
254
 
249
255
  // Parse wave as integer
250
256
  const wave = parseInt(fm.wave, 10) || 1;
@@ -259,10 +265,11 @@ function cmdPhasePlanIndex(cwd, phase, raw) {
259
265
  hasCheckpoints = true;
260
266
  }
261
267
 
262
- // Parse files-modified
268
+ // Parse files_modified (underscore is canonical; also accept hyphenated for compat)
263
269
  let filesModified = [];
264
- if (fm['files-modified']) {
265
- filesModified = Array.isArray(fm['files-modified']) ? fm['files-modified'] : [fm['files-modified']];
270
+ const fmFiles = fm['files_modified'] || fm['files-modified'];
271
+ if (fmFiles) {
272
+ filesModified = Array.isArray(fmFiles) ? fmFiles : [fmFiles];
266
273
  }
267
274
 
268
275
  const hasSummary = completedPlanIds.has(planId);
@@ -274,7 +281,7 @@ function cmdPhasePlanIndex(cwd, phase, raw) {
274
281
  id: planId,
275
282
  wave,
276
283
  autonomous,
277
- objective: fm.objective || null,
284
+ objective: extractObjective(content) || fm.objective || null,
278
285
  files_modified: filesModified,
279
286
  task_count: taskCount,
280
287
  has_summary: hasSummary,
@@ -151,7 +151,8 @@ function cmdStateUpdate(cwd, field, value) {
151
151
  // ─── State Progression Engine ────────────────────────────────────────────────
152
152
 
153
153
  function stateExtractField(content, fieldName) {
154
- const pattern = new RegExp(`\\*\\*${fieldName}:\\*\\*\\s*(.+)`, 'i');
154
+ const escaped = fieldName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
155
+ const pattern = new RegExp(`\\*\\*${escaped}:\\*\\*\\s*(.+)`, 'i');
155
156
  const match = content.match(pattern);
156
157
  return match ? match[1].trim() : null;
157
158
  }
@@ -1027,7 +1027,7 @@ mv .planning/debug/{slug}.md .planning/debug/resolved/
1027
1027
  **Check planning config using state load (commit_docs is available from the output):**
1028
1028
 
1029
1029
  ```bash
1030
- INIT=$(node .agent/skills/gsd/bin/gsd-tools.cjs state load)
1030
+ INIT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state load)
1031
1031
  # commit_docs is in the JSON output
1032
1032
  ```
1033
1033
 
@@ -1044,7 +1044,7 @@ Root cause: {root_cause}"
1044
1044
 
1045
1045
  Then commit planning docs via CLI (respects `commit_docs` config automatically):
1046
1046
  ```bash
1047
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
1047
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
1048
1048
  ```
1049
1049
 
1050
1050
  Report completion and offer next steps.
@@ -21,7 +21,7 @@ Before executing, discover project context:
21
21
 
22
22
  **Project instructions:** Read `./ANTIGRAVITY.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
23
23
 
24
- **Project skills:** Check `.agents/skills/` directory if it exists:
24
+ **Project skills:** Check `.antigravity/skills/` or `.agents/skills/` directory if either exists:
25
25
  1. List available skills (subdirectories)
26
26
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
27
27
  3. Load specific `rules/*.md` files as needed during implementation
@@ -37,7 +37,7 @@ This ensures project-specific patterns, conventions, and best practices are appl
37
37
  Load execution context:
38
38
 
39
39
  ```bash
40
- INIT=$(node .agent/skills/gsd/bin/gsd-tools.cjs init execute-phase "${PHASE}")
40
+ INIT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" init execute-phase "${PHASE}")
41
41
  ```
42
42
 
43
43
  Extract from init JSON: `executor_model`, `commit_docs`, `phase_dir`, `plans`, `incomplete_plans`.
@@ -171,6 +171,16 @@ Track auto-fix attempts per task. After 3 auto-fix attempts on a single task:
171
171
  - Do NOT restart the build to find more issues
172
172
  </deviation_rules>
173
173
 
174
+ <analysis_paralysis_guard>
175
+ **During task execution, if you make 5+ consecutive Read/Grep/Glob calls without any Edit/Write/Bash action:**
176
+
177
+ STOP. State in one sentence why you haven't written anything yet. Then either:
178
+ 1. Write code (you have enough context), or
179
+ 2. Report "blocked" with the specific missing information.
180
+
181
+ Do NOT continue reading. Analysis without action is a stuck signal.
182
+ </analysis_paralysis_guard>
183
+
174
184
  <authentication_gates>
175
185
  **Auth errors during `type="auto"` execution are gates, not failures.**
176
186
 
@@ -190,7 +200,7 @@ Track auto-fix attempts per task. After 3 auto-fix attempts on a single task:
190
200
  Check if auto mode is active at executor start:
191
201
 
192
202
  ```bash
193
- AUTO_CFG=$(node .agent/skills/gsd/bin/gsd-tools.cjs config-get workflow.auto_advance 2>/dev/null || echo "false")
203
+ AUTO_CFG=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
194
204
  ```
195
205
 
196
206
  Store the result for checkpoint handling below.
@@ -379,34 +389,34 @@ After SUMMARY.md, update STATE.md using gsd-tools:
379
389
 
380
390
  ```bash
381
391
  # Advance plan counter (handles edge cases automatically)
382
- node .agent/skills/gsd/bin/gsd-tools.cjs state advance-plan
392
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state advance-plan
383
393
 
384
394
  # Recalculate progress bar from disk state
385
- node .agent/skills/gsd/bin/gsd-tools.cjs state update-progress
395
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state update-progress
386
396
 
387
397
  # Record execution metrics
388
- node .agent/skills/gsd/bin/gsd-tools.cjs state record-metric \
398
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state record-metric \
389
399
  --phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \
390
400
  --tasks "${TASK_COUNT}" --files "${FILE_COUNT}"
391
401
 
392
402
  # Add decisions (extract from SUMMARY.md key-decisions)
393
403
  for decision in "${DECISIONS[@]}"; do
394
- node .agent/skills/gsd/bin/gsd-tools.cjs state add-decision \
404
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state add-decision \
395
405
  --phase "${PHASE}" --summary "${decision}"
396
406
  done
397
407
 
398
408
  # Update session info
399
- node .agent/skills/gsd/bin/gsd-tools.cjs state record-session \
409
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state record-session \
400
410
  --stopped-at "Completed ${PHASE}-${PLAN}-PLAN.md"
401
411
  ```
402
412
 
403
413
  ```bash
404
414
  # Update ROADMAP.md progress for this phase (plan counts, status)
405
- node .agent/skills/gsd/bin/gsd-tools.cjs roadmap update-plan-progress "${PHASE_NUMBER}"
415
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" roadmap update-plan-progress "${PHASE_NUMBER}"
406
416
 
407
417
  # Mark completed requirements from PLAN.md frontmatter
408
418
  # Extract the `requirements` array from the plan's frontmatter, then mark each complete
409
- node .agent/skills/gsd/bin/gsd-tools.cjs requirements mark-complete ${REQ_IDS}
419
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" requirements mark-complete ${REQ_IDS}
410
420
  ```
411
421
 
412
422
  **Requirement IDs:** Extract from the PLAN.md frontmatter `requirements:` field (e.g., `requirements: [AUTH-01, AUTH-02]`). Pass all IDs to `requirements mark-complete`. If the plan has no requirements field, skip this step.
@@ -424,13 +434,13 @@ node .agent/skills/gsd/bin/gsd-tools.cjs requirements mark-complete ${REQ_IDS}
424
434
 
425
435
  **For blockers found during execution:**
426
436
  ```bash
427
- node .agent/skills/gsd/bin/gsd-tools.cjs state add-blocker "Blocker description"
437
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state add-blocker "Blocker description"
428
438
  ```
429
439
  </state_updates>
430
440
 
431
441
  <final_commit>
432
442
  ```bash
433
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
443
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
434
444
  ```
435
445
 
436
446
  Separate from per-task commits — captures execution results only.
@@ -26,7 +26,7 @@ Before researching, discover project context:
26
26
 
27
27
  **Project instructions:** Read `./ANTIGRAVITY.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
28
28
 
29
- **Project skills:** Check `.agents/skills/` directory if it exists:
29
+ **Project skills:** Check `.antigravity/skills/` or `.agents/skills/` directory if either exists:
30
30
  1. List available skills (subdirectories)
31
31
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
32
32
  3. Load specific `rules/*.md` files as needed during research
@@ -120,7 +120,7 @@ When researching "best library for X": find what the ecosystem actually uses, do
120
120
  Check `brave_search` from init context. If `true`, use Brave Search for higher quality results:
121
121
 
122
122
  ```bash
123
- node .agent/skills/gsd/bin/gsd-tools.cjs websearch "your query" --limit 10
123
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" websearch "your query" --limit 10
124
124
  ```
125
125
 
126
126
  **Options:**
@@ -359,7 +359,7 @@ Orchestrator provides: phase number/name, description/goal, requirements, constr
359
359
 
360
360
  Load phase context using init command:
361
361
  ```bash
362
- INIT=$(node .agent/skills/gsd/bin/gsd-tools.cjs init phase-op "${PHASE}")
362
+ INIT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" init phase-op "${PHASE}")
363
363
  ```
364
364
 
365
365
  Extract from init JSON: `phase_dir`, `padded_phase`, `phase_number`, `commit_docs`.
@@ -461,7 +461,7 @@ Write to: `$PHASE_DIR/$PADDED_PHASE-RESEARCH.md`
461
461
  ## Step 7: Commit Research (optional)
462
462
 
463
463
  ```bash
464
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "docs($PHASE): research phase domain" --files "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md"
464
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "docs($PHASE): research phase domain" --files "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md"
465
465
  ```
466
466
 
467
467
  ## Step 8: Return Structured Result
@@ -31,7 +31,7 @@ Before verifying, discover project context:
31
31
 
32
32
  **Project instructions:** Read `./ANTIGRAVITY.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
33
33
 
34
- **Project skills:** Check `.agents/skills/` directory if it exists:
34
+ **Project skills:** Check `.antigravity/skills/` or `.agents/skills/` directory if either exists:
35
35
  1. List available skills (subdirectories)
36
36
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
37
37
  3. Load specific `rules/*.md` files as needed during verification
@@ -365,7 +365,7 @@ If FAIL: return to planner with specific fixes. Same revision loop as other dime
365
365
 
366
366
  Load phase operation context:
367
367
  ```bash
368
- INIT=$(node .agent/skills/gsd/bin/gsd-tools.cjs init phase-op "${PHASE_ARG}")
368
+ INIT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" init phase-op "${PHASE_ARG}")
369
369
  ```
370
370
 
371
371
  Extract from init JSON: `phase_dir`, `phase_number`, `has_plans`, `plan_count`.
@@ -376,7 +376,7 @@ Orchestrator provides CONTEXT.md content in the verification prompt. If provided
376
376
  ls "$phase_dir"/*-PLAN.md 2>/dev/null
377
377
  # Read research for Nyquist validation data
378
378
  cat "$phase_dir"/*-RESEARCH.md 2>/dev/null
379
- node .agent/skills/gsd/bin/gsd-tools.cjs roadmap get-phase "$phase_number"
379
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" roadmap get-phase "$phase_number"
380
380
  ls "$phase_dir"/*-BRIEF.md 2>/dev/null
381
381
  ```
382
382
 
@@ -389,7 +389,7 @@ Use gsd-tools to validate plan structure:
389
389
  ```bash
390
390
  for plan in "$PHASE_DIR"/*-PLAN.md; do
391
391
  echo "=== $plan ==="
392
- PLAN_STRUCTURE=$(node .agent/skills/gsd/bin/gsd-tools.cjs verify plan-structure "$plan")
392
+ PLAN_STRUCTURE=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" verify plan-structure "$plan")
393
393
  echo "$PLAN_STRUCTURE"
394
394
  done
395
395
  ```
@@ -407,7 +407,7 @@ Map errors/warnings to verification dimensions:
407
407
  Extract must_haves from each plan using gsd-tools:
408
408
 
409
409
  ```bash
410
- MUST_HAVES=$(node .agent/skills/gsd/bin/gsd-tools.cjs frontmatter get "$PLAN_PATH" --field must_haves)
410
+ MUST_HAVES=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" frontmatter get "$PLAN_PATH" --field must_haves)
411
411
  ```
412
412
 
413
413
  Returns JSON: `{ truths: [...], artifacts: [...], key_links: [...] }`
@@ -445,12 +445,14 @@ Session persists | 01 | 3 | COVERED
445
445
 
446
446
  For each requirement: find covering task(s), verify action is specific, flag gaps.
447
447
 
448
+ **Exhaustive cross-check:** Also read PROJECT.md requirements (not just phase goal). Verify no PROJECT.md requirement relevant to this phase is silently dropped. Any unmapped requirement is an automatic blocker — list it explicitly in issues.
449
+
448
450
  ## Step 5: Validate Task Structure
449
451
 
450
452
  Use gsd-tools plan-structure verification (already run in Step 2):
451
453
 
452
454
  ```bash
453
- PLAN_STRUCTURE=$(node .agent/skills/gsd/bin/gsd-tools.cjs verify plan-structure "$PLAN_PATH")
455
+ PLAN_STRUCTURE=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" verify plan-structure "$PLAN_PATH")
454
456
  ```
455
457
 
456
458
  The `tasks` array in the result shows each task's completeness:
@@ -33,7 +33,7 @@ Before planning, discover project context:
33
33
 
34
34
  **Project instructions:** Read `./ANTIGRAVITY.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
35
35
 
36
- **Project skills:** Check `.agents/skills/` directory if it exists:
36
+ **Project skills:** Check `.antigravity/skills/` or `.agents/skills/` directory if either exists:
37
37
  1. List available skills (subdirectories)
38
38
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
39
39
  3. Load specific `rules/*.md` files as needed during planning
@@ -234,6 +234,26 @@ This prevents the "scavenger hunt" anti-pattern where executors explore the code
234
234
 
235
235
  **Why TDD gets own plan:** TDD requires RED→GREEN→REFACTOR cycles consuming 40-50% context. Embedding in multi-task plans degrades quality.
236
236
 
237
+ **Task-level TDD** (for code-producing tasks in standard plans): When a task creates or modifies production code, add `tdd="true"` and a `<behavior>` block to make test expectations explicit before implementation:
238
+
239
+ ```xml
240
+ <task type="auto" tdd="true">
241
+ <name>Task: [name]</name>
242
+ <files>src/feature.ts, src/feature.test.ts</files>
243
+ <behavior>
244
+ - Test 1: [expected behavior]
245
+ - Test 2: [edge case]
246
+ </behavior>
247
+ <action>[Implementation after tests pass]</action>
248
+ <verify>
249
+ <automated>npm test -- --filter=feature</automated>
250
+ </verify>
251
+ <done>[Criteria]</done>
252
+ </task>
253
+ ```
254
+
255
+ Exceptions where `tdd="true"` is not needed: `type="checkpoint:*"` tasks, configuration-only files, documentation, migration scripts, glue code wiring existing tested components, styling-only changes.
256
+
237
257
  ## User Setup Detection
238
258
 
239
259
  For tasks involving external services, identify human-required configuration:
@@ -900,7 +920,7 @@ Group by plan, dimension, severity.
900
920
  ### Step 6: Commit
901
921
 
902
922
  ```bash
903
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
923
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
904
924
  ```
905
925
 
906
926
  ### Step 7: Return Revision Summary
@@ -939,7 +959,7 @@ node .agent/skills/gsd/bin/gsd-tools.cjs commit "fix($PHASE): revise plans based
939
959
  Load planning context:
940
960
 
941
961
  ```bash
942
- INIT=$(node .agent/skills/gsd/bin/gsd-tools.cjs init plan-phase "${PHASE}")
962
+ INIT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" init plan-phase "${PHASE}")
943
963
  ```
944
964
 
945
965
  Extract from init JSON: `planner_model`, `researcher_model`, `checker_model`, `commit_docs`, `research_enabled`, `phase_dir`, `phase_number`, `has_research`, `has_context`.
@@ -995,7 +1015,7 @@ Apply discovery level protocol (see discovery_levels section).
995
1015
 
996
1016
  **Step 1 — Generate digest index:**
997
1017
  ```bash
998
- node .agent/skills/gsd/bin/gsd-tools.cjs history-digest
1018
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" history-digest
999
1019
  ```
1000
1020
 
1001
1021
  **Step 2 — Select relevant phases (typically 2-4):**
@@ -1123,7 +1143,7 @@ Include all frontmatter fields.
1123
1143
  Validate each created PLAN.md using gsd-tools:
1124
1144
 
1125
1145
  ```bash
1126
- VALID=$(node .agent/skills/gsd/bin/gsd-tools.cjs frontmatter validate "$PLAN_PATH" --schema plan)
1146
+ VALID=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" frontmatter validate "$PLAN_PATH" --schema plan)
1127
1147
  ```
1128
1148
 
1129
1149
  Returns JSON: `{ valid, missing, present, schema }`
@@ -1136,7 +1156,7 @@ Required plan frontmatter fields:
1136
1156
  Also validate plan structure:
1137
1157
 
1138
1158
  ```bash
1139
- STRUCTURE=$(node .agent/skills/gsd/bin/gsd-tools.cjs verify plan-structure "$PLAN_PATH")
1159
+ STRUCTURE=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" verify plan-structure "$PLAN_PATH")
1140
1160
  ```
1141
1161
 
1142
1162
  Returns JSON: `{ valid, errors, warnings, task_count, tasks }`
@@ -1173,7 +1193,7 @@ Plans:
1173
1193
 
1174
1194
  <step name="git_commit">
1175
1195
  ```bash
1176
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "docs($PHASE): create phase plan" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md .planning/ROADMAP.md
1196
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "docs($PHASE): create phase plan" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md .planning/ROADMAP.md
1177
1197
  ```
1178
1198
  </step>
1179
1199
 
@@ -99,7 +99,7 @@ Always include current year. Use multiple query variations. Mark WebSearch-only
99
99
  Check `brave_search` from orchestrator context. If `true`, use Brave Search for higher quality results:
100
100
 
101
101
  ```bash
102
- node .agent/skills/gsd/bin/gsd-tools.cjs websearch "your query" --limit 10
102
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" websearch "your query" --limit 10
103
103
  ```
104
104
 
105
105
  **Options:**
@@ -131,7 +131,7 @@ Write to `.planning/research/SUMMARY.md`
131
131
  The 4 parallel researcher agents write files but do NOT commit. You commit everything together.
132
132
 
133
133
  ```bash
134
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "docs: complete project research" --files .planning/research/
134
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "docs: complete project research" --files .planning/research/
135
135
  ```
136
136
 
137
137
  ## Step 8: Return Summary
@@ -21,7 +21,7 @@ Before verifying, discover project context:
21
21
 
22
22
  **Project instructions:** Read `./ANTIGRAVITY.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
23
23
 
24
- **Project skills:** Check `.agents/skills/` directory if it exists:
24
+ **Project skills:** Check `.antigravity/skills/` or `.agents/skills/` directory if either exists:
25
25
  1. List available skills (subdirectories)
26
26
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
27
27
  3. Load specific `rules/*.md` files as needed during verification
@@ -72,7 +72,7 @@ Set `is_re_verification = false`, proceed with Step 1.
72
72
  ```bash
73
73
  ls "$PHASE_DIR"/*-PLAN.md 2>/dev/null
74
74
  ls "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null
75
- node .agent/skills/gsd/bin/gsd-tools.cjs roadmap get-phase "$PHASE_NUM"
75
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" roadmap get-phase "$PHASE_NUM"
76
76
  grep -E "^| $PHASE_NUM" .planning/REQUIREMENTS.md 2>/dev/null
77
77
  ```
78
78
 
@@ -109,7 +109,7 @@ must_haves:
109
109
  If no must_haves in frontmatter, check for Success Criteria:
110
110
 
111
111
  ```bash
112
- PHASE_DATA=$(node .agent/skills/gsd/bin/gsd-tools.cjs roadmap get-phase "$PHASE_NUM" --raw)
112
+ PHASE_DATA=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" roadmap get-phase "$PHASE_NUM" --raw)
113
113
  ```
114
114
 
115
115
  Parse the `success_criteria` array from the JSON output. If non-empty:
@@ -152,7 +152,7 @@ For each truth:
152
152
  Use gsd-tools for artifact verification against must_haves in PLAN frontmatter:
153
153
 
154
154
  ```bash
155
- ARTIFACT_RESULT=$(node .agent/skills/gsd/bin/gsd-tools.cjs verify artifacts "$PLAN_PATH")
155
+ ARTIFACT_RESULT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" verify artifacts "$PLAN_PATH")
156
156
  ```
157
157
 
158
158
  Parse JSON result: `{ all_passed, passed, total, artifacts: [{path, exists, issues, passed}] }`
@@ -201,7 +201,7 @@ Key links are critical connections. If broken, the goal fails even with all arti
201
201
  Use gsd-tools for key link verification against must_haves in PLAN frontmatter:
202
202
 
203
203
  ```bash
204
- LINKS_RESULT=$(node .agent/skills/gsd/bin/gsd-tools.cjs verify key-links "$PLAN_PATH")
204
+ LINKS_RESULT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" verify key-links "$PLAN_PATH")
205
205
  ```
206
206
 
207
207
  Parse JSON result: `{ all_verified, verified, total, links: [{from, to, via, verified, detail}] }`
@@ -283,12 +283,12 @@ Identify files modified in this phase from SUMMARY.md key-files section, or extr
283
283
 
284
284
  ```bash
285
285
  # Option 1: Extract from SUMMARY frontmatter
286
- SUMMARY_FILES=$(node .agent/skills/gsd/bin/gsd-tools.cjs summary-extract "$PHASE_DIR"/*-SUMMARY.md --fields key-files)
286
+ SUMMARY_FILES=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" summary-extract "$PHASE_DIR"/*-SUMMARY.md --fields key-files)
287
287
 
288
288
  # Option 2: Verify commits exist (if commit hashes documented)
289
289
  COMMIT_HASHES=$(grep -oE "[a-f0-9]{7,40}" "$PHASE_DIR"/*-SUMMARY.md | head -10)
290
290
  if [ -n "$COMMIT_HASHES" ]; then
291
- COMMITS_VALID=$(node .agent/skills/gsd/bin/gsd-tools.cjs verify commits $COMMIT_HASHES)
291
+ COMMITS_VALID=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" verify commits $COMMIT_HASHES)
292
292
  fi
293
293
 
294
294
  # Fallback: grep for files
@@ -31,12 +31,12 @@ ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5
31
31
  ## 0. Initialize Context
32
32
 
33
33
  ```bash
34
- INIT=$(node .agent/skills/gsd/bin/gsd-tools.cjs state load)
34
+ INIT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" state load)
35
35
  ```
36
36
 
37
37
  Extract `commit_docs` from init JSON. Resolve debugger model:
38
38
  ```bash
39
- DEBUGGER_MODEL=$(node .agent/skills/gsd/bin/gsd-tools.cjs resolve-model gsd-debugger --raw)
39
+ debugger_model=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" resolve-model gsd-debugger --raw)
40
40
  ```
41
41
 
42
42
  ## 1. Check Active Sessions
@@ -10,6 +10,8 @@ allowed-tools:
10
10
  - Grep
11
11
  - AskUserQuestion
12
12
  - Task
13
+ - mcp__context7__resolve-library-id
14
+ - mcp__context7__query-docs
13
15
  ---
14
16
 
15
17
  <objective>
@@ -38,11 +40,12 @@ Context files are resolved in-workflow using `init phase-op` and roadmap/state t
38
40
  <process>
39
41
  1. Validate phase number (error if missing or not in roadmap)
40
42
  2. Check if CONTEXT.md exists (offer update/view/skip if yes)
41
- 3. **Analyze phase** — Identify domain and generate phase-specific gray areas
42
- 4. **Present gray areas** — Multi-select: which to discuss? (NO skip option)
43
- 5. **Deep-dive each area** — 4 questions per area, then offer more/next
44
- 6. **Write CONTEXT.md** — Sections match areas discussed
45
- 7. Offer next steps (research or plan)
43
+ 3. **Scout codebase** — Find reusable assets, patterns, and integration points
44
+ 4. **Analyze phase** — Identify domain and generate code-informed gray areas
45
+ 5. **Present gray areas** — Multi-select: which to discuss? (NO skip option)
46
+ 6. **Deep-dive each area** — 4 questions per area, code-informed options, Context7 for library choices
47
+ 7. **Write CONTEXT.md** Sections match areas discussed + code_context section
48
+ 8. Offer next steps (research or plan)
46
49
 
47
50
  **CRITICAL: Scope guardrail**
48
51
  - Phase boundary from ROADMAP.md is FIXED
@@ -34,20 +34,20 @@ Normalize phase input in step 1 before any directory lookups.
34
34
  ## 0. Initialize Context
35
35
 
36
36
  ```bash
37
- INIT=$(node .agent/skills/gsd/bin/gsd-tools.cjs init phase-op "$ARGUMENTS")
37
+ INIT=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" init phase-op "$ARGUMENTS")
38
38
  ```
39
39
 
40
40
  Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `phase_found`, `commit_docs`, `has_research`, `state_path`, `requirements_path`, `context_path`, `research_path`.
41
41
 
42
42
  Resolve researcher model:
43
43
  ```bash
44
- RESEARCHER_MODEL=$(node .agent/skills/gsd/bin/gsd-tools.cjs resolve-model gsd-phase-researcher --raw)
44
+ RESEARCHER_MODEL=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" resolve-model gsd-phase-researcher --raw)
45
45
  ```
46
46
 
47
47
  ## 1. Validate Phase
48
48
 
49
49
  ```bash
50
- PHASE_INFO=$(node .agent/skills/gsd/bin/gsd-tools.cjs roadmap get-phase "${phase_number}")
50
+ PHASE_INFO=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" roadmap get-phase "${phase_number}")
51
51
  ```
52
52
 
53
53
  **If `found` is false:** Error and exit. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON.
@@ -6,7 +6,7 @@ Calculate the next decimal phase number for urgent insertions.
6
6
 
7
7
  ```bash
8
8
  # Get next decimal phase after phase 6
9
- node .agent/skills/gsd/bin/gsd-tools.cjs phase next-decimal 6
9
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" phase next-decimal 6
10
10
  ```
11
11
 
12
12
  Output:
@@ -32,14 +32,14 @@ With existing decimals:
32
32
  ## Extract Values
33
33
 
34
34
  ```bash
35
- DECIMAL_INFO=$(node .agent/skills/gsd/bin/gsd-tools.cjs phase next-decimal "${AFTER_PHASE}")
35
+ DECIMAL_INFO=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" phase next-decimal "${AFTER_PHASE}")
36
36
  DECIMAL_PHASE=$(echo "$DECIMAL_INFO" | jq -r '.next')
37
37
  BASE_PHASE=$(echo "$DECIMAL_INFO" | jq -r '.base_phase')
38
38
  ```
39
39
 
40
40
  Or with --raw flag:
41
41
  ```bash
42
- DECIMAL_PHASE=$(node .agent/skills/gsd/bin/gsd-tools.cjs phase next-decimal "${AFTER_PHASE}" --raw)
42
+ DECIMAL_PHASE=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" phase next-decimal "${AFTER_PHASE}" --raw)
43
43
  # Returns just: 06.1
44
44
  ```
45
45
 
@@ -57,7 +57,7 @@ DECIMAL_PHASE=$(node .agent/skills/gsd/bin/gsd-tools.cjs phase next-decimal "${A
57
57
  Decimal phase directories use the full decimal number:
58
58
 
59
59
  ```bash
60
- SLUG=$(node .agent/skills/gsd/bin/gsd-tools.cjs generate-slug "$DESCRIPTION" --raw)
60
+ SLUG=$(node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" generate-slug "$DESCRIPTION" --raw)
61
61
  PHASE_DIR=".planning/phases/${DECIMAL_PHASE}-${SLUG}"
62
62
  mkdir -p "$PHASE_DIR"
63
63
  ```
@@ -51,7 +51,7 @@ Phases:
51
51
  What to commit:
52
52
 
53
53
  ```bash
54
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "docs: initialize [project-name] ([N] phases)" --files .planning/
54
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "docs: initialize [project-name] ([N] phases)" --files .planning/
55
55
  ```
56
56
 
57
57
  </format>
@@ -129,7 +129,7 @@ SUMMARY: .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md
129
129
  What to commit:
130
130
 
131
131
  ```bash
132
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md
132
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md
133
133
  ```
134
134
 
135
135
  **Note:** Code files NOT included - already committed per-task.
@@ -149,7 +149,7 @@ Current: [task name]
149
149
  What to commit:
150
150
 
151
151
  ```bash
152
- node .agent/skills/gsd/bin/gsd-tools.cjs commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/
152
+ node "$HOME.agent/skills/gsd/bin/gsd-tools.cjs" commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/
153
153
  ```
154
154
 
155
155
  </format>