@opengsd/gsd-core 1.3.0-rc.1 → 1.3.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/README.ja-JP.md +44 -790
- package/README.ko-KR.md +41 -778
- package/README.md +39 -180
- package/README.pt-BR.md +45 -413
- package/README.zh-CN.md +43 -761
- package/agents/gsd-ai-researcher.md +1 -1
- package/agents/gsd-debugger.md +8 -8
- package/agents/gsd-domain-researcher.md +14 -1
- package/agents/gsd-eval-auditor.md +1 -1
- package/agents/gsd-eval-planner.md +1 -1
- package/agents/gsd-executor.md +21 -8
- package/agents/gsd-framework-selector.md +1 -1
- package/agents/gsd-intel-updater.md +4 -4
- package/agents/gsd-phase-researcher.md +18 -5
- package/agents/gsd-plan-checker.md +3 -3
- package/agents/gsd-planner.md +36 -23
- package/agents/gsd-project-researcher.md +13 -0
- package/agents/gsd-research-synthesizer.md +6 -2
- package/agents/gsd-roadmapper.md +6 -6
- package/agents/gsd-ui-researcher.md +15 -2
- package/agents/gsd-user-profiler.md +2 -2
- package/agents/gsd-verifier.md +7 -7
- package/bin/install.js +169 -59
- package/commands/gsd/add-tests.md +1 -1
- package/commands/gsd/ai-integration-phase.md +3 -3
- package/commands/gsd/audit-fix.md +1 -1
- package/commands/gsd/audit-milestone.md +1 -1
- package/commands/gsd/audit-uat.md +1 -1
- package/commands/gsd/autonomous.md +2 -2
- package/commands/gsd/capture.md +6 -6
- package/commands/gsd/cleanup.md +1 -1
- package/commands/gsd/code-review.md +1 -1
- package/commands/gsd/complete-milestone.md +2 -2
- package/commands/gsd/config.md +3 -3
- package/commands/gsd/debug.md +1 -1
- package/commands/gsd/discuss-phase.md +5 -4
- package/commands/gsd/docs-update.md +1 -1
- package/commands/gsd/eval-review.md +2 -2
- package/commands/gsd/execute-phase.md +2 -2
- package/commands/gsd/explore.md +1 -1
- package/commands/gsd/extract-learnings.md +2 -2
- package/commands/gsd/fast.md +1 -1
- package/commands/gsd/forensics.md +1 -1
- package/commands/gsd/graphify.md +9 -9
- package/commands/gsd/health.md +1 -1
- package/commands/gsd/help.md +2 -2
- package/commands/gsd/import.md +5 -5
- package/commands/gsd/inbox.md +1 -1
- package/commands/gsd/ingest-docs.md +4 -4
- package/commands/gsd/manager.md +3 -3
- package/commands/gsd/map-codebase.md +1 -1
- package/commands/gsd/milestone-summary.md +1 -1
- package/commands/gsd/mvp-phase.md +4 -4
- package/commands/gsd/new-milestone.md +5 -5
- package/commands/gsd/new-project.md +5 -5
- package/commands/gsd/pause-work.md +2 -2
- package/commands/gsd/phase.md +4 -4
- package/commands/gsd/plan-phase.md +2 -2
- package/commands/gsd/plan-review-convergence.md +4 -4
- package/commands/gsd/pr-branch.md +1 -1
- package/commands/gsd/profile-user.md +2 -2
- package/commands/gsd/progress.md +4 -4
- package/commands/gsd/quick.md +1 -1
- package/commands/gsd/resume-work.md +1 -1
- package/commands/gsd/review.md +1 -1
- package/commands/gsd/secure-phase.md +1 -1
- package/commands/gsd/settings.md +1 -1
- package/commands/gsd/ship.md +2 -2
- package/commands/gsd/sketch.md +7 -7
- package/commands/gsd/spec-phase.md +2 -2
- package/commands/gsd/spike.md +3 -3
- package/commands/gsd/stats.md +1 -1
- package/commands/gsd/surface.md +4 -4
- package/commands/gsd/thread.md +1 -1
- package/commands/gsd/ui-phase.md +2 -2
- package/commands/gsd/ui-review.md +2 -2
- package/commands/gsd/ultraplan-phase.md +2 -2
- package/commands/gsd/undo.md +3 -3
- package/commands/gsd/update.md +3 -3
- package/commands/gsd/validate-phase.md +1 -1
- package/commands/gsd/verify-work.md +2 -2
- package/commands/gsd/workspace.md +4 -4
- package/{get-shit-done → gsd-core}/bin/check-latest-version.cjs +1 -1
- package/{get-shit-done → gsd-core}/bin/gsd-tools.cjs +13 -3
- 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 +342 -0
- package/gsd-core/bin/lib/cjs-command-router-adapter.cjs +81 -0
- package/gsd-core/bin/lib/clock.cjs +95 -0
- package/gsd-core/bin/lib/clusters.cjs +128 -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 +1202 -0
- package/gsd-core/bin/lib/config-schema.cjs +29 -0
- package/{get-shit-done → gsd-core}/bin/lib/config-types.cjs +1 -1
- package/gsd-core/bin/lib/config.cjs +714 -0
- package/{get-shit-done → gsd-core}/bin/lib/configuration.cjs +76 -85
- package/gsd-core/bin/lib/context-utilization.cjs +48 -0
- package/gsd-core/bin/lib/core.cjs +2007 -0
- package/{get-shit-done → gsd-core}/bin/lib/decisions.cjs +9 -7
- 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 +1799 -0
- package/gsd-core/bin/lib/install-profiles.cjs +526 -0
- package/gsd-core/bin/lib/installer-migration-authoring.cjs +122 -0
- package/gsd-core/bin/lib/installer-migration-report.cjs +347 -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 +607 -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/{get-shit-done → gsd-core}/bin/lib/observability/redaction.cjs +19 -21
- package/{get-shit-done → gsd-core}/bin/lib/package-identity.cjs +5 -1
- 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/{get-shit-done → gsd-core}/bin/lib/plan-scan.cjs +18 -24
- 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/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 +491 -0
- package/gsd-core/bin/lib/roadmap.cjs +600 -0
- package/gsd-core/bin/lib/runtime-artifact-layout.cjs +254 -0
- package/gsd-core/bin/lib/runtime-homes.cjs +169 -0
- package/gsd-core/bin/lib/runtime-name-policy.cjs +96 -0
- package/gsd-core/bin/lib/runtime-slash.cjs +119 -0
- package/{get-shit-done → gsd-core}/bin/lib/schema-detect.cjs +20 -26
- package/gsd-core/bin/lib/secrets.cjs +34 -0
- package/gsd-core/bin/lib/security.cjs +407 -0
- package/{get-shit-done → gsd-core}/bin/lib/semver-compare.cjs +1 -1
- package/gsd-core/bin/lib/shell-command-projection.cjs +524 -0
- package/gsd-core/bin/lib/state-command-router.cjs +160 -0
- package/{get-shit-done → gsd-core}/bin/lib/state-document.cjs +78 -78
- package/gsd-core/bin/lib/state.cjs +2010 -0
- package/gsd-core/bin/lib/surface.cjs +406 -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/verify-command-router.cjs +44 -0
- package/gsd-core/bin/lib/verify.cjs +1451 -0
- package/{get-shit-done → gsd-core}/bin/lib/workstream-inventory-builder.cjs +19 -12
- package/gsd-core/bin/lib/workstream-inventory.cjs +147 -0
- package/{get-shit-done → gsd-core}/bin/lib/workstream-name-policy.cjs +28 -31
- package/gsd-core/bin/lib/workstream.cjs +380 -0
- package/gsd-core/bin/lib/worktree-safety.cjs +912 -0
- package/{get-shit-done → gsd-core}/bin/shared/config-schema.manifest.json +5 -0
- package/{get-shit-done → gsd-core}/references/artifact-types.md +1 -1
- package/{get-shit-done → gsd-core}/references/few-shot-examples/plan-checker.md +2 -2
- package/{get-shit-done → gsd-core}/references/few-shot-examples/verifier.md +12 -12
- package/{get-shit-done → gsd-core}/references/model-profile-resolution.md +1 -1
- package/{get-shit-done → gsd-core}/references/mvp-concepts.md +1 -1
- package/{get-shit-done → gsd-core}/references/planner-graphify-auto-update.md +2 -2
- package/{get-shit-done → gsd-core}/references/planner-mvp-mode.md +1 -1
- package/{get-shit-done → gsd-core}/references/verification-patterns.md +1 -1
- package/gsd-core/references/worktree-branch-check.md +38 -0
- package/{get-shit-done → gsd-core}/references/worktree-path-safety.md +4 -26
- package/{get-shit-done → gsd-core}/templates/README.md +2 -2
- package/{get-shit-done → gsd-core}/templates/codebase/structure.md +10 -10
- package/{get-shit-done → gsd-core}/templates/copilot-instructions.md +1 -1
- package/{get-shit-done → gsd-core}/templates/phase-prompt.md +10 -10
- package/gsd-core/workflows/_runtime-launcher.snippet.sh +1 -0
- package/{get-shit-done → gsd-core}/workflows/add-backlog.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/add-phase.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/add-tests.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/add-todo.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/ai-integration-phase.md +4 -4
- package/{get-shit-done → gsd-core}/workflows/audit-fix.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/audit-milestone.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/audit-uat.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/autonomous.md +4 -4
- package/{get-shit-done → gsd-core}/workflows/check-todos.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/cleanup.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/code-review-fix.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/code-review.md +4 -4
- package/{get-shit-done → gsd-core}/workflows/complete-milestone.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/debug.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/diagnose-issues.md +4 -2
- package/{get-shit-done → gsd-core}/workflows/discovery-phase.md +5 -5
- package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/advisor.md +4 -4
- package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/auto.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/chain.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/power.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/discuss-phase-assumptions.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/discuss-phase.md +6 -6
- package/{get-shit-done → gsd-core}/workflows/do.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/docs-update.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/edit-phase.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/eval-review.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/execute-phase/steps/codebase-drift-gate.md +15 -2
- package/{get-shit-done → gsd-core}/workflows/execute-phase/steps/post-merge-gate.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/execute-phase.md +68 -46
- package/{get-shit-done → gsd-core}/workflows/execute-plan.md +8 -8
- package/{get-shit-done → gsd-core}/workflows/explore.md +3 -3
- package/{get-shit-done → gsd-core}/workflows/extract-learnings.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/forensics.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/graduation.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/health.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/help/modes/full.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/import.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/ingest-docs.md +3 -3
- package/{get-shit-done → gsd-core}/workflows/insert-phase.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/list-workspaces.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/manager.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/map-codebase.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/milestone-summary.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/mvp-phase.md +7 -7
- package/{get-shit-done → gsd-core}/workflows/new-milestone.md +3 -3
- package/{get-shit-done → gsd-core}/workflows/new-project.md +6 -6
- package/{get-shit-done → gsd-core}/workflows/new-workspace.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/next.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/pause-work.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/plan-milestone-gaps.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/plan-phase.md +15 -15
- package/{get-shit-done → gsd-core}/workflows/plan-review-convergence.md +7 -7
- package/{get-shit-done → gsd-core}/workflows/plant-seed.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/profile-user.md +11 -11
- package/{get-shit-done → gsd-core}/workflows/progress.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/quick.md +2 -26
- package/{get-shit-done → gsd-core}/workflows/reapply-patches.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/remove-phase.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/remove-workspace.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/resume-project.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/review.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/scan.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/secure-phase.md +3 -3
- package/{get-shit-done → gsd-core}/workflows/settings-advanced.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/settings-integrations.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/settings.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/ship.md +56 -4
- package/{get-shit-done → gsd-core}/workflows/sketch-wrap-up.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/sketch.md +5 -5
- package/{get-shit-done → gsd-core}/workflows/spec-phase.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/spike-wrap-up.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/spike.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/stats.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/sync-skills.md +3 -3
- package/{get-shit-done → gsd-core}/workflows/thread.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/transition.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/ui-phase.md +3 -3
- package/{get-shit-done → gsd-core}/workflows/ui-review.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/ultraplan-phase.md +1 -1
- package/{get-shit-done → gsd-core}/workflows/undo.md +2 -2
- package/{get-shit-done → gsd-core}/workflows/update.md +41 -16
- package/{get-shit-done → gsd-core}/workflows/validate-phase.md +3 -3
- package/{get-shit-done → gsd-core}/workflows/verify-phase.md +4 -4
- package/{get-shit-done → gsd-core}/workflows/verify-work.md +5 -5
- package/hooks/dist/gsd-check-update-worker.js +16 -3
- package/hooks/dist/gsd-check-update.js +7 -5
- package/hooks/dist/gsd-context-monitor.js +2 -2
- package/hooks/dist/gsd-statusline.js +39 -21
- package/hooks/dist/gsd-update-banner.js +6 -2
- package/hooks/dist/managed-hooks-registry.cjs +35 -0
- package/hooks/gsd-check-update-worker.js +16 -3
- package/hooks/gsd-check-update.js +7 -5
- package/hooks/gsd-context-monitor.js +2 -2
- package/hooks/gsd-statusline.js +39 -21
- package/hooks/gsd-update-banner.js +6 -2
- package/package.json +9 -6
- package/scripts/affected-tests-lib.cjs +1 -1
- package/scripts/base64-scan.sh +12 -0
- package/scripts/build-hooks.js +4 -1
- package/scripts/changeset/cli.cjs +2 -2
- package/scripts/changeset/github-release-notes.cjs +1 -1
- package/scripts/changeset/lint.cjs +1 -1
- package/scripts/check-alias-drift.cjs +8 -8
- package/scripts/check-env.cjs +5 -1
- package/scripts/ci-test-scope.cjs +25 -10
- package/scripts/command-contract-helpers.cjs +1 -1
- package/scripts/fix-slash-commands.cjs +5 -5
- package/scripts/gen-inventory-manifest.cjs +3 -3
- package/scripts/generate-package-identity.cjs +28 -7
- package/scripts/lib/allowlist-ratchet.cjs +136 -0
- package/scripts/lint-command-contract.cjs +1 -1
- package/scripts/lint-legacy-dir-name.cjs +156 -0
- package/scripts/lint-package-identity-drift.cjs +8 -8
- package/scripts/lint-pr-check-project-dir.cjs +0 -1
- package/scripts/lint-shell-command-projection-drift.cjs +1 -1
- package/scripts/lint-skill-deps.cjs +1 -1
- package/scripts/lint-test-file-count.allowlist.json +129 -32
- package/scripts/lint-test-file-count.cjs +85 -30
- package/scripts/mutation-matrix.cjs +219 -0
- package/scripts/prompt-injection-scan.sh +5 -1
- package/scripts/release-notes/format-github-release-notes.cjs +256 -0
- package/scripts/release-tarball-smoke.cjs +9 -9
- package/scripts/run-tests.cjs +11 -3
- package/scripts/strip-prose-atrefs.cjs +2 -2
- package/scripts/sync-runtime-launcher.cjs +2 -2
- package/scripts/verify-npm-publish.cjs +252 -0
- package/get-shit-done/bin/lib/active-workstream-store.cjs +0 -302
- package/get-shit-done/bin/lib/adr-parser.cjs +0 -394
- package/get-shit-done/bin/lib/agent-command-router.cjs +0 -65
- package/get-shit-done/bin/lib/artifacts.cjs +0 -53
- package/get-shit-done/bin/lib/audit.cjs +0 -755
- package/get-shit-done/bin/lib/check-command-router.cjs +0 -333
- package/get-shit-done/bin/lib/cjs-command-router-adapter.cjs +0 -118
- package/get-shit-done/bin/lib/clock.cjs +0 -96
- package/get-shit-done/bin/lib/clusters.cjs +0 -135
- package/get-shit-done/bin/lib/code-review-flags.cjs +0 -74
- package/get-shit-done/bin/lib/command-aliases.cjs +0 -831
- package/get-shit-done/bin/lib/command-arg-projection.cjs +0 -62
- package/get-shit-done/bin/lib/command-routing-hub.cjs +0 -388
- package/get-shit-done/bin/lib/commands.cjs +0 -1292
- package/get-shit-done/bin/lib/config-schema.cjs +0 -31
- package/get-shit-done/bin/lib/config.cjs +0 -728
- package/get-shit-done/bin/lib/context-utilization.cjs +0 -47
- package/get-shit-done/bin/lib/core.cjs +0 -2513
- package/get-shit-done/bin/lib/docs.cjs +0 -270
- package/get-shit-done/bin/lib/drift.cjs +0 -388
- package/get-shit-done/bin/lib/fallow-runner.cjs +0 -109
- package/get-shit-done/bin/lib/frontmatter.cjs +0 -389
- package/get-shit-done/bin/lib/gap-checker.cjs +0 -254
- package/get-shit-done/bin/lib/graphify.cjs +0 -592
- package/get-shit-done/bin/lib/gsd2-import.cjs +0 -514
- package/get-shit-done/bin/lib/init-command-router.cjs +0 -58
- package/get-shit-done/bin/lib/init.cjs +0 -2112
- package/get-shit-done/bin/lib/install-profiles.cjs +0 -603
- package/get-shit-done/bin/lib/installer-migration-authoring.cjs +0 -117
- package/get-shit-done/bin/lib/installer-migration-report.cjs +0 -355
- package/get-shit-done/bin/lib/installer-migrations/000-first-time-baseline.cjs +0 -220
- package/get-shit-done/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +0 -41
- package/get-shit-done/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +0 -80
- package/get-shit-done/bin/lib/installer-migrations.cjs +0 -778
- package/get-shit-done/bin/lib/intel.cjs +0 -708
- package/get-shit-done/bin/lib/learnings.cjs +0 -421
- package/get-shit-done/bin/lib/milestone.cjs +0 -372
- package/get-shit-done/bin/lib/model-catalog.cjs +0 -229
- package/get-shit-done/bin/lib/model-profiles.cjs +0 -31
- package/get-shit-done/bin/lib/observability/event.cjs +0 -82
- package/get-shit-done/bin/lib/observability/logger.cjs +0 -174
- package/get-shit-done/bin/lib/phase-command-router.cjs +0 -191
- package/get-shit-done/bin/lib/phase-lifecycle.cjs +0 -79
- package/get-shit-done/bin/lib/phase.cjs +0 -1607
- package/get-shit-done/bin/lib/phases-command-router.cjs +0 -39
- package/get-shit-done/bin/lib/planning-workspace.cjs +0 -238
- package/get-shit-done/bin/lib/profile-output.cjs +0 -1141
- package/get-shit-done/bin/lib/profile-pipeline.cjs +0 -539
- package/get-shit-done/bin/lib/project-root.cjs +0 -112
- package/get-shit-done/bin/lib/prompt-budget.cjs +0 -399
- package/get-shit-done/bin/lib/review-reviewer-selection.cjs +0 -126
- package/get-shit-done/bin/lib/roadmap-command-router.cjs +0 -162
- package/get-shit-done/bin/lib/roadmap-upgrade.cjs +0 -569
- package/get-shit-done/bin/lib/roadmap.cjs +0 -651
- package/get-shit-done/bin/lib/runtime-artifact-layout.cjs +0 -301
- package/get-shit-done/bin/lib/runtime-homes.cjs +0 -222
- package/get-shit-done/bin/lib/runtime-name-policy.cjs +0 -83
- package/get-shit-done/bin/lib/runtime-slash.cjs +0 -112
- package/get-shit-done/bin/lib/secrets.cjs +0 -32
- package/get-shit-done/bin/lib/security.cjs +0 -600
- package/get-shit-done/bin/lib/shell-command-projection.cjs +0 -535
- package/get-shit-done/bin/lib/state-command-router.cjs +0 -252
- package/get-shit-done/bin/lib/state.cjs +0 -2073
- package/get-shit-done/bin/lib/surface.cjs +0 -470
- package/get-shit-done/bin/lib/task-command-router.cjs +0 -81
- package/get-shit-done/bin/lib/template.cjs +0 -228
- package/get-shit-done/bin/lib/uat.cjs +0 -289
- package/get-shit-done/bin/lib/ui-safety-gate.cjs +0 -111
- package/get-shit-done/bin/lib/update-context.cjs +0 -209
- package/get-shit-done/bin/lib/validate-command-router.cjs +0 -83
- package/get-shit-done/bin/lib/validate.cjs +0 -118
- package/get-shit-done/bin/lib/verify-command-router.cjs +0 -40
- package/get-shit-done/bin/lib/verify.cjs +0 -1614
- package/get-shit-done/bin/lib/workstream-inventory.cjs +0 -146
- package/get-shit-done/bin/lib/workstream.cjs +0 -389
- package/get-shit-done/bin/lib/worktree-safety.cjs +0 -985
- package/get-shit-done/workflows/_runtime-launcher.snippet.sh +0 -1
- package/scripts/lint-no-source-grep-extras.cjs +0 -81
- package/scripts/lint-no-source-grep.cjs +0 -174
- /package/{get-shit-done → gsd-core}/bin/shared/config-defaults.manifest.json +0 -0
- /package/{get-shit-done → gsd-core}/bin/shared/model-catalog.json +0 -0
- /package/{get-shit-done → gsd-core}/bin/shared/runtime-aliases.manifest.json +0 -0
- /package/{get-shit-done → gsd-core}/bin/verify-reapply-patches.cjs +0 -0
- /package/{get-shit-done → gsd-core}/contexts/dev.md +0 -0
- /package/{get-shit-done → gsd-core}/contexts/research.md +0 -0
- /package/{get-shit-done → gsd-core}/contexts/review.md +0 -0
- /package/{get-shit-done → gsd-core}/references/agent-contracts.md +0 -0
- /package/{get-shit-done → gsd-core}/references/ai-evals.md +0 -0
- /package/{get-shit-done → gsd-core}/references/ai-frameworks.md +0 -0
- /package/{get-shit-done → gsd-core}/references/autonomous-smart-discuss.md +0 -0
- /package/{get-shit-done → gsd-core}/references/checkpoints.md +0 -0
- /package/{get-shit-done → gsd-core}/references/common-bug-patterns.md +0 -0
- /package/{get-shit-done → gsd-core}/references/context-budget.md +0 -0
- /package/{get-shit-done → gsd-core}/references/continuation-format.md +0 -0
- /package/{get-shit-done → gsd-core}/references/debugger-philosophy.md +0 -0
- /package/{get-shit-done → gsd-core}/references/decimal-phase-calculation.md +0 -0
- /package/{get-shit-done → gsd-core}/references/doc-conflict-engine.md +0 -0
- /package/{get-shit-done → gsd-core}/references/domain-probes.md +0 -0
- /package/{get-shit-done → gsd-core}/references/execute-mvp-tdd.md +0 -0
- /package/{get-shit-done → gsd-core}/references/executor-examples.md +0 -0
- /package/{get-shit-done → gsd-core}/references/gate-prompts.md +0 -0
- /package/{get-shit-done → gsd-core}/references/gates.md +0 -0
- /package/{get-shit-done → gsd-core}/references/git-integration.md +0 -0
- /package/{get-shit-done → gsd-core}/references/git-planning-commit.md +0 -0
- /package/{get-shit-done → gsd-core}/references/ios-scaffold.md +0 -0
- /package/{get-shit-done → gsd-core}/references/mandatory-initial-read.md +0 -0
- /package/{get-shit-done → gsd-core}/references/model-profiles.md +0 -0
- /package/{get-shit-done → gsd-core}/references/phase-argument-parsing.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-antipatterns.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-chunked.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-gap-closure.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-human-verify-mode.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-interface-context.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-reviews.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-revision.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planner-source-audit.md +0 -0
- /package/{get-shit-done → gsd-core}/references/planning-config.md +0 -0
- /package/{get-shit-done → gsd-core}/references/project-skills-discovery.md +0 -0
- /package/{get-shit-done → gsd-core}/references/questioning.md +0 -0
- /package/{get-shit-done → gsd-core}/references/revision-loop.md +0 -0
- /package/{get-shit-done → gsd-core}/references/scout-codebase.md +0 -0
- /package/{get-shit-done → gsd-core}/references/skeleton-template.md +0 -0
- /package/{get-shit-done → gsd-core}/references/sketch-interactivity.md +0 -0
- /package/{get-shit-done → gsd-core}/references/sketch-theme-system.md +0 -0
- /package/{get-shit-done → gsd-core}/references/sketch-tooling.md +0 -0
- /package/{get-shit-done → gsd-core}/references/sketch-variant-patterns.md +0 -0
- /package/{get-shit-done → gsd-core}/references/spidr-splitting.md +0 -0
- /package/{get-shit-done → gsd-core}/references/tdd.md +0 -0
- /package/{get-shit-done → gsd-core}/references/thinking-models-debug.md +0 -0
- /package/{get-shit-done → gsd-core}/references/thinking-models-execution.md +0 -0
- /package/{get-shit-done → gsd-core}/references/thinking-models-planning.md +0 -0
- /package/{get-shit-done → gsd-core}/references/thinking-models-research.md +0 -0
- /package/{get-shit-done → gsd-core}/references/thinking-models-verification.md +0 -0
- /package/{get-shit-done → gsd-core}/references/thinking-partner.md +0 -0
- /package/{get-shit-done → gsd-core}/references/ui-brand.md +0 -0
- /package/{get-shit-done → gsd-core}/references/universal-anti-patterns.md +0 -0
- /package/{get-shit-done → gsd-core}/references/user-profiling.md +0 -0
- /package/{get-shit-done → gsd-core}/references/user-story-template.md +0 -0
- /package/{get-shit-done → gsd-core}/references/verification-overrides.md +0 -0
- /package/{get-shit-done → gsd-core}/references/verify-mvp-mode.md +0 -0
- /package/{get-shit-done → gsd-core}/references/workstream-flag.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/AI-SPEC.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/DEBUG.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/SECURITY.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/UAT.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/UI-SPEC.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/VALIDATION.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/claude-md.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/codebase/architecture.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/codebase/concerns.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/codebase/conventions.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/codebase/integrations.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/codebase/stack.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/codebase/testing.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/config.json +0 -0
- /package/{get-shit-done → gsd-core}/templates/context.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/continue-here.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/debug-subagent-prompt.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/dev-preferences.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/discovery.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/discussion-log.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/milestone-archive.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/milestone.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/planner-subagent-prompt.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/project.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/requirements.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/research-project/ARCHITECTURE.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/research-project/FEATURES.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/research-project/PITFALLS.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/research-project/STACK.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/research-project/SUMMARY.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/research.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/retrospective.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/roadmap.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/spec.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/state.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/summary-complex.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/summary-minimal.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/summary-standard.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/summary.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/user-profile.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/user-setup.md +0 -0
- /package/{get-shit-done → gsd-core}/templates/verification-report.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/analyze-dependencies.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/all.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/analyze.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/batch.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/default.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/modes/text.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/templates/checkpoint.json +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/templates/context.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase/templates/discussion-log.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/discuss-phase-power.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/execute-phase/steps/per-plan-worktree-gate.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/fast.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/help/modes/brief.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/help/modes/default.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/help/modes/topic.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/help.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/inbox.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/list-phase-assumptions.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/node-repair.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/note.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/pr-branch.md +0 -0
- /package/{get-shit-done → gsd-core}/workflows/session-report.md +0 -0
|
@@ -40,7 +40,7 @@ works via Bash and produces equivalent output.
|
|
|
40
40
|
</documentation_lookup>
|
|
41
41
|
|
|
42
42
|
<required_reading>
|
|
43
|
-
Read `~/.claude/
|
|
43
|
+
Read `~/.claude/gsd-core/references/ai-frameworks.md` for framework profiles and known pitfalls before fetching docs.
|
|
44
44
|
</required_reading>
|
|
45
45
|
|
|
46
46
|
<input>
|
package/agents/gsd-debugger.md
CHANGED
|
@@ -21,7 +21,7 @@ You are spawned by:
|
|
|
21
21
|
|
|
22
22
|
Your job: Find the root cause through hypothesis testing, maintain debug file state, optionally fix and verify (depending on mode).
|
|
23
23
|
|
|
24
|
-
@~/.claude/
|
|
24
|
+
@~/.claude/gsd-core/references/mandatory-initial-read.md
|
|
25
25
|
|
|
26
26
|
**Core responsibilities:**
|
|
27
27
|
- Investigate autonomously (user reports symptoms, you find cause)
|
|
@@ -33,16 +33,16 @@ Your job: Find the root cause through hypothesis testing, maintain debug file st
|
|
|
33
33
|
</role>
|
|
34
34
|
|
|
35
35
|
<required_reading>
|
|
36
|
-
@~/.claude/
|
|
36
|
+
@~/.claude/gsd-core/references/common-bug-patterns.md
|
|
37
37
|
</required_reading>
|
|
38
38
|
|
|
39
|
-
**Project skills:** @~/.claude/
|
|
39
|
+
**Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md
|
|
40
40
|
- Load `rules/*.md` as needed during **investigation and fix**.
|
|
41
41
|
- Follow skill rules relevant to the bug being investigated and the fix being applied.
|
|
42
42
|
|
|
43
43
|
<philosophy>
|
|
44
44
|
|
|
45
|
-
@~/.claude/
|
|
45
|
+
@~/.claude/gsd-core/references/debugger-philosophy.md
|
|
46
46
|
|
|
47
47
|
</philosophy>
|
|
48
48
|
|
|
@@ -433,8 +433,8 @@ Check code says: hooksDir = path.join(configDir, 'hooks')
|
|
|
433
433
|
→ checks ~/.claude/hooks/
|
|
434
434
|
|
|
435
435
|
Installer says: hooksDest = path.join(targetDir, 'hooks')
|
|
436
|
-
targetDir = ~/.claude/
|
|
437
|
-
→ writes to ~/.claude/
|
|
436
|
+
targetDir = ~/.claude/gsd-core
|
|
437
|
+
→ writes to ~/.claude/gsd-core/hooks/
|
|
438
438
|
|
|
439
439
|
MISMATCH: Checker looks in wrong directory → hooks "not found" → reported as stale
|
|
440
440
|
```
|
|
@@ -959,7 +959,7 @@ Gather symptoms through questioning. Update file after EACH answer.
|
|
|
959
959
|
|
|
960
960
|
<step name="investigation_loop">
|
|
961
961
|
At investigation decision points, apply structured reasoning:
|
|
962
|
-
@~/.claude/
|
|
962
|
+
@~/.claude/gsd-core/references/thinking-models-debug.md
|
|
963
963
|
|
|
964
964
|
**Autonomous investigation. Update file continuously.**
|
|
965
965
|
|
|
@@ -982,7 +982,7 @@ At investigation decision points, apply structured reasoning:
|
|
|
982
982
|
- APPEND to Evidence after each finding
|
|
983
983
|
|
|
984
984
|
**Phase 1.5: Check common bug patterns**
|
|
985
|
-
- Read @~/.claude/
|
|
985
|
+
- Read @~/.claude/gsd-core/references/common-bug-patterns.md
|
|
986
986
|
- Match symptoms to pattern categories using the Symptom-to-Category Quick Map
|
|
987
987
|
- Any matching patterns become hypothesis candidates for Phase 2
|
|
988
988
|
- If no patterns match, proceed to open-ended hypothesis formation
|
|
@@ -40,7 +40,7 @@ works via Bash and produces equivalent output.
|
|
|
40
40
|
</documentation_lookup>
|
|
41
41
|
|
|
42
42
|
<required_reading>
|
|
43
|
-
Read `~/.claude/
|
|
43
|
+
Read `~/.claude/gsd-core/references/ai-evals.md` — specifically the rubric design and domain expert sections.
|
|
44
44
|
</required_reading>
|
|
45
45
|
|
|
46
46
|
<input>
|
|
@@ -98,6 +98,19 @@ If internal tooling with no regulated domain, "domain expert" = product owner or
|
|
|
98
98
|
<step name="write_section_1b">
|
|
99
99
|
**ALWAYS use the Write tool to create files** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
100
100
|
|
|
101
|
+
**Write contract (hard rules — must follow):**
|
|
102
|
+
|
|
103
|
+
Section 1b of AI-SPEC.md is the output of this step. The orchestrator reads `AI-SPEC.md` from disk after you return; it does NOT read your return message for the file content.
|
|
104
|
+
|
|
105
|
+
1. **Default: write the section in a single `Write` call.** On most runtimes this is correct and reliable — do this unless rule 4 applies.
|
|
106
|
+
2. **Do NOT return the AI-SPEC.md content in your response.** Your return message is a brief confirmation; the content lives on disk.
|
|
107
|
+
3. **Do NOT use `Bash(cat << 'EOF')` or heredoc** for file creation. Use the `Write` tool.
|
|
108
|
+
4. **Large-file / truncation fallback.** Some runtimes (e.g. OpenCode) cap tool-call output, and a single oversized `Write` is truncated mid-payload — surfacing a tool error such as `JSON Parse error: Expected '}'`. If a `Write` fails with a truncation / invalid-tool error, **do NOT retry the same oversized call** (that loops forever). Instead build the file incrementally so no single tool call carries the whole payload:
|
|
109
|
+
- `Write` the file with only the first section, ending with the sentinel line `<!-- gsd:write-continue -->`.
|
|
110
|
+
- `Read` the file, then `Edit` it, replacing `<!-- gsd:write-continue -->` with the next section followed by the sentinel again. Repeat, one section per `Edit`.
|
|
111
|
+
- On the final section, replace the sentinel with the closing content and no trailing sentinel.
|
|
112
|
+
5. **If writing still fails, surface the actual error in your return message.** **Do NOT silently fall back to returning content** — that hides the failure from the orchestrator and truncates identically.
|
|
113
|
+
|
|
101
114
|
Update AI-SPEC.md at `ai_spec_path`. Add/update Section 1b:
|
|
102
115
|
|
|
103
116
|
```markdown
|
|
@@ -33,7 +33,7 @@ Every planned eval dimension must resolve to COVERED, PARTIAL (WARNING), or MISS
|
|
|
33
33
|
</adversarial_stance>
|
|
34
34
|
|
|
35
35
|
<required_reading>
|
|
36
|
-
Read `~/.claude/
|
|
36
|
+
Read `~/.claude/gsd-core/references/ai-evals.md` before auditing. This is your scoring framework.
|
|
37
37
|
</required_reading>
|
|
38
38
|
|
|
39
39
|
**Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
|
|
@@ -17,7 +17,7 @@ Turn domain rubric ingredients into measurable, tooled evaluation criteria. Writ
|
|
|
17
17
|
</role>
|
|
18
18
|
|
|
19
19
|
<required_reading>
|
|
20
|
-
Read `~/.claude/
|
|
20
|
+
Read `~/.claude/gsd-core/references/ai-evals.md` before planning. This is your evaluation framework.
|
|
21
21
|
</required_reading>
|
|
22
22
|
|
|
23
23
|
<input>
|
package/agents/gsd-executor.md
CHANGED
|
@@ -18,7 +18,7 @@ Spawned by `/gsd:execute-phase` orchestrator.
|
|
|
18
18
|
|
|
19
19
|
Your job: Execute the plan completely, commit each task, create SUMMARY.md, update STATE.md.
|
|
20
20
|
|
|
21
|
-
@~/.claude/
|
|
21
|
+
@~/.claude/gsd-core/references/mandatory-initial-read.md
|
|
22
22
|
</role>
|
|
23
23
|
|
|
24
24
|
<documentation_lookup>
|
|
@@ -60,7 +60,7 @@ Before executing, discover project context:
|
|
|
60
60
|
|
|
61
61
|
**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
|
|
62
62
|
|
|
63
|
-
**Project skills:** @~/.claude/
|
|
63
|
+
**Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md
|
|
64
64
|
- Load `rules/*.md` as needed during **implementation**.
|
|
65
65
|
- Follow skill rules relevant to the task you are about to commit.
|
|
66
66
|
|
|
@@ -116,10 +116,10 @@ grep -n "type=\"checkpoint" [plan-path]
|
|
|
116
116
|
|
|
117
117
|
<step name="execute_tasks">
|
|
118
118
|
At execution decision points, apply structured reasoning:
|
|
119
|
-
@~/.claude/
|
|
119
|
+
@~/.claude/gsd-core/references/thinking-models-execution.md
|
|
120
120
|
|
|
121
121
|
**iOS app scaffolding:** If this plan creates an iOS app target, follow ios-scaffold guidance:
|
|
122
|
-
@~/.claude/
|
|
122
|
+
@~/.claude/gsd-core/references/ios-scaffold.md
|
|
123
123
|
|
|
124
124
|
For each task:
|
|
125
125
|
|
|
@@ -239,7 +239,7 @@ Track auto-fix attempts per task. After 3 auto-fix attempts on a single task:
|
|
|
239
239
|
|
|
240
240
|
**Extended examples and edge case guide:**
|
|
241
241
|
For detailed deviation rule examples, checkpoint examples, and edge case decision guidance:
|
|
242
|
-
@~/.claude/
|
|
242
|
+
@~/.claude/gsd-core/references/executor-examples.md
|
|
243
243
|
</deviation_rules>
|
|
244
244
|
|
|
245
245
|
<analysis_paralysis_guard>
|
|
@@ -285,7 +285,7 @@ Auto mode is active if either `AUTO_CHAIN` or `AUTO_CFG` is `"true"`. Store the
|
|
|
285
285
|
Before any `checkpoint:human-verify`, ensure verification environment is ready. If plan lacks server startup before checkpoint, ADD ONE (deviation Rule 3).
|
|
286
286
|
|
|
287
287
|
For full automation-first patterns, server lifecycle, CLI handling:
|
|
288
|
-
**See @~/.claude/
|
|
288
|
+
**See @~/.claude/gsd-core/references/checkpoints.md**
|
|
289
289
|
|
|
290
290
|
**Quick reference:** Users NEVER run CLI commands. Users ONLY visit URLs, click UI, evaluate visuals, provide secrets. Claude does all automation.
|
|
291
291
|
|
|
@@ -385,7 +385,7 @@ If RED or GREEN gate commits are missing, add a warning to SUMMARY.md under a `#
|
|
|
385
385
|
|
|
386
386
|
## MVP+TDD Gate
|
|
387
387
|
|
|
388
|
-
**When the orchestrator passes both `MVP_MODE=true` and `TDD_MODE=true`:** Before running the implementation step of any task with `tdd="true"`, run the runtime gate from `@~/.claude/
|
|
388
|
+
**When the orchestrator passes both `MVP_MODE=true` and `TDD_MODE=true`:** Before running the implementation step of any task with `tdd="true"`, run the runtime gate from `@~/.claude/gsd-core/references/execute-mvp-tdd.md`. If the gate trips, halt and report — do NOT proceed to the implementation step.
|
|
389
389
|
|
|
390
390
|
**Halt-and-report protocol:**
|
|
391
391
|
|
|
@@ -589,7 +589,20 @@ After all tasks complete, create `{phase}-{plan}-SUMMARY.md` at `.planning/phase
|
|
|
589
589
|
|
|
590
590
|
Use the Write tool to create files — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
591
591
|
|
|
592
|
-
**
|
|
592
|
+
**Write contract (hard rules — must follow):**
|
|
593
|
+
|
|
594
|
+
This file is the canonical output of this step. The orchestrator reads `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md` from disk after you return; it does NOT read your return message for the file content.
|
|
595
|
+
|
|
596
|
+
1. **Default: write the whole file in a single `Write` call.** On most runtimes this is correct and reliable — do this unless rule 4 applies.
|
|
597
|
+
2. **Do NOT return the SUMMARY.md content in your response.** Your return message is a brief confirmation; the content lives on disk.
|
|
598
|
+
3. **Do NOT use `Bash(cat << 'EOF')` or heredoc** for file creation. Use the `Write` tool.
|
|
599
|
+
4. **Large-file / truncation fallback.** Some runtimes (e.g. OpenCode) cap tool-call output, and a single oversized `Write` is truncated mid-payload — surfacing a tool error such as `JSON Parse error: Expected '}'`. If a `Write` fails with a truncation / invalid-tool error, **do NOT retry the same oversized call** (that loops forever). Instead build the file incrementally so no single tool call carries the whole payload:
|
|
600
|
+
- `Write` the file with only the first section, ending with the sentinel line `<!-- gsd:write-continue -->`.
|
|
601
|
+
- `Read` the file, then `Edit` it, replacing `<!-- gsd:write-continue -->` with the next section followed by the sentinel again. Repeat, one section per `Edit`.
|
|
602
|
+
- On the final section, replace the sentinel with the closing content and no trailing sentinel.
|
|
603
|
+
5. **If writing still fails, surface the actual error in your return message.** **Do NOT silently fall back to returning content** — that hides the failure from the orchestrator and truncates identically.
|
|
604
|
+
|
|
605
|
+
**Use template:** @~/.claude/gsd-core/templates/summary.md
|
|
593
606
|
|
|
594
607
|
**Frontmatter:** phase, plan, subsystem, tags, dependency graph (requires/provides/affects), tech-stack (added/patterns), key-files (created/modified), decisions, metrics (duration, completed date).
|
|
595
608
|
|
|
@@ -11,7 +11,7 @@ Run a ≤6-question interview, score frameworks, return a ranked recommendation
|
|
|
11
11
|
</role>
|
|
12
12
|
|
|
13
13
|
<required_reading>
|
|
14
|
-
Read `~/.claude/
|
|
14
|
+
Read `~/.claude/gsd-core/references/ai-frameworks.md` before asking questions. This is your decision matrix.
|
|
15
15
|
</required_reading>
|
|
16
16
|
|
|
17
17
|
<project_context>
|
|
@@ -64,7 +64,7 @@ The /gsd:map-codebase --query command has already confirmed that intel.enabled i
|
|
|
64
64
|
```bash
|
|
65
65
|
# Only run layout detection when analysing the GSD framework repo itself.
|
|
66
66
|
if [[ "$(jq -r '.name // ""' package.json 2>/dev/null)" == "@opengsd/gsd-core" ]]; then
|
|
67
|
-
ls -d .kilo 2>/dev/null && echo "kilo" || (ls -d .claude/
|
|
67
|
+
ls -d .kilo 2>/dev/null && echo "kilo" || (ls -d .claude/gsd-core 2>/dev/null && echo "claude") || echo "unknown"
|
|
68
68
|
fi
|
|
69
69
|
```
|
|
70
70
|
|
|
@@ -76,9 +76,9 @@ Use the detected root (when applicable) to resolve all canonical paths below:
|
|
|
76
76
|
|-------------|--------------------------|----------------|
|
|
77
77
|
| Agent files | `agents/*.md` | `.kilo/agents/*.md` |
|
|
78
78
|
| Command files | `commands/gsd/*.md` | `.kilo/command/*.md` |
|
|
79
|
-
| CLI tooling | `
|
|
80
|
-
| Workflow files | `
|
|
81
|
-
| Reference docs | `
|
|
79
|
+
| CLI tooling | `gsd-core/bin/` | `.kilo/gsd-core/bin/` |
|
|
80
|
+
| Workflow files | `gsd-core/workflows/` | `.kilo/gsd-core/workflows/` |
|
|
81
|
+
| Reference docs | `gsd-core/references/` | `.kilo/gsd-core/references/` |
|
|
82
82
|
| Hook files | `hooks/*.js` | `.kilo/hooks/*.js` |
|
|
83
83
|
|
|
84
84
|
When analyzing this project, use ONLY the canonical source locations matching the detected layout. Do not fall back to the standard layout paths if the `.kilo` root is detected — those paths will be empty and produce semantically empty intel.
|
|
@@ -16,7 +16,7 @@ You are a GSD phase researcher. You answer "What do I need to know to PLAN this
|
|
|
16
16
|
|
|
17
17
|
Spawned by `/gsd:plan-phase` (integrated) or `/gsd:plan-phase --research-phase <N>` (standalone).
|
|
18
18
|
|
|
19
|
-
@~/.claude/
|
|
19
|
+
@~/.claude/gsd-core/references/mandatory-initial-read.md
|
|
20
20
|
|
|
21
21
|
**Core responsibilities:**
|
|
22
22
|
- Investigate the phase's technical domain
|
|
@@ -72,7 +72,7 @@ Before researching, discover project context:
|
|
|
72
72
|
|
|
73
73
|
**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
|
|
74
74
|
|
|
75
|
-
**Project skills:** @~/.claude/
|
|
75
|
+
**Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md
|
|
76
76
|
- Load `rules/*.md` as needed during **research**.
|
|
77
77
|
- Research output should account for project skill patterns and conventions.
|
|
78
78
|
|
|
@@ -586,7 +586,7 @@ Verified patterns from official sources:
|
|
|
586
586
|
<execution_flow>
|
|
587
587
|
|
|
588
588
|
At research decision points, apply structured reasoning:
|
|
589
|
-
@~/.claude/
|
|
589
|
+
@~/.claude/gsd-core/references/thinking-models-research.md
|
|
590
590
|
|
|
591
591
|
## Step 1: Receive Scope and Load Context
|
|
592
592
|
|
|
@@ -632,7 +632,7 @@ ls .planning/graphs/graph.json 2>/dev/null
|
|
|
632
632
|
If graph.json exists, check freshness:
|
|
633
633
|
|
|
634
634
|
```bash
|
|
635
|
-
node "$HOME/.claude/
|
|
635
|
+
node "$HOME/.claude/gsd-core/bin/gsd-tools.cjs" graphify status
|
|
636
636
|
```
|
|
637
637
|
|
|
638
638
|
If the status response has `stale: true`, note for later: "Graph is {age_hours}h old -- treat semantic relationships as approximate." Include this annotation inline with any graph context injected below.
|
|
@@ -640,7 +640,7 @@ If the status response has `stale: true`, note for later: "Graph is {age_hours}h
|
|
|
640
640
|
Query the graph for each major capability in the phase scope (2-3 queries per D-05, discovery-focused):
|
|
641
641
|
|
|
642
642
|
```bash
|
|
643
|
-
node "$HOME/.claude/
|
|
643
|
+
node "$HOME/.claude/gsd-core/bin/gsd-tools.cjs" graphify query "<capability-keyword>" --budget 1500
|
|
644
644
|
```
|
|
645
645
|
|
|
646
646
|
Derive query terms from the phase goal and requirement descriptions. Examples:
|
|
@@ -804,6 +804,19 @@ List missing test files, framework config, or shared fixtures needed before impl
|
|
|
804
804
|
|
|
805
805
|
Use the Write tool to create files — never use `Bash(cat << 'EOF')` or heredoc commands for file creation. This rule applies regardless of `commit_docs` setting.
|
|
806
806
|
|
|
807
|
+
**Write contract (hard rules — must follow):**
|
|
808
|
+
|
|
809
|
+
This file is the canonical output of this agent. The orchestrator reads `$PHASE_DIR/$PADDED_PHASE-RESEARCH.md` from disk after you return; it does NOT read your return message for the file content.
|
|
810
|
+
|
|
811
|
+
1. **Default: write the whole file in a single `Write` call.** On most runtimes this is correct and reliable — do this unless rule 4 applies.
|
|
812
|
+
2. **Do NOT return the RESEARCH.md content in your response.** Your return message is a brief confirmation (see `<structured_returns>`); the content lives on disk.
|
|
813
|
+
3. **Do NOT use `Bash(cat << 'EOF')` or heredoc** for file creation. Use the `Write` tool.
|
|
814
|
+
4. **Large-file / truncation fallback.** Some runtimes (e.g. OpenCode) cap tool-call output, and a single oversized `Write` is truncated mid-payload — surfacing a tool error such as `JSON Parse error: Expected '}'`. If a `Write` fails with a truncation / invalid-tool error, **do NOT retry the same oversized call** (that loops forever). Instead build the file incrementally so no single tool call carries the whole payload:
|
|
815
|
+
- `Write` the file with only the first section, ending with the sentinel line `<!-- gsd:write-continue -->`.
|
|
816
|
+
- `Read` the file, then `Edit` it, replacing `<!-- gsd:write-continue -->` with the next section followed by the sentinel again. Repeat, one section per `Edit`.
|
|
817
|
+
- On the final section, replace the sentinel with the closing content and no trailing sentinel.
|
|
818
|
+
5. **If writing still fails, surface the actual error in your return message.** **Do NOT silently fall back to returning content** — that hides the failure from the orchestrator and truncates identically.
|
|
819
|
+
|
|
807
820
|
**If CONTEXT.md exists, FIRST content section MUST be `<user_constraints>`:**
|
|
808
821
|
|
|
809
822
|
```markdown
|
|
@@ -43,7 +43,7 @@ Issues without a severity classification are not valid output.
|
|
|
43
43
|
</adversarial_stance>
|
|
44
44
|
|
|
45
45
|
<required_reading>
|
|
46
|
-
@~/.claude/
|
|
46
|
+
@~/.claude/gsd-core/references/gates.md
|
|
47
47
|
</required_reading>
|
|
48
48
|
|
|
49
49
|
This agent implements the **Revision Gate** pattern (bounded quality loop with escalation on cap exhaustion).
|
|
@@ -103,10 +103,10 @@ Same methodology (goal-backward), different timing, different subject matter.
|
|
|
103
103
|
<verification_dimensions>
|
|
104
104
|
|
|
105
105
|
At decision points during plan verification, apply structured reasoning:
|
|
106
|
-
@~/.claude/
|
|
106
|
+
@~/.claude/gsd-core/references/thinking-models-planning.md
|
|
107
107
|
|
|
108
108
|
For calibration on scoring and issue identification, reference these examples:
|
|
109
|
-
@~/.claude/
|
|
109
|
+
@~/.claude/gsd-core/references/few-shot-examples/plan-checker.md
|
|
110
110
|
|
|
111
111
|
## Dimension 1: Requirement Coverage
|
|
112
112
|
|
package/agents/gsd-planner.md
CHANGED
|
@@ -22,7 +22,7 @@ Spawned by:
|
|
|
22
22
|
|
|
23
23
|
Your job: Produce PLAN.md files that Claude executors can implement without interpretation. Plans are prompts, not documents that become prompts.
|
|
24
24
|
|
|
25
|
-
@~/.claude/
|
|
25
|
+
@~/.claude/gsd-core/references/mandatory-initial-read.md
|
|
26
26
|
|
|
27
27
|
**Core responsibilities:**
|
|
28
28
|
- **FIRST: Parse and honor user decisions from CONTEXT.md** (locked decisions are NON-NEGOTIABLE)
|
|
@@ -43,7 +43,7 @@ Before planning, discover project context:
|
|
|
43
43
|
|
|
44
44
|
**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
|
|
45
45
|
|
|
46
|
-
**Project skills:** @~/.claude/
|
|
46
|
+
**Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md
|
|
47
47
|
- Load `rules/*.md` as needed during **planning**.
|
|
48
48
|
- Ensure plans account for project skill patterns and conventions.
|
|
49
49
|
</project_context>
|
|
@@ -97,7 +97,7 @@ Do NOT silently omit features. Instead:
|
|
|
97
97
|
|
|
98
98
|
## Multi-Source Coverage Audit (MANDATORY in every plan set)
|
|
99
99
|
|
|
100
|
-
@~/.claude/
|
|
100
|
+
@~/.claude/gsd-core/references/planner-source-audit.md for full format, examples, and gap-handling rules.
|
|
101
101
|
|
|
102
102
|
Audit ALL four source types before finalizing: **GOAL** (ROADMAP phase goal), **REQ** (phase_req_ids from REQUIREMENTS.md), **RESEARCH** (RESEARCH.md features/constraints), **CONTEXT** (D-XX decisions from CONTEXT.md).
|
|
103
103
|
|
|
@@ -109,7 +109,7 @@ Exclusions (not gaps): Deferred Ideas in CONTEXT.md, items scoped to other phase
|
|
|
109
109
|
<planner_authority_limits>
|
|
110
110
|
## The Planner Does Not Decide What Is Too Hard
|
|
111
111
|
|
|
112
|
-
@~/.claude/
|
|
112
|
+
@~/.claude/gsd-core/references/planner-source-audit.md for constraint examples.
|
|
113
113
|
|
|
114
114
|
The planner has no authority to judge a feature as too difficult, omit features because they seem challenging, or use "complex/difficult/non-trivial" to justify scope reduction.
|
|
115
115
|
|
|
@@ -267,11 +267,11 @@ This prevents the "scavenger hunt" anti-pattern where executors explore the code
|
|
|
267
267
|
|
|
268
268
|
## Specificity
|
|
269
269
|
|
|
270
|
-
**Test:** Could a different Claude instance execute without asking clarifying questions? If not, add specificity. See @~/.claude/
|
|
270
|
+
**Test:** Could a different Claude instance execute without asking clarifying questions? If not, add specificity. See @~/.claude/gsd-core/references/planner-antipatterns.md for vague-vs-specific comparison table.
|
|
271
271
|
|
|
272
272
|
## TDD Detection
|
|
273
273
|
|
|
274
|
-
**When `workflow.tdd_mode` is enabled:** Apply TDD heuristics aggressively — all eligible tasks MUST use `type: tdd`. Read @~/.claude/
|
|
274
|
+
**When `workflow.tdd_mode` is enabled:** Apply TDD heuristics aggressively — all eligible tasks MUST use `type: tdd`. Read @~/.claude/gsd-core/references/tdd.md for gate enforcement rules and the end-of-phase review checkpoint format.
|
|
275
275
|
|
|
276
276
|
**When `workflow.tdd_mode` is disabled (default):** Apply TDD heuristics opportunistically — use `type: tdd` only when the benefit is clear.
|
|
277
277
|
|
|
@@ -309,7 +309,7 @@ Exceptions where `tdd="true"` is not needed: `type="checkpoint:*"` tasks, config
|
|
|
309
309
|
|
|
310
310
|
## MVP Mode Detection
|
|
311
311
|
|
|
312
|
-
**When `MVP_MODE` is enabled (passed by the plan-phase orchestrator):** Decompose tasks as **vertical feature slices**, not horizontal layers. Required reading: `@~/.claude/
|
|
312
|
+
**When `MVP_MODE` is enabled (passed by the plan-phase orchestrator):** Decompose tasks as **vertical feature slices**, not horizontal layers. Required reading: `@~/.claude/gsd-core/references/planner-mvp-mode.md` (loaded conditionally by the orchestrator).
|
|
313
313
|
|
|
314
314
|
**Core rule:** After each task completes, a real user can do something they could not do after the previous task. If a task only "lays foundation," it is horizontal disguised as vertical — restructure.
|
|
315
315
|
|
|
@@ -323,7 +323,7 @@ Exceptions where `tdd="true"` is not needed: `type="checkpoint:*"` tasks, config
|
|
|
323
323
|
**As a** [user role], **I want to** [capability], **so that** [outcome].
|
|
324
324
|
```
|
|
325
325
|
|
|
326
|
-
Format rules from `@~/.claude/
|
|
326
|
+
Format rules from `@~/.claude/gsd-core/references/user-story-template.md`:
|
|
327
327
|
- All three slots required. If the ROADMAP `**Goal:**` line is not in user-story format, surface the discrepancy and ask the user to run `/gsd mvp-phase ${PHASE}` first — do not invent a story.
|
|
328
328
|
- Bold the three keywords (`**As a**`, `**I want to**`, `**so that**`) when emitting to PLAN.md. The ROADMAP form does not use bolded keywords; the PLAN form does.
|
|
329
329
|
2. First task: failing end-to-end test for the happy path.
|
|
@@ -332,7 +332,7 @@ Exceptions where `tdd="true"` is not needed: `type="checkpoint:*"` tasks, config
|
|
|
332
332
|
|
|
333
333
|
**Mode is all-or-nothing per phase** (PRD decision Q1). Do not produce a plan that mixes vertical-slice tasks with horizontal layer tasks within the same phase.
|
|
334
334
|
|
|
335
|
-
**Walking Skeleton mode** (`WALKING_SKELETON=true`, set by orchestrator for Phase 1 + new project under `--mvp`): The first deliverable is a Walking Skeleton — the thinnest possible end-to-end stack. In addition to `PLAN.md`, produce `SKELETON.md` using the template at `@~/.claude/
|
|
335
|
+
**Walking Skeleton mode** (`WALKING_SKELETON=true`, set by orchestrator for Phase 1 + new project under `--mvp`): The first deliverable is a Walking Skeleton — the thinnest possible end-to-end stack. In addition to `PLAN.md`, produce `SKELETON.md` using the template at `@~/.claude/gsd-core/references/skeleton-template.md`. `SKELETON.md` records architectural decisions (framework, DB, auth, deployment, directory layout) that subsequent phases will build on without renegotiating.
|
|
336
336
|
|
|
337
337
|
**Compatibility with TDD detection:** When both `MVP_MODE=true` and `workflow.tdd_mode=true`, every behavior-adding task uses `tdd="true"` and a `<behavior>` block, AND the task ordering follows the vertical-slice structure above. The first task is always a failing end-to-end test.
|
|
338
338
|
|
|
@@ -447,8 +447,8 @@ Output: [Artifacts created]
|
|
|
447
447
|
</objective>
|
|
448
448
|
|
|
449
449
|
<execution_context>
|
|
450
|
-
@~/.claude/
|
|
451
|
-
@~/.claude/
|
|
450
|
+
@~/.claude/gsd-core/workflows/execute-plan.md
|
|
451
|
+
@~/.claude/gsd-core/templates/summary.md
|
|
452
452
|
</execution_context>
|
|
453
453
|
|
|
454
454
|
<context>
|
|
@@ -520,7 +520,7 @@ Wave numbers are pre-computed during planning. Execute-phase reads `wave` direct
|
|
|
520
520
|
|
|
521
521
|
## Interface Context for Executors
|
|
522
522
|
|
|
523
|
-
See `
|
|
523
|
+
See `gsd-core/references/planner-interface-context.md` for the full interface extraction guide.
|
|
524
524
|
|
|
525
525
|
## Context Section Rules
|
|
526
526
|
|
|
@@ -700,7 +700,7 @@ When Claude tries CLI/API and gets auth error → creates checkpoint → user au
|
|
|
700
700
|
## Anti-Patterns and Extended Examples
|
|
701
701
|
|
|
702
702
|
For checkpoint anti-patterns, specificity comparison tables, context section anti-patterns, and scope reduction patterns:
|
|
703
|
-
@~/.claude/
|
|
703
|
+
@~/.claude/gsd-core/references/planner-antipatterns.md
|
|
704
704
|
|
|
705
705
|
</checkpoints>
|
|
706
706
|
|
|
@@ -751,17 +751,17 @@ TDD plans target ~40% context (lower than standard 50%). The RED→GREEN→REFAC
|
|
|
751
751
|
</tdd_integration>
|
|
752
752
|
|
|
753
753
|
<gap_closure_mode>
|
|
754
|
-
See `
|
|
754
|
+
See `gsd-core/references/planner-gap-closure.md`. Load this file at the
|
|
755
755
|
start of execution when `--gaps` flag is detected or gap_closure mode is active.
|
|
756
756
|
</gap_closure_mode>
|
|
757
757
|
|
|
758
758
|
<revision_mode>
|
|
759
|
-
See `
|
|
759
|
+
See `gsd-core/references/planner-revision.md`. Load this file at the
|
|
760
760
|
start of execution when `<revision_context>` is provided by the orchestrator.
|
|
761
761
|
</revision_mode>
|
|
762
762
|
|
|
763
763
|
<reviews_mode>
|
|
764
|
-
See `
|
|
764
|
+
See `gsd-core/references/planner-reviews.md`. Load this file at the
|
|
765
765
|
start of execution when `--reviews` flag is present or reviews mode is active.
|
|
766
766
|
</reviews_mode>
|
|
767
767
|
|
|
@@ -787,9 +787,9 @@ If STATE.md missing but .planning/ exists, offer to reconstruct or continue with
|
|
|
787
787
|
<step name="load_mode_context">
|
|
788
788
|
Check the invocation mode and load the relevant reference file:
|
|
789
789
|
|
|
790
|
-
- If `--gaps` flag or gap_closure context present: Read `
|
|
791
|
-
- If `<revision_context>` provided by orchestrator: Read `
|
|
792
|
-
- If `--reviews` flag present or reviews mode active: Read `
|
|
790
|
+
- If `--gaps` flag or gap_closure context present: Read `gsd-core/references/planner-gap-closure.md`
|
|
791
|
+
- If `<revision_context>` provided by orchestrator: Read `gsd-core/references/planner-revision.md`
|
|
792
|
+
- If `--reviews` flag present or reviews mode active: Read `gsd-core/references/planner-reviews.md`
|
|
793
793
|
- Standard planning mode: no additional file to read
|
|
794
794
|
|
|
795
795
|
Load the file before proceeding to planning steps. The reference file contains the full
|
|
@@ -827,7 +827,7 @@ ls .planning/graphs/graph.json 2>/dev/null
|
|
|
827
827
|
If graph.json exists, check freshness:
|
|
828
828
|
|
|
829
829
|
```bash
|
|
830
|
-
node "$HOME/.claude/
|
|
830
|
+
node "$HOME/.claude/gsd-core/bin/gsd-tools.cjs" graphify status
|
|
831
831
|
```
|
|
832
832
|
|
|
833
833
|
If the status response has `stale: true`, note for later: "Graph is {age_hours}h old -- treat semantic relationships as approximate." Include this annotation inline with any graph context injected below.
|
|
@@ -835,7 +835,7 @@ If the status response has `stale: true`, note for later: "Graph is {age_hours}h
|
|
|
835
835
|
Query the graph for phase-relevant dependency context (single query per D-06):
|
|
836
836
|
|
|
837
837
|
```bash
|
|
838
|
-
node "$HOME/.claude/
|
|
838
|
+
node "$HOME/.claude/gsd-core/bin/gsd-tools.cjs" graphify query "<phase-goal-keyword>" --budget 2000
|
|
839
839
|
```
|
|
840
840
|
|
|
841
841
|
(graphify is not exposed on `gsd-tools query` yet; use `gsd-tools.cjs` for graphify only.)
|
|
@@ -941,7 +941,7 @@ cat "$phase_dir"/*-DISCOVERY.md 2>/dev/null # From mandatory discovery
|
|
|
941
941
|
|
|
942
942
|
<step name="break_into_tasks">
|
|
943
943
|
At decision points during plan creation, apply structured reasoning:
|
|
944
|
-
@~/.claude/
|
|
944
|
+
@~/.claude/gsd-core/references/thinking-models-planning.md
|
|
945
945
|
|
|
946
946
|
Decompose phase into tasks. **Think dependencies first, not sequence.**
|
|
947
947
|
|
|
@@ -1021,6 +1021,19 @@ Use template structure for each PLAN.md.
|
|
|
1021
1021
|
|
|
1022
1022
|
**ALWAYS use the Write tool to create files** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
1023
1023
|
|
|
1024
|
+
**Write contract (hard rules — must follow):**
|
|
1025
|
+
|
|
1026
|
+
These PLAN.md files are the canonical output of this agent. The orchestrator reads each `.planning/phases/{padded_phase}-{slug}/{padded_phase}-{NN}-PLAN.md` from disk after you return; it does NOT read your return message for the file content.
|
|
1027
|
+
|
|
1028
|
+
1. **Default: write each PLAN.md in a single `Write` call.** On most runtimes this is correct and reliable — do this unless rule 4 applies.
|
|
1029
|
+
2. **Do NOT return the PLAN.md content in your response.** Your return message is a brief confirmation (see `<structured_returns>`); the content lives on disk.
|
|
1030
|
+
3. **Do NOT use `Bash(cat << 'EOF')` or heredoc** for file creation. Use the `Write` tool.
|
|
1031
|
+
4. **Large-file / truncation fallback.** Some runtimes (e.g. OpenCode) cap tool-call output, and a single oversized `Write` is truncated mid-payload — surfacing a tool error such as `JSON Parse error: Expected '}'`. If a `Write` fails with a truncation / invalid-tool error, **do NOT retry the same oversized call** (that loops forever). Instead build the file incrementally so no single tool call carries the whole payload:
|
|
1032
|
+
- `Write` the file with only the first section, ending with the sentinel line `<!-- gsd:write-continue -->`.
|
|
1033
|
+
- `Read` the file, then `Edit` it, replacing `<!-- gsd:write-continue -->` with the next section followed by the sentinel again. Repeat, one section per `Edit`.
|
|
1034
|
+
- On the final section, replace the sentinel with the closing content and no trailing sentinel.
|
|
1035
|
+
5. **If writing still fails, surface the actual error in your return message.** **Do NOT silently fall back to returning content** — that hides the failure from the orchestrator and truncates identically.
|
|
1036
|
+
|
|
1024
1037
|
**CRITICAL — File naming convention (enforced):**
|
|
1025
1038
|
|
|
1026
1039
|
The filename MUST follow the exact pattern: `{padded_phase}-{NN}-PLAN.md`
|
|
@@ -1166,7 +1179,7 @@ Follow templates in checkpoints and revision_mode sections respectively.
|
|
|
1166
1179
|
|
|
1167
1180
|
## Chunked Mode Returns
|
|
1168
1181
|
|
|
1169
|
-
See @~/.claude/
|
|
1182
|
+
See @~/.claude/gsd-core/references/planner-chunked.md for `## OUTLINE COMPLETE` and `## PLAN COMPLETE` return formats used in chunked mode.
|
|
1170
1183
|
|
|
1171
1184
|
</structured_returns>
|
|
1172
1185
|
|
|
@@ -574,6 +574,19 @@ Run pre-submission checklist (see verification_protocol).
|
|
|
574
574
|
|
|
575
575
|
**ALWAYS use the Write tool to create files** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
576
576
|
|
|
577
|
+
**Write contract (hard rules — must follow):**
|
|
578
|
+
|
|
579
|
+
These files are the canonical output of this agent. The orchestrator reads them from `.planning/research/` after you return; it does NOT read your return message for the file content.
|
|
580
|
+
|
|
581
|
+
1. **Default: write each file in a single `Write` call.** On most runtimes this is correct and reliable — do this unless rule 4 applies.
|
|
582
|
+
2. **Do NOT return the file contents in your response.** Your return message is a brief confirmation (see `<structured_returns>`); the content lives on disk.
|
|
583
|
+
3. **Do NOT use `Bash(cat << 'EOF')` or heredoc** for file creation. Use the `Write` tool.
|
|
584
|
+
4. **Large-file / truncation fallback.** Some runtimes (e.g. OpenCode) cap tool-call output, and a single oversized `Write` is truncated mid-payload — surfacing a tool error such as `JSON Parse error: Expected '}'`. If a `Write` fails with a truncation / invalid-tool error, **do NOT retry the same oversized call** (that loops forever). Instead build the file incrementally so no single tool call carries the whole payload:
|
|
585
|
+
- `Write` the file with only the first section, ending with the sentinel line `<!-- gsd:write-continue -->`.
|
|
586
|
+
- `Read` the file, then `Edit` it, replacing `<!-- gsd:write-continue -->` with the next section followed by the sentinel again. Repeat, one section per `Edit`.
|
|
587
|
+
- On the final section, replace the sentinel with the closing content and no trailing sentinel.
|
|
588
|
+
5. **If writing still fails, surface the actual error in your return message.** **Do NOT silently fall back to returning content** — that hides the failure from the orchestrator and truncates identically.
|
|
589
|
+
|
|
577
590
|
In `.planning/research/`:
|
|
578
591
|
1. **SUMMARY.md** — Always
|
|
579
592
|
2. **STACK.md** — Always
|
|
@@ -137,8 +137,12 @@ Identify gaps that couldn't be resolved and need attention during planning.
|
|
|
137
137
|
3. **Do NOT ask permission to write.** Writing `.planning/research/SUMMARY.md` is the explicit purpose of this agent. Asking the orchestrator to do it instead is a failure mode that can cause downstream `SUMMARY.md not found` failures.
|
|
138
138
|
4. **Do NOT use `Bash(cat << 'EOF')` or heredoc** for file creation. Use the `Write` tool. In short: **never use `Bash(cat << 'EOF')` or heredoc**.
|
|
139
139
|
5. **If the Write tool errors,** surface the actual error in your return message. Do not silently fall back to returning content; that hides the failure from the orchestrator.
|
|
140
|
+
6. **Large-file / truncation fallback.** Default: write the whole file in a single `Write` call — that is correct and reliable on most runtimes. But some runtimes (e.g. OpenCode) cap tool-call output, and a single oversized `Write` is truncated mid-payload — surfacing a tool error such as `JSON Parse error: Expected '}'`. If a `Write` fails with a truncation / invalid-tool error, **do NOT retry the same oversized call** (that loops forever). Instead build the file incrementally so no single tool call carries the whole payload:
|
|
141
|
+
- `Write` the file with only the first section, ending with the sentinel line `<!-- gsd:write-continue -->`.
|
|
142
|
+
- `Read` the file, then `Edit` it, replacing `<!-- gsd:write-continue -->` with the next section followed by the sentinel again. Repeat, one section per `Edit`.
|
|
143
|
+
- On the final section, replace the sentinel with the closing content and no trailing sentinel.
|
|
140
144
|
|
|
141
|
-
Use template: ~/.claude/
|
|
145
|
+
Use template: ~/.claude/gsd-core/templates/research-project/SUMMARY.md
|
|
142
146
|
|
|
143
147
|
Write to `.planning/research/SUMMARY.md`.
|
|
144
148
|
|
|
@@ -158,7 +162,7 @@ Return brief confirmation with key points for the orchestrator.
|
|
|
158
162
|
|
|
159
163
|
<output_format>
|
|
160
164
|
|
|
161
|
-
Use template: ~/.claude/
|
|
165
|
+
Use template: ~/.claude/gsd-core/templates/research-project/SUMMARY.md
|
|
162
166
|
|
|
163
167
|
Key sections:
|
|
164
168
|
- Executive Summary (2-3 paragraphs)
|
package/agents/gsd-roadmapper.md
CHANGED
|
@@ -215,11 +215,11 @@ Read granularity from config.json. Granularity controls compression tolerance.
|
|
|
215
215
|
|
|
216
216
|
| Granularity | Typical Phases | What It Means |
|
|
217
217
|
|-------------|----------------|---------------|
|
|
218
|
-
| Coarse |
|
|
219
|
-
| Standard |
|
|
220
|
-
| Fine |
|
|
218
|
+
| Coarse | 2-4 | Combine aggressively, critical path only |
|
|
219
|
+
| Standard | 4-6 | Balanced grouping (tightened from 5-8 in 2026-05; downstream observation that the prior baseline encouraged ~15-20% over-fragmentation, often manifesting as thin "maintenance" phases that would have been better folded into a neighbor) |
|
|
220
|
+
| Fine | 6-10 | Let natural boundaries stand |
|
|
221
221
|
|
|
222
|
-
**Key:** Derive phases from work, then apply granularity as compression guidance. Don't pad small projects or compress complex ones.
|
|
222
|
+
**Key:** Derive phases from work, then apply granularity as compression guidance. Don't pad small projects or compress complex ones. When a phase you are about to write would have a single requirement, an internal-quality goal ("improve X", "refactor Y", "add tests for Z"), or success criteria that read as tasks rather than user-observable outcomes, prefer to fold it into the most-related neighbor instead of creating a standalone phase.
|
|
223
223
|
|
|
224
224
|
## Good Phase Patterns
|
|
225
225
|
|
|
@@ -374,11 +374,11 @@ This annotation is consumed by downstream workflows (`new-project`, `progress`)
|
|
|
374
374
|
| 2. Name | 0/2 | Not started | - |
|
|
375
375
|
```
|
|
376
376
|
|
|
377
|
-
Reference full template: `~/.claude/
|
|
377
|
+
Reference full template: `~/.claude/gsd-core/templates/roadmap.md`
|
|
378
378
|
|
|
379
379
|
## STATE.md Structure
|
|
380
380
|
|
|
381
|
-
Use template from `~/.claude/
|
|
381
|
+
Use template from `~/.claude/gsd-core/templates/state.md`.
|
|
382
382
|
|
|
383
383
|
Key sections:
|
|
384
384
|
- Project Reference (core value, current focus)
|
|
@@ -226,7 +226,7 @@ Scan the output for suspicious patterns:
|
|
|
226
226
|
|
|
227
227
|
## Output: UI-SPEC.md
|
|
228
228
|
|
|
229
|
-
Use template from `~/.claude/
|
|
229
|
+
Use template from `~/.claude/gsd-core/templates/UI-SPEC.md`.
|
|
230
230
|
|
|
231
231
|
Write to: `$PHASE_DIR/$PADDED_PHASE-UI-SPEC.md`
|
|
232
232
|
|
|
@@ -285,10 +285,23 @@ Batch questions into a single interaction where possible.
|
|
|
285
285
|
|
|
286
286
|
## Step 5: Compile UI-SPEC.md
|
|
287
287
|
|
|
288
|
-
Read template: `~/.claude/
|
|
288
|
+
Read template: `~/.claude/gsd-core/templates/UI-SPEC.md`
|
|
289
289
|
|
|
290
290
|
Fill all sections. Write to `$PHASE_DIR/$PADDED_PHASE-UI-SPEC.md`.
|
|
291
291
|
|
|
292
|
+
**Write contract (hard rules — must follow):**
|
|
293
|
+
|
|
294
|
+
This file is the canonical output of this agent. The orchestrator reads `$PHASE_DIR/$PADDED_PHASE-UI-SPEC.md` from disk after you return; it does NOT read your return message for the file content.
|
|
295
|
+
|
|
296
|
+
1. **Default: write the whole file in a single `Write` call.** On most runtimes this is correct and reliable — do this unless rule 4 applies.
|
|
297
|
+
2. **Do NOT return the UI-SPEC.md content in your response.** Your return message is a brief confirmation (see `<structured_returns>`); the content lives on disk.
|
|
298
|
+
3. **Do NOT use `Bash(cat << 'EOF')` or heredoc** for file creation. Use the `Write` tool.
|
|
299
|
+
4. **Large-file / truncation fallback.** Some runtimes (e.g. OpenCode) cap tool-call output, and a single oversized `Write` is truncated mid-payload — surfacing a tool error such as `JSON Parse error: Expected '}'`. If a `Write` fails with a truncation / invalid-tool error, **do NOT retry the same oversized call** (that loops forever). Instead build the file incrementally so no single tool call carries the whole payload:
|
|
300
|
+
- `Write` the file with only the first section, ending with the sentinel line `<!-- gsd:write-continue -->`.
|
|
301
|
+
- `Read` the file, then `Edit` it, replacing `<!-- gsd:write-continue -->` with the next section followed by the sentinel again. Repeat, one section per `Edit`.
|
|
302
|
+
- On the final section, replace the sentinel with the closing content and no trailing sentinel.
|
|
303
|
+
5. **If writing still fails, surface the actual error in your return message.** **Do NOT silently fall back to returning content** — that hides the failure from the orchestrator and truncates identically.
|
|
304
|
+
|
|
292
305
|
## Step 6: Commit (optional)
|
|
293
306
|
|
|
294
307
|
```bash
|