gsd-remix 1.0.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 +939 -0
- package/README.zh-CN.md +876 -0
- package/agents/gsd-advisor-researcher.md +127 -0
- package/agents/gsd-ai-researcher.md +133 -0
- package/agents/gsd-assumptions-analyzer.md +105 -0
- package/agents/gsd-code-fixer.md +517 -0
- package/agents/gsd-code-reviewer.md +371 -0
- package/agents/gsd-codebase-mapper.md +781 -0
- package/agents/gsd-debug-session-manager.md +314 -0
- package/agents/gsd-debugger.md +1452 -0
- package/agents/gsd-doc-classifier.md +168 -0
- package/agents/gsd-doc-synthesizer.md +204 -0
- package/agents/gsd-doc-verifier.md +217 -0
- package/agents/gsd-doc-writer.md +615 -0
- package/agents/gsd-domain-researcher.md +153 -0
- package/agents/gsd-eval-auditor.md +191 -0
- package/agents/gsd-eval-planner.md +154 -0
- package/agents/gsd-executor.md +603 -0
- package/agents/gsd-framework-selector.md +160 -0
- package/agents/gsd-integration-checker.md +470 -0
- package/agents/gsd-intel-updater.md +334 -0
- package/agents/gsd-nyquist-auditor.md +203 -0
- package/agents/gsd-pattern-mapper.md +335 -0
- package/agents/gsd-phase-researcher.md +841 -0
- package/agents/gsd-plan-checker.md +978 -0
- package/agents/gsd-planner.md +1251 -0
- package/agents/gsd-project-researcher.md +677 -0
- package/agents/gsd-research-synthesizer.md +247 -0
- package/agents/gsd-roadmapper.md +688 -0
- package/agents/gsd-security-auditor.md +155 -0
- package/agents/gsd-ui-auditor.md +495 -0
- package/agents/gsd-ui-checker.md +309 -0
- package/agents/gsd-ui-researcher.md +380 -0
- package/agents/gsd-user-profiler.md +171 -0
- package/agents/gsd-verifier.md +830 -0
- package/bin/install.js +7062 -0
- package/commands/gsd/add-backlog.md +79 -0
- package/commands/gsd/add-phase.md +43 -0
- package/commands/gsd/add-tests.md +41 -0
- package/commands/gsd/add-todo.md +47 -0
- package/commands/gsd/ai-integration-phase.md +36 -0
- package/commands/gsd/analyze-dependencies.md +34 -0
- package/commands/gsd/audit-fix.md +33 -0
- package/commands/gsd/audit-milestone.md +36 -0
- package/commands/gsd/audit-uat.md +24 -0
- package/commands/gsd/autonomous.md +46 -0
- package/commands/gsd/check-todos.md +45 -0
- package/commands/gsd/cleanup.md +23 -0
- package/commands/gsd/code-review-fix.md +52 -0
- package/commands/gsd/code-review.md +55 -0
- package/commands/gsd/complete-milestone.md +136 -0
- package/commands/gsd/debug.md +263 -0
- package/commands/gsd/discuss-phase.md +69 -0
- package/commands/gsd/do.md +30 -0
- package/commands/gsd/docs-update.md +48 -0
- package/commands/gsd/eval-review.md +32 -0
- package/commands/gsd/execute-phase.md +63 -0
- package/commands/gsd/explore.md +27 -0
- package/commands/gsd/extract_learnings.md +22 -0
- package/commands/gsd/fast.md +30 -0
- package/commands/gsd/forensics.md +56 -0
- package/commands/gsd/from-gsd2.md +47 -0
- package/commands/gsd/graphify.md +201 -0
- package/commands/gsd/health.md +22 -0
- package/commands/gsd/help.md +24 -0
- package/commands/gsd/import.md +37 -0
- package/commands/gsd/inbox.md +38 -0
- package/commands/gsd/ingest-docs.md +42 -0
- package/commands/gsd/insert-phase.md +32 -0
- package/commands/gsd/intel.md +179 -0
- package/commands/gsd/join-discord.md +19 -0
- package/commands/gsd/list-phase-assumptions.md +46 -0
- package/commands/gsd/list-workspaces.md +19 -0
- package/commands/gsd/manager.md +40 -0
- package/commands/gsd/map-codebase.md +71 -0
- package/commands/gsd/milestone-summary.md +51 -0
- package/commands/gsd/new-milestone.md +44 -0
- package/commands/gsd/new-project.md +46 -0
- package/commands/gsd/new-workspace.md +44 -0
- package/commands/gsd/next.md +28 -0
- package/commands/gsd/note.md +34 -0
- package/commands/gsd/pause-work.md +38 -0
- package/commands/gsd/plan-milestone-gaps.md +34 -0
- package/commands/gsd/plan-phase.md +52 -0
- package/commands/gsd/plan-review-convergence.md +52 -0
- package/commands/gsd/plant-seed.md +28 -0
- package/commands/gsd/pr-branch.md +25 -0
- package/commands/gsd/profile-user.md +46 -0
- package/commands/gsd/progress.md +25 -0
- package/commands/gsd/quick.md +173 -0
- package/commands/gsd/reapply-patches.md +331 -0
- package/commands/gsd/remove-phase.md +31 -0
- package/commands/gsd/remove-workspace.md +26 -0
- package/commands/gsd/research-phase.md +195 -0
- package/commands/gsd/resume-work.md +40 -0
- package/commands/gsd/review-backlog.md +62 -0
- package/commands/gsd/review.md +40 -0
- package/commands/gsd/scan.md +26 -0
- package/commands/gsd/secure-phase.md +35 -0
- package/commands/gsd/session-report.md +19 -0
- package/commands/gsd/set-profile.md +12 -0
- package/commands/gsd/settings.md +36 -0
- package/commands/gsd/ship.md +23 -0
- package/commands/gsd/sketch-wrap-up.md +31 -0
- package/commands/gsd/sketch.md +49 -0
- package/commands/gsd/spec-phase.md +62 -0
- package/commands/gsd/spike-wrap-up.md +31 -0
- package/commands/gsd/spike.md +46 -0
- package/commands/gsd/stats.md +18 -0
- package/commands/gsd/sync-skills.md +19 -0
- package/commands/gsd/thread.md +227 -0
- package/commands/gsd/ui-phase.md +34 -0
- package/commands/gsd/ui-review.md +32 -0
- package/commands/gsd/ultraplan-phase.md +33 -0
- package/commands/gsd/undo.md +34 -0
- package/commands/gsd/update.md +37 -0
- package/commands/gsd/validate-phase.md +35 -0
- package/commands/gsd/verify-work.md +38 -0
- package/commands/gsd/workstreams.md +69 -0
- package/get-shit-done/bin/gsd-tools.cjs +1263 -0
- package/get-shit-done/bin/lib/artifacts.cjs +52 -0
- package/get-shit-done/bin/lib/audit.cjs +757 -0
- package/get-shit-done/bin/lib/commands.cjs +1023 -0
- package/get-shit-done/bin/lib/config-schema.cjs +79 -0
- package/get-shit-done/bin/lib/config.cjs +463 -0
- package/get-shit-done/bin/lib/core.cjs +1794 -0
- package/get-shit-done/bin/lib/docs.cjs +267 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +379 -0
- package/get-shit-done/bin/lib/graphify.cjs +494 -0
- package/get-shit-done/bin/lib/gsd2-import.cjs +511 -0
- package/get-shit-done/bin/lib/init.cjs +1878 -0
- package/get-shit-done/bin/lib/intel.cjs +639 -0
- package/get-shit-done/bin/lib/learnings.cjs +378 -0
- package/get-shit-done/bin/lib/milestone.cjs +283 -0
- package/get-shit-done/bin/lib/model-profiles.cjs +71 -0
- package/get-shit-done/bin/lib/phase.cjs +1058 -0
- package/get-shit-done/bin/lib/profile-output.cjs +1080 -0
- package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
- package/get-shit-done/bin/lib/roadmap.cjs +523 -0
- package/get-shit-done/bin/lib/schema-detect.cjs +238 -0
- package/get-shit-done/bin/lib/security.cjs +504 -0
- package/get-shit-done/bin/lib/state.cjs +1649 -0
- package/get-shit-done/bin/lib/template.cjs +226 -0
- package/get-shit-done/bin/lib/uat.cjs +288 -0
- package/get-shit-done/bin/lib/verify.cjs +1184 -0
- package/get-shit-done/bin/lib/workstream.cjs +495 -0
- package/get-shit-done/bin/repair-sdk.cjs +177 -0
- package/get-shit-done/contexts/dev.md +21 -0
- package/get-shit-done/contexts/research.md +22 -0
- package/get-shit-done/contexts/review.md +22 -0
- package/get-shit-done/references/agent-contracts.md +79 -0
- package/get-shit-done/references/ai-evals.md +156 -0
- package/get-shit-done/references/ai-frameworks.md +186 -0
- package/get-shit-done/references/artifact-types.md +131 -0
- package/get-shit-done/references/autonomous-smart-discuss.md +277 -0
- package/get-shit-done/references/checkpoints.md +808 -0
- package/get-shit-done/references/common-bug-patterns.md +114 -0
- package/get-shit-done/references/context-budget.md +49 -0
- package/get-shit-done/references/continuation-format.md +253 -0
- package/get-shit-done/references/debugger-philosophy.md +76 -0
- package/get-shit-done/references/decimal-phase-calculation.md +64 -0
- package/get-shit-done/references/doc-conflict-engine.md +91 -0
- package/get-shit-done/references/domain-probes.md +125 -0
- package/get-shit-done/references/executor-examples.md +110 -0
- package/get-shit-done/references/few-shot-examples/plan-checker.md +73 -0
- package/get-shit-done/references/few-shot-examples/verifier.md +109 -0
- package/get-shit-done/references/gate-prompts.md +100 -0
- package/get-shit-done/references/gates.md +70 -0
- package/get-shit-done/references/git-integration.md +295 -0
- package/get-shit-done/references/git-planning-commit.md +40 -0
- package/get-shit-done/references/ios-scaffold.md +123 -0
- package/get-shit-done/references/mandatory-initial-read.md +2 -0
- package/get-shit-done/references/model-profile-resolution.md +38 -0
- package/get-shit-done/references/model-profiles.md +145 -0
- package/get-shit-done/references/phase-argument-parsing.md +61 -0
- package/get-shit-done/references/planner-antipatterns.md +89 -0
- package/get-shit-done/references/planner-gap-closure.md +62 -0
- package/get-shit-done/references/planner-reviews.md +39 -0
- package/get-shit-done/references/planner-revision.md +87 -0
- package/get-shit-done/references/planner-source-audit.md +73 -0
- package/get-shit-done/references/planning-config.md +460 -0
- package/get-shit-done/references/project-skills-discovery.md +19 -0
- package/get-shit-done/references/questioning.md +162 -0
- package/get-shit-done/references/revision-loop.md +97 -0
- package/get-shit-done/references/sketch-interactivity.md +41 -0
- package/get-shit-done/references/sketch-theme-system.md +94 -0
- package/get-shit-done/references/sketch-tooling.md +45 -0
- package/get-shit-done/references/sketch-variant-patterns.md +81 -0
- package/get-shit-done/references/tdd.md +330 -0
- package/get-shit-done/references/thinking-models-debug.md +44 -0
- package/get-shit-done/references/thinking-models-execution.md +50 -0
- package/get-shit-done/references/thinking-models-planning.md +62 -0
- package/get-shit-done/references/thinking-models-research.md +50 -0
- package/get-shit-done/references/thinking-models-verification.md +55 -0
- package/get-shit-done/references/thinking-partner.md +96 -0
- package/get-shit-done/references/ui-brand.md +160 -0
- package/get-shit-done/references/universal-anti-patterns.md +63 -0
- package/get-shit-done/references/user-profiling.md +681 -0
- package/get-shit-done/references/verification-overrides.md +227 -0
- package/get-shit-done/references/verification-patterns.md +612 -0
- package/get-shit-done/references/workstream-flag.md +111 -0
- package/get-shit-done/templates/AI-SPEC.md +246 -0
- package/get-shit-done/templates/DEBUG.md +169 -0
- package/get-shit-done/templates/README.md +76 -0
- package/get-shit-done/templates/SECURITY.md +61 -0
- package/get-shit-done/templates/UAT.md +265 -0
- package/get-shit-done/templates/UI-SPEC.md +100 -0
- package/get-shit-done/templates/VALIDATION.md +76 -0
- package/get-shit-done/templates/claude-md.md +145 -0
- package/get-shit-done/templates/codebase/architecture.md +255 -0
- package/get-shit-done/templates/codebase/concerns.md +310 -0
- package/get-shit-done/templates/codebase/conventions.md +307 -0
- package/get-shit-done/templates/codebase/integrations.md +280 -0
- package/get-shit-done/templates/codebase/stack.md +186 -0
- package/get-shit-done/templates/codebase/structure.md +285 -0
- package/get-shit-done/templates/codebase/testing.md +480 -0
- package/get-shit-done/templates/config.json +56 -0
- package/get-shit-done/templates/context.md +352 -0
- package/get-shit-done/templates/continue-here.md +78 -0
- package/get-shit-done/templates/copilot-instructions.md +7 -0
- package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
- package/get-shit-done/templates/dev-preferences.md +21 -0
- package/get-shit-done/templates/discovery.md +146 -0
- package/get-shit-done/templates/discussion-log.md +63 -0
- package/get-shit-done/templates/milestone-archive.md +123 -0
- package/get-shit-done/templates/milestone.md +115 -0
- package/get-shit-done/templates/phase-prompt.md +610 -0
- package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
- package/get-shit-done/templates/project.md +186 -0
- package/get-shit-done/templates/requirements.md +231 -0
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
- package/get-shit-done/templates/research-project/FEATURES.md +147 -0
- package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
- package/get-shit-done/templates/research-project/STACK.md +120 -0
- package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
- package/get-shit-done/templates/research.md +592 -0
- package/get-shit-done/templates/retrospective.md +54 -0
- package/get-shit-done/templates/roadmap.md +202 -0
- package/get-shit-done/templates/spec.md +307 -0
- package/get-shit-done/templates/state.md +184 -0
- package/get-shit-done/templates/summary-complex.md +59 -0
- package/get-shit-done/templates/summary-minimal.md +41 -0
- package/get-shit-done/templates/summary-standard.md +48 -0
- package/get-shit-done/templates/summary.md +248 -0
- package/get-shit-done/templates/user-profile.md +146 -0
- package/get-shit-done/templates/user-setup.md +311 -0
- package/get-shit-done/templates/verification-report.md +322 -0
- package/get-shit-done/workflows/add-phase.md +112 -0
- package/get-shit-done/workflows/add-tests.md +354 -0
- package/get-shit-done/workflows/add-todo.md +160 -0
- package/get-shit-done/workflows/ai-integration-phase.md +284 -0
- package/get-shit-done/workflows/analyze-dependencies.md +96 -0
- package/get-shit-done/workflows/audit-fix.md +175 -0
- package/get-shit-done/workflows/audit-milestone.md +340 -0
- package/get-shit-done/workflows/audit-uat.md +109 -0
- package/get-shit-done/workflows/autonomous.md +789 -0
- package/get-shit-done/workflows/check-todos.md +179 -0
- package/get-shit-done/workflows/cleanup.md +154 -0
- package/get-shit-done/workflows/code-review-fix.md +497 -0
- package/get-shit-done/workflows/code-review.md +515 -0
- package/get-shit-done/workflows/complete-milestone.md +847 -0
- package/get-shit-done/workflows/diagnose-issues.md +238 -0
- package/get-shit-done/workflows/discovery-phase.md +291 -0
- package/get-shit-done/workflows/discuss-phase-assumptions.md +670 -0
- package/get-shit-done/workflows/discuss-phase-power.md +308 -0
- package/get-shit-done/workflows/discuss-phase.md +1378 -0
- package/get-shit-done/workflows/do.md +110 -0
- package/get-shit-done/workflows/docs-update.md +1155 -0
- package/get-shit-done/workflows/eval-review.md +155 -0
- package/get-shit-done/workflows/execute-phase.md +1677 -0
- package/get-shit-done/workflows/execute-plan.md +533 -0
- package/get-shit-done/workflows/explore.md +141 -0
- package/get-shit-done/workflows/extract_learnings.md +242 -0
- package/get-shit-done/workflows/fast.md +105 -0
- package/get-shit-done/workflows/forensics.md +265 -0
- package/get-shit-done/workflows/graduation.md +195 -0
- package/get-shit-done/workflows/health.md +314 -0
- package/get-shit-done/workflows/help.md +667 -0
- package/get-shit-done/workflows/import.md +246 -0
- package/get-shit-done/workflows/inbox.md +387 -0
- package/get-shit-done/workflows/ingest-docs.md +328 -0
- package/get-shit-done/workflows/insert-phase.md +130 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/list-workspaces.md +56 -0
- package/get-shit-done/workflows/manager.md +365 -0
- package/get-shit-done/workflows/map-codebase.md +393 -0
- package/get-shit-done/workflows/milestone-summary.md +223 -0
- package/get-shit-done/workflows/new-milestone.md +611 -0
- package/get-shit-done/workflows/new-project.md +1391 -0
- package/get-shit-done/workflows/new-workspace.md +239 -0
- package/get-shit-done/workflows/next.md +220 -0
- package/get-shit-done/workflows/node-repair.md +92 -0
- package/get-shit-done/workflows/note.md +158 -0
- package/get-shit-done/workflows/pause-work.md +243 -0
- package/get-shit-done/workflows/plan-milestone-gaps.md +273 -0
- package/get-shit-done/workflows/plan-phase.md +1349 -0
- package/get-shit-done/workflows/plan-review-convergence.md +254 -0
- package/get-shit-done/workflows/plant-seed.md +172 -0
- package/get-shit-done/workflows/pr-branch.md +157 -0
- package/get-shit-done/workflows/profile-user.md +452 -0
- package/get-shit-done/workflows/progress.md +619 -0
- package/get-shit-done/workflows/quick.md +970 -0
- package/get-shit-done/workflows/remove-phase.md +155 -0
- package/get-shit-done/workflows/remove-workspace.md +92 -0
- package/get-shit-done/workflows/research-phase.md +89 -0
- package/get-shit-done/workflows/resume-project.md +326 -0
- package/get-shit-done/workflows/review.md +344 -0
- package/get-shit-done/workflows/scan.md +102 -0
- package/get-shit-done/workflows/secure-phase.md +166 -0
- package/get-shit-done/workflows/session-report.md +146 -0
- package/get-shit-done/workflows/settings.md +319 -0
- package/get-shit-done/workflows/ship.md +302 -0
- package/get-shit-done/workflows/sketch-wrap-up.md +283 -0
- package/get-shit-done/workflows/sketch.md +286 -0
- package/get-shit-done/workflows/spec-phase.md +262 -0
- package/get-shit-done/workflows/spike-wrap-up.md +281 -0
- package/get-shit-done/workflows/spike.md +362 -0
- package/get-shit-done/workflows/stats.md +60 -0
- package/get-shit-done/workflows/sync-skills.md +182 -0
- package/get-shit-done/workflows/transition.md +693 -0
- package/get-shit-done/workflows/ui-phase.md +323 -0
- package/get-shit-done/workflows/ui-review.md +190 -0
- package/get-shit-done/workflows/ultraplan-phase.md +189 -0
- package/get-shit-done/workflows/undo.md +314 -0
- package/get-shit-done/workflows/update.md +587 -0
- package/get-shit-done/workflows/validate-phase.md +176 -0
- package/get-shit-done/workflows/verify-phase.md +465 -0
- package/get-shit-done/workflows/verify-work.md +740 -0
- package/hooks/dist/gsd-check-update-worker.js +108 -0
- package/hooks/dist/gsd-check-update.js +64 -0
- package/hooks/dist/gsd-context-monitor.js +192 -0
- package/hooks/dist/gsd-phase-boundary.sh +28 -0
- package/hooks/dist/gsd-prompt-guard.js +97 -0
- package/hooks/dist/gsd-read-guard.js +82 -0
- package/hooks/dist/gsd-read-injection-scanner.js +152 -0
- package/hooks/dist/gsd-session-state.sh +34 -0
- package/hooks/dist/gsd-statusline.js +293 -0
- package/hooks/dist/gsd-validate-commit.sh +48 -0
- package/hooks/dist/gsd-workflow-guard.js +94 -0
- package/hooks/gsd-check-update-worker.js +108 -0
- package/hooks/gsd-check-update.js +64 -0
- package/hooks/gsd-context-monitor.js +192 -0
- package/hooks/gsd-phase-boundary.sh +28 -0
- package/hooks/gsd-prompt-guard.js +97 -0
- package/hooks/gsd-read-guard.js +82 -0
- package/hooks/gsd-read-injection-scanner.js +152 -0
- package/hooks/gsd-session-state.sh +34 -0
- package/hooks/gsd-statusline.js +293 -0
- package/hooks/gsd-validate-commit.sh +48 -0
- package/hooks/gsd-workflow-guard.js +94 -0
- package/package.json +59 -0
- package/scripts/base64-scan.sh +262 -0
- package/scripts/build-hooks.js +95 -0
- package/scripts/gen-inventory-manifest.cjs +109 -0
- package/scripts/prompt-injection-scan.sh +201 -0
- package/scripts/run-tests.cjs +33 -0
- package/scripts/secret-scan.sh +227 -0
- package/sdk/package-lock.json +1998 -0
- package/sdk/package.json +52 -0
- package/sdk/prompts/agents/gsd-executor.md +110 -0
- package/sdk/prompts/agents/gsd-phase-researcher.md +158 -0
- package/sdk/prompts/agents/gsd-plan-checker.md +160 -0
- package/sdk/prompts/agents/gsd-planner.md +214 -0
- package/sdk/prompts/agents/gsd-project-researcher.md +323 -0
- package/sdk/prompts/agents/gsd-research-synthesizer.md +237 -0
- package/sdk/prompts/agents/gsd-roadmapper.md +670 -0
- package/sdk/prompts/agents/gsd-verifier.md +159 -0
- package/sdk/prompts/templates/project.md +186 -0
- package/sdk/prompts/templates/requirements.md +231 -0
- package/sdk/prompts/templates/research-project/ARCHITECTURE.md +204 -0
- package/sdk/prompts/templates/research-project/FEATURES.md +147 -0
- package/sdk/prompts/templates/research-project/PITFALLS.md +200 -0
- package/sdk/prompts/templates/research-project/STACK.md +120 -0
- package/sdk/prompts/templates/research-project/SUMMARY.md +170 -0
- package/sdk/prompts/templates/roadmap.md +202 -0
- package/sdk/prompts/templates/state.md +175 -0
- package/sdk/prompts/workflows/discuss-phase.md +126 -0
- package/sdk/prompts/workflows/execute-plan.md +106 -0
- package/sdk/prompts/workflows/plan-phase.md +84 -0
- package/sdk/prompts/workflows/research-phase.md +45 -0
- package/sdk/prompts/workflows/verify-phase.md +142 -0
- package/sdk/src/assembled-prompts.test.ts +349 -0
- package/sdk/src/cli-transport.test.ts +388 -0
- package/sdk/src/cli-transport.ts +130 -0
- package/sdk/src/cli.test.ts +383 -0
- package/sdk/src/cli.ts +670 -0
- package/sdk/src/config.test.ts +168 -0
- package/sdk/src/config.ts +177 -0
- package/sdk/src/context-engine.test.ts +295 -0
- package/sdk/src/context-engine.ts +170 -0
- package/sdk/src/context-truncation.test.ts +163 -0
- package/sdk/src/context-truncation.ts +233 -0
- package/sdk/src/e2e.integration.test.ts +178 -0
- package/sdk/src/errors.ts +72 -0
- package/sdk/src/event-stream.test.ts +661 -0
- package/sdk/src/event-stream.ts +441 -0
- package/sdk/src/failure-memory.test.ts +457 -0
- package/sdk/src/failure-memory.ts +1324 -0
- package/sdk/src/golden/capture.ts +95 -0
- package/sdk/src/golden/fixtures/generate-slug.golden.json +1 -0
- package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +3 -0
- package/sdk/src/golden/fixtures/summary-extract-sample.md +26 -0
- package/sdk/src/golden/fixtures/uat-render-checkpoint-sample.md +15 -0
- package/sdk/src/golden/golden-integration-covered.ts +30 -0
- package/sdk/src/golden/golden-mutation-covered.ts +7 -0
- package/sdk/src/golden/golden-policy.test.ts +8 -0
- package/sdk/src/golden/golden-policy.ts +112 -0
- package/sdk/src/golden/golden.integration.test.ts +373 -0
- package/sdk/src/golden/init-golden-normalize.ts +15 -0
- package/sdk/src/golden/read-only-golden-rows.ts +77 -0
- package/sdk/src/golden/read-only-parity.integration.test.ts +125 -0
- package/sdk/src/golden/registry-canonical-commands.ts +31 -0
- package/sdk/src/gsd-tools.test.ts +409 -0
- package/sdk/src/gsd-tools.ts +595 -0
- package/sdk/src/headless-prompts.test.ts +159 -0
- package/sdk/src/index.ts +333 -0
- package/sdk/src/init-e2e.integration.test.ts +136 -0
- package/sdk/src/init-runner.test.ts +783 -0
- package/sdk/src/init-runner.ts +735 -0
- package/sdk/src/lifecycle-e2e.integration.test.ts +258 -0
- package/sdk/src/logger.test.ts +149 -0
- package/sdk/src/logger.ts +113 -0
- package/sdk/src/milestone-runner.test.ts +421 -0
- package/sdk/src/phase-prompt.test.ts +538 -0
- package/sdk/src/phase-prompt.ts +264 -0
- package/sdk/src/phase-runner-types.test.ts +421 -0
- package/sdk/src/phase-runner.integration.test.ts +377 -0
- package/sdk/src/phase-runner.test.ts +2333 -0
- package/sdk/src/phase-runner.ts +1203 -0
- package/sdk/src/plan-parser.test.ts +528 -0
- package/sdk/src/plan-parser.ts +427 -0
- package/sdk/src/prompt-builder.test.ts +306 -0
- package/sdk/src/prompt-builder.ts +193 -0
- package/sdk/src/prompt-sanitizer.test.ts +260 -0
- package/sdk/src/prompt-sanitizer.ts +71 -0
- package/sdk/src/query/QUERY-HANDLERS.md +317 -0
- package/sdk/src/query/audit-open.ts +722 -0
- package/sdk/src/query/check-auto-mode.test.ts +77 -0
- package/sdk/src/query/check-auto-mode.ts +50 -0
- package/sdk/src/query/check-completion.test.ts +113 -0
- package/sdk/src/query/check-completion.ts +182 -0
- package/sdk/src/query/check-gates.test.ts +103 -0
- package/sdk/src/query/check-gates.ts +112 -0
- package/sdk/src/query/check-ship-ready.test.ts +77 -0
- package/sdk/src/query/check-ship-ready.ts +103 -0
- package/sdk/src/query/check-verification-status.test.ts +143 -0
- package/sdk/src/query/check-verification-status.ts +160 -0
- package/sdk/src/query/commit.test.ts +202 -0
- package/sdk/src/query/commit.ts +301 -0
- package/sdk/src/query/config-gates.test.ts +89 -0
- package/sdk/src/query/config-gates.ts +69 -0
- package/sdk/src/query/config-mutation.test.ts +365 -0
- package/sdk/src/query/config-mutation.ts +497 -0
- package/sdk/src/query/config-query.test.ts +161 -0
- package/sdk/src/query/config-query.ts +190 -0
- package/sdk/src/query/context-history.test.ts +165 -0
- package/sdk/src/query/context-history.ts +467 -0
- package/sdk/src/query/decomposed-handlers.test.ts +365 -0
- package/sdk/src/query/detect-custom-files.ts +97 -0
- package/sdk/src/query/detect-phase-type.test.ts +105 -0
- package/sdk/src/query/detect-phase-type.ts +141 -0
- package/sdk/src/query/docs-init.ts +257 -0
- package/sdk/src/query/failure-capture.ts +58 -0
- package/sdk/src/query/frontmatter-array.test.ts +14 -0
- package/sdk/src/query/frontmatter-mutation.test.ts +259 -0
- package/sdk/src/query/frontmatter-mutation.ts +343 -0
- package/sdk/src/query/frontmatter.test.ts +281 -0
- package/sdk/src/query/frontmatter.ts +397 -0
- package/sdk/src/query/helpers.test.ts +426 -0
- package/sdk/src/query/helpers.ts +482 -0
- package/sdk/src/query/index.ts +586 -0
- package/sdk/src/query/init-complex.test.ts +232 -0
- package/sdk/src/query/init-complex.ts +578 -0
- package/sdk/src/query/init.test.ts +522 -0
- package/sdk/src/query/init.ts +1046 -0
- package/sdk/src/query/intel.test.ts +90 -0
- package/sdk/src/query/intel.ts +404 -0
- package/sdk/src/query/normalize-query-command.test.ts +50 -0
- package/sdk/src/query/normalize-query-command.ts +56 -0
- package/sdk/src/query/phase-lifecycle.test.ts +1126 -0
- package/sdk/src/query/phase-lifecycle.ts +1799 -0
- package/sdk/src/query/phase-list-queries.test.ts +88 -0
- package/sdk/src/query/phase-list-queries.ts +152 -0
- package/sdk/src/query/phase-ready.test.ts +65 -0
- package/sdk/src/query/phase-ready.ts +158 -0
- package/sdk/src/query/phase.test.ts +307 -0
- package/sdk/src/query/phase.ts +340 -0
- package/sdk/src/query/pipeline.test.ts +169 -0
- package/sdk/src/query/pipeline.ts +243 -0
- package/sdk/src/query/plan-execution-route.test.ts +166 -0
- package/sdk/src/query/plan-execution-route.ts +209 -0
- package/sdk/src/query/plan-task-structure.test.ts +65 -0
- package/sdk/src/query/plan-task-structure.ts +63 -0
- package/sdk/src/query/profile-extract-messages.ts +247 -0
- package/sdk/src/query/profile-output.ts +908 -0
- package/sdk/src/query/profile-questionnaire-data.ts +181 -0
- package/sdk/src/query/profile-sample.ts +184 -0
- package/sdk/src/query/profile-scan-sessions.ts +174 -0
- package/sdk/src/query/profile.test.ts +74 -0
- package/sdk/src/query/profile.ts +337 -0
- package/sdk/src/query/progress.test.ts +156 -0
- package/sdk/src/query/progress.ts +566 -0
- package/sdk/src/query/registry.test.ts +216 -0
- package/sdk/src/query/registry.ts +174 -0
- package/sdk/src/query/requirements-extract-from-plans.test.ts +58 -0
- package/sdk/src/query/requirements-extract-from-plans.ts +86 -0
- package/sdk/src/query/roadmap-update-plan-progress.ts +132 -0
- package/sdk/src/query/roadmap.test.ts +359 -0
- package/sdk/src/query/roadmap.ts +591 -0
- package/sdk/src/query/route-next-action.test.ts +61 -0
- package/sdk/src/query/route-next-action.ts +345 -0
- package/sdk/src/query/runtime-health.ts +7 -0
- package/sdk/src/query/schema-detect.ts +189 -0
- package/sdk/src/query/skill-manifest.ts +214 -0
- package/sdk/src/query/skills.test.ts +80 -0
- package/sdk/src/query/skills.ts +62 -0
- package/sdk/src/query/state-mutation.test.ts +450 -0
- package/sdk/src/query/state-mutation.ts +1444 -0
- package/sdk/src/query/state-project-load.ts +109 -0
- package/sdk/src/query/state.test.ts +347 -0
- package/sdk/src/query/state.ts +397 -0
- package/sdk/src/query/summary.test.ts +95 -0
- package/sdk/src/query/summary.ts +296 -0
- package/sdk/src/query/template.test.ts +180 -0
- package/sdk/src/query/template.ts +242 -0
- package/sdk/src/query/uat.test.ts +77 -0
- package/sdk/src/query/uat.ts +314 -0
- package/sdk/src/query/utils.test.ts +82 -0
- package/sdk/src/query/utils.ts +92 -0
- package/sdk/src/query/validate.test.ts +656 -0
- package/sdk/src/query/validate.ts +807 -0
- package/sdk/src/query/verify.test.ts +414 -0
- package/sdk/src/query/verify.ts +645 -0
- package/sdk/src/query/websearch.test.ts +31 -0
- package/sdk/src/query/websearch.ts +82 -0
- package/sdk/src/query/workspace.test.ts +119 -0
- package/sdk/src/query/workspace.ts +131 -0
- package/sdk/src/query/workstream.test.ts +51 -0
- package/sdk/src/query/workstream.ts +434 -0
- package/sdk/src/research-gate.test.ts +190 -0
- package/sdk/src/research-gate.ts +94 -0
- package/sdk/src/runtime-health.test.ts +176 -0
- package/sdk/src/runtime-health.ts +387 -0
- package/sdk/src/session-runner.test.ts +98 -0
- package/sdk/src/session-runner.ts +299 -0
- package/sdk/src/tool-scoping.test.ts +160 -0
- package/sdk/src/tool-scoping.ts +61 -0
- package/sdk/src/types.ts +917 -0
- package/sdk/src/workstream-utils.ts +33 -0
- package/sdk/src/ws-flag.test.ts +285 -0
- package/sdk/src/ws-transport.test.ts +161 -0
- package/sdk/src/ws-transport.ts +93 -0
- package/sdk/tsconfig.json +20 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Create a pull request from completed phase/milestone work, generate a rich PR body from planning artifacts, optionally run code review, and prepare for merge. Closes the plan → execute → verify → ship loop.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="initialize">
|
|
12
|
+
Parse arguments and load project state:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
INIT=$(gsd-remix-sdk query init.phase-op "${PHASE_ARG}")
|
|
16
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Parse from init JSON: `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `padded_phase`, `commit_docs`.
|
|
20
|
+
|
|
21
|
+
Also load config for branching strategy:
|
|
22
|
+
```bash
|
|
23
|
+
CONFIG=$(gsd-remix-sdk query state.load)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Extract: `branching_strategy`, `branch_name`.
|
|
27
|
+
|
|
28
|
+
Detect base branch for PRs and merges:
|
|
29
|
+
```bash
|
|
30
|
+
BASE_BRANCH=$(gsd-remix-sdk query config-get git.base_branch 2>/dev/null || echo "")
|
|
31
|
+
if [ -z "$BASE_BRANCH" ] || [ "$BASE_BRANCH" = "null" ]; then
|
|
32
|
+
BASE_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|^refs/remotes/origin/||')
|
|
33
|
+
BASE_BRANCH="${BASE_BRANCH:-main}"
|
|
34
|
+
fi
|
|
35
|
+
```
|
|
36
|
+
</step>
|
|
37
|
+
|
|
38
|
+
<step name="preflight_checks">
|
|
39
|
+
Verify the work is ready to ship:
|
|
40
|
+
|
|
41
|
+
1. **Verification passed?**
|
|
42
|
+
```bash
|
|
43
|
+
VERIFICATION=$(cat ${PHASE_DIR}/*-VERIFICATION.md 2>/dev/null)
|
|
44
|
+
```
|
|
45
|
+
Check for `status: passed` or `status: human_needed` (with human approval).
|
|
46
|
+
If no VERIFICATION.md or status is `gaps_found`: warn and ask user to confirm.
|
|
47
|
+
|
|
48
|
+
2. **Clean working tree?**
|
|
49
|
+
```bash
|
|
50
|
+
git status --short
|
|
51
|
+
```
|
|
52
|
+
If uncommitted changes exist: ask user to commit or stash first.
|
|
53
|
+
|
|
54
|
+
3. **On correct branch?**
|
|
55
|
+
```bash
|
|
56
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
57
|
+
```
|
|
58
|
+
If on `${BASE_BRANCH}`: warn — should be on a feature branch.
|
|
59
|
+
If branching_strategy is `none`: offer to create a branch now.
|
|
60
|
+
|
|
61
|
+
4. **Remote configured?**
|
|
62
|
+
```bash
|
|
63
|
+
git remote -v | head -2
|
|
64
|
+
```
|
|
65
|
+
Detect `origin` remote. If no remote: error — can't create PR.
|
|
66
|
+
|
|
67
|
+
5. **`gh` CLI available?**
|
|
68
|
+
```bash
|
|
69
|
+
which gh && gh auth status 2>&1
|
|
70
|
+
```
|
|
71
|
+
If `gh` not found or not authenticated: provide setup instructions and exit.
|
|
72
|
+
</step>
|
|
73
|
+
|
|
74
|
+
<step name="push_branch">
|
|
75
|
+
Push the current branch to remote:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
git push origin ${CURRENT_BRANCH} 2>&1
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
If push fails (e.g., no upstream): set upstream:
|
|
82
|
+
```bash
|
|
83
|
+
git push --set-upstream origin ${CURRENT_BRANCH} 2>&1
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Report: "Pushed `{branch}` to origin ({commit_count} commits ahead of ${BASE_BRANCH})"
|
|
87
|
+
</step>
|
|
88
|
+
|
|
89
|
+
<step name="generate_pr_body">
|
|
90
|
+
Auto-generate a rich PR body from planning artifacts:
|
|
91
|
+
|
|
92
|
+
**1. Title:**
|
|
93
|
+
```
|
|
94
|
+
Phase {phase_number}: {phase_name}
|
|
95
|
+
```
|
|
96
|
+
Or for milestone: `Milestone {version}: {name}`
|
|
97
|
+
|
|
98
|
+
**2. Summary section:**
|
|
99
|
+
Read ROADMAP.md for phase goal. Read VERIFICATION.md for verification status.
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
## Summary
|
|
103
|
+
|
|
104
|
+
**Phase {N}: {Name}**
|
|
105
|
+
**Goal:** {goal from ROADMAP.md}
|
|
106
|
+
**Status:** Verified ✓
|
|
107
|
+
|
|
108
|
+
{One paragraph synthesized from SUMMARY.md files — what was built}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**3. Changes section:**
|
|
112
|
+
For each SUMMARY.md in the phase directory:
|
|
113
|
+
```markdown
|
|
114
|
+
## Changes
|
|
115
|
+
|
|
116
|
+
### Plan {plan_id}: {plan_name}
|
|
117
|
+
{one_liner from SUMMARY.md frontmatter}
|
|
118
|
+
|
|
119
|
+
**Key files:**
|
|
120
|
+
{key-files.created and key-files.modified from SUMMARY.md frontmatter}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**4. Requirements section:**
|
|
124
|
+
```markdown
|
|
125
|
+
## Requirements Addressed
|
|
126
|
+
|
|
127
|
+
{REQ-IDs from plan frontmatter, linked to REQUIREMENTS.md descriptions}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**5. Testing section:**
|
|
131
|
+
```markdown
|
|
132
|
+
## Verification
|
|
133
|
+
|
|
134
|
+
- [x] Automated verification: {pass/fail from VERIFICATION.md}
|
|
135
|
+
- {human verification items from VERIFICATION.md, if any}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**6. Decisions section:**
|
|
139
|
+
```markdown
|
|
140
|
+
## Key Decisions
|
|
141
|
+
|
|
142
|
+
{Decisions from STATE.md accumulated context relevant to this phase}
|
|
143
|
+
```
|
|
144
|
+
</step>
|
|
145
|
+
|
|
146
|
+
<step name="create_pr">
|
|
147
|
+
Create the PR using the generated body:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
gh pr create \
|
|
151
|
+
--title "Phase ${PHASE_NUMBER}: ${PHASE_NAME}" \
|
|
152
|
+
--body "${PR_BODY}" \
|
|
153
|
+
--base ${BASE_BRANCH}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If `--draft` flag was passed: add `--draft`.
|
|
157
|
+
|
|
158
|
+
Report: "PR #{number} created: {url}"
|
|
159
|
+
</step>
|
|
160
|
+
|
|
161
|
+
<step name="optional_review">
|
|
162
|
+
|
|
163
|
+
**External code review command (automated sub-step):**
|
|
164
|
+
|
|
165
|
+
Before prompting the user, check if an external review command is configured:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
REVIEW_CMD=$(gsd-remix-sdk query config-get workflow.code_review_command 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
If `REVIEW_CMD` is non-empty and not `"null"`, run the external review:
|
|
172
|
+
|
|
173
|
+
1. **Generate diff and stats:**
|
|
174
|
+
```bash
|
|
175
|
+
DIFF=$(git diff ${BASE_BRANCH}...HEAD)
|
|
176
|
+
DIFF_STATS=$(git diff --stat ${BASE_BRANCH}...HEAD)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
2. **Load phase context from STATE.md:**
|
|
180
|
+
```bash
|
|
181
|
+
STATE_STATUS=$(gsd-remix-sdk query state.load 2>/dev/null | head -20)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
3. **Build review prompt and pipe to command via stdin:**
|
|
185
|
+
Construct a review prompt containing the diff, diff stats, and phase context, then pipe it to the configured command:
|
|
186
|
+
```bash
|
|
187
|
+
REVIEW_PROMPT="You are reviewing a pull request.\n\nDiff stats:\n${DIFF_STATS}\n\nPhase context:\n${STATE_STATUS}\n\nFull diff:\n${DIFF}\n\nRespond with JSON: { \"verdict\": \"APPROVED\" or \"REVISE\", \"confidence\": 0-100, \"summary\": \"...\", \"issues\": [{\"severity\": \"...\", \"file\": \"...\", \"line_range\": \"...\", \"description\": \"...\", \"suggestion\": \"...\"}] }"
|
|
188
|
+
REVIEW_OUTPUT=$(echo "${REVIEW_PROMPT}" | timeout 120 ${REVIEW_CMD} 2>/tmp/gsd-review-stderr.log)
|
|
189
|
+
REVIEW_EXIT=$?
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
4. **Handle timeout (120s) and failure:**
|
|
193
|
+
If `REVIEW_EXIT` is non-zero or the command times out:
|
|
194
|
+
```bash
|
|
195
|
+
if [ $REVIEW_EXIT -ne 0 ]; then
|
|
196
|
+
REVIEW_STDERR=$(cat /tmp/gsd-review-stderr.log 2>/dev/null)
|
|
197
|
+
echo "WARNING: External review command failed (exit ${REVIEW_EXIT}). stderr: ${REVIEW_STDERR}"
|
|
198
|
+
echo "Continuing with manual review flow..."
|
|
199
|
+
fi
|
|
200
|
+
```
|
|
201
|
+
On failure, warn with stderr output and fall through to the manual review flow below.
|
|
202
|
+
|
|
203
|
+
5. **Parse JSON result:**
|
|
204
|
+
If the command succeeded, parse the JSON output and report the verdict:
|
|
205
|
+
```bash
|
|
206
|
+
# Parse verdict and summary from REVIEW_OUTPUT JSON
|
|
207
|
+
VERDICT=$(echo "${REVIEW_OUTPUT}" | node -e "
|
|
208
|
+
let d=''; process.stdin.on('data',c=>d+=c); process.stdin.on('end',()=>{
|
|
209
|
+
try { const r=JSON.parse(d); console.log(r.verdict); }
|
|
210
|
+
catch(e) { console.log('INVALID_JSON'); }
|
|
211
|
+
});
|
|
212
|
+
")
|
|
213
|
+
```
|
|
214
|
+
- If `verdict` is `"APPROVED"`: report approval with confidence and summary.
|
|
215
|
+
- If `verdict` is `"REVISE"`: report issues found, list each issue with severity, file, line_range, description, and suggestion.
|
|
216
|
+
- If JSON is invalid (`INVALID_JSON`): warn "External review returned invalid JSON" with stderr and continue.
|
|
217
|
+
|
|
218
|
+
Regardless of the external review result, fall through to the manual review options below.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
**Manual review options:**
|
|
223
|
+
|
|
224
|
+
Ask if user wants to trigger a code review:
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
**Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `AskUserQuestion` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available.
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
AskUserQuestion:
|
|
231
|
+
question: "PR created. Run a code review before merge?"
|
|
232
|
+
options:
|
|
233
|
+
- label: "Skip review"
|
|
234
|
+
description: "PR is ready — merge when CI passes"
|
|
235
|
+
- label: "Self-review"
|
|
236
|
+
description: "I'll review the diff in the PR myself"
|
|
237
|
+
- label: "Request review"
|
|
238
|
+
description: "Request review from a teammate"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**If "Request review":**
|
|
242
|
+
```bash
|
|
243
|
+
gh pr edit ${PR_NUMBER} --add-reviewer "${REVIEWER}"
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**If "Self-review":**
|
|
247
|
+
Report the PR URL and suggest: "Review the diff at {url}/files"
|
|
248
|
+
</step>
|
|
249
|
+
|
|
250
|
+
<step name="track_shipping">
|
|
251
|
+
Update STATE.md to reflect the shipping action:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
gsd-remix-sdk query state.update "Last Activity" "$(date +%Y-%m-%d)"
|
|
255
|
+
gsd-remix-sdk query state.update "Status" "Phase ${PHASE_NUMBER} shipped — PR #${PR_NUMBER}"
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
If `commit_docs` is true:
|
|
259
|
+
```bash
|
|
260
|
+
gsd-remix-sdk query commit "docs(${padded_phase}): ship phase ${PHASE_NUMBER} — PR #${PR_NUMBER}" .planning/STATE.md
|
|
261
|
+
```
|
|
262
|
+
</step>
|
|
263
|
+
|
|
264
|
+
<step name="report">
|
|
265
|
+
```
|
|
266
|
+
───────────────────────────────────────────────────────────────
|
|
267
|
+
|
|
268
|
+
## ✓ Phase {X}: {Name} — Shipped
|
|
269
|
+
|
|
270
|
+
PR: #{number} ({url})
|
|
271
|
+
Branch: {branch} → ${BASE_BRANCH}
|
|
272
|
+
Commits: {count}
|
|
273
|
+
Verification: ✓ Passed
|
|
274
|
+
Requirements: {N} REQ-IDs addressed
|
|
275
|
+
|
|
276
|
+
Next steps:
|
|
277
|
+
- Review/approve PR
|
|
278
|
+
- Merge when CI passes
|
|
279
|
+
- /gsd-complete-milestone (if last phase in milestone)
|
|
280
|
+
- /gsd-progress (to see what's next)
|
|
281
|
+
|
|
282
|
+
───────────────────────────────────────────────────────────────
|
|
283
|
+
```
|
|
284
|
+
</step>
|
|
285
|
+
|
|
286
|
+
</process>
|
|
287
|
+
|
|
288
|
+
<offer_next>
|
|
289
|
+
After shipping:
|
|
290
|
+
|
|
291
|
+
- /gsd-complete-milestone — if all phases in milestone are done
|
|
292
|
+
- /gsd-progress — see overall project state
|
|
293
|
+
- /gsd-execute-phase {next} — continue to next phase
|
|
294
|
+
</offer_next>
|
|
295
|
+
|
|
296
|
+
<success_criteria>
|
|
297
|
+
- [ ] Preflight checks passed (verification, clean tree, branch, remote, gh)
|
|
298
|
+
- [ ] Branch pushed to remote
|
|
299
|
+
- [ ] PR created with rich auto-generated body
|
|
300
|
+
- [ ] STATE.md updated with shipping status
|
|
301
|
+
- [ ] User knows PR number and next steps
|
|
302
|
+
</success_criteria>
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Curate sketch design findings and package them into a persistent project skill for future
|
|
3
|
+
UI implementation. Reads from `.planning/sketches/`, writes skill to `./.claude/skills/sketch-findings-[project]/`
|
|
4
|
+
(project-local) and summary to `.planning/sketches/WRAP-UP-SUMMARY.md`.
|
|
5
|
+
Companion to `/gsd-sketch`.
|
|
6
|
+
</purpose>
|
|
7
|
+
|
|
8
|
+
<required_reading>
|
|
9
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
10
|
+
</required_reading>
|
|
11
|
+
|
|
12
|
+
<process>
|
|
13
|
+
|
|
14
|
+
<step name="banner">
|
|
15
|
+
```
|
|
16
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
17
|
+
GSD ► SKETCH WRAP-UP
|
|
18
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
|
+
```
|
|
20
|
+
</step>
|
|
21
|
+
|
|
22
|
+
<step name="gather">
|
|
23
|
+
## Gather Sketch Inventory
|
|
24
|
+
|
|
25
|
+
1. Read `.planning/sketches/MANIFEST.md` for the design direction and reference points
|
|
26
|
+
2. Glob `.planning/sketches/*/README.md` and parse YAML frontmatter from each
|
|
27
|
+
3. Check if `./.claude/skills/sketch-findings-*/SKILL.md` exists for this project
|
|
28
|
+
- If yes: read its `processed_sketches` list and filter those out
|
|
29
|
+
- If no: all sketches are candidates
|
|
30
|
+
|
|
31
|
+
If no unprocessed sketches exist:
|
|
32
|
+
```
|
|
33
|
+
No unprocessed sketches found in `.planning/sketches/`.
|
|
34
|
+
Run `/gsd-sketch` first to create design explorations.
|
|
35
|
+
```
|
|
36
|
+
Exit.
|
|
37
|
+
|
|
38
|
+
Check `commit_docs` config:
|
|
39
|
+
```bash
|
|
40
|
+
COMMIT_DOCS=$(gsd-remix-sdk query config-get commit_docs 2>/dev/null || echo "true")
|
|
41
|
+
```
|
|
42
|
+
</step>
|
|
43
|
+
|
|
44
|
+
<step name="curate">
|
|
45
|
+
## Curate Sketches One-at-a-Time
|
|
46
|
+
|
|
47
|
+
Present each unprocessed sketch in ascending order. For each sketch, show:
|
|
48
|
+
|
|
49
|
+
- **Sketch number and name**
|
|
50
|
+
- **Design question:** from frontmatter
|
|
51
|
+
- **Winner:** which variant was selected (if any)
|
|
52
|
+
- **Tags:** from frontmatter
|
|
53
|
+
- **Key decisions:** summarize what was decided visually
|
|
54
|
+
|
|
55
|
+
Then ask the user:
|
|
56
|
+
|
|
57
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
58
|
+
║ CHECKPOINT: Decision Required ║
|
|
59
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
60
|
+
|
|
61
|
+
Sketch {NNN}: {name} — Winner: Variant {X}
|
|
62
|
+
|
|
63
|
+
{key design decisions summary}
|
|
64
|
+
|
|
65
|
+
──────────────────────────────────────────────────────────────
|
|
66
|
+
→ Include / Exclude / Partial / Let me look at it
|
|
67
|
+
──────────────────────────────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
**If "Let me look at it":**
|
|
70
|
+
1. Provide: `open .planning/sketches/NNN-name/index.html`
|
|
71
|
+
2. Remind them which variant won and what to look for
|
|
72
|
+
3. After they've looked, return to the include/exclude/partial decision
|
|
73
|
+
|
|
74
|
+
**If "Partial":**
|
|
75
|
+
Ask what specifically to include or exclude from this sketch's decisions.
|
|
76
|
+
</step>
|
|
77
|
+
|
|
78
|
+
<step name="group">
|
|
79
|
+
## Auto-Group by Design Area
|
|
80
|
+
|
|
81
|
+
After all sketches are curated:
|
|
82
|
+
|
|
83
|
+
1. Read all included sketches' tags, names, and content
|
|
84
|
+
2. Propose design-area groupings, e.g.:
|
|
85
|
+
- "**Layout & Navigation** — sketches 001, 004"
|
|
86
|
+
- "**Form Controls** — sketches 002, 005"
|
|
87
|
+
- "**Color & Typography** — sketches 003"
|
|
88
|
+
3. Present the grouping for approval — user may merge, split, rename, or rearrange
|
|
89
|
+
|
|
90
|
+
Each group becomes one reference file in the generated skill.
|
|
91
|
+
</step>
|
|
92
|
+
|
|
93
|
+
<step name="skill_name">
|
|
94
|
+
## Determine Output Skill Name
|
|
95
|
+
|
|
96
|
+
Derive from the project directory name: `./.claude/skills/sketch-findings-[project-dir-name]/`
|
|
97
|
+
|
|
98
|
+
If a skill already exists at that path (append mode), update in place.
|
|
99
|
+
</step>
|
|
100
|
+
|
|
101
|
+
<step name="copy_sources">
|
|
102
|
+
## Copy Source Files
|
|
103
|
+
|
|
104
|
+
For each included sketch:
|
|
105
|
+
|
|
106
|
+
1. Copy the winning variant's HTML file (or the full index.html with all variants) into `sources/NNN-sketch-name/`
|
|
107
|
+
2. Copy the winning theme.css into `sources/themes/`
|
|
108
|
+
3. Exclude node_modules, build artifacts, .DS_Store
|
|
109
|
+
</step>
|
|
110
|
+
|
|
111
|
+
<step name="synthesize">
|
|
112
|
+
## Synthesize Reference Files
|
|
113
|
+
|
|
114
|
+
For each design-area group, write a reference file at `references/[design-area-name].md`:
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
# [Design Area Name]
|
|
118
|
+
|
|
119
|
+
## Design Decisions
|
|
120
|
+
[For each validated decision: what was chosen, why it won over alternatives, the key visual properties (colors, spacing, border radius, typography)]
|
|
121
|
+
|
|
122
|
+
## CSS Patterns
|
|
123
|
+
[Key CSS snippets from winning variants — layout structures, component patterns, animation patterns. Extracted and cleaned up for reference.]
|
|
124
|
+
|
|
125
|
+
## HTML Structures
|
|
126
|
+
[Key HTML patterns from winning variants — page layout, component markup, navigation structures.]
|
|
127
|
+
|
|
128
|
+
## What to Avoid
|
|
129
|
+
[Design directions that were tried and rejected. Why they didn't work.]
|
|
130
|
+
|
|
131
|
+
## Origin
|
|
132
|
+
Synthesized from sketches: NNN, NNN
|
|
133
|
+
Source files available in: sources/NNN-sketch-name/
|
|
134
|
+
```
|
|
135
|
+
</step>
|
|
136
|
+
|
|
137
|
+
<step name="write_skill">
|
|
138
|
+
## Write SKILL.md
|
|
139
|
+
|
|
140
|
+
Create (or update) the generated skill's SKILL.md:
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
---
|
|
144
|
+
name: sketch-findings-[project-dir-name]
|
|
145
|
+
description: Validated design decisions, CSS patterns, and visual direction from sketch experiments. Auto-loaded during UI implementation on [project-dir-name].
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
<context>
|
|
149
|
+
## Project: [project-dir-name]
|
|
150
|
+
|
|
151
|
+
[Design direction paragraph from MANIFEST.md]
|
|
152
|
+
[Reference points mentioned during intake]
|
|
153
|
+
|
|
154
|
+
Sketch sessions wrapped: [date(s)]
|
|
155
|
+
</context>
|
|
156
|
+
|
|
157
|
+
<design_direction>
|
|
158
|
+
## Overall Direction
|
|
159
|
+
|
|
160
|
+
[Summary of the validated visual direction: palette, typography, spacing system, layout approach, interaction patterns]
|
|
161
|
+
</design_direction>
|
|
162
|
+
|
|
163
|
+
<findings_index>
|
|
164
|
+
## Design Areas
|
|
165
|
+
|
|
166
|
+
| Area | Reference | Key Decision |
|
|
167
|
+
|------|-----------|--------------|
|
|
168
|
+
| [Name] | references/[name].md | [One-line summary] |
|
|
169
|
+
|
|
170
|
+
## Theme
|
|
171
|
+
|
|
172
|
+
The winning theme file is at `sources/themes/default.css`.
|
|
173
|
+
|
|
174
|
+
## Source Files
|
|
175
|
+
|
|
176
|
+
Original sketch HTML files are preserved in `sources/` for complete reference.
|
|
177
|
+
</findings_index>
|
|
178
|
+
|
|
179
|
+
<metadata>
|
|
180
|
+
## Processed Sketches
|
|
181
|
+
|
|
182
|
+
[List of sketch numbers wrapped up]
|
|
183
|
+
|
|
184
|
+
- 001-sketch-name
|
|
185
|
+
- 002-sketch-name
|
|
186
|
+
</metadata>
|
|
187
|
+
```
|
|
188
|
+
</step>
|
|
189
|
+
|
|
190
|
+
<step name="write_summary">
|
|
191
|
+
## Write Planning Summary
|
|
192
|
+
|
|
193
|
+
Write `.planning/sketches/WRAP-UP-SUMMARY.md` for project history:
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
# Sketch Wrap-Up Summary
|
|
197
|
+
|
|
198
|
+
**Date:** [date]
|
|
199
|
+
**Sketches processed:** [count]
|
|
200
|
+
**Design areas:** [list]
|
|
201
|
+
**Skill output:** `./.claude/skills/sketch-findings-[project]/`
|
|
202
|
+
|
|
203
|
+
## Included Sketches
|
|
204
|
+
| # | Name | Winner | Design Area |
|
|
205
|
+
|---|------|--------|-------------|
|
|
206
|
+
|
|
207
|
+
## Excluded Sketches
|
|
208
|
+
| # | Name | Reason |
|
|
209
|
+
|---|------|--------|
|
|
210
|
+
|
|
211
|
+
## Design Direction
|
|
212
|
+
[consolidated design direction summary]
|
|
213
|
+
|
|
214
|
+
## Key Decisions
|
|
215
|
+
[layout, palette, typography, spacing, interaction patterns]
|
|
216
|
+
```
|
|
217
|
+
</step>
|
|
218
|
+
|
|
219
|
+
<step name="update_claude_md">
|
|
220
|
+
## Update Project CLAUDE.md
|
|
221
|
+
|
|
222
|
+
Add an auto-load routing line:
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
- **Sketch findings for [project]** (design decisions, CSS patterns, visual direction) → `Skill("sketch-findings-[project-dir-name]")`
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
If this routing line already exists (append mode), leave it as-is.
|
|
229
|
+
</step>
|
|
230
|
+
|
|
231
|
+
<step name="commit">
|
|
232
|
+
Commit all artifacts (if `COMMIT_DOCS` is true):
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
gsd-remix-sdk query commit "docs(sketch-wrap-up): package [N] sketch findings into project skill" .planning/sketches/WRAP-UP-SUMMARY.md
|
|
236
|
+
```
|
|
237
|
+
</step>
|
|
238
|
+
|
|
239
|
+
<step name="report">
|
|
240
|
+
```
|
|
241
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
242
|
+
GSD ► SKETCH WRAP-UP COMPLETE ✓
|
|
243
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
244
|
+
|
|
245
|
+
**Curated:** {N} sketches ({included} included, {excluded} excluded)
|
|
246
|
+
**Design areas:** {list}
|
|
247
|
+
**Skill:** `./.claude/skills/sketch-findings-[project]/`
|
|
248
|
+
**Summary:** `.planning/sketches/WRAP-UP-SUMMARY.md`
|
|
249
|
+
**CLAUDE.md:** routing line added
|
|
250
|
+
|
|
251
|
+
The sketch-findings skill will auto-load when building the UI.
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
───────────────────────────────────────────────────────────────
|
|
255
|
+
|
|
256
|
+
## ▶ Next Up
|
|
257
|
+
|
|
258
|
+
**Start building** — implement the validated design
|
|
259
|
+
|
|
260
|
+
`/gsd-plan-phase`
|
|
261
|
+
|
|
262
|
+
───────────────────────────────────────────────────────────────
|
|
263
|
+
|
|
264
|
+
**Also available:**
|
|
265
|
+
- `/gsd-ui-phase` — generate a UI design contract for a frontend phase
|
|
266
|
+
- `/gsd-sketch` — sketch additional design areas
|
|
267
|
+
- `/gsd-explore` — continue exploring
|
|
268
|
+
|
|
269
|
+
───────────────────────────────────────────────────────────────
|
|
270
|
+
</step>
|
|
271
|
+
|
|
272
|
+
</process>
|
|
273
|
+
|
|
274
|
+
<success_criteria>
|
|
275
|
+
- [ ] Every unprocessed sketch presented for individual curation
|
|
276
|
+
- [ ] Design-area grouping proposed and approved
|
|
277
|
+
- [ ] Sketch-findings skill exists at `./.claude/skills/` with SKILL.md, references/, sources/
|
|
278
|
+
- [ ] Winning theme.css copied into skill sources
|
|
279
|
+
- [ ] Reference files contain design decisions, CSS patterns, HTML structures, anti-patterns
|
|
280
|
+
- [ ] `.planning/sketches/WRAP-UP-SUMMARY.md` written for project history
|
|
281
|
+
- [ ] Project CLAUDE.md has auto-load routing line
|
|
282
|
+
- [ ] Summary presented with next-step routing
|
|
283
|
+
</success_criteria>
|