gsd-remix 1.0.2 → 1.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.
- package/README.md +13 -81
- package/README.zh-CN.md +13 -57
- package/agents/gsd-debugger.md +0 -3
- package/agents/gsd-executor.md +5 -11
- package/agents/gsd-phase-researcher.md +3 -107
- package/agents/gsd-plan-checker.md +0 -61
- package/agents/gsd-planner.md +4 -63
- package/agents/gsd-roadmapper.md +0 -29
- package/agents/gsd-security-auditor.md +62 -114
- package/agents/gsd-verifier.md +0 -3
- package/bin/install.js +20 -118
- package/commands/gsd/complete-milestone.md +0 -22
- package/commands/gsd/plan-phase.md +1 -2
- package/get-shit-done/bin/gsd-tools.cjs +5 -224
- package/get-shit-done/bin/lib/claude-md.cjs +427 -0
- package/get-shit-done/bin/lib/config-schema.cjs +2 -12
- package/get-shit-done/bin/lib/config.cjs +3 -12
- package/get-shit-done/bin/lib/core.cjs +4 -5
- package/get-shit-done/bin/lib/init.cjs +0 -163
- package/get-shit-done/bin/lib/model-profiles.cjs +12 -18
- package/get-shit-done/bin/lib/verify.cjs +0 -66
- package/get-shit-done/references/agent-contracts.md +0 -6
- package/get-shit-done/references/artifact-types.md +0 -30
- package/get-shit-done/references/continuation-format.md +0 -1
- package/get-shit-done/references/model-profiles.md +39 -37
- package/get-shit-done/references/planning-config.md +7 -12
- package/get-shit-done/references/verification-overrides.md +1 -1
- package/get-shit-done/templates/README.md +2 -9
- package/get-shit-done/templates/claude-md.md +0 -14
- package/get-shit-done/templates/config.json +5 -19
- package/get-shit-done/workflows/autonomous.md +9 -141
- package/get-shit-done/workflows/complete-milestone.md +3 -4
- package/get-shit-done/workflows/discuss-phase-assumptions.md +1 -18
- package/get-shit-done/workflows/discuss-phase.md +10 -104
- package/get-shit-done/workflows/do.md +1 -5
- package/get-shit-done/workflows/execute-phase.md +53 -103
- package/get-shit-done/workflows/execute-plan.md +4 -4
- package/get-shit-done/workflows/health.md +2 -5
- package/get-shit-done/workflows/help.md +0 -165
- package/get-shit-done/workflows/new-milestone.md +0 -51
- package/get-shit-done/workflows/new-project.md +2 -63
- package/get-shit-done/workflows/next.md +0 -23
- package/get-shit-done/workflows/pause-work.md +7 -15
- package/get-shit-done/workflows/plan-phase.md +20 -304
- package/get-shit-done/workflows/pr-branch.md +0 -1
- package/get-shit-done/workflows/progress.md +1 -68
- package/get-shit-done/workflows/quick.md +0 -3
- package/get-shit-done/workflows/research-phase.md +0 -1
- package/get-shit-done/workflows/settings.md +1 -57
- package/get-shit-done/workflows/transition.md +3 -86
- package/get-shit-done/workflows/verify-work.md +0 -64
- package/package.json +1 -1
- package/scripts/build-hooks.js +0 -2
- package/sdk/prompts/agents/gsd-executor.md +2 -0
- package/sdk/prompts/agents/gsd-plan-checker.md +0 -3
- package/sdk/prompts/agents/gsd-roadmapper.md +0 -29
- package/sdk/src/config.ts +4 -5
- package/sdk/src/golden/golden-integration-covered.ts +0 -2
- package/sdk/src/golden/golden-policy.ts +1 -1
- package/sdk/src/golden/golden.integration.test.ts +0 -27
- package/sdk/src/golden/read-only-golden-rows.ts +0 -15
- package/sdk/src/query/QUERY-HANDLERS.md +3 -34
- package/sdk/src/query/claude-md.ts +421 -0
- package/sdk/src/query/commit.test.ts +155 -1
- package/sdk/src/query/commit.ts +71 -17
- package/sdk/src/query/config-gates.test.ts +1 -2
- package/sdk/src/query/config-gates.ts +1 -5
- package/sdk/src/query/config-mutation.test.ts +0 -1
- package/sdk/src/query/config-mutation.ts +5 -6
- package/sdk/src/query/config-query.test.ts +2 -2
- package/sdk/src/query/config-query.ts +12 -18
- package/sdk/src/query/decomposed-handlers.test.ts +0 -64
- package/sdk/src/query/index.ts +4 -68
- package/sdk/src/query/init.test.ts +0 -64
- package/sdk/src/query/init.ts +0 -189
- package/sdk/src/query/normalize-query-command.ts +0 -2
- package/sdk/src/query/profile.test.ts +0 -43
- package/sdk/src/query/profile.ts +1 -141
- package/sdk/src/query/state-mutation.ts +18 -0
- package/sdk/src/runtime-health.ts +3 -3
- package/agents/gsd-ai-researcher.md +0 -133
- package/agents/gsd-doc-classifier.md +0 -168
- package/agents/gsd-doc-synthesizer.md +0 -204
- package/agents/gsd-doc-verifier.md +0 -217
- package/agents/gsd-doc-writer.md +0 -615
- package/agents/gsd-domain-researcher.md +0 -153
- package/agents/gsd-eval-auditor.md +0 -191
- package/agents/gsd-eval-planner.md +0 -154
- package/agents/gsd-framework-selector.md +0 -160
- package/agents/gsd-intel-updater.md +0 -334
- package/agents/gsd-nyquist-auditor.md +0 -203
- package/agents/gsd-ui-auditor.md +0 -495
- package/agents/gsd-ui-checker.md +0 -309
- package/agents/gsd-ui-researcher.md +0 -380
- package/agents/gsd-user-profiler.md +0 -171
- package/commands/gsd/ai-integration-phase.md +0 -36
- package/commands/gsd/analyze-dependencies.md +0 -34
- package/commands/gsd/audit-fix.md +0 -33
- package/commands/gsd/audit-milestone.md +0 -36
- package/commands/gsd/audit-uat.md +0 -24
- package/commands/gsd/docs-update.md +0 -48
- package/commands/gsd/eval-review.md +0 -32
- package/commands/gsd/explore.md +0 -27
- package/commands/gsd/extract_learnings.md +0 -22
- package/commands/gsd/forensics.md +0 -56
- package/commands/gsd/from-gsd2.md +0 -47
- package/commands/gsd/graphify.md +0 -201
- package/commands/gsd/import.md +0 -37
- package/commands/gsd/inbox.md +0 -38
- package/commands/gsd/ingest-docs.md +0 -42
- package/commands/gsd/intel.md +0 -179
- package/commands/gsd/join-discord.md +0 -19
- package/commands/gsd/list-phase-assumptions.md +0 -46
- package/commands/gsd/list-workspaces.md +0 -19
- package/commands/gsd/manager.md +0 -40
- package/commands/gsd/milestone-summary.md +0 -51
- package/commands/gsd/new-workspace.md +0 -44
- package/commands/gsd/plan-milestone-gaps.md +0 -34
- package/commands/gsd/plan-review-convergence.md +0 -52
- package/commands/gsd/plant-seed.md +0 -28
- package/commands/gsd/profile-user.md +0 -46
- package/commands/gsd/reapply-patches.md +0 -331
- package/commands/gsd/remove-workspace.md +0 -26
- package/commands/gsd/review.md +0 -40
- package/commands/gsd/scan.md +0 -26
- package/commands/gsd/secure-phase.md +0 -35
- package/commands/gsd/session-report.md +0 -19
- package/commands/gsd/set-profile.md +0 -12
- package/commands/gsd/ship.md +0 -23
- package/commands/gsd/sketch-wrap-up.md +0 -31
- package/commands/gsd/sketch.md +0 -49
- package/commands/gsd/spec-phase.md +0 -62
- package/commands/gsd/spike-wrap-up.md +0 -31
- package/commands/gsd/spike.md +0 -46
- package/commands/gsd/stats.md +0 -18
- package/commands/gsd/sync-skills.md +0 -19
- package/commands/gsd/thread.md +0 -227
- package/commands/gsd/ui-phase.md +0 -34
- package/commands/gsd/ui-review.md +0 -32
- package/commands/gsd/ultraplan-phase.md +0 -33
- package/commands/gsd/update.md +0 -37
- package/commands/gsd/validate-phase.md +0 -35
- package/commands/gsd/workstreams.md +0 -69
- package/get-shit-done/bin/lib/docs.cjs +0 -267
- package/get-shit-done/bin/lib/graphify.cjs +0 -494
- package/get-shit-done/bin/lib/gsd2-import.cjs +0 -511
- package/get-shit-done/bin/lib/intel.cjs +0 -639
- package/get-shit-done/bin/lib/profile-output.cjs +0 -1080
- package/get-shit-done/bin/lib/profile-pipeline.cjs +0 -539
- package/get-shit-done/bin/lib/workstream.cjs +0 -495
- package/get-shit-done/references/ai-evals.md +0 -156
- package/get-shit-done/references/ai-frameworks.md +0 -186
- package/get-shit-done/references/doc-conflict-engine.md +0 -91
- package/get-shit-done/references/model-profile-resolution.md +0 -38
- package/get-shit-done/references/planner-reviews.md +0 -39
- package/get-shit-done/references/sketch-interactivity.md +0 -41
- package/get-shit-done/references/sketch-theme-system.md +0 -94
- package/get-shit-done/references/sketch-tooling.md +0 -45
- package/get-shit-done/references/sketch-variant-patterns.md +0 -81
- package/get-shit-done/references/thinking-models-debug.md +0 -44
- package/get-shit-done/references/thinking-models-execution.md +0 -50
- package/get-shit-done/references/thinking-models-planning.md +0 -62
- package/get-shit-done/references/thinking-models-research.md +0 -50
- package/get-shit-done/references/thinking-models-verification.md +0 -55
- package/get-shit-done/references/thinking-partner.md +0 -96
- package/get-shit-done/references/user-profiling.md +0 -681
- package/get-shit-done/references/workstream-flag.md +0 -111
- package/get-shit-done/templates/AI-SPEC.md +0 -246
- package/get-shit-done/templates/SECURITY.md +0 -61
- package/get-shit-done/templates/UI-SPEC.md +0 -100
- package/get-shit-done/templates/VALIDATION.md +0 -76
- package/get-shit-done/templates/dev-preferences.md +0 -21
- package/get-shit-done/templates/user-profile.md +0 -146
- package/get-shit-done/workflows/ai-integration-phase.md +0 -284
- package/get-shit-done/workflows/analyze-dependencies.md +0 -96
- package/get-shit-done/workflows/audit-fix.md +0 -175
- package/get-shit-done/workflows/audit-milestone.md +0 -340
- package/get-shit-done/workflows/audit-uat.md +0 -109
- package/get-shit-done/workflows/docs-update.md +0 -1155
- package/get-shit-done/workflows/eval-review.md +0 -155
- package/get-shit-done/workflows/explore.md +0 -141
- package/get-shit-done/workflows/extract_learnings.md +0 -242
- package/get-shit-done/workflows/forensics.md +0 -265
- package/get-shit-done/workflows/import.md +0 -246
- package/get-shit-done/workflows/inbox.md +0 -387
- package/get-shit-done/workflows/ingest-docs.md +0 -328
- package/get-shit-done/workflows/list-phase-assumptions.md +0 -178
- package/get-shit-done/workflows/list-workspaces.md +0 -56
- package/get-shit-done/workflows/manager.md +0 -365
- package/get-shit-done/workflows/milestone-summary.md +0 -223
- package/get-shit-done/workflows/new-workspace.md +0 -239
- package/get-shit-done/workflows/plan-milestone-gaps.md +0 -273
- package/get-shit-done/workflows/plan-review-convergence.md +0 -254
- package/get-shit-done/workflows/plant-seed.md +0 -172
- package/get-shit-done/workflows/profile-user.md +0 -452
- package/get-shit-done/workflows/remove-workspace.md +0 -92
- package/get-shit-done/workflows/review.md +0 -344
- package/get-shit-done/workflows/scan.md +0 -102
- package/get-shit-done/workflows/secure-phase.md +0 -166
- package/get-shit-done/workflows/session-report.md +0 -146
- package/get-shit-done/workflows/ship.md +0 -302
- package/get-shit-done/workflows/sketch-wrap-up.md +0 -283
- package/get-shit-done/workflows/sketch.md +0 -286
- package/get-shit-done/workflows/spec-phase.md +0 -262
- package/get-shit-done/workflows/spike-wrap-up.md +0 -281
- package/get-shit-done/workflows/spike.md +0 -362
- package/get-shit-done/workflows/stats.md +0 -60
- package/get-shit-done/workflows/sync-skills.md +0 -182
- package/get-shit-done/workflows/ui-phase.md +0 -323
- package/get-shit-done/workflows/ui-review.md +0 -190
- package/get-shit-done/workflows/ultraplan-phase.md +0 -189
- package/get-shit-done/workflows/update.md +0 -587
- package/get-shit-done/workflows/validate-phase.md +0 -176
- package/hooks/dist/gsd-check-update-worker.js +0 -108
- package/hooks/dist/gsd-check-update.js +0 -63
- package/hooks/gsd-check-update-worker.js +0 -108
- package/hooks/gsd-check-update.js +0 -63
- package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +0 -3
- package/sdk/src/query/docs-init.ts +0 -257
- package/sdk/src/query/intel.test.ts +0 -90
- package/sdk/src/query/intel.ts +0 -404
- package/sdk/src/query/profile-extract-messages.ts +0 -247
- package/sdk/src/query/profile-output.ts +0 -908
- package/sdk/src/query/profile-questionnaire-data.ts +0 -181
- package/sdk/src/query/profile-sample.ts +0 -184
- package/sdk/src/query/profile-scan-sessions.ts +0 -174
- package/sdk/src/query/workspace.test.ts +0 -119
- package/sdk/src/query/workspace.ts +0 -131
- package/sdk/src/query/workstream.test.ts +0 -51
- package/sdk/src/query/workstream.ts +0 -434
|
@@ -6,19 +6,11 @@
|
|
|
6
6
|
"plan_check": true,
|
|
7
7
|
"verifier": true,
|
|
8
8
|
"auto_advance": false,
|
|
9
|
-
"nyquist_validation":
|
|
10
|
-
"security_enforcement":
|
|
11
|
-
"
|
|
12
|
-
"security_block_on": "high",
|
|
9
|
+
"nyquist_validation": false,
|
|
10
|
+
"security_enforcement": false,
|
|
11
|
+
"security_review": "auto",
|
|
13
12
|
"discuss_mode": "discuss",
|
|
14
|
-
"research_before_questions": false
|
|
15
|
-
"code_review_command": null,
|
|
16
|
-
"plan_bounce": false,
|
|
17
|
-
"plan_bounce_script": null,
|
|
18
|
-
"plan_bounce_passes": 2,
|
|
19
|
-
"cross_ai_execution": false,
|
|
20
|
-
"cross_ai_command": "",
|
|
21
|
-
"cross_ai_timeout": 300
|
|
13
|
+
"research_before_questions": false
|
|
22
14
|
},
|
|
23
15
|
"planning": {
|
|
24
16
|
"commit_docs": true,
|
|
@@ -34,13 +26,7 @@
|
|
|
34
26
|
"min_plans_for_parallel": 2
|
|
35
27
|
},
|
|
36
28
|
"gates": {
|
|
37
|
-
"
|
|
38
|
-
"confirm_phases": true,
|
|
39
|
-
"confirm_roadmap": true,
|
|
40
|
-
"confirm_breakdown": true,
|
|
41
|
-
"confirm_plan": true,
|
|
42
|
-
"execute_next_plan": true,
|
|
43
|
-
"issues_review": true,
|
|
29
|
+
"execute_next_plan": false,
|
|
44
30
|
"confirm_transition": true
|
|
45
31
|
},
|
|
46
32
|
"safety": {
|
|
@@ -275,45 +275,6 @@ PHASE_STATE=$(gsd-remix-sdk query init.phase-op ${PHASE_NUM})
|
|
|
275
275
|
|
|
276
276
|
Check `has_context`. If false → go to handle_blocker: "Discuss for phase ${PHASE_NUM} did not produce CONTEXT.md."
|
|
277
277
|
|
|
278
|
-
**3a.5. UI Design Contract (Frontend Phases)**
|
|
279
|
-
|
|
280
|
-
Check if this phase has frontend indicators and whether a UI-SPEC already exists:
|
|
281
|
-
|
|
282
|
-
```bash
|
|
283
|
-
PHASE_SECTION=$(gsd-remix-sdk query roadmap.get-phase ${PHASE_NUM} 2>/dev/null)
|
|
284
|
-
echo "$PHASE_SECTION" | grep -iE "UI|interface|frontend|component|layout|page|screen|view|form|dashboard|widget" > /dev/null 2>&1
|
|
285
|
-
HAS_UI=$?
|
|
286
|
-
UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
Check if UI phase workflow is enabled:
|
|
290
|
-
|
|
291
|
-
```bash
|
|
292
|
-
UI_PHASE_CFG=$(gsd-remix-sdk query config-get workflow.ui_phase 2>/dev/null || echo "true")
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
**If `HAS_UI` is 0 (frontend indicators found) AND `UI_SPEC_FILE` is empty (no UI-SPEC exists) AND `UI_PHASE_CFG` is not `false`:**
|
|
296
|
-
|
|
297
|
-
Display:
|
|
298
|
-
|
|
299
|
-
```
|
|
300
|
-
Phase ${PHASE_NUM}: Frontend phase detected — generating UI design contract...
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
```
|
|
304
|
-
Skill(skill="gsd-ui-phase", args="${PHASE_NUM}")
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
Verify UI-SPEC was created:
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
**If `UI_SPEC_FILE` is still empty after ui-phase:** Display warning `Phase ${PHASE_NUM}: UI-SPEC generation did not produce output — continuing without design contract.` and proceed to 3b.
|
|
314
|
-
|
|
315
|
-
**If `HAS_UI` is 1 (no frontend indicators) OR `UI_SPEC_FILE` is not empty (UI-SPEC already exists) OR `UI_PHASE_CFG` is `false`:** Skip silently to 3b.
|
|
316
|
-
|
|
317
278
|
**3b. Plan**
|
|
318
279
|
|
|
319
280
|
**If `INTERACTIVE` is set:** Dispatch plan as a background agent to keep the main context lean. While plan runs, the workflow can immediately start discussing the next phase (see step 4).
|
|
@@ -473,38 +434,6 @@ On **"Continue without fixing"**: Display `Phase ${PHASE_NUM} ⏭ Gaps deferred`
|
|
|
473
434
|
|
|
474
435
|
On **"Stop autonomous mode"**: Go to handle_blocker with "User stopped — gaps remain in phase ${PHASE_NUM}".
|
|
475
436
|
|
|
476
|
-
**3d.5. UI Review (Frontend Phases)**
|
|
477
|
-
|
|
478
|
-
> Run after any successful execution routing (passed, human_needed accepted, or gaps deferred/accepted) — before proceeding to the iterate step.
|
|
479
|
-
|
|
480
|
-
Check if this phase had a UI-SPEC (created in step 3a.5 or pre-existing):
|
|
481
|
-
|
|
482
|
-
```bash
|
|
483
|
-
UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
Check if UI review is enabled:
|
|
487
|
-
|
|
488
|
-
```bash
|
|
489
|
-
UI_REVIEW_CFG=$(gsd-remix-sdk query config-get workflow.ui_review 2>/dev/null || echo "true")
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
**If `UI_SPEC_FILE` is not empty AND `UI_REVIEW_CFG` is not `false`:**
|
|
493
|
-
|
|
494
|
-
Display:
|
|
495
|
-
|
|
496
|
-
```
|
|
497
|
-
Phase ${PHASE_NUM}: Frontend phase with UI-SPEC — running UI review audit...
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
```
|
|
501
|
-
Skill(skill="gsd-ui-review", args="${PHASE_NUM}")
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
Display the review result summary (score from UI-REVIEW.md if produced). Continue to iterate step regardless of score — UI review is advisory, not blocking.
|
|
505
|
-
|
|
506
|
-
**If `UI_SPEC_FILE` is empty OR `UI_REVIEW_CFG` is `false`:** Skip silently to iterate step.
|
|
507
|
-
|
|
508
437
|
</step>
|
|
509
438
|
|
|
510
439
|
<step name="smart_discuss">
|
|
@@ -540,7 +469,7 @@ Read and execute: `$HOME/.claude/get-shit-done/references/autonomous-smart-discu
|
|
|
540
469
|
Resume with: /gsd-autonomous --from ${next_incomplete_phase}
|
|
541
470
|
```
|
|
542
471
|
|
|
543
|
-
Proceed directly to lifecycle step (which handles partial completion — skips
|
|
472
|
+
Proceed directly to lifecycle step (which handles partial completion — skips complete/cleanup since not all phases are done). Exit cleanly.
|
|
544
473
|
|
|
545
474
|
**Otherwise:** After each phase completes, re-read ROADMAP.md to catch phases inserted mid-execution (decimal phases like 5.1):
|
|
546
475
|
|
|
@@ -579,7 +508,7 @@ If all phases complete, proceed to lifecycle step.
|
|
|
579
508
|
|
|
580
509
|
## 5. Lifecycle
|
|
581
510
|
|
|
582
|
-
**If `ONLY_PHASE` is set:** Skip lifecycle. A single phase does not trigger
|
|
511
|
+
**If `ONLY_PHASE` is set:** Skip lifecycle. A single phase does not trigger complete/cleanup. Display:
|
|
583
512
|
|
|
584
513
|
```
|
|
585
514
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -590,12 +519,12 @@ If all phases complete, proceed to lifecycle step.
|
|
|
590
519
|
Mode: Single phase (--only)
|
|
591
520
|
|
|
592
521
|
Lifecycle skipped — run /gsd-autonomous without --only
|
|
593
|
-
after all phases complete to trigger
|
|
522
|
+
after all phases complete to trigger complete/cleanup.
|
|
594
523
|
```
|
|
595
524
|
|
|
596
525
|
Exit cleanly.
|
|
597
526
|
|
|
598
|
-
**Otherwise:** After all phases complete, run the milestone lifecycle sequence:
|
|
527
|
+
**Otherwise:** After all phases complete, run the milestone lifecycle sequence: complete → cleanup.
|
|
599
528
|
|
|
600
529
|
Display lifecycle transition banner:
|
|
601
530
|
|
|
@@ -604,66 +533,10 @@ Display lifecycle transition banner:
|
|
|
604
533
|
GSD ► AUTONOMOUS ▸ LIFECYCLE
|
|
605
534
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
606
535
|
|
|
607
|
-
All phases complete → Starting lifecycle:
|
|
536
|
+
All phases complete → Starting lifecycle: complete → cleanup
|
|
608
537
|
Milestone: {milestone_version} — {milestone_name}
|
|
609
538
|
```
|
|
610
539
|
|
|
611
|
-
**5a. Audit**
|
|
612
|
-
|
|
613
|
-
```
|
|
614
|
-
Skill(skill="gsd-audit-milestone")
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
After audit completes, detect the result:
|
|
618
|
-
|
|
619
|
-
```bash
|
|
620
|
-
AUDIT_FILE=".planning/v${milestone_version}-MILESTONE-AUDIT.md"
|
|
621
|
-
AUDIT_STATUS=$(grep "^status:" "${AUDIT_FILE}" 2>/dev/null | head -1 | cut -d: -f2 | tr -d ' ')
|
|
622
|
-
```
|
|
623
|
-
|
|
624
|
-
**If AUDIT_STATUS is empty** (no audit file or no status field):
|
|
625
|
-
|
|
626
|
-
Go to handle_blocker: "Audit did not produce results — audit file missing or malformed."
|
|
627
|
-
|
|
628
|
-
**If `passed`:**
|
|
629
|
-
|
|
630
|
-
Display:
|
|
631
|
-
```
|
|
632
|
-
Audit ✅ passed — proceeding to complete milestone
|
|
633
|
-
```
|
|
634
|
-
|
|
635
|
-
Proceed to 5b (no user pause — per CTRL-01).
|
|
636
|
-
|
|
637
|
-
**If `gaps_found`:**
|
|
638
|
-
|
|
639
|
-
Read the gaps summary from the audit file. Display:
|
|
640
|
-
```
|
|
641
|
-
⚠ Audit: Gaps Found
|
|
642
|
-
```
|
|
643
|
-
|
|
644
|
-
Ask user via AskUserQuestion:
|
|
645
|
-
- **question:** "Milestone audit found gaps. How to proceed?"
|
|
646
|
-
- **options:** "Continue anyway — accept gaps" / "Stop — fix gaps manually"
|
|
647
|
-
|
|
648
|
-
On **"Continue anyway"**: Display `Audit ⏭ Gaps accepted — proceeding to complete milestone` and proceed to 5b.
|
|
649
|
-
|
|
650
|
-
On **"Stop"**: Go to handle_blocker with "User stopped — audit gaps remain. Run /gsd-audit-milestone to review, then /gsd-complete-milestone when ready."
|
|
651
|
-
|
|
652
|
-
**If `tech_debt`:**
|
|
653
|
-
|
|
654
|
-
Read the tech debt summary from the audit file. Display:
|
|
655
|
-
```
|
|
656
|
-
⚠ Audit: Tech Debt Identified
|
|
657
|
-
```
|
|
658
|
-
|
|
659
|
-
Show the summary, then ask user via AskUserQuestion:
|
|
660
|
-
- **question:** "Milestone audit found tech debt. How to proceed?"
|
|
661
|
-
- **options:** "Continue with tech debt" / "Stop — address debt first"
|
|
662
|
-
|
|
663
|
-
On **"Continue with tech debt"**: Display `Audit ⏭ Tech debt acknowledged — proceeding to complete milestone` and proceed to 5b.
|
|
664
|
-
|
|
665
|
-
On **"Stop"**: Go to handle_blocker with "User stopped — tech debt to address. Run /gsd-audit-milestone to review details."
|
|
666
|
-
|
|
667
540
|
**5b. Complete Milestone**
|
|
668
541
|
|
|
669
542
|
```
|
|
@@ -697,7 +570,7 @@ Display final completion banner:
|
|
|
697
570
|
|
|
698
571
|
Milestone: {milestone_version} — {milestone_name}
|
|
699
572
|
Status: Complete ✅
|
|
700
|
-
Lifecycle:
|
|
573
|
+
Lifecycle: complete ✅ → cleanup ✅
|
|
701
574
|
|
|
702
575
|
Ship it! 🚀
|
|
703
576
|
```
|
|
@@ -740,7 +613,7 @@ When any phase operation fails or a blocker is detected, present 3 options via A
|
|
|
740
613
|
</process>
|
|
741
614
|
|
|
742
615
|
<success_criteria>
|
|
743
|
-
- [ ] All incomplete phases executed in order (smart discuss →
|
|
616
|
+
- [ ] All incomplete phases executed in order (smart discuss → plan → execute each)
|
|
744
617
|
- [ ] Smart discuss proposes grey area answers in tables, user accepts or overrides per area
|
|
745
618
|
- [ ] Progress banners displayed between phases
|
|
746
619
|
- [ ] Execute-phase invoked with --no-transition (autonomous manages transitions)
|
|
@@ -755,8 +628,7 @@ When any phase operation fails or a blocker is detected, present 3 options via A
|
|
|
755
628
|
- [ ] Blockers handled via user choice (retry / skip / stop)
|
|
756
629
|
- [ ] Final completion or stop summary displayed
|
|
757
630
|
- [ ] After all phases complete, lifecycle step is invoked (not manual suggestion)
|
|
758
|
-
- [ ] Lifecycle transition banner displayed before
|
|
759
|
-
- [ ] Audit invoked via Skill(skill="gsd-audit-milestone")
|
|
631
|
+
- [ ] Lifecycle transition banner displayed before complete
|
|
760
632
|
- [ ] Audit result routing: passed → auto-continue, gaps_found → user decides, tech_debt → user decides
|
|
761
633
|
- [ ] Audit technical failure (no file/no status) routes to handle_blocker
|
|
762
634
|
- [ ] Complete-milestone invoked via Skill() with ${milestone_version} arg
|
|
@@ -764,12 +636,8 @@ When any phase operation fails or a blocker is detected, present 3 options via A
|
|
|
764
636
|
- [ ] Final completion banner displayed after lifecycle
|
|
765
637
|
- [ ] Progress bar uses phase number / total milestone phases (not position among incomplete), with fallback display when phase numbers exceed total
|
|
766
638
|
- [ ] Smart discuss documents relationship to discuss-phase with CTRL-03 note
|
|
767
|
-
- [ ] Frontend phases get UI-SPEC generated before planning (step 3a.5) if not already present
|
|
768
|
-
- [ ] Frontend phases get UI review audit after successful execution (step 3d.5) if UI-SPEC exists
|
|
769
|
-
- [ ] UI phase and UI review respect workflow.ui_phase and workflow.ui_review config toggles
|
|
770
|
-
- [ ] UI review is advisory (non-blocking) — phase proceeds to iterate regardless of score
|
|
771
639
|
- [ ] `--only N` restricts execution to exactly one phase
|
|
772
|
-
- [ ] `--only N` skips lifecycle step (
|
|
640
|
+
- [ ] `--only N` skips lifecycle step (complete/cleanup)
|
|
773
641
|
- [ ] `--only N` exits cleanly after single phase completes
|
|
774
642
|
- [ ] `--only N` on already-complete phase exits with message
|
|
775
643
|
- [ ] `--only N` handle_blocker resume message uses --only flag
|
|
@@ -122,10 +122,9 @@ Requirements: {N}/{M} v1 requirements checked off
|
|
|
122
122
|
- [ ] {REQ-ID}: {description} (Phase {Y})
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
-
MUST present
|
|
125
|
+
MUST present 2 options:
|
|
126
126
|
1. **Proceed anyway** — mark milestone complete with known gaps
|
|
127
|
-
2. **
|
|
128
|
-
3. **Abort** — return to development
|
|
127
|
+
2. **Abort** — return to development
|
|
129
128
|
|
|
130
129
|
If user selects "Proceed anyway": note incomplete requirements in MILESTONES.md under `### Known Gaps` with REQ-IDs and descriptions.
|
|
131
130
|
|
|
@@ -838,7 +837,7 @@ Milestone completion is successful when:
|
|
|
838
837
|
- [ ] Git tag created (v[X.Y])
|
|
839
838
|
- [ ] Milestone commit made (includes archive files and deletion)
|
|
840
839
|
- [ ] Requirements completion checked against REQUIREMENTS.md traceability table
|
|
841
|
-
- [ ] Incomplete requirements surfaced with proceed/
|
|
840
|
+
- [ ] Incomplete requirements surfaced with proceed/abort options
|
|
842
841
|
- [ ] Known gaps recorded in MILESTONES.md if user proceeded with incomplete requirements
|
|
843
842
|
- [ ] RETROSPECTIVE.md updated with milestone section
|
|
844
843
|
- [ ] Cross-milestone trends updated
|
|
@@ -233,23 +233,7 @@ Identify reusable assets, established patterns, integration points, and creative
|
|
|
233
233
|
Spawn a `gsd-assumptions-analyzer` agent to deeply analyze the codebase for this phase. This
|
|
234
234
|
keeps raw file contents out of the main context window, protecting token budget.
|
|
235
235
|
|
|
236
|
-
**
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
PROFILE_PATH="$HOME/.claude/get-shit-done/USER-PROFILE.md"
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
If file exists at PROFILE_PATH:
|
|
243
|
-
- Priority 1: Read config.json > preferences.vendor_philosophy (project-level override)
|
|
244
|
-
- Priority 2: Read USER-PROFILE.md Vendor Choices/Philosophy rating (global)
|
|
245
|
-
- Priority 3: Default to "standard"
|
|
246
|
-
|
|
247
|
-
Map to calibration tier:
|
|
248
|
-
- conservative OR thorough-evaluator → full_maturity (more alternatives, detailed evidence)
|
|
249
|
-
- opinionated → minimal_decisive (fewer alternatives, decisive recommendations)
|
|
250
|
-
- pragmatic-fast OR any other value → standard
|
|
251
|
-
|
|
252
|
-
If no USER-PROFILE.md: calibration_tier = "standard"
|
|
236
|
+
**Calibration tier:** fixed at `standard`.
|
|
253
237
|
|
|
254
238
|
**Spawn Explore subagent:**
|
|
255
239
|
|
|
@@ -605,7 +589,6 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
|
|
605
589
|
|
|
606
590
|
**Also available:**
|
|
607
591
|
- `/gsd-plan-phase ${PHASE} --skip-research` — plan without research
|
|
608
|
-
- `/gsd-ui-phase ${PHASE}` — generate UI design contract (if frontend work)
|
|
609
592
|
- Review/edit CONTEXT.md before continuing
|
|
610
593
|
|
|
611
594
|
---
|
|
@@ -152,9 +152,6 @@ if ! command -v gsd-remix-sdk &>/dev/null; then
|
|
|
152
152
|
echo ""
|
|
153
153
|
echo "Repair the bundled SDK:"
|
|
154
154
|
echo " /gsd-health --runtime --repair"
|
|
155
|
-
echo ""
|
|
156
|
-
echo "Or refresh all runtime assets:"
|
|
157
|
-
echo " /gsd-update"
|
|
158
155
|
exit 1
|
|
159
156
|
fi
|
|
160
157
|
|
|
@@ -242,7 +239,7 @@ Write these answers inline before continuing. If a blocking anti-pattern cannot
|
|
|
242
239
|
</step>
|
|
243
240
|
|
|
244
241
|
<step name="check_spec">
|
|
245
|
-
Check if a SPEC.md (
|
|
242
|
+
Check if a SPEC.md exists for this phase (produced by earlier spec tooling or written by hand). SPEC.md locks requirements before implementation decisions — if present, this discussion focuses on HOW to implement, not WHAT to build.
|
|
246
243
|
|
|
247
244
|
```bash
|
|
248
245
|
ls ${phase_dir}/*-SPEC.md 2>/dev/null | grep -v AI-SPEC | head -1 || true
|
|
@@ -261,7 +258,7 @@ ls ${phase_dir}/*-SPEC.md 2>/dev/null | grep -v AI-SPEC | head -1 || true
|
|
|
261
258
|
|
|
262
259
|
**If no SPEC.md is found:** Continue to `check_existing` with `spec_loaded = false` (default behavior unchanged).
|
|
263
260
|
|
|
264
|
-
**Note:** SPEC.md files named `AI-SPEC.md` (
|
|
261
|
+
**Note:** SPEC.md files named `AI-SPEC.md` (legacy AI design contracts) are excluded — those serve a different purpose.
|
|
265
262
|
</step>
|
|
266
263
|
|
|
267
264
|
<step name="check_existing">
|
|
@@ -396,40 +393,9 @@ Structure the extracted information:
|
|
|
396
393
|
When escalating, read only the specific `path` returned by `context-history` for the relevant phase. Do not fall back to bulk-reading every prior CONTEXT.md file.
|
|
397
394
|
If `counts.omitted_phases > 0` and the current gray area still feels underdetermined after reviewing the brief, rerun `context-history` with a higher `--limit` before reading many full source files.
|
|
398
395
|
|
|
399
|
-
**Step 4: Load spike/sketch findings (if they exist)**
|
|
400
|
-
```bash
|
|
401
|
-
# Check for spike/sketch findings skills (project-local)
|
|
402
|
-
SPIKE_FINDINGS=$(ls ./.claude/skills/spike-findings-*/SKILL.md 2>/dev/null | head -1)
|
|
403
|
-
SKETCH_FINDINGS=$(ls ./.claude/skills/sketch-findings-*/SKILL.md 2>/dev/null | head -1)
|
|
404
|
-
|
|
405
|
-
# Also check for raw spikes/sketches not yet wrapped up
|
|
406
|
-
RAW_SPIKES=$(ls .planning/spikes/MANIFEST.md 2>/dev/null)
|
|
407
|
-
RAW_SKETCHES=$(ls .planning/sketches/MANIFEST.md 2>/dev/null)
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
If spike/sketch findings skills exist, read their SKILL.md and reference files. Extract:
|
|
411
|
-
- **Validated patterns** — what was proven to work (use these, don't re-explore)
|
|
412
|
-
- **Landmines** — what was proven NOT to work (avoid these)
|
|
413
|
-
- **Constraints** — hard limits discovered (rate limits, API gaps, library limitations)
|
|
414
|
-
- **Design decisions** — winning visual directions, CSS patterns, layout choices
|
|
415
|
-
|
|
416
|
-
Add to `<prior_decisions>`:
|
|
417
|
-
```
|
|
418
|
-
## From Spike Experiments
|
|
419
|
-
- [Validated pattern or constraint from spike findings]
|
|
420
|
-
|
|
421
|
-
## From Design Sketches
|
|
422
|
-
- [Design decision or visual direction from sketch findings]
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
If raw spikes/sketches exist but no findings skill, note in output:
|
|
426
|
-
```
|
|
427
|
-
⚠ Unpackaged spikes/sketches detected — run `/gsd-spike-wrap-up` or `/gsd-sketch-wrap-up` to make findings available to planning agents.
|
|
428
|
-
```
|
|
429
|
-
|
|
430
396
|
**Usage in subsequent steps:**
|
|
431
|
-
- `analyze_phase`: Skip gray areas already decided in prior phases
|
|
432
|
-
- `present_gray_areas`: Annotate options with prior decisions ("You chose X in Phase 5")
|
|
397
|
+
- `analyze_phase`: Skip gray areas already decided in prior phases
|
|
398
|
+
- `present_gray_areas`: Annotate options with prior decisions ("You chose X in Phase 5")
|
|
433
399
|
- `discuss_areas`: Pre-fill answers or flag conflicts ("This contradicts Phase 3 — same here or different?")
|
|
434
400
|
|
|
435
401
|
**If `context-history` fails or returns no usable data:** Fall back to the legacy approach for reliability:
|
|
@@ -557,58 +523,18 @@ Analyze the phase to identify gray areas worth discussing. **Use both `prior_dec
|
|
|
557
523
|
|
|
558
524
|
**Advisor Mode Detection:**
|
|
559
525
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
1. Check for USER-PROFILE.md:
|
|
563
|
-
```bash
|
|
564
|
-
PROFILE_PATH="$HOME/.claude/get-shit-done/USER-PROFILE.md"
|
|
565
|
-
```
|
|
566
|
-
ADVISOR_MODE = file exists at PROFILE_PATH → true, otherwise → false
|
|
526
|
+
Advisor mode is ON by default. It is disabled only when the `--no-advisor` flag is present in $ARGUMENTS.
|
|
567
527
|
|
|
568
|
-
|
|
569
|
-
- Priority 1: Read config.json > preferences.vendor_philosophy (project-level override)
|
|
570
|
-
- Priority 2: Read USER-PROFILE.md Vendor Choices/Philosophy rating (global)
|
|
571
|
-
- Priority 3: Default to "standard" if neither has a value or value is UNSCORED
|
|
528
|
+
1. Set ADVISOR_MODE = true unless `--no-advisor` was passed.
|
|
572
529
|
|
|
573
|
-
|
|
574
|
-
- conservative OR thorough-evaluator → full_maturity
|
|
575
|
-
- opinionated → minimal_decisive
|
|
576
|
-
- pragmatic-fast OR any other value OR empty → standard
|
|
530
|
+
2. Calibration tier is fixed at `standard`.
|
|
577
531
|
|
|
578
532
|
3. Resolve model for advisor agents:
|
|
579
533
|
```bash
|
|
580
534
|
ADVISOR_MODEL=$(gsd-remix-sdk query resolve-model gsd-advisor-researcher --raw)
|
|
581
535
|
```
|
|
582
536
|
|
|
583
|
-
If ADVISOR_MODE is false, skip all advisor-specific steps — workflow proceeds with
|
|
584
|
-
|
|
585
|
-
**User Profile Language Detection:**
|
|
586
|
-
|
|
587
|
-
Check USER-PROFILE.md for communication preferences that indicate a non-technical product owner:
|
|
588
|
-
|
|
589
|
-
```bash
|
|
590
|
-
PROFILE_CONTENT=$(cat "$HOME/.claude/get-shit-done/USER-PROFILE.md" 2>/dev/null || true)
|
|
591
|
-
```
|
|
592
|
-
|
|
593
|
-
Set NON_TECHNICAL_OWNER = true if ANY of the following are present in USER-PROFILE.md:
|
|
594
|
-
- `learning_style: guided`
|
|
595
|
-
- The word `jargon` appears in a `frustration_triggers` section
|
|
596
|
-
- `explanation_depth: practical-detailed` (without a technical modifier)
|
|
597
|
-
- `explanation_depth: high-level`
|
|
598
|
-
|
|
599
|
-
NON_TECHNICAL_OWNER = false if USER-PROFILE.md does not exist or none of the above signals are present.
|
|
600
|
-
|
|
601
|
-
When NON_TECHNICAL_OWNER is true, reframe gray area labels and descriptions in product-outcome language before presenting them to the user. Preserve the same underlying decision — only change the framing:
|
|
602
|
-
- Technical implementation term → outcome the user will experience
|
|
603
|
-
- "Token architecture" → "Color system: which approach prevents the dark theme from flashing white on open"
|
|
604
|
-
- "CSS variable strategy" → "Theme colors: how your brand colors stay consistent in both light and dark mode"
|
|
605
|
-
- "Component API surface area" → "How the building blocks connect: how tightly coupled should these parts be"
|
|
606
|
-
- "Caching strategy: SWR vs React Query" → "Loading speed: should screens show saved data right away or wait for fresh data"
|
|
607
|
-
- All decisions stay the same. Only the question language adapts.
|
|
608
|
-
|
|
609
|
-
This reframing applies to:
|
|
610
|
-
1. Gray area labels and descriptions in `present_gray_areas`
|
|
611
|
-
2. Advisor research rationale rewrites in `advisor_research` synthesis
|
|
537
|
+
If ADVISOR_MODE is false (`--no-advisor`), skip all advisor-specific steps — workflow proceeds with the plain conversational flow unchanged.
|
|
612
538
|
|
|
613
539
|
**Output your analysis internally, then present to user.**
|
|
614
540
|
|
|
@@ -717,7 +643,7 @@ After user selects gray areas in present_gray_areas, spawn parallel research age
|
|
|
717
643
|
<gray_area>{area_name}: {area_description from gray area identification}</gray_area>
|
|
718
644
|
<phase_context>{phase_goal and description from ROADMAP.md}</phase_context>
|
|
719
645
|
<project_context>{project name and brief description from PROJECT.md}</project_context>
|
|
720
|
-
<calibration_tier>
|
|
646
|
+
<calibration_tier>standard</calibration_tier>
|
|
721
647
|
|
|
722
648
|
Research this gray area and return a structured comparison table with rationale.
|
|
723
649
|
${AGENT_SKILLS_ADVISOR}",
|
|
@@ -732,15 +658,10 @@ After user selects gray areas in present_gray_areas, spawn parallel research age
|
|
|
732
658
|
For each agent's return:
|
|
733
659
|
a. Parse the markdown comparison table and rationale paragraph
|
|
734
660
|
b. Verify all 5 columns present (Option | Pros | Cons | Complexity | Recommendation) — fill any missing columns rather than showing broken table
|
|
735
|
-
c. Verify option count matches calibration
|
|
736
|
-
- full_maturity: 3-5 options acceptable
|
|
737
|
-
- standard: 2-4 options acceptable
|
|
738
|
-
- minimal_decisive: 1-2 options acceptable
|
|
661
|
+
c. Verify option count matches the standard calibration (2-4 options acceptable).
|
|
739
662
|
If agent returned too many, trim least viable. If too few, accept as-is.
|
|
740
663
|
d. Rewrite rationale paragraph to weave in project context and ongoing discussion context that the agent did not have access to
|
|
741
664
|
e. If agent returned only 1 option, convert from table format to direct recommendation: "Standard approach for {area}: {option}. {rationale}"
|
|
742
|
-
f. **If NON_TECHNICAL_OWNER is true:** After completing steps a–e, apply a plain language rewrite to the rationale paragraph. Replace implementation-level terms with outcome descriptions the user can reason about without technical context. The table option names may also be rewritten in plain language if they are implementation terms — the Recommendation column value and the table structure remain intact. Do not remove detail; translate it. Example: "SWR uses stale-while-revalidate to serve cached responses immediately" → "This approach shows you something right away, then quietly updates in the background — users see data instantly."
|
|
743
|
-
|
|
744
665
|
4. Store synthesized tables for use in discuss_areas.
|
|
745
666
|
|
|
746
667
|
**If ADVISOR_MODE is false:** Skip this step entirely — proceed directly from present_gray_areas to discuss_areas.
|
|
@@ -766,20 +687,6 @@ Table-first discussion flow — present research-backed comparison tables, then
|
|
|
766
687
|
- If user picks from table options → record as locked decision for that area
|
|
767
688
|
- If user picks "Other" → receive their input, reflect it back for confirmation, record
|
|
768
689
|
|
|
769
|
-
**Thinking partner (conditional):**
|
|
770
|
-
If `features.thinking_partner` is enabled in config, check the user's answer for tradeoff signals
|
|
771
|
-
(see `references/thinking-partner.md` for signal list). If tradeoff detected:
|
|
772
|
-
|
|
773
|
-
```
|
|
774
|
-
I notice competing priorities here — {option_A} optimizes for {goal_A} while {option_B} optimizes for {goal_B}.
|
|
775
|
-
|
|
776
|
-
Want me to think through the tradeoffs before we lock this in?
|
|
777
|
-
[Yes, analyze] / [No, decision made]
|
|
778
|
-
```
|
|
779
|
-
|
|
780
|
-
If yes: provide 3-5 bullet analysis (what each optimizes/sacrifices, alignment with PROJECT.md goals, recommendation). Then return to normal flow.
|
|
781
|
-
If no or thinking_partner disabled: continue to next area.
|
|
782
|
-
|
|
783
690
|
4. **After recording pick, Claude decides whether follow-up questions are needed:**
|
|
784
691
|
- If the pick has ambiguity that would affect downstream planning → ask 1-2 targeted follow-up questions using AskUserQuestion
|
|
785
692
|
- If the pick is clear and self-contained → move to next area
|
|
@@ -1184,7 +1091,6 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
|
|
1184
1091
|
**Also available:**
|
|
1185
1092
|
- `/gsd-discuss-phase ${PHASE} --chain ${GSD_WS}` — re-run with auto plan+execute after
|
|
1186
1093
|
- `/gsd-plan-phase ${PHASE} --skip-research ${GSD_WS}` — plan without research
|
|
1187
|
-
- `/gsd-ui-phase ${PHASE} ${GSD_WS}` — generate UI design contract before planning (if phase has frontend work)
|
|
1188
1094
|
- Review/edit CONTEXT.md before continuing
|
|
1189
1095
|
|
|
1190
1096
|
---
|
|
@@ -42,10 +42,6 @@ Evaluate `$ARGUMENTS` against these routing rules. Apply the **first matching**
|
|
|
42
42
|
| Starting a new project, "set up", "initialize" | `/gsd-new-project` | Needs full project initialization |
|
|
43
43
|
| Mapping or analyzing an existing codebase | `/gsd-map-codebase` | Codebase discovery |
|
|
44
44
|
| A bug, error, crash, failure, or something broken | `/gsd-debug` | Needs systematic investigation |
|
|
45
|
-
| Spiking, "test if", "will this work", "experiment", "prove this out", validate feasibility | `/gsd-spike` | Throwaway experiment to validate feasibility |
|
|
46
|
-
| Sketching, "mockup", "what would this look like", "prototype the UI", "design this", explore visual direction | `/gsd-sketch` | Throwaway HTML mockups to explore design |
|
|
47
|
-
| Wrapping up spikes, "package the spikes", "consolidate spike findings" | `/gsd-spike-wrap-up` | Package spike findings into reusable skill |
|
|
48
|
-
| Wrapping up sketches, "package the designs", "consolidate sketch findings" | `/gsd-sketch-wrap-up` | Package sketch findings into reusable skill |
|
|
49
45
|
| Exploring, researching, comparing, or "how does X work" | `/gsd-research-phase` | Domain research before planning |
|
|
50
46
|
| Discussing vision, "how should X look", brainstorming | `/gsd-discuss-phase` | Needs context gathering |
|
|
51
47
|
| A complex task: refactoring, migration, multi-file architecture, system redesign | `/gsd-add-phase` | Needs a full phase with plan/build cycle |
|
|
@@ -60,7 +56,7 @@ Evaluate `$ARGUMENTS` against these routing rules. Apply the **first matching**
|
|
|
60
56
|
| Completing a milestone, shipping, releasing | `/gsd-complete-milestone` | Milestone lifecycle |
|
|
61
57
|
| A specific, actionable, small task (add feature, fix typo, update config) | `/gsd-quick` | Self-contained, single executor |
|
|
62
58
|
|
|
63
|
-
**Requires `.planning/` directory:** All routes except `/gsd-new-project`, `/gsd-map-codebase`,
|
|
59
|
+
**Requires `.planning/` directory:** All routes except `/gsd-new-project`, `/gsd-map-codebase`, and `/gsd-help`. If the project doesn't exist and the route requires it, suggest `/gsd-new-project` first.
|
|
64
60
|
|
|
65
61
|
**Ambiguity handling:** If the text could reasonably match multiple routes, ask the user via AskUserQuestion with the top 2-3 options. For example:
|
|
66
62
|
|