@therocketcode/gsd-core 1.4.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/.claude-plugin/plugin.json +23 -0
- package/GEMINI.md +53 -0
- package/LICENSE +21 -0
- package/README.ja-JP.md +125 -0
- package/README.ko-KR.md +125 -0
- package/README.md +144 -0
- package/README.pt-BR.md +125 -0
- package/README.zh-CN.md +125 -0
- package/agents/gsd-advisor-researcher.md +108 -0
- package/agents/gsd-ai-researcher.md +114 -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 +616 -0
- package/agents/gsd-domain-researcher.md +147 -0
- package/agents/gsd-eval-auditor.md +191 -0
- package/agents/gsd-eval-planner.md +154 -0
- package/agents/gsd-executor.md +785 -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 +867 -0
- package/agents/gsd-plan-checker.md +978 -0
- package/agents/gsd-planner.md +1204 -0
- package/agents/gsd-project-researcher.md +611 -0
- package/agents/gsd-research-synthesizer.md +259 -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 +374 -0
- package/agents/gsd-user-profiler.md +171 -0
- package/agents/gsd-verifier.md +923 -0
- package/assets/gsd-logo-2000-transparent.png +0 -0
- package/assets/gsd-logo-2000-transparent.svg +17 -0
- package/assets/gsd-logo-2000.png +0 -0
- package/assets/gsd-logo-2000.svg +21 -0
- package/assets/terminal.svg +68 -0
- package/bin/install.js +12726 -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 +48 -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/discover-product.md +65 -0
- package/commands/gsd/discuss-phase.md +77 -0
- package/commands/gsd/docs-update.md +49 -0
- package/commands/gsd/eval-review.md +33 -0
- package/commands/gsd/execute-phase.md +66 -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 +204 -0
- package/commands/gsd/health.md +31 -0
- package/commands/gsd/help.md +28 -0
- package/commands/gsd/import.md +45 -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/model-domain.md +65 -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 +64 -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 +48 -0
- package/commands/gsd/quick.md +174 -0
- package/commands/gsd/recommend-architecture.md +64 -0
- package/commands/gsd/resume-work.md +30 -0
- package/commands/gsd/review-backlog.md +63 -0
- package/commands/gsd/review.md +42 -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 +20 -0
- package/commands/gsd/surface.md +155 -0
- package/commands/gsd/testing-strategy.md +65 -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 +49 -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/gemini-extension.json +6 -0
- package/gsd-core/bin/check-latest-version.cjs +161 -0
- package/gsd-core/bin/gsd-tools.cjs +1928 -0
- package/gsd-core/bin/lib/active-workstream-store.cjs +291 -0
- package/gsd-core/bin/lib/adr-parser.cjs +399 -0
- package/gsd-core/bin/lib/agent-command-router.cjs +68 -0
- package/gsd-core/bin/lib/artifacts.cjs +51 -0
- package/gsd-core/bin/lib/audit.cjs +743 -0
- package/gsd-core/bin/lib/check-command-router.cjs +343 -0
- package/gsd-core/bin/lib/cjs-command-router-adapter.cjs +81 -0
- package/gsd-core/bin/lib/cli-exit.cjs +42 -0
- package/gsd-core/bin/lib/clock.cjs +95 -0
- package/gsd-core/bin/lib/clusters.cjs +132 -0
- package/gsd-core/bin/lib/code-review-flags.cjs +59 -0
- package/gsd-core/bin/lib/command-aliases.cjs +809 -0
- package/gsd-core/bin/lib/command-arg-projection.cjs +55 -0
- package/gsd-core/bin/lib/command-routing-hub.cjs +300 -0
- package/gsd-core/bin/lib/commands.cjs +1203 -0
- package/gsd-core/bin/lib/config-schema.cjs +29 -0
- package/gsd-core/bin/lib/config-types.cjs +19 -0
- package/gsd-core/bin/lib/config.cjs +738 -0
- package/gsd-core/bin/lib/configuration.cjs +239 -0
- package/gsd-core/bin/lib/context-utilization.cjs +48 -0
- package/gsd-core/bin/lib/core.cjs +2051 -0
- package/gsd-core/bin/lib/decisions.cjs +118 -0
- package/gsd-core/bin/lib/docs.cjs +252 -0
- package/gsd-core/bin/lib/drift.cjs +364 -0
- package/gsd-core/bin/lib/fallow-runner.cjs +115 -0
- package/gsd-core/bin/lib/frontmatter.cjs +442 -0
- package/gsd-core/bin/lib/gap-checker.cjs +257 -0
- package/gsd-core/bin/lib/graphify.cjs +496 -0
- package/gsd-core/bin/lib/gsd2-import.cjs +456 -0
- package/gsd-core/bin/lib/init-command-router.cjs +62 -0
- package/gsd-core/bin/lib/init.cjs +1815 -0
- package/gsd-core/bin/lib/install-profiles.cjs +584 -0
- package/gsd-core/bin/lib/installer-migration-authoring.cjs +122 -0
- package/gsd-core/bin/lib/installer-migration-report.cjs +350 -0
- package/gsd-core/bin/lib/installer-migrations/000-first-time-baseline.cjs +218 -0
- package/gsd-core/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +48 -0
- package/gsd-core/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +94 -0
- package/gsd-core/bin/lib/installer-migrations/003-rename-get-shit-done-to-gsd-core.cjs +108 -0
- package/gsd-core/bin/lib/installer-migrations.cjs +823 -0
- package/gsd-core/bin/lib/intel.cjs +590 -0
- package/gsd-core/bin/lib/learnings.cjs +270 -0
- package/gsd-core/bin/lib/legacy-cleanup.cjs +253 -0
- package/gsd-core/bin/lib/milestone.cjs +373 -0
- package/gsd-core/bin/lib/model-catalog.cjs +154 -0
- package/gsd-core/bin/lib/model-profiles.cjs +24 -0
- package/gsd-core/bin/lib/observability/event.cjs +51 -0
- package/gsd-core/bin/lib/observability/logger.cjs +146 -0
- package/gsd-core/bin/lib/observability/redaction.cjs +48 -0
- package/gsd-core/bin/lib/package-identity.cjs +35 -0
- package/gsd-core/bin/lib/package-legitimacy.cjs +368 -0
- package/gsd-core/bin/lib/phase-command-router.cjs +189 -0
- package/gsd-core/bin/lib/phase-lifecycle.cjs +74 -0
- package/gsd-core/bin/lib/phase.cjs +1307 -0
- package/gsd-core/bin/lib/phases-command-router.cjs +43 -0
- package/gsd-core/bin/lib/plan-scan.cjs +91 -0
- package/gsd-core/bin/lib/planning-workspace.cjs +245 -0
- package/gsd-core/bin/lib/profile-output.cjs +1120 -0
- package/gsd-core/bin/lib/profile-pipeline.cjs +517 -0
- package/gsd-core/bin/lib/project-root.cjs +119 -0
- package/gsd-core/bin/lib/prompt-budget.cjs +305 -0
- package/gsd-core/bin/lib/research-provider.cjs +137 -0
- package/gsd-core/bin/lib/research-store.cjs +167 -0
- package/gsd-core/bin/lib/review-reviewer-selection.cjs +121 -0
- package/gsd-core/bin/lib/roadmap-command-router.cjs +166 -0
- package/gsd-core/bin/lib/roadmap-upgrade.cjs +476 -0
- package/gsd-core/bin/lib/roadmap.cjs +600 -0
- package/gsd-core/bin/lib/runtime-artifact-layout.cjs +312 -0
- package/gsd-core/bin/lib/runtime-config-adapter-registry.cjs +56 -0
- package/gsd-core/bin/lib/runtime-homes.cjs +190 -0
- package/gsd-core/bin/lib/runtime-name-policy.cjs +96 -0
- package/gsd-core/bin/lib/runtime-slash.cjs +119 -0
- package/gsd-core/bin/lib/schema-detect.cjs +159 -0
- package/gsd-core/bin/lib/secrets.cjs +34 -0
- package/gsd-core/bin/lib/security.cjs +480 -0
- package/gsd-core/bin/lib/semver-compare.cjs +42 -0
- package/gsd-core/bin/lib/shell-command-projection.cjs +533 -0
- package/gsd-core/bin/lib/state-command-router.cjs +160 -0
- package/gsd-core/bin/lib/state-document.cjs +259 -0
- package/gsd-core/bin/lib/state.cjs +2010 -0
- package/gsd-core/bin/lib/surface.cjs +449 -0
- package/gsd-core/bin/lib/task-command-router.cjs +85 -0
- package/gsd-core/bin/lib/template.cjs +237 -0
- package/gsd-core/bin/lib/uat.cjs +297 -0
- package/gsd-core/bin/lib/ui-safety-gate.cjs +98 -0
- package/gsd-core/bin/lib/update-context.cjs +218 -0
- package/gsd-core/bin/lib/validate-command-router.cjs +91 -0
- package/gsd-core/bin/lib/validate.cjs +112 -0
- package/gsd-core/bin/lib/verification-command-router.cjs +31 -0
- package/gsd-core/bin/lib/verification.cjs +193 -0
- package/gsd-core/bin/lib/verify-command-router.cjs +44 -0
- package/gsd-core/bin/lib/verify.cjs +1451 -0
- package/gsd-core/bin/lib/workstream-inventory-builder.cjs +81 -0
- package/gsd-core/bin/lib/workstream-inventory.cjs +147 -0
- package/gsd-core/bin/lib/workstream-name-policy.cjs +91 -0
- package/gsd-core/bin/lib/workstream.cjs +380 -0
- package/gsd-core/bin/lib/worktree-base-ref.cjs +325 -0
- package/gsd-core/bin/lib/worktree-safety.cjs +943 -0
- package/gsd-core/bin/shared/config-defaults.manifest.json +98 -0
- package/gsd-core/bin/shared/config-schema.manifest.json +192 -0
- package/gsd-core/bin/shared/model-catalog.json +149 -0
- package/gsd-core/bin/shared/runtime-aliases.manifest.json +75 -0
- package/gsd-core/bin/verify-reapply-patches.cjs +349 -0
- package/gsd-core/contexts/dev.md +21 -0
- package/gsd-core/contexts/research.md +22 -0
- package/gsd-core/contexts/review.md +23 -0
- package/gsd-core/references/agent-contracts.md +79 -0
- package/gsd-core/references/ai-evals.md +156 -0
- package/gsd-core/references/ai-frameworks.md +186 -0
- package/gsd-core/references/architecture-decision.md +74 -0
- package/gsd-core/references/artifact-types.md +131 -0
- package/gsd-core/references/auth-in-tests.md +91 -0
- package/gsd-core/references/autonomous-smart-discuss.md +277 -0
- package/gsd-core/references/checkpoints.md +814 -0
- package/gsd-core/references/common-bug-patterns.md +114 -0
- package/gsd-core/references/context-budget.md +85 -0
- package/gsd-core/references/continuation-format.md +253 -0
- package/gsd-core/references/db-test-isolation.md +54 -0
- package/gsd-core/references/debugger-philosophy.md +76 -0
- package/gsd-core/references/decimal-phase-calculation.md +64 -0
- package/gsd-core/references/doc-conflict-engine.md +91 -0
- package/gsd-core/references/domain-modeling.md +80 -0
- package/gsd-core/references/domain-probes.md +125 -0
- package/gsd-core/references/e2e-tiering.md +35 -0
- package/gsd-core/references/execute-mvp-tdd.md +81 -0
- package/gsd-core/references/executor-examples.md +110 -0
- package/gsd-core/references/few-shot-examples/plan-checker.md +73 -0
- package/gsd-core/references/few-shot-examples/verifier.md +109 -0
- package/gsd-core/references/flaky-test-checklist.md +22 -0
- package/gsd-core/references/gate-prompts.md +100 -0
- package/gsd-core/references/gates.md +70 -0
- package/gsd-core/references/git-integration.md +298 -0
- package/gsd-core/references/git-planning-commit.md +40 -0
- package/gsd-core/references/ios-scaffold.md +123 -0
- package/gsd-core/references/mandatory-initial-read.md +2 -0
- package/gsd-core/references/model-profile-resolution.md +38 -0
- package/gsd-core/references/model-profiles.md +245 -0
- package/gsd-core/references/mvp-concepts.md +49 -0
- package/gsd-core/references/phase-argument-parsing.md +61 -0
- package/gsd-core/references/planner-antipatterns.md +89 -0
- package/gsd-core/references/planner-chunked.md +49 -0
- package/gsd-core/references/planner-gap-closure.md +62 -0
- package/gsd-core/references/planner-graphify-auto-update.md +67 -0
- package/gsd-core/references/planner-human-verify-mode.md +57 -0
- package/gsd-core/references/planner-interface-context.md +62 -0
- package/gsd-core/references/planner-load-graph-context.md +36 -0
- package/gsd-core/references/planner-mvp-mode.md +53 -0
- package/gsd-core/references/planner-reviews.md +39 -0
- package/gsd-core/references/planner-revision.md +87 -0
- package/gsd-core/references/planner-source-audit.md +73 -0
- package/gsd-core/references/planning-config.md +473 -0
- package/gsd-core/references/product-discovery.md +49 -0
- package/gsd-core/references/project-skills-discovery.md +19 -0
- package/gsd-core/references/questioning.md +162 -0
- package/gsd-core/references/realistic-test-data.md +44 -0
- package/gsd-core/references/research-documentation-lookup.md +29 -0
- package/gsd-core/references/research-philosophy.md +29 -0
- package/gsd-core/references/research-verification-protocol.md +27 -0
- package/gsd-core/references/revision-loop.md +97 -0
- package/gsd-core/references/scout-codebase.md +51 -0
- package/gsd-core/references/skeleton-template.md +48 -0
- package/gsd-core/references/sketch-interactivity.md +41 -0
- package/gsd-core/references/sketch-theme-system.md +94 -0
- package/gsd-core/references/sketch-tooling.md +45 -0
- package/gsd-core/references/sketch-variant-patterns.md +81 -0
- package/gsd-core/references/spidr-splitting.md +69 -0
- package/gsd-core/references/tdd.md +330 -0
- package/gsd-core/references/test-containers.md +55 -0
- package/gsd-core/references/test-strategy.md +75 -0
- package/gsd-core/references/thinking-models-debug.md +44 -0
- package/gsd-core/references/thinking-models-execution.md +50 -0
- package/gsd-core/references/thinking-models-planning.md +62 -0
- package/gsd-core/references/thinking-models-research.md +50 -0
- package/gsd-core/references/thinking-models-verification.md +55 -0
- package/gsd-core/references/thinking-partner.md +96 -0
- package/gsd-core/references/ui-brand.md +162 -0
- package/gsd-core/references/universal-anti-patterns.md +63 -0
- package/gsd-core/references/user-profiling.md +681 -0
- package/gsd-core/references/user-story-template.md +58 -0
- package/gsd-core/references/verification-overrides.md +227 -0
- package/gsd-core/references/verification-patterns.md +612 -0
- package/gsd-core/references/verify-mvp-mode.md +85 -0
- package/gsd-core/references/workstream-flag.md +111 -0
- package/gsd-core/references/worktree-branch-check.md +38 -0
- package/gsd-core/references/worktree-path-safety.md +67 -0
- package/gsd-core/templates/AI-SPEC.md +246 -0
- package/gsd-core/templates/DEBUG.md +169 -0
- package/gsd-core/templates/README.md +77 -0
- package/gsd-core/templates/SECURITY.md +61 -0
- package/gsd-core/templates/UAT.md +265 -0
- package/gsd-core/templates/UI-SPEC.md +100 -0
- package/gsd-core/templates/VALIDATION.md +76 -0
- package/gsd-core/templates/adr.md +58 -0
- package/gsd-core/templates/claude-md.md +145 -0
- package/gsd-core/templates/codebase/architecture.md +255 -0
- package/gsd-core/templates/codebase/concerns.md +310 -0
- package/gsd-core/templates/codebase/conventions.md +307 -0
- package/gsd-core/templates/codebase/integrations.md +280 -0
- package/gsd-core/templates/codebase/stack.md +186 -0
- package/gsd-core/templates/codebase/structure.md +285 -0
- package/gsd-core/templates/codebase/testing.md +480 -0
- package/gsd-core/templates/config.json +62 -0
- package/gsd-core/templates/context.md +352 -0
- package/gsd-core/templates/continue-here.md +78 -0
- package/gsd-core/templates/copilot-instructions.md +7 -0
- package/gsd-core/templates/debug-subagent-prompt.md +91 -0
- package/gsd-core/templates/dev-preferences.md +21 -0
- package/gsd-core/templates/discovery.md +146 -0
- package/gsd-core/templates/discussion-log.md +63 -0
- package/gsd-core/templates/domain-model.md +54 -0
- package/gsd-core/templates/milestone-archive.md +123 -0
- package/gsd-core/templates/milestone.md +115 -0
- package/gsd-core/templates/phase-prompt.md +610 -0
- package/gsd-core/templates/planner-subagent-prompt.md +117 -0
- package/gsd-core/templates/product-brief.md +55 -0
- package/gsd-core/templates/project.md +186 -0
- package/gsd-core/templates/requirements.md +231 -0
- package/gsd-core/templates/research-project/ARCHITECTURE.md +204 -0
- package/gsd-core/templates/research-project/FEATURES.md +147 -0
- package/gsd-core/templates/research-project/PITFALLS.md +200 -0
- package/gsd-core/templates/research-project/STACK.md +120 -0
- package/gsd-core/templates/research-project/SUMMARY.md +170 -0
- package/gsd-core/templates/research.md +592 -0
- package/gsd-core/templates/retrospective.md +54 -0
- package/gsd-core/templates/roadmap.md +202 -0
- package/gsd-core/templates/spec.md +307 -0
- package/gsd-core/templates/state.md +195 -0
- package/gsd-core/templates/summary-complex.md +59 -0
- package/gsd-core/templates/summary-minimal.md +41 -0
- package/gsd-core/templates/summary-standard.md +48 -0
- package/gsd-core/templates/summary.md +248 -0
- package/gsd-core/templates/test-strategy.md +50 -0
- package/gsd-core/templates/user-profile.md +146 -0
- package/gsd-core/templates/user-setup.md +311 -0
- package/gsd-core/templates/verification-report.md +322 -0
- package/gsd-core/workflows/_runtime-launcher.snippet.sh +1 -0
- package/gsd-core/workflows/add-backlog.md +91 -0
- package/gsd-core/workflows/add-phase.md +113 -0
- package/gsd-core/workflows/add-tests.md +355 -0
- package/gsd-core/workflows/add-todo.md +161 -0
- package/gsd-core/workflows/ai-integration-phase.md +295 -0
- package/gsd-core/workflows/analyze-dependencies.md +96 -0
- package/gsd-core/workflows/audit-fix.md +178 -0
- package/gsd-core/workflows/audit-milestone.md +360 -0
- package/gsd-core/workflows/audit-uat.md +110 -0
- package/gsd-core/workflows/autonomous.md +797 -0
- package/gsd-core/workflows/check-todos.md +180 -0
- package/gsd-core/workflows/cleanup.md +195 -0
- package/gsd-core/workflows/code-review-fix.md +502 -0
- package/gsd-core/workflows/code-review.md +658 -0
- package/gsd-core/workflows/complete-milestone.md +855 -0
- package/gsd-core/workflows/debug.md +237 -0
- package/gsd-core/workflows/diagnose-issues.md +245 -0
- package/gsd-core/workflows/discover-product.md +112 -0
- package/gsd-core/workflows/discovery-phase.md +291 -0
- package/gsd-core/workflows/discuss-phase/modes/advisor.md +176 -0
- package/gsd-core/workflows/discuss-phase/modes/all.md +28 -0
- package/gsd-core/workflows/discuss-phase/modes/analyze.md +44 -0
- package/gsd-core/workflows/discuss-phase/modes/auto.md +57 -0
- package/gsd-core/workflows/discuss-phase/modes/batch.md +52 -0
- package/gsd-core/workflows/discuss-phase/modes/chain.md +98 -0
- package/gsd-core/workflows/discuss-phase/modes/default.md +141 -0
- package/gsd-core/workflows/discuss-phase/modes/power.md +44 -0
- package/gsd-core/workflows/discuss-phase/modes/text.md +55 -0
- package/gsd-core/workflows/discuss-phase/templates/checkpoint.json +18 -0
- package/gsd-core/workflows/discuss-phase/templates/context.md +136 -0
- package/gsd-core/workflows/discuss-phase/templates/discussion-log.md +50 -0
- package/gsd-core/workflows/discuss-phase-assumptions.md +675 -0
- package/gsd-core/workflows/discuss-phase-power.md +291 -0
- package/gsd-core/workflows/discuss-phase.md +499 -0
- package/gsd-core/workflows/do.md +111 -0
- package/gsd-core/workflows/docs-update.md +1176 -0
- package/gsd-core/workflows/edit-phase.md +295 -0
- package/gsd-core/workflows/eval-review.md +156 -0
- package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +95 -0
- package/gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
- package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +117 -0
- package/gsd-core/workflows/execute-phase.md +1752 -0
- package/gsd-core/workflows/execute-plan.md +526 -0
- package/gsd-core/workflows/explore.md +146 -0
- package/gsd-core/workflows/extract-learnings.md +243 -0
- package/gsd-core/workflows/fast.md +124 -0
- package/gsd-core/workflows/forensics.md +279 -0
- package/gsd-core/workflows/graduation.md +196 -0
- package/gsd-core/workflows/health.md +224 -0
- package/gsd-core/workflows/help/modes/brief.md +22 -0
- package/gsd-core/workflows/help/modes/default.md +50 -0
- package/gsd-core/workflows/help/modes/full.md +789 -0
- package/gsd-core/workflows/help/modes/topic.md +74 -0
- package/gsd-core/workflows/help.md +24 -0
- package/gsd-core/workflows/import.md +256 -0
- package/gsd-core/workflows/inbox.md +387 -0
- package/gsd-core/workflows/ingest-docs.md +340 -0
- package/gsd-core/workflows/insert-phase.md +152 -0
- package/gsd-core/workflows/list-phase-assumptions.md +178 -0
- package/gsd-core/workflows/list-workspaces.md +57 -0
- package/gsd-core/workflows/manager.md +393 -0
- package/gsd-core/workflows/map-codebase.md +446 -0
- package/gsd-core/workflows/milestone-summary.md +224 -0
- package/gsd-core/workflows/model-domain.md +162 -0
- package/gsd-core/workflows/mvp-phase.md +222 -0
- package/gsd-core/workflows/new-milestone.md +635 -0
- package/gsd-core/workflows/new-project.md +1555 -0
- package/gsd-core/workflows/new-workspace.md +240 -0
- package/gsd-core/workflows/next.md +299 -0
- package/gsd-core/workflows/node-repair.md +92 -0
- package/gsd-core/workflows/note.md +158 -0
- package/gsd-core/workflows/pause-work.md +244 -0
- package/gsd-core/workflows/plan-milestone-gaps.md +281 -0
- package/gsd-core/workflows/plan-phase.md +1814 -0
- package/gsd-core/workflows/plan-review-convergence.md +346 -0
- package/gsd-core/workflows/plant-seed.md +230 -0
- package/gsd-core/workflows/pr-branch.md +157 -0
- package/gsd-core/workflows/profile-user.md +453 -0
- package/gsd-core/workflows/progress.md +699 -0
- package/gsd-core/workflows/quick.md +1017 -0
- package/gsd-core/workflows/reapply-patches.md +426 -0
- package/gsd-core/workflows/recommend-architecture.md +135 -0
- package/gsd-core/workflows/remove-phase.md +156 -0
- package/gsd-core/workflows/remove-workspace.md +108 -0
- package/gsd-core/workflows/resume-project.md +332 -0
- package/gsd-core/workflows/review.md +748 -0
- package/gsd-core/workflows/scan.md +107 -0
- package/gsd-core/workflows/secure-phase.md +182 -0
- package/gsd-core/workflows/session-report.md +146 -0
- package/gsd-core/workflows/settings-advanced.md +810 -0
- package/gsd-core/workflows/settings-integrations.md +312 -0
- package/gsd-core/workflows/settings.md +566 -0
- package/gsd-core/workflows/ship.md +405 -0
- package/gsd-core/workflows/sketch-wrap-up.md +286 -0
- package/gsd-core/workflows/sketch.md +361 -0
- package/gsd-core/workflows/spec-phase.md +263 -0
- package/gsd-core/workflows/spike-wrap-up.md +307 -0
- package/gsd-core/workflows/spike.md +453 -0
- package/gsd-core/workflows/stats.md +80 -0
- package/gsd-core/workflows/sync-skills.md +182 -0
- package/gsd-core/workflows/testing-strategy.md +122 -0
- package/gsd-core/workflows/thread.md +222 -0
- package/gsd-core/workflows/transition.md +694 -0
- package/gsd-core/workflows/ui-phase.md +328 -0
- package/gsd-core/workflows/ui-review.md +193 -0
- package/gsd-core/workflows/ultraplan-phase.md +199 -0
- package/gsd-core/workflows/undo.md +314 -0
- package/gsd-core/workflows/update.md +496 -0
- package/gsd-core/workflows/validate-phase.md +181 -0
- package/gsd-core/workflows/verify-phase.md +544 -0
- package/gsd-core/workflows/verify-work.md +781 -0
- package/hooks/dist/gsd-check-update-worker.js +108 -0
- package/hooks/dist/gsd-check-update.js +66 -0
- package/hooks/dist/gsd-config-reload.js +133 -0
- package/hooks/dist/gsd-context-monitor.js +195 -0
- package/hooks/dist/gsd-cursor-post-tool.js +75 -0
- package/hooks/dist/gsd-cursor-session-start.js +52 -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 +566 -0
- package/hooks/dist/gsd-update-banner.js +138 -0
- package/hooks/dist/gsd-validate-commit.sh +57 -0
- package/hooks/dist/gsd-workflow-guard.js +167 -0
- package/hooks/dist/gsd-worktree-path-guard.js +169 -0
- package/hooks/dist/lib/git-cmd.js +150 -0
- package/hooks/dist/lib/gsd-graphify-rebuild.sh +65 -0
- package/hooks/dist/managed-hooks-registry.cjs +38 -0
- package/hooks/gsd-check-update-worker.js +108 -0
- package/hooks/gsd-check-update.js +66 -0
- package/hooks/gsd-config-reload.js +133 -0
- package/hooks/gsd-context-monitor.js +195 -0
- package/hooks/gsd-cursor-post-tool.js +75 -0
- package/hooks/gsd-cursor-session-start.js +52 -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 +566 -0
- package/hooks/gsd-update-banner.js +138 -0
- package/hooks/gsd-validate-commit.sh +57 -0
- package/hooks/gsd-workflow-guard.js +167 -0
- package/hooks/gsd-worktree-path-guard.js +169 -0
- package/hooks/hooks.json +69 -0
- package/hooks/lib/git-cmd.js +150 -0
- package/hooks/lib/gsd-graphify-rebuild.sh +65 -0
- package/hooks/managed-hooks-registry.cjs +38 -0
- package/package.json +115 -0
- package/scripts/affected-tests-lib.cjs +542 -0
- package/scripts/audit-workflow-script-paths.cjs +73 -0
- package/scripts/base64-scan.sh +351 -0
- package/scripts/build-hooks.js +247 -0
- package/scripts/changeset/README.md +129 -0
- package/scripts/changeset/cli.cjs +590 -0
- package/scripts/changeset/github-release-notes.cjs +199 -0
- package/scripts/changeset/lint.cjs +111 -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 +114 -0
- package/scripts/check-env.cjs +312 -0
- package/scripts/check-npm-integrity.cjs +215 -0
- package/scripts/ci-guard-runner.cjs +22 -0
- package/scripts/ci-prepare-test-scope.cjs +51 -0
- package/scripts/ci-rebase-check.cjs +86 -0
- package/scripts/ci-test-scope.cjs +431 -0
- package/scripts/command-contract-helpers.cjs +64 -0
- package/scripts/diff-touches-shipped-paths.cjs +155 -0
- package/scripts/fix-slash-commands.cjs +147 -0
- package/scripts/gen-inventory-manifest.cjs +115 -0
- package/scripts/gen-research-agents.cjs +276 -0
- package/scripts/generate-package-identity.cjs +125 -0
- package/scripts/issue-dedupe.cjs +278 -0
- package/scripts/lib/allowlist-ratchet.cjs +136 -0
- package/scripts/lib/cli-exit.cjs +56 -0
- package/scripts/lint-command-contract.cjs +114 -0
- package/scripts/lint-descriptions.cjs +87 -0
- package/scripts/lint-docs-required.cjs +222 -0
- package/scripts/lint-legacy-dir-name.cjs +160 -0
- package/scripts/lint-package-identity-drift.cjs +141 -0
- package/scripts/lint-pr-check-project-dir.cjs +99 -0
- package/scripts/lint-shell-command-projection-drift.cjs +62 -0
- package/scripts/lint-skill-deps.cjs +185 -0
- package/scripts/lint-test-file-count.allowlist.json +135 -0
- package/scripts/lint-test-file-count.cjs +246 -0
- package/scripts/mutation-matrix.cjs +222 -0
- package/scripts/pr-template-policy.cjs +268 -0
- package/scripts/prompt-injection-scan.sh +207 -0
- package/scripts/release-notes/discord-release-summary.cjs +373 -0
- package/scripts/release-notes/format-github-release-notes.cjs +261 -0
- package/scripts/release-tarball-smoke.cjs +629 -0
- package/scripts/research-profiles.cjs +149 -0
- package/scripts/run-affected-tests.cjs +7 -0
- package/scripts/run-cross-platform-tests.cjs +67 -0
- package/scripts/run-tests.cjs +315 -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/strip-prose-atrefs.cjs +106 -0
- package/scripts/sync-manifest-versions.cjs +119 -0
- package/scripts/sync-rulesets.sh +34 -0
- package/scripts/sync-runtime-launcher.cjs +399 -0
- package/scripts/test-failure-reasons.cjs +34 -0
- package/scripts/verify-npm-publish.cjs +240 -0
- package/scripts/workflow-policy.cjs +450 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# GSD Canonical Artifact Registry
|
|
2
|
+
|
|
3
|
+
This directory contains the template files for every artifact that GSD workflows officially produce. The table below is the authoritative index: **if a `.planning/` root file is not listed here, `gsd-health` will flag it as W019** (unrecognized artifact).
|
|
4
|
+
|
|
5
|
+
Agents should query this file before treating a `.planning/` file as authoritative. If the file name does not appear below, it is not a canonical GSD artifact.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## `.planning/` Root Artifacts
|
|
10
|
+
|
|
11
|
+
These files live directly at `.planning/` — not inside phase subdirectories.
|
|
12
|
+
|
|
13
|
+
| File | Template | Produced by | Purpose |
|
|
14
|
+
|------|----------|-------------|---------|
|
|
15
|
+
| `PROJECT.md` | `project.md` | `/gsd:new-project` | Project identity, goals, requirements summary |
|
|
16
|
+
| `ROADMAP.md` | `roadmap.md` | `/gsd:new-milestone`, `/gsd:new-project` | Phase plan with milestones and progress tracking |
|
|
17
|
+
| `STATE.md` | `state.md` | `/gsd:new-project`, `/gsd:health --repair` | Current session state, active phase, last activity |
|
|
18
|
+
| `REQUIREMENTS.md` | `requirements.md` | `/gsd:new-milestone` | Functional requirements with traceability |
|
|
19
|
+
| `MILESTONES.md` | `milestone.md` | `/gsd:complete-milestone` | Log of completed milestones with accomplishments |
|
|
20
|
+
| `BACKLOG.md` | *(inline)* | `/gsd-add-backlog` | Pending ideas and deferred work |
|
|
21
|
+
| `LEARNINGS.md` | *(inline)* | `/gsd:extract-learnings`, `/gsd:execute-phase` | Phase retrospective learnings for future plans |
|
|
22
|
+
| `THREADS.md` | *(inline)* | `/gsd:thread` | Persistent discussion threads |
|
|
23
|
+
| `config.json` | `config.json` | `/gsd:new-project`, `/gsd:health --repair` | Project-specific GSD configuration |
|
|
24
|
+
| `CLAUDE.md` | `claude-md.md` | `/gsd-profile` | Auto-assembled Claude Code context file |
|
|
25
|
+
| `RETROSPECTIVE.md` | *(inline)* | `/gsd:complete-milestone` | Living milestone retrospective updated at each milestone close |
|
|
26
|
+
|
|
27
|
+
### Version-stamped artifacts (pattern: `vX.Y-*.md`)
|
|
28
|
+
|
|
29
|
+
| Pattern | Produced by | Purpose |
|
|
30
|
+
|---------|-------------|---------|
|
|
31
|
+
| `vX.Y-MILESTONE-AUDIT.md` | `/gsd:audit-milestone` | Milestone audit report before archiving |
|
|
32
|
+
|
|
33
|
+
These files are archived to `.planning/milestones/` by `/gsd:complete-milestone`. Finding them at the `.planning/` root after completion indicates the archive step was skipped.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Phase Subdirectory Artifacts (`.planning/phases/NN-name/`)
|
|
38
|
+
|
|
39
|
+
These files live inside a phase directory. They are NOT checked by W019 (which only inspects the `.planning/` root).
|
|
40
|
+
|
|
41
|
+
| File Pattern | Template | Produced by | Purpose |
|
|
42
|
+
|-------------|----------|-------------|---------|
|
|
43
|
+
| `NN-MM-PLAN.md` | `phase-prompt.md` | `/gsd:plan-phase` | Executable implementation plan |
|
|
44
|
+
| `NN-MM-SUMMARY.md` | `summary.md` | `/gsd:execute-phase` | Post-execution summary with learnings |
|
|
45
|
+
| `NN-CONTEXT.md` | `context.md` | `/gsd:discuss-phase` | Scoped discussion decisions for the phase |
|
|
46
|
+
| `NN-RESEARCH.md` | `research.md` | `/gsd:plan-phase`, `/gsd:plan-phase --research-phase <N>` | Technical research for the phase |
|
|
47
|
+
| `NN-VALIDATION.md` | `VALIDATION.md` | `/gsd:plan-phase` (Nyquist) | Validation architecture (Nyquist method) |
|
|
48
|
+
| `NN-UAT.md` | `UAT.md` | `/gsd:validate-phase` | User acceptance test results |
|
|
49
|
+
| `NN-PATTERNS.md` | *(inline)* | `/gsd:plan-phase` (pattern mapper) | Analog file mapping for the phase |
|
|
50
|
+
| `NN-UI-SPEC.md` | `UI-SPEC.md` | `/gsd:ui-phase` | UI design contract |
|
|
51
|
+
| `NN-SECURITY.md` | `SECURITY.md` | `/gsd:secure-phase` | Security threat model |
|
|
52
|
+
| `NN-AI-SPEC.md` | `AI-SPEC.md` | `/gsd:ai-integration-phase` | AI integration spec with eval strategy |
|
|
53
|
+
| `NN-DEBUG.md` | `DEBUG.md` | `/gsd:debug` | Debug session log |
|
|
54
|
+
| `NN-REVIEWS.md` | *(inline)* | `/gsd:review` | Cross-AI review feedback |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Milestone Archive (`.planning/milestones/`)
|
|
59
|
+
|
|
60
|
+
Files archived by `/gsd:complete-milestone`. These are never checked by W019.
|
|
61
|
+
|
|
62
|
+
| File Pattern | Source |
|
|
63
|
+
|-------------|--------|
|
|
64
|
+
| `vX.Y-ROADMAP.md` | Snapshot of ROADMAP.md at milestone close |
|
|
65
|
+
| `vX.Y-REQUIREMENTS.md` | Snapshot of REQUIREMENTS.md at milestone close |
|
|
66
|
+
| `vX.Y-MILESTONE-AUDIT.md` | Moved from `.planning/` root |
|
|
67
|
+
| `vX.Y-phases/` | Archived phase directories (if `--archive-phases` used) |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Adding a New Canonical Artifact
|
|
72
|
+
|
|
73
|
+
When a new workflow produces a `.planning/` root file:
|
|
74
|
+
|
|
75
|
+
1. Add the file name to `CANONICAL_EXACT` in `gsd-core/bin/lib/artifacts.cjs`
|
|
76
|
+
2. Add a row to the **`.planning/` Root Artifacts** table above
|
|
77
|
+
3. Add the template to `gsd-core/templates/` if one exists
|
|
@@ -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,58 @@
|
|
|
1
|
+
# ADR-[NNNN]: Architecture for [PROJECT_TITLE]
|
|
2
|
+
|
|
3
|
+
- **Status:** [Proposed | Accepted]
|
|
4
|
+
- **Date:** [DATE]
|
|
5
|
+
- **Deciders:** [user / team]
|
|
6
|
+
- **Sources:** `DOMAIN-MODEL.md` (subdomain complexity), `PROJECT.md`, `REQUIREMENTS.md`
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
|
|
10
|
+
[The problem and the forces. Pull the core/supporting/generic split and complexity from DOMAIN-MODEL.md. State the non-functional drivers that matter (scale, lifespan, audit/regulatory, integration count) and the team/ops constraints (team count, CD maturity). Keep it about *why a decision is needed*, not the decision.]
|
|
11
|
+
|
|
12
|
+
## Decision
|
|
13
|
+
|
|
14
|
+
### Axis A — domain-logic organization (per subdomain)
|
|
15
|
+
|
|
16
|
+
| Subdomain | Type (from DOMAIN-MODEL) | Rung | Why |
|
|
17
|
+
|-----------|--------------------------|------|-----|
|
|
18
|
+
| [core subdomain] | Core | [Transaction Script / Domain Model / + Hexagonal / + CQRS / + Event Sourcing] | [the concrete signal that justifies this rung] |
|
|
19
|
+
| [supporting] | Supporting | [usually Transaction Script] | [why] |
|
|
20
|
+
| [generic] | Generic | Buy / off-the-shelf | [why] |
|
|
21
|
+
|
|
22
|
+
### Axis B — deployment topology
|
|
23
|
+
|
|
24
|
+
**Chosen:** [Modular Monolith (default) / Microservices / specific component extracted]
|
|
25
|
+
|
|
26
|
+
"You must be this tall" gates (required for microservices):
|
|
27
|
+
- Multiple independent teams needing independent deploy: [yes/no]
|
|
28
|
+
- CD / monitoring / DevOps maturity in place: [yes/no]
|
|
29
|
+
- Bounded contexts well-understood already: [yes/no]
|
|
30
|
+
|
|
31
|
+
[If any "no" → Modular Monolith. If a specific component is extracted, record the Hard-Parts disintegrators that justified it.]
|
|
32
|
+
|
|
33
|
+
### Baseline note
|
|
34
|
+
|
|
35
|
+
[State how this compares to the default baseline — "modular monolith + Domain Model in the complex core + Transaction Script elsewhere + ADRs + fitness functions" — and where/why it deviates.]
|
|
36
|
+
|
|
37
|
+
## Consequences
|
|
38
|
+
|
|
39
|
+
- **Positive:** [what this buys]
|
|
40
|
+
- **Negative / cost:** [the tax we accept]
|
|
41
|
+
- **Fitness functions to enforce the chosen boundaries:** [e.g., "no cross-module DB access," module dependency rules, "domain layer imports no framework"]
|
|
42
|
+
|
|
43
|
+
## Alternatives considered (and rejected)
|
|
44
|
+
|
|
45
|
+
| Alternative | Why rejected |
|
|
46
|
+
|-------------|--------------|
|
|
47
|
+
| [e.g., Microservices now] | [e.g., single team, contexts still being learned — fails the "tall enough" gates] |
|
|
48
|
+
| [e.g., Hexagonal everywhere] | [e.g., most subdomains are CRUD — one-impl ports would be over-engineering] |
|
|
49
|
+
|
|
50
|
+
## Over-/under-engineering check
|
|
51
|
+
|
|
52
|
+
For each non-floor rung chosen above, the **current, concrete requirement** that justifies it:
|
|
53
|
+
- [Rung] ← [the real adapter / scaling need / team / audit mandate that exists today]
|
|
54
|
+
|
|
55
|
+
[If no concrete requirement exists for a rung, drop to the floor. If a known requirement was ignored, raise the rung.]
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
*Architecture decision. Next: `/gsd:plan-phase`. Test strategy will follow this shape (rich core → more unit tests; CRUD edges → integration tests).*
|