@tuan_son.dinh/gsd 2.6.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/LICENSE +21 -0
- package/README.md +453 -0
- package/dist/app-paths.d.ts +4 -0
- package/dist/app-paths.js +6 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +269 -0
- package/dist/loader.d.ts +2 -0
- package/dist/loader.js +70 -0
- package/dist/logo.d.ts +16 -0
- package/dist/logo.js +25 -0
- package/dist/onboarding.d.ts +43 -0
- package/dist/onboarding.js +418 -0
- package/dist/pi-migration.d.ts +14 -0
- package/dist/pi-migration.js +57 -0
- package/dist/resource-loader.d.ts +22 -0
- package/dist/resource-loader.js +60 -0
- package/dist/tool-bootstrap.d.ts +4 -0
- package/dist/tool-bootstrap.js +74 -0
- package/dist/wizard.d.ts +7 -0
- package/dist/wizard.js +25 -0
- package/package.json +60 -0
- package/patches/@mariozechner+pi-coding-agent+0.57.1.patch +108 -0
- package/patches/@mariozechner+pi-tui+0.57.1.patch +47 -0
- package/pkg/dist/modes/interactive/theme/dark.json +85 -0
- package/pkg/dist/modes/interactive/theme/light.json +84 -0
- package/pkg/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts +78 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/pkg/dist/modes/interactive/theme/theme.js +949 -0
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -0
- package/pkg/package.json +8 -0
- package/scripts/postinstall.js +127 -0
- package/src/resources/GSD-WORKFLOW.md +661 -0
- package/src/resources/agents/researcher.md +29 -0
- package/src/resources/agents/scout.md +56 -0
- package/src/resources/agents/worker.md +31 -0
- package/src/resources/extensions/ask-user-questions.ts +249 -0
- package/src/resources/extensions/bg-shell/index.ts +2808 -0
- package/src/resources/extensions/browser-tools/BROWSER-TOOLS-V2-PROPOSAL.md +1277 -0
- package/src/resources/extensions/browser-tools/core.js +1057 -0
- package/src/resources/extensions/browser-tools/index.ts +4989 -0
- package/src/resources/extensions/browser-tools/package.json +20 -0
- package/src/resources/extensions/context7/index.ts +428 -0
- package/src/resources/extensions/context7/package.json +11 -0
- package/src/resources/extensions/get-secrets-from-user.ts +352 -0
- package/src/resources/extensions/google-search/index.ts +323 -0
- package/src/resources/extensions/google-search/package.json +9 -0
- package/src/resources/extensions/gsd/activity-log.ts +69 -0
- package/src/resources/extensions/gsd/auto.ts +2744 -0
- package/src/resources/extensions/gsd/commands.ts +313 -0
- package/src/resources/extensions/gsd/crash-recovery.ts +85 -0
- package/src/resources/extensions/gsd/dashboard-overlay.ts +521 -0
- package/src/resources/extensions/gsd/docs/preferences-reference.md +176 -0
- package/src/resources/extensions/gsd/doctor.ts +690 -0
- package/src/resources/extensions/gsd/files.ts +732 -0
- package/src/resources/extensions/gsd/git-service.ts +597 -0
- package/src/resources/extensions/gsd/gitignore.ts +168 -0
- package/src/resources/extensions/gsd/guided-flow.ts +817 -0
- package/src/resources/extensions/gsd/index.ts +558 -0
- package/src/resources/extensions/gsd/metrics.ts +374 -0
- package/src/resources/extensions/gsd/migrate/command.ts +218 -0
- package/src/resources/extensions/gsd/migrate/index.ts +42 -0
- package/src/resources/extensions/gsd/migrate/parser.ts +323 -0
- package/src/resources/extensions/gsd/migrate/parsers.ts +624 -0
- package/src/resources/extensions/gsd/migrate/preview.ts +48 -0
- package/src/resources/extensions/gsd/migrate/transformer.ts +346 -0
- package/src/resources/extensions/gsd/migrate/types.ts +370 -0
- package/src/resources/extensions/gsd/migrate/validator.ts +55 -0
- package/src/resources/extensions/gsd/migrate/writer.ts +539 -0
- package/src/resources/extensions/gsd/observability-validator.ts +408 -0
- package/src/resources/extensions/gsd/package.json +11 -0
- package/src/resources/extensions/gsd/paths.ts +308 -0
- package/src/resources/extensions/gsd/preferences.ts +757 -0
- package/src/resources/extensions/gsd/prompt-loader.ts +50 -0
- package/src/resources/extensions/gsd/prompts/complete-milestone.md +25 -0
- package/src/resources/extensions/gsd/prompts/complete-slice.md +29 -0
- package/src/resources/extensions/gsd/prompts/discuss.md +189 -0
- package/src/resources/extensions/gsd/prompts/doctor-heal.md +29 -0
- package/src/resources/extensions/gsd/prompts/execute-task.md +61 -0
- package/src/resources/extensions/gsd/prompts/guided-complete-slice.md +1 -0
- package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +3 -0
- package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +59 -0
- package/src/resources/extensions/gsd/prompts/guided-execute-task.md +1 -0
- package/src/resources/extensions/gsd/prompts/guided-plan-milestone.md +23 -0
- package/src/resources/extensions/gsd/prompts/guided-plan-slice.md +1 -0
- package/src/resources/extensions/gsd/prompts/guided-research-slice.md +11 -0
- package/src/resources/extensions/gsd/prompts/guided-resume-task.md +1 -0
- package/src/resources/extensions/gsd/prompts/plan-milestone.md +65 -0
- package/src/resources/extensions/gsd/prompts/plan-slice.md +51 -0
- package/src/resources/extensions/gsd/prompts/queue.md +85 -0
- package/src/resources/extensions/gsd/prompts/reassess-roadmap.md +48 -0
- package/src/resources/extensions/gsd/prompts/replan-slice.md +39 -0
- package/src/resources/extensions/gsd/prompts/research-milestone.md +37 -0
- package/src/resources/extensions/gsd/prompts/research-slice.md +28 -0
- package/src/resources/extensions/gsd/prompts/review-migration.md +66 -0
- package/src/resources/extensions/gsd/prompts/run-uat.md +109 -0
- package/src/resources/extensions/gsd/prompts/system.md +187 -0
- package/src/resources/extensions/gsd/prompts/worktree-merge.md +123 -0
- package/src/resources/extensions/gsd/session-forensics.ts +487 -0
- package/src/resources/extensions/gsd/skill-discovery.ts +137 -0
- package/src/resources/extensions/gsd/state.ts +460 -0
- package/src/resources/extensions/gsd/templates/context.md +76 -0
- package/src/resources/extensions/gsd/templates/decisions.md +8 -0
- package/src/resources/extensions/gsd/templates/milestone-summary.md +73 -0
- package/src/resources/extensions/gsd/templates/plan.md +131 -0
- package/src/resources/extensions/gsd/templates/preferences.md +24 -0
- package/src/resources/extensions/gsd/templates/project.md +31 -0
- package/src/resources/extensions/gsd/templates/reassessment.md +28 -0
- package/src/resources/extensions/gsd/templates/requirements.md +81 -0
- package/src/resources/extensions/gsd/templates/research.md +46 -0
- package/src/resources/extensions/gsd/templates/roadmap.md +118 -0
- package/src/resources/extensions/gsd/templates/slice-context.md +58 -0
- package/src/resources/extensions/gsd/templates/slice-summary.md +99 -0
- package/src/resources/extensions/gsd/templates/state.md +19 -0
- package/src/resources/extensions/gsd/templates/task-plan.md +52 -0
- package/src/resources/extensions/gsd/templates/task-summary.md +57 -0
- package/src/resources/extensions/gsd/templates/uat.md +54 -0
- package/src/resources/extensions/gsd/tests/activity-log-prune.test.ts +327 -0
- package/src/resources/extensions/gsd/tests/auto-preflight.test.ts +56 -0
- package/src/resources/extensions/gsd/tests/auto-supervisor.test.mjs +53 -0
- package/src/resources/extensions/gsd/tests/complete-milestone.test.ts +225 -0
- package/src/resources/extensions/gsd/tests/cost-projection.test.ts +160 -0
- package/src/resources/extensions/gsd/tests/derive-state-deps.test.ts +341 -0
- package/src/resources/extensions/gsd/tests/derive-state.test.ts +689 -0
- package/src/resources/extensions/gsd/tests/discuss-prompt.test.ts +38 -0
- package/src/resources/extensions/gsd/tests/doctor.test.ts +505 -0
- package/src/resources/extensions/gsd/tests/git-service.test.ts +1313 -0
- package/src/resources/extensions/gsd/tests/idle-recovery.test.ts +308 -0
- package/src/resources/extensions/gsd/tests/metrics-io.test.ts +201 -0
- package/src/resources/extensions/gsd/tests/metrics.test.ts +217 -0
- package/src/resources/extensions/gsd/tests/migrate-command.test.ts +390 -0
- package/src/resources/extensions/gsd/tests/migrate-parser.test.ts +786 -0
- package/src/resources/extensions/gsd/tests/migrate-transformer.test.ts +657 -0
- package/src/resources/extensions/gsd/tests/migrate-validator-parsers.test.ts +443 -0
- package/src/resources/extensions/gsd/tests/migrate-writer-integration.test.ts +318 -0
- package/src/resources/extensions/gsd/tests/migrate-writer.test.ts +420 -0
- package/src/resources/extensions/gsd/tests/must-have-parser.test.ts +309 -0
- package/src/resources/extensions/gsd/tests/parsers.test.ts +1351 -0
- package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +163 -0
- package/src/resources/extensions/gsd/tests/plan-quality-validator.test.ts +386 -0
- package/src/resources/extensions/gsd/tests/reassess-prompt.test.ts +171 -0
- package/src/resources/extensions/gsd/tests/remote-questions.test.ts +155 -0
- package/src/resources/extensions/gsd/tests/remote-status.test.ts +99 -0
- package/src/resources/extensions/gsd/tests/replan-slice.test.ts +521 -0
- package/src/resources/extensions/gsd/tests/requirements.test.ts +125 -0
- package/src/resources/extensions/gsd/tests/resolve-ts-hooks.mjs +34 -0
- package/src/resources/extensions/gsd/tests/resolve-ts.mjs +11 -0
- package/src/resources/extensions/gsd/tests/run-uat.test.ts +348 -0
- package/src/resources/extensions/gsd/tests/unit-runtime.test.ts +247 -0
- package/src/resources/extensions/gsd/tests/workflow-config.test.mjs +53 -0
- package/src/resources/extensions/gsd/tests/workspace-index.test.ts +94 -0
- package/src/resources/extensions/gsd/tests/worktree-integration.test.ts +253 -0
- package/src/resources/extensions/gsd/tests/worktree-manager.test.ts +160 -0
- package/src/resources/extensions/gsd/tests/worktree.test.ts +264 -0
- package/src/resources/extensions/gsd/types.ts +159 -0
- package/src/resources/extensions/gsd/unit-runtime.ts +184 -0
- package/src/resources/extensions/gsd/workspace-index.ts +203 -0
- package/src/resources/extensions/gsd/worktree-command.ts +845 -0
- package/src/resources/extensions/gsd/worktree-manager.ts +392 -0
- package/src/resources/extensions/gsd/worktree.ts +183 -0
- package/src/resources/extensions/mac-tools/index.ts +852 -0
- package/src/resources/extensions/mac-tools/swift-cli/Package.swift +22 -0
- package/src/resources/extensions/mac-tools/swift-cli/Sources/main.swift +1318 -0
- package/src/resources/extensions/mcporter/index.ts +429 -0
- package/src/resources/extensions/remote-questions/config.ts +81 -0
- package/src/resources/extensions/remote-questions/discord-adapter.ts +128 -0
- package/src/resources/extensions/remote-questions/format.ts +163 -0
- package/src/resources/extensions/remote-questions/manager.ts +192 -0
- package/src/resources/extensions/remote-questions/remote-command.ts +307 -0
- package/src/resources/extensions/remote-questions/slack-adapter.ts +92 -0
- package/src/resources/extensions/remote-questions/status.ts +31 -0
- package/src/resources/extensions/remote-questions/store.ts +77 -0
- package/src/resources/extensions/remote-questions/types.ts +75 -0
- package/src/resources/extensions/search-the-web/cache.ts +78 -0
- package/src/resources/extensions/search-the-web/command-search-provider.ts +95 -0
- package/src/resources/extensions/search-the-web/format.ts +258 -0
- package/src/resources/extensions/search-the-web/http.ts +238 -0
- package/src/resources/extensions/search-the-web/index.ts +65 -0
- package/src/resources/extensions/search-the-web/native-search.ts +157 -0
- package/src/resources/extensions/search-the-web/provider.ts +118 -0
- package/src/resources/extensions/search-the-web/tavily.ts +116 -0
- package/src/resources/extensions/search-the-web/tool-fetch-page.ts +519 -0
- package/src/resources/extensions/search-the-web/tool-llm-context.ts +561 -0
- package/src/resources/extensions/search-the-web/tool-search.ts +576 -0
- package/src/resources/extensions/search-the-web/url-utils.ts +91 -0
- package/src/resources/extensions/shared/confirm-ui.ts +126 -0
- package/src/resources/extensions/shared/interview-ui.ts +613 -0
- package/src/resources/extensions/shared/next-action-ui.ts +197 -0
- package/src/resources/extensions/shared/progress-widget.ts +282 -0
- package/src/resources/extensions/shared/terminal.ts +23 -0
- package/src/resources/extensions/shared/thinking-widget.ts +107 -0
- package/src/resources/extensions/shared/ui.ts +400 -0
- package/src/resources/extensions/shared/wizard-ui.ts +551 -0
- package/src/resources/extensions/slash-commands/audit.ts +88 -0
- package/src/resources/extensions/slash-commands/clear.ts +10 -0
- package/src/resources/extensions/slash-commands/create-extension.ts +297 -0
- package/src/resources/extensions/slash-commands/create-slash-command.ts +234 -0
- package/src/resources/extensions/slash-commands/index.ts +12 -0
- package/src/resources/extensions/subagent/agents.ts +126 -0
- package/src/resources/extensions/subagent/index.ts +1020 -0
- package/src/resources/extensions/voice/index.ts +195 -0
- package/src/resources/extensions/voice/speech-recognizer.swift +154 -0
- package/src/resources/skills/debug-like-expert/SKILL.md +231 -0
- package/src/resources/skills/debug-like-expert/references/debugging-mindset.md +253 -0
- package/src/resources/skills/debug-like-expert/references/hypothesis-testing.md +373 -0
- package/src/resources/skills/debug-like-expert/references/investigation-techniques.md +337 -0
- package/src/resources/skills/debug-like-expert/references/verification-patterns.md +425 -0
- package/src/resources/skills/debug-like-expert/references/when-to-research.md +361 -0
- package/src/resources/skills/frontend-design/SKILL.md +45 -0
- package/src/resources/skills/swiftui/SKILL.md +208 -0
- package/src/resources/skills/swiftui/references/animations.md +921 -0
- package/src/resources/skills/swiftui/references/architecture.md +1561 -0
- package/src/resources/skills/swiftui/references/layout-system.md +1186 -0
- package/src/resources/skills/swiftui/references/navigation.md +1492 -0
- package/src/resources/skills/swiftui/references/networking-async.md +214 -0
- package/src/resources/skills/swiftui/references/performance.md +1706 -0
- package/src/resources/skills/swiftui/references/platform-integration.md +204 -0
- package/src/resources/skills/swiftui/references/state-management.md +1443 -0
- package/src/resources/skills/swiftui/references/swiftdata.md +297 -0
- package/src/resources/skills/swiftui/references/testing-debugging.md +247 -0
- package/src/resources/skills/swiftui/references/uikit-appkit-interop.md +218 -0
- package/src/resources/skills/swiftui/workflows/add-feature.md +191 -0
- package/src/resources/skills/swiftui/workflows/build-new-app.md +311 -0
- package/src/resources/skills/swiftui/workflows/debug-swiftui.md +192 -0
- package/src/resources/skills/swiftui/workflows/optimize-performance.md +197 -0
- package/src/resources/skills/swiftui/workflows/ship-app.md +203 -0
- package/src/resources/skills/swiftui/workflows/write-tests.md +235 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
You are executing GSD auto-mode.
|
|
2
|
+
|
|
3
|
+
## UNIT: Plan Slice {{sliceId}} ("{{sliceTitle}}") — Milestone {{milestoneId}}
|
|
4
|
+
|
|
5
|
+
All relevant context has been preloaded below — start working immediately without re-reading these files.
|
|
6
|
+
|
|
7
|
+
{{inlinedContext}}
|
|
8
|
+
|
|
9
|
+
### Dependency Slice Summaries
|
|
10
|
+
|
|
11
|
+
Pay particular attention to **Forward Intelligence** sections — they contain hard-won knowledge about what's fragile, what assumptions changed, and what this slice should watch out for.
|
|
12
|
+
|
|
13
|
+
{{dependencySummaries}}
|
|
14
|
+
|
|
15
|
+
Narrate your decomposition reasoning — why you're grouping work this way, what risks are driving the order, what verification strategy you're choosing and why. Keep the narration proportional to the work — a simple slice doesn't need a long justification.
|
|
16
|
+
|
|
17
|
+
**Right-size the plan.** If the slice is simple enough to be 1 task, plan 1 task. Don't split into multiple tasks just because you can identify sub-steps. Don't fill in sections with "None" when the section doesn't apply — omit them entirely. The plan's job is to guide execution, not to fill a template.
|
|
18
|
+
|
|
19
|
+
Then:
|
|
20
|
+
0. If `REQUIREMENTS.md` was preloaded above, identify which Active requirements the roadmap says this slice owns or supports. These are the requirements this plan must deliver — every owned requirement needs at least one task that directly advances it, and verification must prove the requirement is met.
|
|
21
|
+
1. Read the templates:
|
|
22
|
+
- `~/.gsd/agent/extensions/gsd/templates/plan.md`
|
|
23
|
+
- `~/.gsd/agent/extensions/gsd/templates/task-plan.md`
|
|
24
|
+
2. If a `GSD Skill Preferences` block is present in system context, use it to decide which skills to load and follow during planning, without overriding required plan formatting
|
|
25
|
+
3. Define slice-level verification — the objective stopping condition for this slice:
|
|
26
|
+
- For non-trivial slices: plan actual test files with real assertions. Name the files.
|
|
27
|
+
- For simple slices: executable commands or script assertions are fine.
|
|
28
|
+
- If the project is non-trivial and has no test framework, the first task should set one up.
|
|
29
|
+
- If this slice establishes a boundary contract, verification must exercise that contract.
|
|
30
|
+
{{observabilityStep}}
|
|
31
|
+
5. Fill the `Proof Level` and `Integration Closure` sections truthfully:
|
|
32
|
+
- State whether the slice proves contract, integration, operational, or final-assembly behavior.
|
|
33
|
+
- Say whether real runtime or human/UAT is required.
|
|
34
|
+
- Name the wiring introduced in this slice and what still remains before the milestone is truly usable end-to-end.
|
|
35
|
+
6. Decompose the slice into tasks, each fitting one context window. Each task needs:
|
|
36
|
+
- a concrete, action-oriented title
|
|
37
|
+
- the inline task entry fields defined in the plan.md template (Why / Files / Do / Verify / Done when)
|
|
38
|
+
- a matching task plan file with description, steps, must-haves, verification, inputs, and expected output
|
|
39
|
+
- Observability Impact section **only if the task touches runtime boundaries, async flows, or error paths** — omit it otherwise
|
|
40
|
+
7. Write `{{outputPath}}`
|
|
41
|
+
8. Write individual task plans in `{{sliceAbsPath}}/tasks/`: `T01-PLAN.md`, `T02-PLAN.md`, etc.
|
|
42
|
+
{{selfAuditStep}}
|
|
43
|
+
10. If planning produced structural decisions (e.g. verification strategy, observability strategy, technology choices, patterns to follow), append them to `.gsd/DECISIONS.md`
|
|
44
|
+
11. Commit: `docs({{sliceId}}): add slice plan`
|
|
45
|
+
12. Update `.gsd/STATE.md`
|
|
46
|
+
|
|
47
|
+
The slice directory and tasks/ subdirectory already exist. Do NOT mkdir. You are on the slice branch; all work stays here.
|
|
48
|
+
|
|
49
|
+
**You MUST write the file `{{outputAbsPath}}` before finishing.**
|
|
50
|
+
|
|
51
|
+
When done, say: "Slice {{sliceId}} planned."
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{{preamble}}
|
|
2
|
+
|
|
3
|
+
Say exactly: "What do you want to add?" — nothing else. Wait for the user's answer.
|
|
4
|
+
|
|
5
|
+
## Discussion Phase
|
|
6
|
+
|
|
7
|
+
After they describe it, your job is to understand the new work deeply enough to create context files that a future planning session can use.
|
|
8
|
+
|
|
9
|
+
**If the user provides a file path or pastes a large document** (spec, design doc, product plan, chat export), read it fully before asking questions. Use it as the starting point — don't ask them to re-explain what's already in the document. Your questions should fill gaps and resolve ambiguities the document doesn't cover.
|
|
10
|
+
|
|
11
|
+
**Investigate between question rounds to make your questions smarter.** Before each round of questions, do enough lightweight research that your questions are grounded in reality — not guesses about what exists or what's possible.
|
|
12
|
+
|
|
13
|
+
- Check library docs (`resolve_library` / `get_library_docs`) when the user mentions tech you need current facts about — capabilities, constraints, API shapes, version-specific behavior
|
|
14
|
+
- Do web searches (`search-the-web`) to verify the landscape — what solutions exist, what's changed recently, what's the current best practice. Use `freshness` for recency-sensitive queries, `domain` to target specific sites. Use `fetch_page` to read the full content of promising URLs when snippets aren't enough.
|
|
15
|
+
- Scout the codebase (`ls`, `find`, `rg`, or `scout` for broad unfamiliar areas) to understand what already exists, what patterns are established, what constraints current code imposes
|
|
16
|
+
|
|
17
|
+
Don't go deep — just enough that your next question reflects what's actually true rather than what you assume.
|
|
18
|
+
|
|
19
|
+
**Use this to actively surface:**
|
|
20
|
+
- The biggest technical unknowns — what could fail, what hasn't been proven, what might invalidate the plan
|
|
21
|
+
- Integration surfaces — external systems, APIs, libraries, or internal modules this work touches
|
|
22
|
+
- What needs to be proven before committing — the things that, if they don't work, mean the plan is wrong
|
|
23
|
+
- How the new work relates to existing milestones — overlap, dependencies, prerequisites
|
|
24
|
+
- If `.gsd/REQUIREMENTS.md` exists: which unmet Active or Deferred requirements this queued work advances
|
|
25
|
+
|
|
26
|
+
**Then use ask_user_questions** to dig into gray areas — architecture choices, scope boundaries, tech preferences, what's in vs out. 1-3 questions per round.
|
|
27
|
+
|
|
28
|
+
If a `GSD Skill Preferences` block is present in system context, use it to decide which skills to load and follow during discuss/planning work, but do not let it override the required discuss flow or artifact requirements.
|
|
29
|
+
|
|
30
|
+
**Self-regulate:** After about 10-15 questions total (3-5 rounds), or when you feel you have a solid understanding, include a question like:
|
|
31
|
+
"I think I have a good picture. Ready to queue this, or are there more things to discuss?"
|
|
32
|
+
with options: "Ready to queue (Recommended)", "I have more to discuss"
|
|
33
|
+
|
|
34
|
+
If the user wants to keep going, keep asking. If they're ready, proceed.
|
|
35
|
+
|
|
36
|
+
## Existing Milestone Awareness
|
|
37
|
+
|
|
38
|
+
{{existingMilestonesContext}}
|
|
39
|
+
|
|
40
|
+
Before writing anything, assess the new work against what already exists:
|
|
41
|
+
|
|
42
|
+
1. **Dedup check** — Is this already covered (fully or partially) by an existing milestone? If so, tell the user and explain what's already planned. Don't create duplicate milestones.
|
|
43
|
+
2. **Extension check** — Should this be added to an existing *pending* (not yet started) milestone rather than creating a new one? If the scope naturally belongs with existing pending work, propose extending that milestone's context instead.
|
|
44
|
+
3. **Dependency check** — Does the new work depend on something that's currently in progress or planned? Note the dependency so context files capture it.
|
|
45
|
+
4. **Requirement check** — If `.gsd/REQUIREMENTS.md` exists, identify whether this queued work advances unmet Active requirements, promotes Deferred work, or introduces entirely new scope that should also update the requirement contract.
|
|
46
|
+
|
|
47
|
+
If the new work is already fully covered, say so and stop — don't create anything.
|
|
48
|
+
|
|
49
|
+
## Scope Assessment
|
|
50
|
+
|
|
51
|
+
Before writing artifacts, assess whether this is **single-milestone** or **multi-milestone** scope.
|
|
52
|
+
|
|
53
|
+
**Single milestone** if the work is one coherent body of deliverables that fits in roughly 2-12 slices.
|
|
54
|
+
|
|
55
|
+
**Multi-milestone** if:
|
|
56
|
+
- The work has natural phase boundaries
|
|
57
|
+
- Different parts could ship independently on different timelines
|
|
58
|
+
- The full scope is too large for one milestone to stay focused
|
|
59
|
+
- The document/spec describes what is clearly multiple major efforts
|
|
60
|
+
|
|
61
|
+
If multi-milestone: propose the split to the user before writing artifacts.
|
|
62
|
+
|
|
63
|
+
## Sequencing
|
|
64
|
+
|
|
65
|
+
Determine where the new milestones should go in the overall sequence. Consider dependencies, prerequisites, and independence.
|
|
66
|
+
|
|
67
|
+
## Output Phase
|
|
68
|
+
|
|
69
|
+
Once the user is satisfied, in a single pass for **each** new milestone (starting from {{nextId}}):
|
|
70
|
+
|
|
71
|
+
1. `mkdir -p .gsd/milestones/<ID>/slices`
|
|
72
|
+
2. Write `.gsd/milestones/<ID>/<ID>-CONTEXT.md` — read the template at `~/.gsd/agent/extensions/gsd/templates/context.md` first. Capture intent, scope, risks, constraints, integration points, and relevant requirements. Mark the status as "Queued — pending auto-mode execution."
|
|
73
|
+
|
|
74
|
+
Then, after all milestone directories and context files are written:
|
|
75
|
+
|
|
76
|
+
3. Update `.gsd/PROJECT.md` — add the new milestones to the Milestone Sequence. Keep existing entries exactly as they are. Only add new lines.
|
|
77
|
+
4. If `.gsd/REQUIREMENTS.md` exists and the queued work introduces new in-scope capabilities or promotes Deferred items, update it.
|
|
78
|
+
5. If discussion produced decisions relevant to existing work, append to `.gsd/DECISIONS.md`.
|
|
79
|
+
6. Append to `.gsd/QUEUE.md`.
|
|
80
|
+
7. Commit: `docs: queue <milestone list>`
|
|
81
|
+
|
|
82
|
+
**Do NOT write roadmaps for queued milestones.**
|
|
83
|
+
**Do NOT update `.gsd/STATE.md`.**
|
|
84
|
+
|
|
85
|
+
After writing the files and committing, say exactly: "Queued N milestone(s). Auto-mode will pick them up after current work completes." — nothing else.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
You are executing GSD auto-mode.
|
|
2
|
+
|
|
3
|
+
## UNIT: Reassess Roadmap — Milestone {{milestoneId}} after {{completedSliceId}}
|
|
4
|
+
|
|
5
|
+
All relevant context has been preloaded below — the current roadmap, completed slice summary, project state, and decisions are inlined. Start working immediately without re-reading these files.
|
|
6
|
+
|
|
7
|
+
{{inlinedContext}}
|
|
8
|
+
|
|
9
|
+
If a `GSD Skill Preferences` block is present in system context, use it to decide which skills to load and follow during reassessment, without relaxing required verification or artifact rules.
|
|
10
|
+
|
|
11
|
+
Then assess whether the remaining roadmap still makes sense given what was just built.
|
|
12
|
+
|
|
13
|
+
**Bias strongly toward "roadmap is fine."** Most of the time, the plan is still good. Only rewrite if you have concrete evidence that remaining slices need to change. Don't rewrite for cosmetic reasons, minor optimization, or theoretical improvements.
|
|
14
|
+
|
|
15
|
+
Ask yourself:
|
|
16
|
+
- Did this slice retire the risk it was supposed to? If not, does a remaining slice need to address it?
|
|
17
|
+
- Did new risks or unknowns emerge that should change slice ordering?
|
|
18
|
+
- Are the boundary contracts in the boundary map still accurate given what was actually built?
|
|
19
|
+
- Should any remaining slices be reordered, merged, split, or adjusted based on concrete evidence?
|
|
20
|
+
- Did assumptions in remaining slice descriptions turn out wrong?
|
|
21
|
+
- If `.gsd/REQUIREMENTS.md` exists: did this slice validate, invalidate, defer, block, or newly surface requirements?
|
|
22
|
+
- If `.gsd/REQUIREMENTS.md` exists: does the remaining roadmap still provide credible coverage for Active requirements, including launchability, primary user loop, continuity, and failure visibility where relevant?
|
|
23
|
+
|
|
24
|
+
### Success-Criterion Coverage Check
|
|
25
|
+
|
|
26
|
+
Before deciding whether changes are needed, enumerate each success criterion from the roadmap's `## Success Criteria` section and map it to the remaining (unchecked) slice(s) that prove it. Each criterion must have at least one remaining owning slice. If any criterion has no remaining owner after the proposed changes, flag it as a **blocking issue** — do not accept changes that leave a criterion unproved.
|
|
27
|
+
|
|
28
|
+
Format each criterion as a single line:
|
|
29
|
+
|
|
30
|
+
- `Criterion text → S02, S03` (covered by at least one remaining slice)
|
|
31
|
+
- `Criterion text → ⚠ no remaining owner — BLOCKING` (no slice proves this criterion)
|
|
32
|
+
|
|
33
|
+
If all criteria have at least one remaining owning slice, the coverage check passes. If any criterion has no remaining owner, resolve it before finalizing the assessment — either by keeping a slice that was going to be removed, adding coverage to another slice, or explaining why the criterion is no longer relevant.
|
|
34
|
+
|
|
35
|
+
**If the roadmap is still good:**
|
|
36
|
+
|
|
37
|
+
Write `{{assessmentAbsPath}}` with a brief confirmation that roadmap coverage still holds after {{completedSliceId}}. If requirements exist, explicitly note whether requirement coverage remains sound.
|
|
38
|
+
|
|
39
|
+
**If changes are needed:**
|
|
40
|
+
|
|
41
|
+
1. Rewrite the remaining (unchecked) slices in `{{roadmapPath}}`. Keep completed slices exactly as they are (`[x]`). Update the boundary map for changed slices. Update the proof strategy if risks changed. Update requirement coverage if ownership or scope changed.
|
|
42
|
+
2. Write `{{assessmentAbsPath}}` explaining what changed and why — keep it brief and concrete.
|
|
43
|
+
3. If `.gsd/REQUIREMENTS.md` exists and requirement ownership or status changed, update it.
|
|
44
|
+
4. Commit: `docs({{milestoneId}}): reassess roadmap after {{completedSliceId}}`
|
|
45
|
+
|
|
46
|
+
**You MUST write the file `{{assessmentAbsPath}}` before finishing.**
|
|
47
|
+
|
|
48
|
+
When done, say: "Roadmap reassessed."
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
You are executing GSD auto-mode.
|
|
2
|
+
|
|
3
|
+
## UNIT: Replan Slice {{sliceId}} ("{{sliceTitle}}") — Milestone {{milestoneId}}
|
|
4
|
+
|
|
5
|
+
A completed task reported `blocker_discovered: true`, meaning the current slice plan cannot be executed as-is. Your job is to rewrite the remaining tasks in the slice plan to address the blocker while preserving all completed work.
|
|
6
|
+
|
|
7
|
+
All relevant context has been preloaded below — the roadmap, current slice plan, the blocker task summary, and decisions are inlined. Start working immediately without re-reading these files.
|
|
8
|
+
|
|
9
|
+
{{inlinedContext}}
|
|
10
|
+
|
|
11
|
+
## Hard Constraints
|
|
12
|
+
|
|
13
|
+
- **Do NOT renumber or remove completed tasks.** All `[x]` tasks and their IDs must remain exactly as they are in the plan.
|
|
14
|
+
- **Do NOT change completed task descriptions, estimates, or metadata.** They are historical records.
|
|
15
|
+
- **Preserve completed task summaries.** Do not modify any `T0x-SUMMARY.md` files for completed tasks.
|
|
16
|
+
- Only modify `[ ]` (incomplete) tasks. You may rewrite, reorder, add, or remove incomplete tasks as needed to address the blocker.
|
|
17
|
+
- New tasks must follow the existing ID numbering sequence (e.g., if T01–T03 exist, new tasks start at T04 or continue from the highest existing ID).
|
|
18
|
+
|
|
19
|
+
## Instructions
|
|
20
|
+
|
|
21
|
+
1. Read the blocker task summary carefully. Understand exactly what was discovered and why it blocks the current plan.
|
|
22
|
+
2. Analyze the remaining `[ ]` tasks in the slice plan. Determine which are still valid, which need modification, and which should be replaced.
|
|
23
|
+
3. Write `{{replanAbsPath}}` documenting:
|
|
24
|
+
- What blocker was discovered and in which task
|
|
25
|
+
- What changed in the plan and why
|
|
26
|
+
- Which incomplete tasks were modified, added, or removed
|
|
27
|
+
- Any new risks or considerations introduced by the replan
|
|
28
|
+
4. Rewrite `{{planPath}}` with the updated slice plan:
|
|
29
|
+
- Keep all `[x]` tasks exactly as they were (same IDs, same descriptions, same checkmarks)
|
|
30
|
+
- Update the `[ ]` tasks to address the blocker
|
|
31
|
+
- Ensure the slice Goal and Demo sections are still achievable with the new tasks, or update them if the blocker fundamentally changes what the slice can deliver
|
|
32
|
+
- Update the Files Likely Touched section if the replan changes which files are affected
|
|
33
|
+
5. If any incomplete task had a `T0x-PLAN.md`, remove or rewrite it to match the new task description.
|
|
34
|
+
6. Do not commit manually — the system auto-commits your changes after this unit completes.
|
|
35
|
+
7. Update `.gsd/STATE.md`
|
|
36
|
+
|
|
37
|
+
**You MUST write `{{replanAbsPath}}` and the updated slice plan before finishing.**
|
|
38
|
+
|
|
39
|
+
When done, say: "Slice {{sliceId}} replanned."
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
You are executing GSD auto-mode.
|
|
2
|
+
|
|
3
|
+
## UNIT: Research Milestone {{milestoneId}} ("{{milestoneTitle}}")
|
|
4
|
+
|
|
5
|
+
All relevant context has been preloaded below — start working immediately without re-reading these files.
|
|
6
|
+
|
|
7
|
+
{{inlinedContext}}
|
|
8
|
+
|
|
9
|
+
Then research the codebase and relevant technologies. Narrate key findings and surprises as you go — what exists, what's missing, what constrains the approach.
|
|
10
|
+
1. If a `GSD Skill Preferences` block is present in system context, use it to decide which skills to load and follow during research, without relaxing required verification or artifact rules
|
|
11
|
+
2. **Skill Discovery ({{skillDiscoveryMode}}):**{{skillDiscoveryInstructions}}
|
|
12
|
+
3. Explore relevant code. For small/familiar codebases, use `rg`, `find`, and targeted reads. For large or unfamiliar codebases, use `scout` to build a broad map efficiently before diving in.
|
|
13
|
+
4. Use `resolve_library` / `get_library_docs` for unfamiliar libraries
|
|
14
|
+
5. Read the template at `~/.gsd/agent/extensions/gsd/templates/research.md`
|
|
15
|
+
6. If `.gsd/REQUIREMENTS.md` exists, research against it. Identify which Active requirements are table stakes, likely omissions, overbuilt risks, or domain-standard behaviors the user may or may not want.
|
|
16
|
+
7. Write `{{outputPath}}` with:
|
|
17
|
+
- Summary (2-3 paragraphs, primary recommendation)
|
|
18
|
+
- Don't Hand-Roll table (problems with existing solutions)
|
|
19
|
+
- Common Pitfalls (what goes wrong, how to avoid)
|
|
20
|
+
- Relevant Code (existing files, patterns, integration points)
|
|
21
|
+
- Sources
|
|
22
|
+
|
|
23
|
+
## Strategic Questions to Answer
|
|
24
|
+
|
|
25
|
+
- What should be proven first?
|
|
26
|
+
- What existing patterns should be reused?
|
|
27
|
+
- What boundary contracts matter?
|
|
28
|
+
- What constraints does the existing codebase impose?
|
|
29
|
+
- Are there known failure modes that should shape slice ordering?
|
|
30
|
+
- If requirements exist: what table stakes, expected behaviors, continuity expectations, launchability expectations, or failure-visibility expectations are missing, optional, or clearly out of scope?
|
|
31
|
+
- Which research findings should become candidate requirements versus remaining advisory only?
|
|
32
|
+
|
|
33
|
+
**Research is advisory, not auto-binding.** Surface candidate requirements clearly instead of silently expanding scope.
|
|
34
|
+
|
|
35
|
+
**You MUST write the file `{{outputAbsPath}}` before finishing.**
|
|
36
|
+
|
|
37
|
+
When done, say: "Milestone {{milestoneId}} researched."
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
You are executing GSD auto-mode.
|
|
2
|
+
|
|
3
|
+
## UNIT: Research Slice {{sliceId}} ("{{sliceTitle}}") — Milestone {{milestoneId}}
|
|
4
|
+
|
|
5
|
+
All relevant context has been preloaded below — start working immediately without re-reading these files.
|
|
6
|
+
|
|
7
|
+
{{inlinedContext}}
|
|
8
|
+
|
|
9
|
+
### Dependency Slice Summaries
|
|
10
|
+
|
|
11
|
+
Pay particular attention to **Forward Intelligence** sections — they contain hard-won knowledge about what's fragile, what assumptions changed, and what to watch out for.
|
|
12
|
+
|
|
13
|
+
{{dependencySummaries}}
|
|
14
|
+
|
|
15
|
+
Then research what this slice needs. Narrate key findings and surprises as you go — what exists, what's missing, what constrains the approach.
|
|
16
|
+
0. If `REQUIREMENTS.md` was preloaded above, identify which Active requirements this slice owns or supports. Research should target these requirements — surfacing risks, unknowns, and implementation constraints that could affect whether the slice actually delivers them.
|
|
17
|
+
1. If a `GSD Skill Preferences` block is present in system context, use it to decide which skills to load and follow during research, without relaxing required verification or artifact rules
|
|
18
|
+
2. **Skill Discovery ({{skillDiscoveryMode}}):**{{skillDiscoveryInstructions}}
|
|
19
|
+
3. Explore relevant code for this slice's scope. For targeted exploration, use `rg`, `find`, and reads. For broad or unfamiliar subsystems, use `scout` to map the relevant area first.
|
|
20
|
+
4. Use `resolve_library` / `get_library_docs` for unfamiliar libraries
|
|
21
|
+
5. Read the template at `~/.gsd/agent/extensions/gsd/templates/research.md`
|
|
22
|
+
6. Write `{{outputPath}}`
|
|
23
|
+
|
|
24
|
+
The slice directory already exists at `{{slicePath}}/`. Do NOT mkdir — just write the file.
|
|
25
|
+
|
|
26
|
+
**You MUST write the file `{{outputAbsPath}}` before finishing.**
|
|
27
|
+
|
|
28
|
+
When done, say: "Slice {{sliceId}} researched."
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
## Review Migrated .gsd Directory
|
|
2
|
+
|
|
3
|
+
A `/gsd migrate` command just wrote a `.gsd/` directory from an old `.planning` source. Your job is to audit the output and verify it meets GSD-2 standards before the user starts working with it.
|
|
4
|
+
|
|
5
|
+
### Source
|
|
6
|
+
- Old `.planning` directory: `{{sourcePath}}`
|
|
7
|
+
- Written `.gsd` directory: `{{gsdPath}}`
|
|
8
|
+
|
|
9
|
+
### Migration Stats
|
|
10
|
+
{{previewStats}}
|
|
11
|
+
|
|
12
|
+
### Review Checklist
|
|
13
|
+
|
|
14
|
+
Work through each check. Report PASS/FAIL with specifics. Fix anything fixable in-place.
|
|
15
|
+
|
|
16
|
+
#### 1. Structure Validation
|
|
17
|
+
- Run `deriveState()` on the `.gsd` directory (import from `state.ts`, pass the **project root** as basePath)
|
|
18
|
+
- Confirm it returns a coherent phase (not `pre-planning` unless the project is truly empty)
|
|
19
|
+
- Confirm activeMilestone, activeSlice, activeTask are sensible for the project's completion state
|
|
20
|
+
- Confirm progress counts match the migration preview stats
|
|
21
|
+
|
|
22
|
+
#### 2. Roadmap Quality
|
|
23
|
+
- Read `M001-ROADMAP.md` (and any other milestone roadmaps)
|
|
24
|
+
- Confirm slice entries have meaningful titles (not file paths or garbled text)
|
|
25
|
+
- Confirm `[x]`/`[ ]` completion markers are correct relative to the old roadmap
|
|
26
|
+
- Confirm vision statement is present and meaningful (not empty or "Migration")
|
|
27
|
+
|
|
28
|
+
#### 3. Content Spot-Check
|
|
29
|
+
- Pick 2-3 slices with the most tasks and read their plan files
|
|
30
|
+
- Confirm task titles and descriptions carry over meaningfully from the old plans
|
|
31
|
+
- Confirm summary files exist for completed tasks and contain relevant content
|
|
32
|
+
- Check that research files (if present) contain consolidated content, not empty stubs
|
|
33
|
+
|
|
34
|
+
#### 4. Requirements (if any)
|
|
35
|
+
- Read REQUIREMENTS.md
|
|
36
|
+
- Confirm requirement IDs are present and non-duplicate
|
|
37
|
+
- Confirm statuses make sense: completed old requirements should be `validated`, in-progress should be `active`
|
|
38
|
+
|
|
39
|
+
#### 5. PROJECT.md
|
|
40
|
+
- Read the written PROJECT.md
|
|
41
|
+
- Confirm it contains the old project's description, not boilerplate
|
|
42
|
+
- Confirm it reads like a useful project summary
|
|
43
|
+
|
|
44
|
+
#### 6. Decisions
|
|
45
|
+
- If DECISIONS.md was written, confirm it contains extracted decisions from old summaries (or is empty if no decisions existed)
|
|
46
|
+
|
|
47
|
+
### Output Format
|
|
48
|
+
|
|
49
|
+
Summarize your findings as:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Migration Review: <project name>
|
|
53
|
+
================================
|
|
54
|
+
Structure: PASS/FAIL — <details>
|
|
55
|
+
Roadmap: PASS/FAIL — <details>
|
|
56
|
+
Content: PASS/FAIL — <details>
|
|
57
|
+
Requirements: PASS/FAIL/SKIP — <details>
|
|
58
|
+
Project: PASS/FAIL — <details>
|
|
59
|
+
Decisions: PASS/FAIL/SKIP — <details>
|
|
60
|
+
|
|
61
|
+
Overall: PASS / PASS WITH NOTES / FAIL
|
|
62
|
+
Issues: <list any problems found>
|
|
63
|
+
Fixes applied: <list any in-place fixes made>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
If the overall result is FAIL, explain what needs manual attention. If PASS WITH NOTES, explain what's imperfect but acceptable. If PASS, confirm the `.gsd` directory is ready for GSD-2 auto-mode.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
You are executing GSD auto-mode.
|
|
2
|
+
|
|
3
|
+
## UNIT: Run UAT — {{milestoneId}}/{{sliceId}}
|
|
4
|
+
|
|
5
|
+
All relevant context has been preloaded below. Start working immediately without re-reading these files.
|
|
6
|
+
|
|
7
|
+
{{inlinedContext}}
|
|
8
|
+
|
|
9
|
+
If a `GSD Skill Preferences` block is present in system context, use it to decide which skills to load and follow during UAT execution, without relaxing required verification or artifact rules.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## UAT Instructions
|
|
14
|
+
|
|
15
|
+
**UAT file:** `{{uatPath}}`
|
|
16
|
+
**UAT type:** `{{uatType}}`
|
|
17
|
+
**Result file to write:** `{{uatResultAbsPath}}` (relative: `{{uatResultPath}}`)
|
|
18
|
+
|
|
19
|
+
### If UAT type is `artifact-driven`
|
|
20
|
+
|
|
21
|
+
You are the test runner. Execute every check defined in `{{uatPath}}` directly:
|
|
22
|
+
|
|
23
|
+
- Run shell commands with `bash`
|
|
24
|
+
- Run `grep` / `rg` checks against files
|
|
25
|
+
- Run `node` / script invocations
|
|
26
|
+
- Read files and verify their contents
|
|
27
|
+
- Check that expected artifacts exist and have correct structure
|
|
28
|
+
|
|
29
|
+
For each check, record:
|
|
30
|
+
- The check description (from the UAT file)
|
|
31
|
+
- The command or action taken
|
|
32
|
+
- The actual result observed
|
|
33
|
+
- PASS or FAIL verdict
|
|
34
|
+
|
|
35
|
+
After running all checks, compute the **overall verdict**:
|
|
36
|
+
- `PASS` — all checks passed
|
|
37
|
+
- `FAIL` — one or more checks failed
|
|
38
|
+
- `PARTIAL` — some checks passed, some failed or were skipped
|
|
39
|
+
|
|
40
|
+
Write `{{uatResultAbsPath}}` with:
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
---
|
|
44
|
+
sliceId: {{sliceId}}
|
|
45
|
+
uatType: {{uatType}}
|
|
46
|
+
verdict: PASS | FAIL | PARTIAL
|
|
47
|
+
date: <ISO 8601 timestamp>
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
# UAT Result — {{sliceId}}
|
|
51
|
+
|
|
52
|
+
## Checks
|
|
53
|
+
|
|
54
|
+
| Check | Result | Notes |
|
|
55
|
+
|-------|--------|-------|
|
|
56
|
+
| <check description> | PASS / FAIL | <observed output or reason> |
|
|
57
|
+
|
|
58
|
+
## Overall Verdict
|
|
59
|
+
|
|
60
|
+
<PASS / FAIL / PARTIAL> — <one sentence summary>
|
|
61
|
+
|
|
62
|
+
## Notes
|
|
63
|
+
|
|
64
|
+
<any additional context, errors encountered, or follow-up items>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### If UAT type is NOT `artifact-driven` (type is `{{uatType}}`)
|
|
68
|
+
|
|
69
|
+
This UAT type requires human execution or live-runtime observation that you cannot perform mechanically. Your role is to surface it clearly for review.
|
|
70
|
+
|
|
71
|
+
Write `{{uatResultAbsPath}}` with:
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
---
|
|
75
|
+
sliceId: {{sliceId}}
|
|
76
|
+
uatType: {{uatType}}
|
|
77
|
+
verdict: surfaced-for-human-review
|
|
78
|
+
date: <ISO 8601 timestamp>
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
# UAT Result — {{sliceId}}
|
|
82
|
+
|
|
83
|
+
## UAT Type
|
|
84
|
+
|
|
85
|
+
`{{uatType}}` — requires human execution or live-runtime verification.
|
|
86
|
+
|
|
87
|
+
## Status
|
|
88
|
+
|
|
89
|
+
Surfaced for human review. Auto-mode will pause after this unit so the UAT can be performed manually.
|
|
90
|
+
|
|
91
|
+
## UAT File
|
|
92
|
+
|
|
93
|
+
See `{{uatPath}}` for the full UAT specification and acceptance criteria.
|
|
94
|
+
|
|
95
|
+
## Instructions for Human Reviewer
|
|
96
|
+
|
|
97
|
+
Review `{{uatPath}}`, perform the described UAT steps, then update this file with:
|
|
98
|
+
- The actual verdict (PASS / FAIL / PARTIAL)
|
|
99
|
+
- Results for each check
|
|
100
|
+
- Date completed
|
|
101
|
+
|
|
102
|
+
Once updated, run `/gsd auto` to resume auto-mode.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
**You MUST write `{{uatResultAbsPath}}` before finishing.**
|
|
108
|
+
|
|
109
|
+
When done, say: "UAT {{sliceId}} complete."
|