@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,196 @@
|
|
|
1
|
+
# graduation.md — LEARNINGS.md Cross-Phase Graduation Helper
|
|
2
|
+
|
|
3
|
+
**Invoked by:** `transition.md` step `graduation_scan`. Never invoked directly by users.
|
|
4
|
+
|
|
5
|
+
This workflow clusters recurring items across the last N phases' LEARNINGS.md files and surfaces promotion candidates to the developer via HITL. No item is promoted without explicit developer approval.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Configuration
|
|
10
|
+
|
|
11
|
+
Read from project config (`config.json`):
|
|
12
|
+
|
|
13
|
+
| Key | Default | Description |
|
|
14
|
+
|-----|---------|-------------|
|
|
15
|
+
| `features.graduation` | `true` | Master on/off switch. `false` skips silently. |
|
|
16
|
+
| `features.graduation_window` | `5` | How many prior phases to scan |
|
|
17
|
+
| `features.graduation_threshold` | `3` | Minimum cluster size to surface |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Step 1: Guard Checks
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
_GSD_SHIM_NAME="gsd-tools.cjs"; _GSD_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; GSD_TOOLS="${_GSD_RUNTIME_ROOT}/get-shit-done/bin/${_GSD_SHIM_NAME}"; if [ -f "$GSD_TOOLS" ]; then gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif command -v gsd-tools >/dev/null 2>&1; then GSD_TOOLS="$(command -v gsd-tools)"; gsd_run() { "$GSD_TOOLS" "$@"; }; elif [ -f "$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; else echo "ERROR: gsd-tools.cjs not found at $GSD_TOOLS and gsd-tools is not on PATH. Run: npx -y @opengsd/gsd-core@latest --claude --local" >&2; exit 1; fi
|
|
25
|
+
GRADUATION_ENABLED=$(gsd_run query config-get features.graduation 2>/dev/null || echo "true")
|
|
26
|
+
GRADUATION_WINDOW=$(gsd_run query config-get features.graduation_window 2>/dev/null || echo "5")
|
|
27
|
+
GRADUATION_THRESHOLD=$(gsd_run query config-get features.graduation_threshold 2>/dev/null || echo "3")
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Skip silently (print nothing) if:**
|
|
31
|
+
- `features.graduation` is `false`
|
|
32
|
+
- Fewer than `graduation_threshold` completed prior phases exist (not enough data)
|
|
33
|
+
|
|
34
|
+
**Skip silently (print nothing) if total items across all LEARNINGS.md files in the window is fewer than 5.**
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Step 2: Collect LEARNINGS.md Files
|
|
39
|
+
|
|
40
|
+
Find LEARNINGS.md files from the last N completed phases (excluding the phase currently completing):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
find .planning/phases -name "*-LEARNINGS.md" | sort | tail -n "$GRADUATION_WINDOW"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
For each file found:
|
|
47
|
+
1. Parse the four category sections: `## Decisions`, `## Lessons`, `## Patterns`, `## Surprises`
|
|
48
|
+
2. Extract each `### Item Title` + body as a single item record: `{ category, title, body, source_phase, source_file }`
|
|
49
|
+
3. **Skip items that already contain `**Graduated:**`** — they have been promoted and must not re-surface
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Step 3: Cluster by Lexical Similarity
|
|
54
|
+
|
|
55
|
+
For each category independently, cluster items using Jaccard similarity on tokenized title+body:
|
|
56
|
+
|
|
57
|
+
**Tokenization:** lowercase, strip punctuation, split on whitespace, remove stop words (a, an, the, is, was, in, on, at, to, for, of, and, or, but, with, from, that, this, by, as).
|
|
58
|
+
|
|
59
|
+
**Jaccard similarity:** `|A ∩ B| / |A ∪ B|` where A and B are token sets. Two items are in the same cluster if similarity ≥ 0.25.
|
|
60
|
+
|
|
61
|
+
**Clustering algorithm:** single-pass greedy — process items in phase order; add to the first cluster whose centroid (union of all cluster tokens) has similarity ≥ 0.25 with the new item; otherwise start a new cluster.
|
|
62
|
+
|
|
63
|
+
**Cluster size filter:** only surface clusters with distinct source phases ≥ `graduation_threshold` (not just total items — same item repeated in one phase still counts as 1 distinct phase).
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Step 4: Check graduation_backlog in STATE.md
|
|
68
|
+
|
|
69
|
+
Read `.planning/STATE.md` `graduation_backlog` section (if present). Format:
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
graduation_backlog:
|
|
73
|
+
- cluster_id: "{sha256-of-cluster-title}"
|
|
74
|
+
status: "dismissed" # or "deferred"
|
|
75
|
+
deferred_until: "phase-N" # only for deferred entries
|
|
76
|
+
cluster_title: "{representative title}"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Skip any cluster whose `cluster_id` matches a `dismissed` entry.**
|
|
80
|
+
|
|
81
|
+
**Skip any cluster whose `cluster_id` matches a `deferred` entry where `deferred_until` phase has not yet completed.**
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Step 5: Surface Promotion Candidates
|
|
86
|
+
|
|
87
|
+
For each qualifying cluster, determine the suggested target file:
|
|
88
|
+
|
|
89
|
+
| Category | Suggested Target |
|
|
90
|
+
|----------|-----------------|
|
|
91
|
+
| `decisions` | `PROJECT.md` — append under `## Validated Decisions` (create section if absent) |
|
|
92
|
+
| `patterns` | `PATTERNS.md` — append under the appropriate category section (create file if absent) |
|
|
93
|
+
| `lessons` | `PROJECT.md` — append under `## Invariants` (create section if absent) |
|
|
94
|
+
| `surprises` | Flag for human review — if genuinely surprising 3+ times, something structural is wrong |
|
|
95
|
+
|
|
96
|
+
Print the graduation report:
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
📚 Graduation scan across phases {M}–{N}:
|
|
100
|
+
|
|
101
|
+
HIGH RECURRENCE ({K}/{WINDOW} phases)
|
|
102
|
+
├─ Cluster: "{representative title}"
|
|
103
|
+
├─ Category: {category}
|
|
104
|
+
├─ Sources: {list of NN-LEARNINGS filenames}
|
|
105
|
+
└─ Suggested target: {target file} § {section}
|
|
106
|
+
|
|
107
|
+
[repeat for each qualifying cluster, ordered HIGH→LOW recurrence]
|
|
108
|
+
|
|
109
|
+
For each cluster above, choose an action:
|
|
110
|
+
P = Promote now D = Defer (re-surface next transition) X = Dismiss (never re-surface) A = Defer all remaining
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Step 6: HITL — Process Each Cluster
|
|
116
|
+
|
|
117
|
+
For each cluster (in order from Step 5), ask the developer:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
Cluster: "{title}" [{category}, {K} phases] → {target}
|
|
121
|
+
Action [P/D/X/A]:
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Use `AskUserQuestion` (or equivalent HITL primitive for the current runtime). If `TEXT_MODE` is true, display the cluster question as plain text and accept typed input. Accept single-character input: `P`, `D`, `X`, `A` (case-insensitive).
|
|
125
|
+
|
|
126
|
+
**On `P` (Promote now):**
|
|
127
|
+
|
|
128
|
+
1. Read the target file (or create it with a standard header if absent)
|
|
129
|
+
2. Append the cluster entry under the suggested section:
|
|
130
|
+
```markdown
|
|
131
|
+
### {Cluster representative title}
|
|
132
|
+
{Merged body — combine unique sentences across cluster items}
|
|
133
|
+
|
|
134
|
+
**Sources:** Phase {A}, Phase {B}, Phase {C}
|
|
135
|
+
**Promoted:** {ISO_DATE}
|
|
136
|
+
```
|
|
137
|
+
3. For each source LEARNINGS.md item in the cluster, append `**Graduated:** {target-file}:{ISO_DATE}` after its last existing field
|
|
138
|
+
4. Commit both the target file and all annotated LEARNINGS.md files in a single atomic commit:
|
|
139
|
+
`docs(learnings): graduate "{cluster title}" to {target-file}`
|
|
140
|
+
|
|
141
|
+
**On `D` (Defer):**
|
|
142
|
+
|
|
143
|
+
Write to `.planning/STATE.md` under `graduation_backlog`:
|
|
144
|
+
```yaml
|
|
145
|
+
- cluster_id: "{sha256}"
|
|
146
|
+
status: "deferred"
|
|
147
|
+
deferred_until: "phase-{NEXT_PHASE_NUMBER}"
|
|
148
|
+
cluster_title: "{title}"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**On `X` (Dismiss):**
|
|
152
|
+
|
|
153
|
+
Write to `.planning/STATE.md` under `graduation_backlog`:
|
|
154
|
+
```yaml
|
|
155
|
+
- cluster_id: "{sha256}"
|
|
156
|
+
status: "dismissed"
|
|
157
|
+
cluster_title: "{title}"
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**On `A` (Defer all):**
|
|
161
|
+
|
|
162
|
+
Defer the current cluster (same as `D`) and skip all remaining clusters for this run, deferring each to the next transition. Print:
|
|
163
|
+
```text
|
|
164
|
+
[graduation: deferred all remaining clusters to next transition]
|
|
165
|
+
```
|
|
166
|
+
Then proceed directly to Step 7.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Step 7: Completion Report
|
|
171
|
+
|
|
172
|
+
After processing all clusters, print:
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
Graduation complete: {promoted} promoted, {deferred} deferred, {dismissed} dismissed.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
If no clusters qualified (all filtered by backlog or threshold), print:
|
|
179
|
+
```text
|
|
180
|
+
[graduation: no qualifying clusters in phases {M}–{N}]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## First-Run Behaviour
|
|
186
|
+
|
|
187
|
+
On the first transition after upgrading to a version that includes this workflow, all extant LEARNINGS.md files may produce a large batch of candidates at once. A `[Defer all]` shorthand is available: if the developer enters `A` at any cluster prompt, all remaining clusters for this run are deferred to the next transition.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## No-Op Conditions (silent skip)
|
|
192
|
+
|
|
193
|
+
- `features.graduation = false`
|
|
194
|
+
- Fewer than `graduation_threshold` prior phases with LEARNINGS.md
|
|
195
|
+
- Total items < 5 across the window
|
|
196
|
+
- All qualifying clusters are in `graduation_backlog` as dismissed
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Validate `.planning/` directory integrity and report actionable issues. Checks for missing files, invalid configurations, inconsistent state, and orphaned plans. Optionally repairs auto-fixable issues.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="parse_args">
|
|
12
|
+
**Parse arguments:**
|
|
13
|
+
|
|
14
|
+
Check if `--repair`, `--backfill`, or `--context` flags are present in the command arguments.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
REPAIR_FLAG=""
|
|
18
|
+
BACKFILL_FLAG=""
|
|
19
|
+
CONTEXT_MODE=""
|
|
20
|
+
if arguments contain "--repair"; then
|
|
21
|
+
REPAIR_FLAG="--repair"
|
|
22
|
+
fi
|
|
23
|
+
if arguments contain "--backfill"; then
|
|
24
|
+
BACKFILL_FLAG="--backfill"
|
|
25
|
+
fi
|
|
26
|
+
if arguments contain "--context"; then
|
|
27
|
+
CONTEXT_MODE="true"
|
|
28
|
+
fi
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If `CONTEXT_MODE` is set, jump to the `context_check` step and skip the
|
|
32
|
+
integrity validation steps. The two modes are orthogonal — context utilization
|
|
33
|
+
has nothing to do with `.planning/` directory health.
|
|
34
|
+
</step>
|
|
35
|
+
|
|
36
|
+
<step name="context_check">
|
|
37
|
+
**Run only when `--context` is set.**
|
|
38
|
+
|
|
39
|
+
The model running this workflow self-reports the current session's
|
|
40
|
+
approximate `tokensUsed` and the active model's `contextWindow`. Use the values
|
|
41
|
+
visible in your runtime (Claude Code's `/context` slash command output, or the
|
|
42
|
+
model's own session telemetry). If the runtime exposes neither, prompt the user
|
|
43
|
+
once via AskUserQuestion for both numbers.
|
|
44
|
+
|
|
45
|
+
**TEXT_MODE fallback:** when `text_mode` is true (config or `--text` flag) the
|
|
46
|
+
runtime is non-Claude (Codex, Gemini, etc.) and `AskUserQuestion` is not
|
|
47
|
+
available — replace the prompt with a plain-text two-question sequence
|
|
48
|
+
("Approximate tokens used? Context window size?") and read the answers as
|
|
49
|
+
plain text from the user's response.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
_GSD_SHIM_NAME="gsd-tools.cjs"; _GSD_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; GSD_TOOLS="${_GSD_RUNTIME_ROOT}/get-shit-done/bin/${_GSD_SHIM_NAME}"; if [ -f "$GSD_TOOLS" ]; then gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif command -v gsd-tools >/dev/null 2>&1; then GSD_TOOLS="$(command -v gsd-tools)"; gsd_run() { "$GSD_TOOLS" "$@"; }; elif [ -f "$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; else echo "ERROR: gsd-tools.cjs not found at $GSD_TOOLS and gsd-tools is not on PATH. Run: npx -y @opengsd/gsd-core@latest --claude --local" >&2; exit 1; fi
|
|
53
|
+
gsd_run query validate.context \
|
|
54
|
+
--tokens-used "$TOKENS_USED" \
|
|
55
|
+
--context-window "$CONTEXT_WINDOW"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The query prints a one-line status (`Context utilization: NN% (state)`) plus
|
|
59
|
+
a recommendation line for the warning and critical states. Print the SDK
|
|
60
|
+
output verbatim and end the workflow — do **not** mix in `.planning/`
|
|
61
|
+
health output, the two modes are independent diagnostics.
|
|
62
|
+
</step>
|
|
63
|
+
|
|
64
|
+
<step name="run_health_check">
|
|
65
|
+
**Run health validation:**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
gsd_run query validate.health $REPAIR_FLAG $BACKFILL_FLAG
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Parse JSON output:
|
|
72
|
+
- `status`: "healthy" | "degraded" | "broken"
|
|
73
|
+
- `errors[]`: Critical issues (code, message, fix, repairable)
|
|
74
|
+
- `warnings[]`: Non-critical issues
|
|
75
|
+
- `info[]`: Informational notes
|
|
76
|
+
- `repairable_count`: Number of auto-fixable issues
|
|
77
|
+
- `repairs_performed[]`: Actions taken if --repair was used
|
|
78
|
+
</step>
|
|
79
|
+
|
|
80
|
+
<step name="format_output">
|
|
81
|
+
**Format and display results:**
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
85
|
+
GSD Health Check
|
|
86
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
87
|
+
|
|
88
|
+
Status: HEALTHY | DEGRADED | BROKEN
|
|
89
|
+
Errors: N | Warnings: N | Info: N
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**If repairs were performed:**
|
|
93
|
+
```
|
|
94
|
+
## Repairs Performed
|
|
95
|
+
|
|
96
|
+
- ✓ config.json: Created with defaults
|
|
97
|
+
- ✓ STATE.md: Regenerated from roadmap
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**If errors exist:**
|
|
101
|
+
```
|
|
102
|
+
## Errors
|
|
103
|
+
|
|
104
|
+
- [E001] config.json: JSON parse error at line 5
|
|
105
|
+
Fix: Run /gsd:health --repair to reset to defaults
|
|
106
|
+
|
|
107
|
+
- [E002] PROJECT.md not found
|
|
108
|
+
Fix: Run /gsd:new-project to create
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**If warnings exist:**
|
|
112
|
+
```
|
|
113
|
+
## Warnings
|
|
114
|
+
|
|
115
|
+
- [W002] STATE.md references phase 5, but only phases 1-3 exist
|
|
116
|
+
Fix: Review STATE.md manually before changing it; repair will not overwrite an existing STATE.md
|
|
117
|
+
|
|
118
|
+
- [W005] Phase directory "1-setup" doesn't follow NN-name format
|
|
119
|
+
Fix: Rename to match pattern (e.g., 01-setup)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**If info exists:**
|
|
123
|
+
```
|
|
124
|
+
## Info
|
|
125
|
+
|
|
126
|
+
- [I001] 02-implementation/02-01-PLAN.md has no SUMMARY.md
|
|
127
|
+
Note: May be in progress
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Footer (if repairable issues exist and --repair was NOT used):**
|
|
131
|
+
```
|
|
132
|
+
---
|
|
133
|
+
N issues can be auto-repaired. Run: /gsd:health --repair
|
|
134
|
+
```
|
|
135
|
+
</step>
|
|
136
|
+
|
|
137
|
+
<step name="offer_repair">
|
|
138
|
+
**If repairable issues exist and --repair was NOT used:**
|
|
139
|
+
|
|
140
|
+
Ask user if they want to run repairs:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
Would you like to run /gsd:health --repair to fix N issues automatically?
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
If yes, re-run with --repair flag and display results.
|
|
147
|
+
</step>
|
|
148
|
+
|
|
149
|
+
<step name="verify_repairs">
|
|
150
|
+
**If repairs were performed:**
|
|
151
|
+
|
|
152
|
+
Re-run health check without --repair to confirm issues are resolved:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
gsd_run query validate.health
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Report final status.
|
|
159
|
+
</step>
|
|
160
|
+
|
|
161
|
+
</process>
|
|
162
|
+
|
|
163
|
+
<error_codes>
|
|
164
|
+
|
|
165
|
+
| Code | Severity | Description | Repairable |
|
|
166
|
+
|------|----------|-------------|------------|
|
|
167
|
+
| E001 | error | .planning/ directory not found | No |
|
|
168
|
+
| E002 | error | PROJECT.md not found | No |
|
|
169
|
+
| E003 | error | ROADMAP.md not found | No |
|
|
170
|
+
| E004 | error | STATE.md not found | Yes |
|
|
171
|
+
| E005 | error | config.json parse error | Yes |
|
|
172
|
+
| W001 | warning | PROJECT.md missing required section | No |
|
|
173
|
+
| W002 | warning | STATE.md references invalid phase | No |
|
|
174
|
+
| W003 | warning | config.json not found | Yes |
|
|
175
|
+
| W004 | warning | config.json invalid field value | No |
|
|
176
|
+
| W005 | warning | Phase directory naming mismatch | No |
|
|
177
|
+
| W006 | warning | Phase in ROADMAP but no directory | No |
|
|
178
|
+
| W007 | warning | Phase on disk but not in ROADMAP | No |
|
|
179
|
+
| W008 | warning | config.json: workflow.nyquist_validation absent (defaults to enabled but agents may skip) | Yes |
|
|
180
|
+
| W009 | warning | Phase has Validation Architecture in RESEARCH.md but no VALIDATION.md | No |
|
|
181
|
+
| W018 | warning | MILESTONES.md missing entry for archived milestone snapshot | Yes (`--backfill`) |
|
|
182
|
+
| W019 | warning | Unrecognized .planning/ root file — not a canonical GSD artifact | No |
|
|
183
|
+
| I001 | info | Plan without SUMMARY (may be in progress) | No |
|
|
184
|
+
|
|
185
|
+
</error_codes>
|
|
186
|
+
|
|
187
|
+
<repair_actions>
|
|
188
|
+
|
|
189
|
+
| Action | Effect | Risk |
|
|
190
|
+
|--------|--------|------|
|
|
191
|
+
| createConfig | Create config.json with defaults | None |
|
|
192
|
+
| resetConfig | Delete + recreate config.json | Loses custom settings |
|
|
193
|
+
| regenerateState | Create STATE.md from ROADMAP structure when it is missing | Loses session history |
|
|
194
|
+
| addNyquistKey | Add workflow.nyquist_validation: true to config.json | None — matches existing default |
|
|
195
|
+
| backfillMilestones | Synthesize missing MILESTONES.md entries from `.planning/milestones/vX.Y-ROADMAP.md` snapshots | None — additive only; triggered by `--backfill` flag |
|
|
196
|
+
|
|
197
|
+
**Not repairable (too risky):**
|
|
198
|
+
- PROJECT.md, ROADMAP.md content
|
|
199
|
+
- Phase directory renaming
|
|
200
|
+
- Orphaned plan cleanup
|
|
201
|
+
|
|
202
|
+
</repair_actions>
|
|
203
|
+
|
|
204
|
+
<stale_task_cleanup>
|
|
205
|
+
**Windows-specific:** Check for stale Claude Code task directories that accumulate on crash/freeze.
|
|
206
|
+
These are left behind when subagents are force-killed and consume disk space.
|
|
207
|
+
|
|
208
|
+
When `--repair` is active, detect and clean up:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Check for stale task directories (older than 24 hours)
|
|
212
|
+
TASKS_DIR="$HOME/.claude/tasks"
|
|
213
|
+
if [ -d "$TASKS_DIR" ]; then
|
|
214
|
+
STALE_COUNT=$( (find "$TASKS_DIR" -maxdepth 1 -type d -mtime +1 2>/dev/null || true) | wc -l )
|
|
215
|
+
if [ "$STALE_COUNT" -gt 0 ]; then
|
|
216
|
+
echo "⚠️ Found $STALE_COUNT stale task directories in ~/.claude/tasks/"
|
|
217
|
+
echo " These are leftover from crashed subagent sessions."
|
|
218
|
+
echo " Run: rm -rf ~/.claude/tasks/* (safe — only affects dead sessions)"
|
|
219
|
+
fi
|
|
220
|
+
fi
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Report as info diagnostic: `I002 | info | Stale subagent task directories found | Yes (--repair removes them)`
|
|
224
|
+
</stale_task_cleanup>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
One-liner refresher for returning users. Output ONLY the `<reference>` content below. No additions.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<reference>
|
|
6
|
+
**GSD — top commands**
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
/gsd:new-project Initialize a project (greenfield)
|
|
10
|
+
/gsd:map-codebase Map an existing codebase (brownfield)
|
|
11
|
+
/gsd:plan-phase <N> Create a phase plan
|
|
12
|
+
/gsd:execute-phase <N> Execute a phase
|
|
13
|
+
/gsd:progress Where am I, what's next
|
|
14
|
+
/gsd:quick Small ad-hoc task with GSD guarantees
|
|
15
|
+
/gsd:fast "<task>" Trivial inline task — no subagents
|
|
16
|
+
/gsd:debug "<symptom>" Persistent debug session (survives /clear)
|
|
17
|
+
/gsd:capture Save an idea / todo / note
|
|
18
|
+
/gsd:ship <N> Open a PR from a completed phase
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
More: `/gsd:help` (default tour) · `/gsd:help --full` (everything) · `/gsd:help <topic>` (one section)
|
|
22
|
+
</reference>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
One-page newcomer-oriented tour of GSD. Output ONLY the `<reference>` content below. No additions.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<reference>
|
|
6
|
+
# GSD — Get Shit Done
|
|
7
|
+
|
|
8
|
+
Plan-driven development for solo agentic work with Claude Code. GSD turns a vague idea into a hierarchical plan, then executes it phase by phase with state tracking and atomic commits.
|
|
9
|
+
|
|
10
|
+
## Start here (3 commands)
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
/gsd:new-project # Greenfield: questioning → research → requirements → roadmap
|
|
14
|
+
/gsd:plan-phase 1 # Create a detailed plan for phase 1
|
|
15
|
+
/gsd:execute-phase 1 # Execute all plans in the phase
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Existing codebase? Run `/gsd:map-codebase` first to ground GSD in your code.
|
|
19
|
+
|
|
20
|
+
## Common commands
|
|
21
|
+
|
|
22
|
+
| Command | Purpose |
|
|
23
|
+
|---|---|
|
|
24
|
+
| `/gsd:progress` | Where am I, what's next — also routes freeform intent with `--do "..."` |
|
|
25
|
+
| `/gsd:quick` | Small ad-hoc task with GSD guarantees (planning dir + atomic commit) |
|
|
26
|
+
| `/gsd:fast "<task>"` | Trivial inline change — no subagents, ≤3 file edits |
|
|
27
|
+
| `/gsd:discuss-phase <N>` | Capture vision and decisions before planning |
|
|
28
|
+
| `/gsd:debug "<symptom>"` | Persistent debug session, survives `/clear` |
|
|
29
|
+
| `/gsd:capture` | Save an idea, todo, note, seed, or backlog item |
|
|
30
|
+
| `/gsd:verify-work <N>` | Conversational UAT for a completed phase |
|
|
31
|
+
| `/gsd:ship <N>` | Open a PR from a completed phase |
|
|
32
|
+
| `/gsd:help --full` | Complete reference (every command, every flag) |
|
|
33
|
+
|
|
34
|
+
## Want more?
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
/gsd:help --brief # 10-line refresher of top commands
|
|
38
|
+
/gsd:help --full # complete reference
|
|
39
|
+
/gsd:help <topic> # one section only — see topics below
|
|
40
|
+
/gsd:help --brief <topic> # compact scoped lookup — signature + one-line summary
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Topics: `workflow` · `planning` · `execute` · `quick` · `debug` · `capture` · `ship` · `config` · `milestones` · `spike` · `sketch` · `review` · `audit` · `progress`
|
|
44
|
+
|
|
45
|
+
## Update GSD
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx @opengsd/gsd-core@latest
|
|
49
|
+
```
|
|
50
|
+
</reference>
|