@opengsd/gsd-core 1.2.0-rc.1
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.ja-JP.md +870 -0
- package/README.ko-KR.md +861 -0
- package/README.md +301 -0
- package/README.pt-BR.md +492 -0
- package/README.zh-CN.md +842 -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 +668 -0
- package/agents/gsd-code-reviewer.md +387 -0
- package/agents/gsd-codebase-mapper.md +853 -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 +772 -0
- package/agents/gsd-framework-selector.md +160 -0
- package/agents/gsd-integration-checker.md +470 -0
- package/agents/gsd-intel-updater.md +342 -0
- package/agents/gsd-nyquist-auditor.md +203 -0
- package/agents/gsd-pattern-mapper.md +335 -0
- package/agents/gsd-phase-researcher.md +928 -0
- package/agents/gsd-plan-checker.md +978 -0
- package/agents/gsd-planner.md +1218 -0
- package/agents/gsd-project-researcher.md +677 -0
- package/agents/gsd-research-synthesizer.md +255 -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 +917 -0
- package/bin/install.js +10936 -0
- package/bin/lib/ui-safety-gate.cjs +107 -0
- package/commands/gsd/add-tests.md +42 -0
- package/commands/gsd/ai-integration-phase.md +37 -0
- package/commands/gsd/audit-fix.md +34 -0
- package/commands/gsd/audit-milestone.md +37 -0
- package/commands/gsd/audit-uat.md +24 -0
- package/commands/gsd/autonomous.md +46 -0
- package/commands/gsd/capture.md +62 -0
- package/commands/gsd/cleanup.md +24 -0
- package/commands/gsd/code-review.md +59 -0
- package/commands/gsd/complete-milestone.md +143 -0
- package/commands/gsd/config.md +56 -0
- package/commands/gsd/debug.md +52 -0
- package/commands/gsd/discuss-phase.md +76 -0
- package/commands/gsd/docs-update.md +49 -0
- package/commands/gsd/eval-review.md +33 -0
- package/commands/gsd/execute-phase.md +64 -0
- package/commands/gsd/explore.md +27 -0
- package/commands/gsd/extract-learnings.md +23 -0
- package/commands/gsd/fast.md +31 -0
- package/commands/gsd/forensics.md +57 -0
- package/commands/gsd/graphify.md +199 -0
- package/commands/gsd/health.md +31 -0
- package/commands/gsd/help.md +28 -0
- package/commands/gsd/import.md +41 -0
- package/commands/gsd/inbox.md +39 -0
- package/commands/gsd/ingest-docs.md +42 -0
- package/commands/gsd/manager.md +45 -0
- package/commands/gsd/map-codebase.md +83 -0
- package/commands/gsd/milestone-summary.md +51 -0
- package/commands/gsd/mvp-phase.md +45 -0
- package/commands/gsd/new-milestone.md +45 -0
- package/commands/gsd/new-project.md +47 -0
- package/commands/gsd/ns-context.md +23 -0
- package/commands/gsd/ns-ideate.md +24 -0
- package/commands/gsd/ns-manage.md +29 -0
- package/commands/gsd/ns-project.md +22 -0
- package/commands/gsd/ns-review.md +26 -0
- package/commands/gsd/ns-workflow.md +28 -0
- package/commands/gsd/pause-work.md +43 -0
- package/commands/gsd/phase.md +56 -0
- package/commands/gsd/plan-phase.md +62 -0
- package/commands/gsd/plan-review-convergence.md +59 -0
- package/commands/gsd/pr-branch.md +26 -0
- package/commands/gsd/profile-user.md +46 -0
- package/commands/gsd/progress.md +47 -0
- package/commands/gsd/quick.md +174 -0
- package/commands/gsd/resume-work.md +30 -0
- package/commands/gsd/review-backlog.md +63 -0
- package/commands/gsd/review.md +41 -0
- package/commands/gsd/secure-phase.md +36 -0
- package/commands/gsd/settings.md +29 -0
- package/commands/gsd/ship.md +24 -0
- package/commands/gsd/sketch.md +60 -0
- package/commands/gsd/spec-phase.md +63 -0
- package/commands/gsd/spike.md +57 -0
- package/commands/gsd/stats.md +19 -0
- package/commands/gsd/surface.md +155 -0
- package/commands/gsd/thread.md +24 -0
- package/commands/gsd/ui-phase.md +35 -0
- package/commands/gsd/ui-review.md +33 -0
- package/commands/gsd/ultraplan-phase.md +34 -0
- package/commands/gsd/undo.md +35 -0
- package/commands/gsd/update.md +48 -0
- package/commands/gsd/validate-phase.md +36 -0
- package/commands/gsd/verify-work.md +39 -0
- package/commands/gsd/workspace.md +52 -0
- package/commands/gsd/workstreams.md +70 -0
- package/get-shit-done/bin/check-latest-version.cjs +106 -0
- package/get-shit-done/bin/gsd-tools.cjs +1676 -0
- package/get-shit-done/bin/lib/active-workstream-store.cjs +302 -0
- package/get-shit-done/bin/lib/adr-parser.cjs +394 -0
- package/get-shit-done/bin/lib/agent-command-router.cjs +65 -0
- package/get-shit-done/bin/lib/artifacts.cjs +53 -0
- package/get-shit-done/bin/lib/audit.cjs +755 -0
- package/get-shit-done/bin/lib/check-command-router.cjs +333 -0
- package/get-shit-done/bin/lib/cjs-command-router-adapter.cjs +118 -0
- package/get-shit-done/bin/lib/clock.cjs +96 -0
- package/get-shit-done/bin/lib/clusters.cjs +135 -0
- package/get-shit-done/bin/lib/code-review-flags.cjs +74 -0
- package/get-shit-done/bin/lib/command-aliases.cjs +815 -0
- package/get-shit-done/bin/lib/command-arg-projection.cjs +62 -0
- package/get-shit-done/bin/lib/command-routing-hub.cjs +388 -0
- package/get-shit-done/bin/lib/commands.cjs +1188 -0
- package/get-shit-done/bin/lib/config-schema.cjs +31 -0
- package/get-shit-done/bin/lib/config.cjs +728 -0
- package/get-shit-done/bin/lib/configuration.cjs +248 -0
- package/get-shit-done/bin/lib/context-utilization.cjs +47 -0
- package/get-shit-done/bin/lib/core.cjs +2121 -0
- package/get-shit-done/bin/lib/decisions.cjs +116 -0
- package/get-shit-done/bin/lib/docs.cjs +270 -0
- package/get-shit-done/bin/lib/drift.cjs +388 -0
- package/get-shit-done/bin/lib/fallow-runner.cjs +109 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +389 -0
- package/get-shit-done/bin/lib/gap-checker.cjs +205 -0
- package/get-shit-done/bin/lib/graphify.cjs +592 -0
- package/get-shit-done/bin/lib/gsd2-import.cjs +514 -0
- package/get-shit-done/bin/lib/init-command-router.cjs +58 -0
- package/get-shit-done/bin/lib/init.cjs +2112 -0
- package/get-shit-done/bin/lib/install-profiles.cjs +603 -0
- package/get-shit-done/bin/lib/installer-migration-authoring.cjs +117 -0
- package/get-shit-done/bin/lib/installer-migration-report.cjs +354 -0
- package/get-shit-done/bin/lib/installer-migrations/000-first-time-baseline.cjs +220 -0
- package/get-shit-done/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +41 -0
- package/get-shit-done/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +80 -0
- package/get-shit-done/bin/lib/installer-migrations.cjs +778 -0
- package/get-shit-done/bin/lib/intel.cjs +708 -0
- package/get-shit-done/bin/lib/learnings.cjs +421 -0
- package/get-shit-done/bin/lib/milestone.cjs +314 -0
- package/get-shit-done/bin/lib/model-catalog.cjs +212 -0
- package/get-shit-done/bin/lib/model-profiles.cjs +31 -0
- package/get-shit-done/bin/lib/observability/event.cjs +82 -0
- package/get-shit-done/bin/lib/observability/logger.cjs +174 -0
- package/get-shit-done/bin/lib/observability/redaction.cjs +50 -0
- package/get-shit-done/bin/lib/package-identity.cjs +31 -0
- package/get-shit-done/bin/lib/phase-command-router.cjs +191 -0
- package/get-shit-done/bin/lib/phase-lifecycle.cjs +80 -0
- package/get-shit-done/bin/lib/phase.cjs +1607 -0
- package/get-shit-done/bin/lib/phases-command-router.cjs +39 -0
- package/get-shit-done/bin/lib/plan-scan.cjs +97 -0
- package/get-shit-done/bin/lib/planning-workspace.cjs +238 -0
- package/get-shit-done/bin/lib/profile-output.cjs +1141 -0
- package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
- package/get-shit-done/bin/lib/project-root.cjs +112 -0
- package/get-shit-done/bin/lib/prompt-budget.cjs +399 -0
- package/get-shit-done/bin/lib/review-reviewer-selection.cjs +125 -0
- package/get-shit-done/bin/lib/roadmap-command-router.cjs +28 -0
- package/get-shit-done/bin/lib/roadmap.cjs +650 -0
- package/get-shit-done/bin/lib/runtime-artifact-layout.cjs +301 -0
- package/get-shit-done/bin/lib/runtime-homes.cjs +222 -0
- package/get-shit-done/bin/lib/runtime-name-policy.cjs +83 -0
- package/get-shit-done/bin/lib/runtime-slash.cjs +112 -0
- package/get-shit-done/bin/lib/schema-detect.cjs +165 -0
- package/get-shit-done/bin/lib/secrets.cjs +32 -0
- package/get-shit-done/bin/lib/security.cjs +600 -0
- package/get-shit-done/bin/lib/semver-compare.cjs +35 -0
- package/get-shit-done/bin/lib/shell-command-projection.cjs +500 -0
- package/get-shit-done/bin/lib/state-command-router.cjs +252 -0
- package/get-shit-done/bin/lib/state-document.cjs +263 -0
- package/get-shit-done/bin/lib/state.cjs +2038 -0
- package/get-shit-done/bin/lib/surface.cjs +470 -0
- package/get-shit-done/bin/lib/task-command-router.cjs +81 -0
- package/get-shit-done/bin/lib/template.cjs +228 -0
- package/get-shit-done/bin/lib/uat.cjs +289 -0
- package/get-shit-done/bin/lib/update-context.cjs +209 -0
- package/get-shit-done/bin/lib/validate-command-router.cjs +83 -0
- package/get-shit-done/bin/lib/validate.cjs +92 -0
- package/get-shit-done/bin/lib/verify-command-router.cjs +40 -0
- package/get-shit-done/bin/lib/verify.cjs +1511 -0
- package/get-shit-done/bin/lib/workstream-inventory-builder.cjs +74 -0
- package/get-shit-done/bin/lib/workstream-inventory.cjs +146 -0
- package/get-shit-done/bin/lib/workstream-name-policy.cjs +94 -0
- package/get-shit-done/bin/lib/workstream.cjs +389 -0
- package/get-shit-done/bin/lib/worktree-safety.cjs +985 -0
- package/get-shit-done/bin/shared/config-defaults.manifest.json +97 -0
- package/get-shit-done/bin/shared/config-schema.manifest.json +175 -0
- package/get-shit-done/bin/shared/model-catalog.json +122 -0
- package/get-shit-done/bin/shared/runtime-aliases.manifest.json +75 -0
- package/get-shit-done/bin/verify-reapply-patches.cjs +352 -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 +23 -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 +814 -0
- package/get-shit-done/references/common-bug-patterns.md +114 -0
- package/get-shit-done/references/context-budget.md +85 -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/execute-mvp-tdd.md +81 -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 +298 -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 +245 -0
- package/get-shit-done/references/mvp-concepts.md +49 -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-chunked.md +49 -0
- package/get-shit-done/references/planner-gap-closure.md +62 -0
- package/get-shit-done/references/planner-graphify-auto-update.md +67 -0
- package/get-shit-done/references/planner-human-verify-mode.md +57 -0
- package/get-shit-done/references/planner-interface-context.md +62 -0
- package/get-shit-done/references/planner-mvp-mode.md +53 -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 +471 -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/scout-codebase.md +51 -0
- package/get-shit-done/references/skeleton-template.md +48 -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/spidr-splitting.md +69 -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/user-story-template.md +58 -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/verify-mvp-mode.md +85 -0
- package/get-shit-done/references/workstream-flag.md +111 -0
- package/get-shit-done/references/worktree-path-safety.md +89 -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 +77 -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 +62 -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 +195 -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/_runtime-launcher.snippet.sh +1 -0
- package/get-shit-done/workflows/add-backlog.md +91 -0
- package/get-shit-done/workflows/add-phase.md +113 -0
- package/get-shit-done/workflows/add-tests.md +355 -0
- package/get-shit-done/workflows/add-todo.md +161 -0
- package/get-shit-done/workflows/ai-integration-phase.md +295 -0
- package/get-shit-done/workflows/analyze-dependencies.md +96 -0
- package/get-shit-done/workflows/audit-fix.md +178 -0
- package/get-shit-done/workflows/audit-milestone.md +358 -0
- package/get-shit-done/workflows/audit-uat.md +110 -0
- package/get-shit-done/workflows/autonomous.md +795 -0
- package/get-shit-done/workflows/check-todos.md +180 -0
- package/get-shit-done/workflows/cleanup.md +155 -0
- package/get-shit-done/workflows/code-review-fix.md +502 -0
- package/get-shit-done/workflows/code-review.md +656 -0
- package/get-shit-done/workflows/complete-milestone.md +855 -0
- package/get-shit-done/workflows/debug.md +232 -0
- package/get-shit-done/workflows/diagnose-issues.md +241 -0
- package/get-shit-done/workflows/discovery-phase.md +291 -0
- package/get-shit-done/workflows/discuss-phase/modes/advisor.md +176 -0
- package/get-shit-done/workflows/discuss-phase/modes/all.md +28 -0
- package/get-shit-done/workflows/discuss-phase/modes/analyze.md +44 -0
- package/get-shit-done/workflows/discuss-phase/modes/auto.md +57 -0
- package/get-shit-done/workflows/discuss-phase/modes/batch.md +52 -0
- package/get-shit-done/workflows/discuss-phase/modes/chain.md +98 -0
- package/get-shit-done/workflows/discuss-phase/modes/default.md +141 -0
- package/get-shit-done/workflows/discuss-phase/modes/power.md +44 -0
- package/get-shit-done/workflows/discuss-phase/modes/text.md +55 -0
- package/get-shit-done/workflows/discuss-phase/templates/checkpoint.json +18 -0
- package/get-shit-done/workflows/discuss-phase/templates/context.md +136 -0
- package/get-shit-done/workflows/discuss-phase/templates/discussion-log.md +50 -0
- package/get-shit-done/workflows/discuss-phase-assumptions.md +675 -0
- package/get-shit-done/workflows/discuss-phase-power.md +291 -0
- package/get-shit-done/workflows/discuss-phase.md +499 -0
- package/get-shit-done/workflows/do.md +111 -0
- package/get-shit-done/workflows/docs-update.md +1162 -0
- package/get-shit-done/workflows/edit-phase.md +295 -0
- package/get-shit-done/workflows/eval-review.md +156 -0
- package/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md +82 -0
- package/get-shit-done/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
- package/get-shit-done/workflows/execute-phase/steps/post-merge-gate.md +117 -0
- package/get-shit-done/workflows/execute-phase.md +1709 -0
- package/get-shit-done/workflows/execute-plan.md +526 -0
- package/get-shit-done/workflows/explore.md +144 -0
- package/get-shit-done/workflows/extract-learnings.md +243 -0
- package/get-shit-done/workflows/fast.md +124 -0
- package/get-shit-done/workflows/forensics.md +279 -0
- package/get-shit-done/workflows/graduation.md +196 -0
- package/get-shit-done/workflows/health.md +224 -0
- package/get-shit-done/workflows/help/modes/brief.md +22 -0
- package/get-shit-done/workflows/help/modes/default.md +50 -0
- package/get-shit-done/workflows/help/modes/full.md +784 -0
- package/get-shit-done/workflows/help/modes/topic.md +74 -0
- package/get-shit-done/workflows/help.md +24 -0
- package/get-shit-done/workflows/import.md +254 -0
- package/get-shit-done/workflows/inbox.md +387 -0
- package/get-shit-done/workflows/ingest-docs.md +339 -0
- package/get-shit-done/workflows/insert-phase.md +152 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/list-workspaces.md +57 -0
- package/get-shit-done/workflows/manager.md +393 -0
- package/get-shit-done/workflows/map-codebase.md +444 -0
- package/get-shit-done/workflows/milestone-summary.md +224 -0
- package/get-shit-done/workflows/mvp-phase.md +222 -0
- package/get-shit-done/workflows/new-milestone.md +635 -0
- package/get-shit-done/workflows/new-project.md +1555 -0
- package/get-shit-done/workflows/new-workspace.md +240 -0
- package/get-shit-done/workflows/next.md +299 -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 +244 -0
- package/get-shit-done/workflows/plan-milestone-gaps.md +281 -0
- package/get-shit-done/workflows/plan-phase.md +1809 -0
- package/get-shit-done/workflows/plan-review-convergence.md +346 -0
- package/get-shit-done/workflows/plant-seed.md +230 -0
- package/get-shit-done/workflows/pr-branch.md +157 -0
- package/get-shit-done/workflows/profile-user.md +453 -0
- package/get-shit-done/workflows/progress.md +699 -0
- package/get-shit-done/workflows/quick.md +1039 -0
- package/get-shit-done/workflows/reapply-patches.md +426 -0
- package/get-shit-done/workflows/remove-phase.md +156 -0
- package/get-shit-done/workflows/remove-workspace.md +108 -0
- package/get-shit-done/workflows/resume-project.md +332 -0
- package/get-shit-done/workflows/review.md +623 -0
- package/get-shit-done/workflows/scan.md +105 -0
- package/get-shit-done/workflows/secure-phase.md +180 -0
- package/get-shit-done/workflows/session-report.md +146 -0
- package/get-shit-done/workflows/settings-advanced.md +620 -0
- package/get-shit-done/workflows/settings-integrations.md +312 -0
- package/get-shit-done/workflows/settings.md +552 -0
- package/get-shit-done/workflows/ship.md +356 -0
- package/get-shit-done/workflows/sketch-wrap-up.md +286 -0
- package/get-shit-done/workflows/sketch.md +361 -0
- package/get-shit-done/workflows/spec-phase.md +262 -0
- package/get-shit-done/workflows/spike-wrap-up.md +307 -0
- package/get-shit-done/workflows/spike.md +453 -0
- package/get-shit-done/workflows/stats.md +80 -0
- package/get-shit-done/workflows/sync-skills.md +182 -0
- package/get-shit-done/workflows/thread.md +222 -0
- package/get-shit-done/workflows/transition.md +694 -0
- package/get-shit-done/workflows/ui-phase.md +328 -0
- package/get-shit-done/workflows/ui-review.md +193 -0
- package/get-shit-done/workflows/ultraplan-phase.md +199 -0
- package/get-shit-done/workflows/undo.md +314 -0
- package/get-shit-done/workflows/update.md +443 -0
- package/get-shit-done/workflows/validate-phase.md +179 -0
- package/get-shit-done/workflows/verify-phase.md +544 -0
- package/get-shit-done/workflows/verify-work.md +781 -0
- package/hooks/dist/gsd-check-update-worker.js +95 -0
- package/hooks/dist/gsd-check-update.js +64 -0
- package/hooks/dist/gsd-context-monitor.js +195 -0
- package/hooks/dist/gsd-graphify-update.sh +158 -0
- package/hooks/dist/gsd-phase-boundary.sh +47 -0
- package/hooks/dist/gsd-prompt-guard.js +97 -0
- package/hooks/dist/gsd-read-guard.js +101 -0
- package/hooks/dist/gsd-read-injection-scanner.js +203 -0
- package/hooks/dist/gsd-session-state.sh +59 -0
- package/hooks/dist/gsd-statusline.js +548 -0
- package/hooks/dist/gsd-update-banner.js +134 -0
- package/hooks/dist/gsd-validate-commit.sh +57 -0
- package/hooks/dist/gsd-workflow-guard.js +166 -0
- package/hooks/dist/lib/git-cmd.js +150 -0
- package/hooks/dist/lib/gsd-graphify-rebuild.sh +65 -0
- package/hooks/gsd-check-update-worker.js +95 -0
- package/hooks/gsd-check-update.js +64 -0
- package/hooks/gsd-context-monitor.js +195 -0
- package/hooks/gsd-graphify-update.sh +158 -0
- package/hooks/gsd-phase-boundary.sh +47 -0
- package/hooks/gsd-prompt-guard.js +97 -0
- package/hooks/gsd-read-guard.js +101 -0
- package/hooks/gsd-read-injection-scanner.js +203 -0
- package/hooks/gsd-session-state.sh +59 -0
- package/hooks/gsd-statusline.js +548 -0
- package/hooks/gsd-update-banner.js +134 -0
- package/hooks/gsd-validate-commit.sh +57 -0
- package/hooks/gsd-workflow-guard.js +166 -0
- package/hooks/lib/git-cmd.js +150 -0
- package/hooks/lib/gsd-graphify-rebuild.sh +65 -0
- package/hooks/managed-hooks-registry.cjs +34 -0
- package/package.json +102 -0
- package/scripts/affected-tests-lib.cjs +541 -0
- package/scripts/audit-workflow-script-paths.cjs +73 -0
- package/scripts/base64-scan.sh +339 -0
- package/scripts/build-hooks.js +236 -0
- package/scripts/changeset/README.md +129 -0
- package/scripts/changeset/cli.cjs +392 -0
- package/scripts/changeset/github-release-notes.cjs +199 -0
- package/scripts/changeset/lint.cjs +110 -0
- package/scripts/changeset/new.cjs +137 -0
- package/scripts/changeset/parse.cjs +114 -0
- package/scripts/changeset/render.cjs +34 -0
- package/scripts/changeset/serialize.cjs +130 -0
- package/scripts/check-alias-drift.cjs +108 -0
- package/scripts/check-env.cjs +302 -0
- package/scripts/check-npm-integrity.cjs +209 -0
- package/scripts/ci-guard-runner.cjs +16 -0
- package/scripts/ci-prepare-test-scope.cjs +46 -0
- package/scripts/ci-rebase-check.cjs +85 -0
- package/scripts/ci-test-scope.cjs +302 -0
- package/scripts/command-contract-helpers.cjs +64 -0
- package/scripts/diff-touches-shipped-paths.cjs +147 -0
- package/scripts/fix-slash-commands.cjs +147 -0
- package/scripts/gen-inventory-manifest.cjs +109 -0
- package/scripts/generate-package-identity.cjs +104 -0
- package/scripts/lint-command-contract.cjs +108 -0
- package/scripts/lint-descriptions.cjs +83 -0
- package/scripts/lint-docs-required.cjs +222 -0
- package/scripts/lint-no-source-grep-extras.cjs +81 -0
- package/scripts/lint-no-source-grep.cjs +174 -0
- package/scripts/lint-package-identity-drift.cjs +141 -0
- package/scripts/lint-pr-check-project-dir.cjs +98 -0
- package/scripts/lint-shared-module-handsync.cjs +388 -0
- package/scripts/lint-shell-command-projection-drift.cjs +57 -0
- package/scripts/lint-skill-deps.cjs +180 -0
- package/scripts/lint-test-file-count.allowlist.json +36 -0
- package/scripts/lint-test-file-count.cjs +190 -0
- package/scripts/pr-template-policy.cjs +268 -0
- package/scripts/prompt-injection-scan.sh +203 -0
- package/scripts/release-tarball-smoke.cjs +627 -0
- package/scripts/run-affected-tests.cjs +6 -0
- package/scripts/run-cross-platform-tests.cjs +63 -0
- package/scripts/run-tests.cjs +282 -0
- package/scripts/secret-scan-lint.sh +231 -0
- package/scripts/secret-scan.sh +358 -0
- package/scripts/setup-branch-protection.sh +236 -0
- package/scripts/shared-module-handsync-allowlist.json +183 -0
- package/scripts/strip-prose-atrefs.cjs +106 -0
- package/scripts/sync-rulesets.sh +34 -0
- package/scripts/sync-runtime-launcher.cjs +402 -0
- package/scripts/test-failure-reasons.cjs +34 -0
- package/scripts/workflow-policy.cjs +450 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: {N}
|
|
3
|
+
slug: {phase-slug}
|
|
4
|
+
status: draft
|
|
5
|
+
threats_open: 0
|
|
6
|
+
asvs_level: 1
|
|
7
|
+
created: {date}
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Phase {N} — Security
|
|
11
|
+
|
|
12
|
+
> Per-phase security contract: threat register, accepted risks, and audit trail.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Trust Boundaries
|
|
17
|
+
|
|
18
|
+
| Boundary | Description | Data Crossing |
|
|
19
|
+
|----------|-------------|---------------|
|
|
20
|
+
| {boundary} | {description} | {data type / sensitivity} |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Threat Register
|
|
25
|
+
|
|
26
|
+
| Threat ID | Category | Component | Disposition | Mitigation | Status |
|
|
27
|
+
|-----------|----------|-----------|-------------|------------|--------|
|
|
28
|
+
| T-{N}-01 | {STRIDE category} | {component} | {mitigate / accept / transfer} | {control or reference} | open |
|
|
29
|
+
|
|
30
|
+
*Status: open · closed*
|
|
31
|
+
*Disposition: mitigate (implementation required) · accept (documented risk) · transfer (third-party)*
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Accepted Risks Log
|
|
36
|
+
|
|
37
|
+
| Risk ID | Threat Ref | Rationale | Accepted By | Date |
|
|
38
|
+
|---------|------------|-----------|-------------|------|
|
|
39
|
+
|
|
40
|
+
*Accepted risks do not resurface in future audit runs.*
|
|
41
|
+
|
|
42
|
+
*If none: "No accepted risks."*
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Security Audit Trail
|
|
47
|
+
|
|
48
|
+
| Audit Date | Threats Total | Closed | Open | Run By |
|
|
49
|
+
|------------|---------------|--------|------|--------|
|
|
50
|
+
| {YYYY-MM-DD} | {N} | {N} | {N} | {name / agent} |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Sign-Off
|
|
55
|
+
|
|
56
|
+
- [ ] All threats have a disposition (mitigate / accept / transfer)
|
|
57
|
+
- [ ] Accepted risks documented in Accepted Risks Log
|
|
58
|
+
- [ ] `threats_open: 0` confirmed
|
|
59
|
+
- [ ] `status: verified` set in frontmatter
|
|
60
|
+
|
|
61
|
+
**Approval:** {pending / verified YYYY-MM-DD}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# UAT Template
|
|
2
|
+
|
|
3
|
+
Template for `.planning/phases/XX-name/{phase_num}-UAT.md` — persistent UAT session tracking.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## File Template
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
---
|
|
11
|
+
status: testing | partial | complete | diagnosed
|
|
12
|
+
phase: XX-name
|
|
13
|
+
source: [list of SUMMARY.md files tested]
|
|
14
|
+
started: [ISO timestamp]
|
|
15
|
+
updated: [ISO timestamp]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Current Test
|
|
19
|
+
<!-- OVERWRITE each test - shows where we are -->
|
|
20
|
+
|
|
21
|
+
number: [N]
|
|
22
|
+
name: [test name]
|
|
23
|
+
expected: |
|
|
24
|
+
[what user should observe]
|
|
25
|
+
awaiting: user response
|
|
26
|
+
|
|
27
|
+
## Tests
|
|
28
|
+
|
|
29
|
+
### 1. [Test Name]
|
|
30
|
+
expected: [observable behavior - what user should see]
|
|
31
|
+
result: [pending]
|
|
32
|
+
|
|
33
|
+
### 2. [Test Name]
|
|
34
|
+
expected: [observable behavior]
|
|
35
|
+
result: pass
|
|
36
|
+
|
|
37
|
+
### 3. [Test Name]
|
|
38
|
+
expected: [observable behavior]
|
|
39
|
+
result: issue
|
|
40
|
+
reported: "[verbatim user response]"
|
|
41
|
+
severity: major
|
|
42
|
+
|
|
43
|
+
### 4. [Test Name]
|
|
44
|
+
expected: [observable behavior]
|
|
45
|
+
result: skipped
|
|
46
|
+
reason: [why skipped]
|
|
47
|
+
|
|
48
|
+
### 5. [Test Name]
|
|
49
|
+
expected: [observable behavior]
|
|
50
|
+
result: blocked
|
|
51
|
+
blocked_by: server | physical-device | release-build | third-party | prior-phase
|
|
52
|
+
reason: [why blocked]
|
|
53
|
+
|
|
54
|
+
...
|
|
55
|
+
|
|
56
|
+
## Summary
|
|
57
|
+
|
|
58
|
+
total: [N]
|
|
59
|
+
passed: [N]
|
|
60
|
+
issues: [N]
|
|
61
|
+
pending: [N]
|
|
62
|
+
skipped: [N]
|
|
63
|
+
blocked: [N]
|
|
64
|
+
|
|
65
|
+
## Gaps
|
|
66
|
+
|
|
67
|
+
<!-- YAML format for plan-phase --gaps consumption -->
|
|
68
|
+
- truth: "[expected behavior from test]"
|
|
69
|
+
status: failed
|
|
70
|
+
reason: "User reported: [verbatim response]"
|
|
71
|
+
severity: blocker | major | minor | cosmetic
|
|
72
|
+
test: [N]
|
|
73
|
+
root_cause: "" # Filled by diagnosis
|
|
74
|
+
artifacts: [] # Filled by diagnosis
|
|
75
|
+
missing: [] # Filled by diagnosis
|
|
76
|
+
debug_session: "" # Filled by diagnosis
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
<section_rules>
|
|
82
|
+
|
|
83
|
+
**Frontmatter:**
|
|
84
|
+
- `status`: OVERWRITE - "testing", "partial", or "complete"
|
|
85
|
+
- `phase`: IMMUTABLE - set on creation
|
|
86
|
+
- `source`: IMMUTABLE - SUMMARY files being tested
|
|
87
|
+
- `started`: IMMUTABLE - set on creation
|
|
88
|
+
- `updated`: OVERWRITE - update on every change
|
|
89
|
+
|
|
90
|
+
**Current Test:**
|
|
91
|
+
- OVERWRITE entirely on each test transition
|
|
92
|
+
- Shows which test is active and what's awaited
|
|
93
|
+
- On completion: "[testing complete]"
|
|
94
|
+
|
|
95
|
+
**Tests:**
|
|
96
|
+
- Each test: OVERWRITE result field when user responds
|
|
97
|
+
- `result` values: [pending], pass, issue, skipped, blocked
|
|
98
|
+
- If issue: add `reported` (verbatim) and `severity` (inferred)
|
|
99
|
+
- If skipped: add `reason` if provided
|
|
100
|
+
- If blocked: add `blocked_by` (tag) and `reason` (if provided)
|
|
101
|
+
|
|
102
|
+
**Summary:**
|
|
103
|
+
- OVERWRITE counts after each response
|
|
104
|
+
- Tracks: total, passed, issues, pending, skipped
|
|
105
|
+
|
|
106
|
+
**Gaps:**
|
|
107
|
+
- APPEND only when issue found (YAML format)
|
|
108
|
+
- After diagnosis: fill `root_cause`, `artifacts`, `missing`, `debug_session`
|
|
109
|
+
- This section feeds directly into /gsd:plan-phase --gaps
|
|
110
|
+
|
|
111
|
+
</section_rules>
|
|
112
|
+
|
|
113
|
+
<diagnosis_lifecycle>
|
|
114
|
+
|
|
115
|
+
**After testing complete (status: complete), if gaps exist:**
|
|
116
|
+
|
|
117
|
+
1. User runs diagnosis (from verify-work offer or manually)
|
|
118
|
+
2. diagnose-issues workflow spawns parallel debug agents
|
|
119
|
+
3. Each agent investigates one gap, returns root cause
|
|
120
|
+
4. UAT.md Gaps section updated with diagnosis:
|
|
121
|
+
- Each gap gets `root_cause`, `artifacts`, `missing`, `debug_session` filled
|
|
122
|
+
5. status → "diagnosed"
|
|
123
|
+
6. Ready for /gsd:plan-phase --gaps with root causes
|
|
124
|
+
|
|
125
|
+
**After diagnosis:**
|
|
126
|
+
```yaml
|
|
127
|
+
## Gaps
|
|
128
|
+
|
|
129
|
+
- truth: "Comment appears immediately after submission"
|
|
130
|
+
status: failed
|
|
131
|
+
reason: "User reported: works but doesn't show until I refresh the page"
|
|
132
|
+
severity: major
|
|
133
|
+
test: 2
|
|
134
|
+
root_cause: "useEffect in CommentList.tsx missing commentCount dependency"
|
|
135
|
+
artifacts:
|
|
136
|
+
- path: "src/components/CommentList.tsx"
|
|
137
|
+
issue: "useEffect missing dependency"
|
|
138
|
+
missing:
|
|
139
|
+
- "Add commentCount to useEffect dependency array"
|
|
140
|
+
debug_session: ".planning/debug/comment-not-refreshing.md"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
</diagnosis_lifecycle>
|
|
144
|
+
|
|
145
|
+
<lifecycle>
|
|
146
|
+
|
|
147
|
+
**Creation:** When /gsd:verify-work starts new session
|
|
148
|
+
- Extract tests from SUMMARY.md files
|
|
149
|
+
- Set status to "testing"
|
|
150
|
+
- Current Test points to test 1
|
|
151
|
+
- All tests have result: [pending]
|
|
152
|
+
|
|
153
|
+
**During testing:**
|
|
154
|
+
- Present test from Current Test section
|
|
155
|
+
- User responds with pass confirmation or issue description
|
|
156
|
+
- Update test result (pass/issue/skipped)
|
|
157
|
+
- Update Summary counts
|
|
158
|
+
- If issue: append to Gaps section (YAML format), infer severity
|
|
159
|
+
- Move Current Test to next pending test
|
|
160
|
+
|
|
161
|
+
**On completion:**
|
|
162
|
+
- status → "complete"
|
|
163
|
+
- Current Test → "[testing complete]"
|
|
164
|
+
- Commit file
|
|
165
|
+
- Present summary with next steps
|
|
166
|
+
|
|
167
|
+
**Partial completion:**
|
|
168
|
+
- status → "partial" (if pending, blocked, or unresolved skipped tests remain)
|
|
169
|
+
- Current Test → "[testing paused — {N} items outstanding]"
|
|
170
|
+
- Commit file
|
|
171
|
+
- Present summary with outstanding items highlighted
|
|
172
|
+
|
|
173
|
+
**Resuming partial session:**
|
|
174
|
+
- `/gsd:verify-work {phase}` picks up from first pending/blocked test
|
|
175
|
+
- When all items resolved, status advances to "complete"
|
|
176
|
+
|
|
177
|
+
**Resume after /clear:**
|
|
178
|
+
1. Read frontmatter → know phase and status
|
|
179
|
+
2. Read Current Test → know where we are
|
|
180
|
+
3. Find first [pending] result → continue from there
|
|
181
|
+
4. Summary shows progress so far
|
|
182
|
+
|
|
183
|
+
</lifecycle>
|
|
184
|
+
|
|
185
|
+
<severity_guide>
|
|
186
|
+
|
|
187
|
+
Severity is INFERRED from user's natural language, never asked.
|
|
188
|
+
|
|
189
|
+
| User describes | Infer |
|
|
190
|
+
|----------------|-------|
|
|
191
|
+
| Crash, error, exception, fails completely, unusable | blocker |
|
|
192
|
+
| Doesn't work, nothing happens, wrong behavior, missing | major |
|
|
193
|
+
| Works but..., slow, weird, minor, small issue | minor |
|
|
194
|
+
| Color, font, spacing, alignment, visual, looks off | cosmetic |
|
|
195
|
+
|
|
196
|
+
Default: **major** (safe default, user can clarify if wrong)
|
|
197
|
+
|
|
198
|
+
</severity_guide>
|
|
199
|
+
|
|
200
|
+
<good_example>
|
|
201
|
+
```markdown
|
|
202
|
+
---
|
|
203
|
+
status: diagnosed
|
|
204
|
+
phase: 04-comments
|
|
205
|
+
source: 04-01-SUMMARY.md, 04-02-SUMMARY.md
|
|
206
|
+
started: 2025-01-15T10:30:00Z
|
|
207
|
+
updated: 2025-01-15T10:45:00Z
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Current Test
|
|
211
|
+
|
|
212
|
+
[testing complete]
|
|
213
|
+
|
|
214
|
+
## Tests
|
|
215
|
+
|
|
216
|
+
### 1. View Comments on Post
|
|
217
|
+
expected: Comments section expands, shows count and comment list
|
|
218
|
+
result: pass
|
|
219
|
+
|
|
220
|
+
### 2. Create Top-Level Comment
|
|
221
|
+
expected: Submit comment via rich text editor, appears in list with author info
|
|
222
|
+
result: issue
|
|
223
|
+
reported: "works but doesn't show until I refresh the page"
|
|
224
|
+
severity: major
|
|
225
|
+
|
|
226
|
+
### 3. Reply to a Comment
|
|
227
|
+
expected: Click Reply, inline composer appears, submit shows nested reply
|
|
228
|
+
result: pass
|
|
229
|
+
|
|
230
|
+
### 4. Visual Nesting
|
|
231
|
+
expected: 3+ level thread shows indentation, left borders, caps at reasonable depth
|
|
232
|
+
result: pass
|
|
233
|
+
|
|
234
|
+
### 5. Delete Own Comment
|
|
235
|
+
expected: Click delete on own comment, removed or shows [deleted] if has replies
|
|
236
|
+
result: pass
|
|
237
|
+
|
|
238
|
+
### 6. Comment Count
|
|
239
|
+
expected: Post shows accurate count, increments when adding comment
|
|
240
|
+
result: pass
|
|
241
|
+
|
|
242
|
+
## Summary
|
|
243
|
+
|
|
244
|
+
total: 6
|
|
245
|
+
passed: 5
|
|
246
|
+
issues: 1
|
|
247
|
+
pending: 0
|
|
248
|
+
skipped: 0
|
|
249
|
+
|
|
250
|
+
## Gaps
|
|
251
|
+
|
|
252
|
+
- truth: "Comment appears immediately after submission in list"
|
|
253
|
+
status: failed
|
|
254
|
+
reason: "User reported: works but doesn't show until I refresh the page"
|
|
255
|
+
severity: major
|
|
256
|
+
test: 2
|
|
257
|
+
root_cause: "useEffect in CommentList.tsx missing commentCount dependency"
|
|
258
|
+
artifacts:
|
|
259
|
+
- path: "src/components/CommentList.tsx"
|
|
260
|
+
issue: "useEffect missing dependency"
|
|
261
|
+
missing:
|
|
262
|
+
- "Add commentCount to useEffect dependency array"
|
|
263
|
+
debug_session: ".planning/debug/comment-not-refreshing.md"
|
|
264
|
+
```
|
|
265
|
+
</good_example>
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: {N}
|
|
3
|
+
slug: {phase-slug}
|
|
4
|
+
status: draft
|
|
5
|
+
shadcn_initialized: false
|
|
6
|
+
preset: none
|
|
7
|
+
created: {date}
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Phase {N} — UI Design Contract
|
|
11
|
+
|
|
12
|
+
> Visual and interaction contract for frontend phases. Generated by gsd-ui-researcher, verified by gsd-ui-checker.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Design System
|
|
17
|
+
|
|
18
|
+
| Property | Value |
|
|
19
|
+
|----------|-------|
|
|
20
|
+
| Tool | {shadcn / none} |
|
|
21
|
+
| Preset | {preset string or "not applicable"} |
|
|
22
|
+
| Component library | {radix / base-ui / none} |
|
|
23
|
+
| Icon library | {library} |
|
|
24
|
+
| Font | {font} |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Spacing Scale
|
|
29
|
+
|
|
30
|
+
Declared values (must be multiples of 4):
|
|
31
|
+
|
|
32
|
+
| Token | Value | Usage |
|
|
33
|
+
|-------|-------|-------|
|
|
34
|
+
| xs | 4px | Icon gaps, inline padding |
|
|
35
|
+
| sm | 8px | Compact element spacing |
|
|
36
|
+
| md | 16px | Default element spacing |
|
|
37
|
+
| lg | 24px | Section padding |
|
|
38
|
+
| xl | 32px | Layout gaps |
|
|
39
|
+
| 2xl | 48px | Major section breaks |
|
|
40
|
+
| 3xl | 64px | Page-level spacing |
|
|
41
|
+
|
|
42
|
+
Exceptions: {list any, or "none"}
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Typography
|
|
47
|
+
|
|
48
|
+
| Role | Size | Weight | Line Height |
|
|
49
|
+
|------|------|--------|-------------|
|
|
50
|
+
| Body | {px} | {weight} | {ratio} |
|
|
51
|
+
| Label | {px} | {weight} | {ratio} |
|
|
52
|
+
| Heading | {px} | {weight} | {ratio} |
|
|
53
|
+
| Display | {px} | {weight} | {ratio} |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Color
|
|
58
|
+
|
|
59
|
+
| Role | Value | Usage |
|
|
60
|
+
|------|-------|-------|
|
|
61
|
+
| Dominant (60%) | {hex} | Background, surfaces |
|
|
62
|
+
| Secondary (30%) | {hex} | Cards, sidebar, nav |
|
|
63
|
+
| Accent (10%) | {hex} | {list specific elements only} |
|
|
64
|
+
| Destructive | {hex} | Destructive actions only |
|
|
65
|
+
|
|
66
|
+
Accent reserved for: {explicit list — never "all interactive elements"}
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Copywriting Contract
|
|
71
|
+
|
|
72
|
+
| Element | Copy |
|
|
73
|
+
|---------|------|
|
|
74
|
+
| Primary CTA | {specific verb + noun} |
|
|
75
|
+
| Empty state heading | {copy} |
|
|
76
|
+
| Empty state body | {copy + next step} |
|
|
77
|
+
| Error state | {problem + solution path} |
|
|
78
|
+
| Destructive confirmation | {action name}: {confirmation copy} |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Registry Safety
|
|
83
|
+
|
|
84
|
+
| Registry | Blocks Used | Safety Gate |
|
|
85
|
+
|----------|-------------|-------------|
|
|
86
|
+
| shadcn official | {list} | not required |
|
|
87
|
+
| {third-party name} | {list} | shadcn view + diff required |
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Checker Sign-Off
|
|
92
|
+
|
|
93
|
+
- [ ] Dimension 1 Copywriting: PASS
|
|
94
|
+
- [ ] Dimension 2 Visuals: PASS
|
|
95
|
+
- [ ] Dimension 3 Color: PASS
|
|
96
|
+
- [ ] Dimension 4 Typography: PASS
|
|
97
|
+
- [ ] Dimension 5 Spacing: PASS
|
|
98
|
+
- [ ] Dimension 6 Registry Safety: PASS
|
|
99
|
+
|
|
100
|
+
**Approval:** {pending / approved YYYY-MM-DD}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: {N}
|
|
3
|
+
slug: {phase-slug}
|
|
4
|
+
status: draft
|
|
5
|
+
nyquist_compliant: false
|
|
6
|
+
wave_0_complete: false
|
|
7
|
+
created: {date}
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Phase {N} — Validation Strategy
|
|
11
|
+
|
|
12
|
+
> Per-phase validation contract for feedback sampling during execution.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Test Infrastructure
|
|
17
|
+
|
|
18
|
+
| Property | Value |
|
|
19
|
+
|----------|-------|
|
|
20
|
+
| **Framework** | {pytest 7.x / jest 29.x / vitest / go test / other} |
|
|
21
|
+
| **Config file** | {path or "none — Wave 0 installs"} |
|
|
22
|
+
| **Quick run command** | `{quick command}` |
|
|
23
|
+
| **Full suite command** | `{full command}` |
|
|
24
|
+
| **Estimated runtime** | ~{N} seconds |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Sampling Rate
|
|
29
|
+
|
|
30
|
+
- **After every task commit:** Run `{quick run command}`
|
|
31
|
+
- **After every plan wave:** Run `{full suite command}`
|
|
32
|
+
- **Before `/gsd:verify-work`:** Full suite must be green
|
|
33
|
+
- **Max feedback latency:** {N} seconds
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Per-Task Verification Map
|
|
38
|
+
|
|
39
|
+
| Task ID | Plan | Wave | Requirement | Threat Ref | Secure Behavior | Test Type | Automated Command | File Exists | Status |
|
|
40
|
+
|---------|------|------|-------------|------------|-----------------|-----------|-------------------|-------------|--------|
|
|
41
|
+
| {N}-01-01 | 01 | 1 | REQ-{XX} | T-{N}-01 / — | {expected secure behavior or "N/A"} | unit | `{command}` | ✅ / ❌ W0 | ⬜ pending |
|
|
42
|
+
|
|
43
|
+
*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Wave 0 Requirements
|
|
48
|
+
|
|
49
|
+
- [ ] `{tests/test_file.py}` — stubs for REQ-{XX}
|
|
50
|
+
- [ ] `{tests/conftest.py}` — shared fixtures
|
|
51
|
+
- [ ] `{framework install}` — if no framework detected
|
|
52
|
+
|
|
53
|
+
*If none: "Existing infrastructure covers all phase requirements."*
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Manual-Only Verifications
|
|
58
|
+
|
|
59
|
+
| Behavior | Requirement | Why Manual | Test Instructions |
|
|
60
|
+
|----------|-------------|------------|-------------------|
|
|
61
|
+
| {behavior} | REQ-{XX} | {reason} | {steps} |
|
|
62
|
+
|
|
63
|
+
*If none: "All phase behaviors have automated verification."*
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Validation Sign-Off
|
|
68
|
+
|
|
69
|
+
- [ ] All tasks have `<automated>` verify or Wave 0 dependencies
|
|
70
|
+
- [ ] Sampling continuity: no 3 consecutive tasks without automated verify
|
|
71
|
+
- [ ] Wave 0 covers all MISSING references
|
|
72
|
+
- [ ] No watch-mode flags
|
|
73
|
+
- [ ] Feedback latency < {N}s
|
|
74
|
+
- [ ] `nyquist_compliant: true` set in frontmatter
|
|
75
|
+
|
|
76
|
+
**Approval:** {pending / approved YYYY-MM-DD}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# CLAUDE.md Template
|
|
2
|
+
|
|
3
|
+
Template for project-root `CLAUDE.md` — auto-generated by `gsd-tools generate-claude-md`.
|
|
4
|
+
|
|
5
|
+
Contains 7 marker-bounded sections. Each section is independently updatable.
|
|
6
|
+
The `generate-claude-md` subcommand manages 6 sections (project, stack, conventions, architecture, skills, workflow enforcement).
|
|
7
|
+
The profile section is managed exclusively by `generate-claude-profile`.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Section Templates
|
|
12
|
+
|
|
13
|
+
### Project Section
|
|
14
|
+
```
|
|
15
|
+
<!-- GSD:project-start source:PROJECT.md -->
|
|
16
|
+
## Project
|
|
17
|
+
|
|
18
|
+
{{project_content}}
|
|
19
|
+
<!-- GSD:project-end -->
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Fallback text:**
|
|
23
|
+
```
|
|
24
|
+
Project not yet initialized. Run /gsd:new-project to set up.
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Stack Section
|
|
28
|
+
```
|
|
29
|
+
<!-- GSD:stack-start source:STACK.md -->
|
|
30
|
+
## Technology Stack
|
|
31
|
+
|
|
32
|
+
{{stack_content}}
|
|
33
|
+
<!-- GSD:stack-end -->
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Fallback text:**
|
|
37
|
+
```
|
|
38
|
+
Technology stack not yet documented. Will populate after codebase mapping or first phase.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Conventions Section
|
|
42
|
+
```
|
|
43
|
+
<!-- GSD:conventions-start source:CONVENTIONS.md -->
|
|
44
|
+
## Conventions
|
|
45
|
+
|
|
46
|
+
{{conventions_content}}
|
|
47
|
+
<!-- GSD:conventions-end -->
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Fallback text:**
|
|
51
|
+
```
|
|
52
|
+
Conventions not yet established. Will populate as patterns emerge during development.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Architecture Section
|
|
56
|
+
```
|
|
57
|
+
<!-- GSD:architecture-start source:ARCHITECTURE.md -->
|
|
58
|
+
## Architecture
|
|
59
|
+
|
|
60
|
+
{{architecture_content}}
|
|
61
|
+
<!-- GSD:architecture-end -->
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Fallback text:**
|
|
65
|
+
```
|
|
66
|
+
Architecture not yet mapped. Follow existing patterns found in the codebase.
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Skills Section
|
|
70
|
+
```
|
|
71
|
+
<!-- GSD:skills-start source:skills/ -->
|
|
72
|
+
## Project Skills
|
|
73
|
+
|
|
74
|
+
| Skill | Description | Path |
|
|
75
|
+
| -------------- | --------------------- | ------------------------- |
|
|
76
|
+
| {{skill_name}} | {{skill_description}} | `{{skill_path}}/SKILL.md` |
|
|
77
|
+
<!-- GSD:skills-end -->
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Fallback text:**
|
|
81
|
+
```
|
|
82
|
+
No project skills found. Add skills to any of: `.claude/skills/`, `.agents/skills/`, `.cursor/skills/`, or `.github/skills/` with a `SKILL.md` index file.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Discovery behavior:**
|
|
86
|
+
- Scans `.claude/skills/`, `.agents/skills/`, `.cursor/skills/`, `.github/skills/` for subdirectories containing `SKILL.md`
|
|
87
|
+
- Extracts `name` and `description` from YAML frontmatter (supports multi-line descriptions)
|
|
88
|
+
- Skips GSD's own installed skills (directories starting with `gsd-`)
|
|
89
|
+
- Deduplicates by skill name across directories
|
|
90
|
+
|
|
91
|
+
### Workflow Enforcement Section
|
|
92
|
+
```
|
|
93
|
+
<!-- GSD:workflow-start source:GSD defaults -->
|
|
94
|
+
## GSD Workflow Enforcement
|
|
95
|
+
|
|
96
|
+
Before using Edit, Write, or other file-changing tools, start work through a GSD command so planning artifacts and execution context stay in sync.
|
|
97
|
+
|
|
98
|
+
Use these entry points:
|
|
99
|
+
- `/gsd:quick` for small fixes, doc updates, and ad-hoc tasks
|
|
100
|
+
- `/gsd:debug` for investigation and bug fixing
|
|
101
|
+
- `/gsd:execute-phase` for planned phase work
|
|
102
|
+
|
|
103
|
+
Do not make direct repo edits outside a GSD workflow unless the user explicitly asks to bypass it.
|
|
104
|
+
<!-- GSD:workflow-end -->
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Profile Section (Placeholder Only)
|
|
108
|
+
```
|
|
109
|
+
<!-- GSD:profile-start -->
|
|
110
|
+
## Developer Profile
|
|
111
|
+
|
|
112
|
+
> Profile not yet configured. Run `/gsd:profile-user` to generate your developer profile.
|
|
113
|
+
> This section is managed by `generate-claude-profile` — do not edit manually.
|
|
114
|
+
<!-- GSD:profile-end -->
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Note:** This section is NOT managed by `generate-claude-md`. It is managed exclusively
|
|
118
|
+
by `generate-claude-profile`. The placeholder above is only used when creating a new
|
|
119
|
+
CLAUDE.md file and no profile section exists yet.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Section Ordering
|
|
124
|
+
|
|
125
|
+
1. **Project** — Identity and purpose (what this project is)
|
|
126
|
+
2. **Stack** — Technology choices (what tools are used)
|
|
127
|
+
3. **Conventions** — Code patterns and rules (how code is written)
|
|
128
|
+
4. **Architecture** — System structure (how components fit together)
|
|
129
|
+
5. **Skills** — Discovered project skills with name and description (what domain knowledge is available)
|
|
130
|
+
6. **Workflow Enforcement** — Default GSD entry points for file-changing work
|
|
131
|
+
7. **Profile** — Developer behavioral preferences (how to interact)
|
|
132
|
+
|
|
133
|
+
## Marker Format
|
|
134
|
+
|
|
135
|
+
- Start: `<!-- GSD:{name}-start source:{file} -->`
|
|
136
|
+
- End: `<!-- GSD:{name}-end -->`
|
|
137
|
+
- Source attribute enables targeted updates when source files change
|
|
138
|
+
- Partial match on start marker (without closing `-->`) for detection
|
|
139
|
+
|
|
140
|
+
## Fallback Behavior
|
|
141
|
+
|
|
142
|
+
When a source file is missing, fallback text provides Claude-actionable guidance:
|
|
143
|
+
- Guides Claude's behavior in the absence of data
|
|
144
|
+
- Not placeholder ads or "missing" notices
|
|
145
|
+
- Each fallback tells Claude what to do, not just what's absent
|