@bhargavvc/sdd-cc 1.30.1 → 1.42.3
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 +165 -129
- package/README.ko-KR.md +161 -123
- package/README.md +103 -679
- package/README.pt-BR.md +92 -52
- package/README.zh-CN.md +145 -103
- package/agents/sdd-advisor-researcher.md +23 -0
- package/agents/sdd-ai-researcher.md +133 -0
- package/agents/sdd-code-fixer.md +668 -0
- package/agents/sdd-code-reviewer.md +387 -0
- package/agents/sdd-codebase-mapper.md +86 -3
- package/agents/sdd-debug-session-manager.md +314 -0
- package/agents/sdd-debugger.md +157 -78
- package/agents/sdd-doc-classifier.md +168 -0
- package/agents/sdd-doc-synthesizer.md +204 -0
- package/agents/sdd-doc-verifier.md +217 -0
- package/agents/sdd-doc-writer.md +615 -0
- package/agents/sdd-domain-researcher.md +153 -0
- package/agents/sdd-eval-auditor.md +191 -0
- package/agents/sdd-eval-planner.md +154 -0
- package/agents/sdd-executor.md +283 -40
- package/agents/sdd-framework-selector.md +160 -0
- package/agents/sdd-integration-checker.md +30 -3
- package/agents/sdd-intel-updater.md +342 -0
- package/agents/sdd-nyquist-auditor.md +31 -4
- package/agents/sdd-pattern-mapper.md +335 -0
- package/agents/sdd-phase-researcher.md +254 -24
- package/agents/sdd-plan-checker.md +223 -18
- package/agents/sdd-planner.md +286 -362
- package/agents/sdd-project-researcher.md +28 -5
- package/agents/sdd-research-synthesizer.md +4 -4
- package/agents/sdd-roadmapper.md +14 -5
- package/agents/sdd-security-auditor.md +155 -0
- package/agents/sdd-ui-auditor.md +60 -4
- package/agents/sdd-ui-checker.md +11 -2
- package/agents/sdd-ui-researcher.md +27 -4
- package/agents/sdd-user-profiler.md +2 -2
- package/agents/sdd-verifier.md +258 -41
- package/bin/install.js +6862 -618
- package/bin/sdd-sdk.js +37 -0
- package/commands/sdd/add-tests.md +3 -2
- package/commands/sdd/ai-integration-phase.md +37 -0
- package/commands/sdd/audit-fix.md +34 -0
- package/commands/sdd/audit-milestone.md +3 -2
- package/commands/sdd/autonomous.md +10 -5
- package/commands/sdd/capture.md +62 -0
- package/commands/sdd/cleanup.md +7 -1
- package/commands/sdd/code-review.md +59 -0
- package/commands/sdd/complete-milestone.md +11 -4
- package/commands/sdd/config.md +58 -0
- package/commands/sdd/debug.md +23 -144
- package/commands/sdd/discuss-phase.md +22 -10
- package/commands/sdd/docs-update.md +49 -0
- package/commands/sdd/eval-review.md +33 -0
- package/commands/sdd/execute-phase.md +9 -4
- package/commands/sdd/explore.md +27 -0
- package/commands/sdd/extract-learnings.md +23 -0
- package/commands/sdd/fast.md +2 -1
- package/commands/sdd/forensics.md +3 -2
- package/commands/sdd/graphify.md +199 -0
- package/commands/sdd/health.md +12 -3
- package/commands/sdd/help.md +3 -1
- package/commands/sdd/import.md +41 -0
- package/commands/sdd/inbox.md +39 -0
- package/commands/sdd/ingest-docs.md +42 -0
- package/commands/sdd/manager.md +9 -3
- package/commands/sdd/map-codebase.md +15 -3
- package/commands/sdd/milestone-summary.md +1 -1
- package/commands/sdd/mvp-phase.md +45 -0
- package/commands/sdd/new-milestone.md +3 -2
- package/commands/sdd/new-project.md +7 -2
- package/commands/sdd/ns-context.md +23 -0
- package/commands/sdd/ns-ideate.md +24 -0
- package/commands/sdd/ns-manage.md +29 -0
- package/commands/sdd/ns-project.md +22 -0
- package/commands/sdd/ns-review.md +26 -0
- package/commands/sdd/ns-workflow.md +28 -0
- package/commands/sdd/pause-work.md +6 -1
- package/commands/sdd/phase.md +56 -0
- package/commands/sdd/plan-phase.md +19 -4
- package/commands/sdd/plan-review-convergence.md +59 -0
- package/commands/sdd/pr-branch.md +2 -1
- package/commands/sdd/profile-user.md +2 -2
- package/commands/sdd/progress.md +27 -5
- package/commands/sdd/quick.md +132 -5
- package/commands/sdd/resume-work.md +2 -12
- package/commands/sdd/review-backlog.md +4 -2
- package/commands/sdd/review.md +7 -3
- package/commands/sdd/secure-phase.md +36 -0
- package/commands/sdd/settings.md +2 -9
- package/commands/sdd/ship.md +1 -0
- package/commands/sdd/sketch.md +60 -0
- package/commands/sdd/spec-phase.md +63 -0
- package/commands/sdd/spike.md +57 -0
- package/commands/sdd/stats.md +2 -1
- package/commands/sdd/surface.md +129 -0
- package/commands/sdd/thread.md +8 -111
- package/commands/sdd/ui-phase.md +3 -2
- package/commands/sdd/ui-review.md +3 -2
- package/commands/sdd/ultraplan-phase.md +34 -0
- package/commands/sdd/undo.md +35 -0
- package/commands/sdd/update.md +21 -10
- package/commands/sdd/validate-phase.md +3 -2
- package/commands/sdd/verify-work.md +4 -3
- package/commands/sdd/workspace.md +52 -0
- package/commands/sdd/workstreams.md +15 -8
- package/hooks/dist/sdd-check-update-worker.js +116 -0
- package/hooks/dist/sdd-check-update.js +19 -69
- package/hooks/dist/sdd-context-monitor.js +43 -7
- package/hooks/dist/sdd-phase-boundary.sh +47 -0
- package/hooks/dist/sdd-prompt-guard.js +1 -0
- package/hooks/dist/sdd-read-guard.js +101 -0
- package/hooks/dist/sdd-read-injection-scanner.js +152 -0
- package/hooks/dist/sdd-session-state.sh +59 -0
- package/hooks/dist/sdd-statusline.js +439 -21
- package/hooks/dist/sdd-update-banner.js +134 -0
- package/hooks/dist/sdd-validate-commit.sh +57 -0
- package/hooks/dist/sdd-workflow-guard.js +2 -2
- package/hooks/lib/git-cmd.js +150 -0
- package/hooks/sdd-check-update-worker.js +116 -0
- package/hooks/sdd-check-update.js +64 -0
- package/hooks/sdd-context-monitor.js +192 -0
- package/hooks/sdd-phase-boundary.sh +47 -0
- package/hooks/sdd-prompt-guard.js +97 -0
- package/hooks/sdd-read-guard.js +101 -0
- package/hooks/sdd-read-injection-scanner.js +152 -0
- package/hooks/sdd-session-state.sh +59 -0
- package/hooks/sdd-statusline.js +537 -0
- package/hooks/sdd-update-banner.js +134 -0
- package/hooks/sdd-validate-commit.sh +57 -0
- package/hooks/sdd-workflow-guard.js +94 -0
- package/package.json +34 -9
- package/scripts/audit-workflow-script-paths.cjs +73 -0
- package/scripts/build-hooks.js +114 -9
- package/scripts/changeset/cli.cjs +269 -0
- package/scripts/changeset/github-release-notes.cjs +198 -0
- package/scripts/changeset/lint.cjs +110 -0
- package/scripts/changeset/new.cjs +137 -0
- package/scripts/changeset/parse.cjs +60 -0
- package/scripts/changeset/render.cjs +34 -0
- package/scripts/changeset/serialize.cjs +74 -0
- package/scripts/command-contract-helpers.cjs +61 -0
- package/scripts/diff-touches-shipped-paths.cjs +147 -0
- package/scripts/fix-slash-commands.cjs +106 -0
- package/scripts/gen-inventory-manifest.cjs +109 -0
- package/scripts/lint-command-contract.cjs +108 -0
- package/scripts/lint-descriptions.cjs +83 -0
- package/scripts/lint-no-source-grep-extras.cjs +81 -0
- package/scripts/lint-no-source-grep.cjs +174 -0
- package/scripts/lint-shell-command-projection-drift.cjs +57 -0
- package/scripts/lint-skill-deps.cjs +180 -0
- package/scripts/pr-template-policy.cjs +169 -0
- package/scripts/prompt-injection-scan.sh +3 -0
- package/scripts/rebrand-gsd-to-sdd.sh +222 -220
- package/scripts/run-tests.cjs +5 -1
- package/scripts/strip-prose-atrefs.cjs +106 -0
- package/scripts/verify-tarball-sdk-dist.sh +69 -0
- package/sdd/bin/check-latest-version.cjs +104 -0
- package/sdd/bin/lib/active-workstream-store.cjs +85 -0
- package/sdd/bin/lib/adr-parser.cjs +394 -0
- package/sdd/bin/lib/artifacts.cjs +53 -0
- package/sdd/bin/lib/audit.cjs +755 -0
- package/sdd/bin/lib/cjs-command-router-adapter.cjs +39 -0
- package/sdd/bin/lib/clusters.cjs +135 -0
- package/sdd/bin/lib/command-aliases.generated.cjs +838 -0
- package/sdd/bin/lib/commands.cjs +179 -107
- package/sdd/bin/lib/config-schema.cjs +135 -0
- package/sdd/bin/lib/config.cjs +313 -86
- package/sdd/bin/lib/context-utilization.cjs +47 -0
- package/sdd/bin/lib/core.cjs +1146 -391
- package/sdd/bin/lib/decisions.cjs +48 -0
- package/sdd/bin/lib/docs.cjs +270 -0
- package/sdd/bin/lib/drift.cjs +379 -0
- package/sdd/bin/lib/fallow-runner.cjs +109 -0
- package/sdd/bin/lib/frontmatter.cjs +389 -336
- package/sdd/bin/lib/gap-checker.cjs +197 -0
- package/sdd/bin/lib/graphify.cjs +577 -0
- package/sdd/bin/lib/init-command-router.cjs +70 -0
- package/sdd/bin/lib/init.cjs +692 -97
- package/sdd/bin/lib/install-profiles.cjs +572 -0
- package/sdd/bin/lib/installer-migration-authoring.cjs +117 -0
- package/sdd/bin/lib/installer-migration-report.cjs +328 -0
- package/sdd/bin/lib/installer-migrations/000-first-time-baseline.cjs +220 -0
- package/sdd/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +41 -0
- package/sdd/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +80 -0
- package/sdd/bin/lib/installer-migrations.cjs +703 -0
- package/sdd/bin/lib/intel.cjs +643 -0
- package/sdd/bin/lib/learnings.cjs +379 -0
- package/sdd/bin/lib/milestone.cjs +313 -252
- package/sdd/bin/lib/model-catalog.cjs +136 -0
- package/sdd/bin/lib/model-profiles.cjs +25 -68
- package/sdd/bin/lib/phase-command-router.cjs +96 -0
- package/sdd/bin/lib/phase.cjs +868 -335
- package/sdd/bin/lib/phases-command-router.cjs +39 -0
- package/sdd/bin/lib/plan-scan.cjs +138 -0
- package/sdd/bin/lib/planning-workspace.cjs +361 -0
- package/sdd/bin/lib/profile-output.cjs +197 -35
- package/sdd/bin/lib/profile-pipeline.cjs +1 -1
- package/sdd/bin/lib/review-reviewer-selection.cjs +125 -0
- package/sdd/bin/lib/roadmap-command-router.cjs +23 -0
- package/sdd/bin/lib/roadmap.cjs +416 -124
- package/sdd/bin/lib/runtime-homes.cjs +178 -0
- package/sdd/bin/lib/schema-detect.cjs +238 -0
- package/sdd/bin/lib/sdd2-import.cjs +511 -0
- package/sdd/bin/lib/secrets.cjs +33 -0
- package/sdd/bin/lib/security.cjs +131 -9
- package/sdd/bin/lib/shell-command-projection.cjs +548 -0
- package/sdd/bin/lib/state-command-router.cjs +100 -0
- package/sdd/bin/lib/state-document.cjs +12 -0
- package/sdd/bin/lib/state-document.generated.cjs +127 -0
- package/sdd/bin/lib/state.cjs +1253 -367
- package/sdd/bin/lib/surface.cjs +398 -0
- package/sdd/bin/lib/template.cjs +11 -5
- package/sdd/bin/lib/uat.cjs +9 -2
- package/sdd/bin/lib/validate-command-router.cjs +55 -0
- package/sdd/bin/lib/verify-command-router.cjs +34 -0
- package/sdd/bin/lib/verify.cjs +648 -140
- package/sdd/bin/lib/workstream-inventory.cjs +159 -0
- package/sdd/bin/lib/workstream-name-policy.cjs +33 -0
- package/sdd/bin/lib/workstream.cjs +78 -196
- package/sdd/bin/lib/worktree-safety.cjs +563 -0
- package/sdd/bin/sdd-tools.cjs +528 -222
- package/sdd/bin/verify-reapply-patches.cjs +247 -0
- package/sdd/contexts/dev.md +21 -0
- package/sdd/contexts/research.md +22 -0
- package/sdd/contexts/review.md +23 -0
- package/sdd/references/agent-contracts.md +79 -0
- package/sdd/references/ai-evals.md +156 -0
- package/sdd/references/ai-frameworks.md +186 -0
- package/sdd/references/artifact-types.md +131 -0
- package/sdd/references/autonomous-smart-discuss.md +277 -0
- package/sdd/references/checkpoints.md +36 -0
- package/sdd/references/common-bug-patterns.md +114 -0
- package/sdd/references/context-budget.md +85 -0
- package/sdd/references/continuation-format.md +30 -26
- package/sdd/references/debugger-philosophy.md +76 -0
- package/sdd/references/decimal-phase-calculation.md +5 -5
- package/sdd/references/doc-conflict-engine.md +91 -0
- package/sdd/references/domain-probes.md +125 -0
- package/sdd/references/execute-mvp-tdd.md +81 -0
- package/sdd/references/executor-examples.md +110 -0
- package/sdd/references/few-shot-examples/plan-checker.md +73 -0
- package/sdd/references/few-shot-examples/verifier.md +109 -0
- package/sdd/references/gate-prompts.md +100 -0
- package/sdd/references/gates.md +70 -0
- package/sdd/references/git-integration.md +9 -6
- package/sdd/references/git-planning-commit.md +6 -4
- package/sdd/references/ios-scaffold.md +123 -0
- package/sdd/references/mandatory-initial-read.md +2 -0
- package/sdd/references/model-profile-resolution.md +2 -0
- package/sdd/references/model-profiles.md +128 -22
- package/sdd/references/mvp-concepts.md +49 -0
- package/sdd/references/phase-argument-parsing.md +3 -3
- package/sdd/references/planner-antipatterns.md +89 -0
- package/sdd/references/planner-chunked.md +49 -0
- package/sdd/references/planner-gap-closure.md +62 -0
- package/sdd/references/planner-human-verify-mode.md +57 -0
- package/sdd/references/planner-mvp-mode.md +53 -0
- package/sdd/references/planner-reviews.md +39 -0
- package/sdd/references/planner-revision.md +87 -0
- package/sdd/references/planner-source-audit.md +73 -0
- package/sdd/references/planning-config.md +276 -7
- package/sdd/references/project-skills-discovery.md +19 -0
- package/sdd/references/revision-loop.md +97 -0
- package/sdd/references/scout-codebase.md +51 -0
- package/sdd/references/skeleton-template.md +48 -0
- package/sdd/references/sketch-interactivity.md +41 -0
- package/sdd/references/sketch-theme-system.md +94 -0
- package/sdd/references/sketch-tooling.md +45 -0
- package/sdd/references/sketch-variant-patterns.md +81 -0
- package/sdd/references/spidr-splitting.md +69 -0
- package/sdd/references/tdd.md +67 -0
- package/sdd/references/thinking-models-debug.md +44 -0
- package/sdd/references/thinking-models-execution.md +50 -0
- package/sdd/references/thinking-models-planning.md +62 -0
- package/sdd/references/thinking-models-research.md +50 -0
- package/sdd/references/thinking-models-verification.md +55 -0
- package/sdd/references/thinking-partner.md +96 -0
- package/sdd/references/ui-brand.md +4 -4
- package/sdd/references/universal-anti-patterns.md +63 -0
- package/sdd/references/user-story-template.md +58 -0
- package/sdd/references/verification-overrides.md +227 -0
- package/sdd/references/verify-mvp-mode.md +85 -0
- package/sdd/references/workstream-flag.md +63 -10
- package/sdd/references/worktree-path-safety.md +89 -0
- package/sdd/templates/AI-SPEC.md +246 -0
- package/sdd/templates/DEBUG.md +7 -2
- package/sdd/templates/README.md +77 -0
- package/sdd/templates/SECURITY.md +61 -0
- package/sdd/templates/VALIDATION.md +3 -3
- package/sdd/templates/claude-md.md +27 -4
- package/sdd/templates/config.json +20 -2
- package/sdd/templates/discovery.md +2 -2
- package/sdd/templates/research.md +40 -0
- package/sdd/templates/spec.md +307 -0
- package/sdd/templates/state.md +10 -2
- package/sdd/workflows/add-backlog.md +90 -0
- package/sdd/workflows/add-phase.md +12 -12
- package/sdd/workflows/add-tests.md +6 -3
- package/sdd/workflows/add-todo.md +8 -6
- package/sdd/workflows/ai-integration-phase.md +294 -0
- package/sdd/workflows/analyze-dependencies.md +96 -0
- package/sdd/workflows/audit-fix.md +177 -0
- package/sdd/workflows/audit-milestone.md +35 -18
- package/sdd/workflows/audit-uat.md +1 -1
- package/sdd/workflows/autonomous.md +202 -304
- package/sdd/workflows/check-todos.md +12 -10
- package/sdd/workflows/cleanup.md +3 -1
- package/sdd/workflows/code-review-fix.md +501 -0
- package/sdd/workflows/code-review.md +613 -0
- package/sdd/workflows/complete-milestone.md +115 -28
- package/sdd/workflows/debug.md +231 -0
- package/sdd/workflows/diagnose-issues.md +14 -5
- package/sdd/workflows/discovery-phase.md +3 -1
- package/sdd/workflows/discuss-phase/modes/advisor.md +175 -0
- package/sdd/workflows/discuss-phase/modes/all.md +28 -0
- package/sdd/workflows/discuss-phase/modes/analyze.md +44 -0
- package/sdd/workflows/discuss-phase/modes/auto.md +56 -0
- package/sdd/workflows/discuss-phase/modes/batch.md +52 -0
- package/sdd/workflows/discuss-phase/modes/chain.md +97 -0
- package/sdd/workflows/discuss-phase/modes/default.md +141 -0
- package/sdd/workflows/discuss-phase/modes/power.md +44 -0
- package/sdd/workflows/discuss-phase/modes/text.md +55 -0
- package/sdd/workflows/discuss-phase/templates/checkpoint.json +18 -0
- package/sdd/workflows/discuss-phase/templates/context.md +136 -0
- package/sdd/workflows/discuss-phase/templates/discussion-log.md +50 -0
- package/sdd/workflows/discuss-phase-assumptions.md +41 -20
- package/sdd/workflows/discuss-phase-power.md +291 -0
- package/sdd/workflows/discuss-phase.md +242 -792
- package/sdd/workflows/do.md +13 -7
- package/sdd/workflows/docs-update.md +1161 -0
- package/sdd/workflows/edit-phase.md +294 -0
- package/sdd/workflows/eval-review.md +155 -0
- package/sdd/workflows/execute-phase/steps/codebase-drift-gate.md +81 -0
- package/sdd/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
- package/sdd/workflows/execute-phase/steps/post-merge-gate.md +116 -0
- package/sdd/workflows/execute-phase.md +1062 -108
- package/sdd/workflows/execute-plan.md +118 -107
- package/sdd/workflows/explore.md +143 -0
- package/sdd/workflows/extract-learnings.md +242 -0
- package/sdd/workflows/forensics.md +17 -4
- package/sdd/workflows/graduation.md +195 -0
- package/sdd/workflows/health.md +45 -3
- package/sdd/workflows/help.md +265 -88
- package/sdd/workflows/import.md +253 -0
- package/sdd/workflows/inbox.md +387 -0
- package/sdd/workflows/ingest-docs.md +339 -0
- package/sdd/workflows/insert-phase.md +37 -16
- package/sdd/workflows/list-phase-assumptions.md +2 -2
- package/sdd/workflows/list-workspaces.md +3 -3
- package/sdd/workflows/manager.md +62 -32
- package/sdd/workflows/map-codebase.md +90 -24
- package/sdd/workflows/milestone-summary.md +6 -6
- package/sdd/workflows/mvp-phase.md +221 -0
- package/sdd/workflows/new-milestone.md +168 -20
- package/sdd/workflows/new-project.md +273 -47
- package/sdd/workflows/new-workspace.md +8 -6
- package/sdd/workflows/next.md +127 -4
- package/sdd/workflows/note.md +7 -5
- package/sdd/workflows/pause-work.md +79 -12
- package/sdd/workflows/plan-milestone-gaps.md +14 -7
- package/sdd/workflows/plan-phase.md +987 -62
- package/sdd/workflows/plan-review-convergence.md +329 -0
- package/sdd/workflows/plant-seed.md +145 -85
- package/sdd/workflows/pr-branch.md +41 -13
- package/sdd/workflows/profile-user.md +20 -18
- package/sdd/workflows/progress.md +186 -44
- package/sdd/workflows/quick.md +470 -58
- package/sdd/workflows/reapply-patches.md +390 -0
- package/sdd/workflows/remove-phase.md +12 -12
- package/sdd/workflows/remove-workspace.md +24 -7
- package/sdd/workflows/resume-project.md +18 -15
- package/sdd/workflows/review.md +242 -11
- package/sdd/workflows/scan.md +104 -0
- package/sdd/workflows/secure-phase.md +179 -0
- package/sdd/workflows/session-report.md +2 -2
- package/sdd/workflows/settings-advanced.md +579 -0
- package/sdd/workflows/settings-integrations.md +281 -0
- package/sdd/workflows/settings.md +221 -16
- package/sdd/workflows/ship.md +140 -13
- package/sdd/workflows/sketch-wrap-up.md +285 -0
- package/sdd/workflows/sketch.md +360 -0
- package/sdd/workflows/spec-phase.md +262 -0
- package/sdd/workflows/spike-wrap-up.md +306 -0
- package/sdd/workflows/spike.md +452 -0
- package/sdd/workflows/stats.md +20 -1
- package/sdd/workflows/sync-skills.md +182 -0
- package/sdd/workflows/thread.md +221 -0
- package/sdd/workflows/transition.md +44 -22
- package/sdd/workflows/ui-phase.md +39 -14
- package/sdd/workflows/ui-review.md +33 -6
- package/sdd/workflows/ultraplan-phase.md +198 -0
- package/sdd/workflows/undo.md +314 -0
- package/sdd/workflows/update.md +350 -29
- package/sdd/workflows/validate-phase.md +10 -6
- package/sdd/workflows/verify-phase.md +307 -18
- package/sdd/workflows/verify-work.md +153 -10
- package/sdk/dist/cli-transport.d.ts +19 -0
- package/sdk/dist/cli-transport.d.ts.map +1 -0
- package/sdk/dist/cli-transport.js +104 -0
- package/sdk/dist/cli-transport.js.map +1 -0
- package/sdk/dist/cli.d.ts +46 -0
- package/sdk/dist/cli.d.ts.map +1 -0
- package/sdk/dist/cli.js +511 -0
- package/sdk/dist/cli.js.map +1 -0
- package/sdk/dist/config.d.ts +84 -0
- package/sdk/dist/config.d.ts.map +1 -0
- package/sdk/dist/config.js +135 -0
- package/sdk/dist/config.js.map +1 -0
- package/sdk/dist/context-engine.d.ts +49 -0
- package/sdk/dist/context-engine.d.ts.map +1 -0
- package/sdk/dist/context-engine.js +142 -0
- package/sdk/dist/context-engine.js.map +1 -0
- package/sdk/dist/context-truncation.d.ts +33 -0
- package/sdk/dist/context-truncation.d.ts.map +1 -0
- package/sdk/dist/context-truncation.js +197 -0
- package/sdk/dist/context-truncation.js.map +1 -0
- package/sdk/dist/errors.d.ts +46 -0
- package/sdk/dist/errors.d.ts.map +1 -0
- package/sdk/dist/errors.js +64 -0
- package/sdk/dist/errors.js.map +1 -0
- package/sdk/dist/event-stream.d.ts +53 -0
- package/sdk/dist/event-stream.d.ts.map +1 -0
- package/sdk/dist/event-stream.js +321 -0
- package/sdk/dist/event-stream.js.map +1 -0
- package/sdk/dist/golden/capture.d.ts +15 -0
- package/sdk/dist/golden/capture.d.ts.map +1 -0
- package/sdk/dist/golden/capture.js +67 -0
- package/sdk/dist/golden/capture.js.map +1 -0
- package/sdk/dist/golden/golden-integration-covered.d.ts +6 -0
- package/sdk/dist/golden/golden-integration-covered.d.ts.map +1 -0
- package/sdk/dist/golden/golden-integration-covered.js +30 -0
- package/sdk/dist/golden/golden-integration-covered.js.map +1 -0
- package/sdk/dist/golden/golden-mutation-covered.d.ts +7 -0
- package/sdk/dist/golden/golden-mutation-covered.d.ts.map +1 -0
- package/sdk/dist/golden/golden-mutation-covered.js +17 -0
- package/sdk/dist/golden/golden-mutation-covered.js.map +1 -0
- package/sdk/dist/golden/golden-policy.d.ts +10 -0
- package/sdk/dist/golden/golden-policy.d.ts.map +1 -0
- package/sdk/dist/golden/golden-policy.js +98 -0
- package/sdk/dist/golden/golden-policy.js.map +1 -0
- package/sdk/dist/golden/init-golden-normalize.d.ts +8 -0
- package/sdk/dist/golden/init-golden-normalize.d.ts.map +1 -0
- package/sdk/dist/golden/init-golden-normalize.js +14 -0
- package/sdk/dist/golden/init-golden-normalize.js.map +1 -0
- package/sdk/dist/golden/read-only-golden-rows.d.ts +20 -0
- package/sdk/dist/golden/read-only-golden-rows.d.ts.map +1 -0
- package/sdk/dist/golden/read-only-golden-rows.js +67 -0
- package/sdk/dist/golden/read-only-golden-rows.js.map +1 -0
- package/sdk/dist/golden/registry-canonical-commands.d.ts +6 -0
- package/sdk/dist/golden/registry-canonical-commands.d.ts.map +1 -0
- package/sdk/dist/golden/registry-canonical-commands.js +30 -0
- package/sdk/dist/golden/registry-canonical-commands.js.map +1 -0
- package/sdk/dist/index.d.ts +125 -0
- package/sdk/dist/index.d.ts.map +1 -0
- package/sdk/dist/index.js +298 -0
- package/sdk/dist/index.js.map +1 -0
- package/sdk/dist/init-runner.d.ts +90 -0
- package/sdk/dist/init-runner.d.ts.map +1 -0
- package/sdk/dist/init-runner.js +613 -0
- package/sdk/dist/init-runner.js.map +1 -0
- package/sdk/dist/logger.d.ts +50 -0
- package/sdk/dist/logger.d.ts.map +1 -0
- package/sdk/dist/logger.js +70 -0
- package/sdk/dist/logger.js.map +1 -0
- package/sdk/dist/model-catalog.d.ts +31 -0
- package/sdk/dist/model-catalog.d.ts.map +1 -0
- package/sdk/dist/model-catalog.js +31 -0
- package/sdk/dist/model-catalog.js.map +1 -0
- package/sdk/dist/phase-prompt.d.ts +72 -0
- package/sdk/dist/phase-prompt.d.ts.map +1 -0
- package/sdk/dist/phase-prompt.js +213 -0
- package/sdk/dist/phase-prompt.js.map +1 -0
- package/sdk/dist/phase-runner.d.ts +145 -0
- package/sdk/dist/phase-runner.d.ts.map +1 -0
- package/sdk/dist/phase-runner.js +1206 -0
- package/sdk/dist/phase-runner.js.map +1 -0
- package/sdk/dist/plan-parser.d.ts +55 -0
- package/sdk/dist/plan-parser.d.ts.map +1 -0
- package/sdk/dist/plan-parser.js +389 -0
- package/sdk/dist/plan-parser.js.map +1 -0
- package/sdk/dist/planning-journal.d.ts +64 -0
- package/sdk/dist/planning-journal.d.ts.map +1 -0
- package/sdk/dist/planning-journal.js +88 -0
- package/sdk/dist/planning-journal.js.map +1 -0
- package/sdk/dist/planning-runtime.d.ts +67 -0
- package/sdk/dist/planning-runtime.d.ts.map +1 -0
- package/sdk/dist/planning-runtime.js +58 -0
- package/sdk/dist/planning-runtime.js.map +1 -0
- package/sdk/dist/prompt-builder.d.ts +44 -0
- package/sdk/dist/prompt-builder.d.ts.map +1 -0
- package/sdk/dist/prompt-builder.js +180 -0
- package/sdk/dist/prompt-builder.js.map +1 -0
- package/sdk/dist/prompt-sanitizer.d.ts +35 -0
- package/sdk/dist/prompt-sanitizer.d.ts.map +1 -0
- package/sdk/dist/prompt-sanitizer.js +101 -0
- package/sdk/dist/prompt-sanitizer.js.map +1 -0
- package/sdk/dist/query/active-workstream-store.d.ts +7 -0
- package/sdk/dist/query/active-workstream-store.d.ts.map +1 -0
- package/sdk/dist/query/active-workstream-store.js +56 -0
- package/sdk/dist/query/active-workstream-store.js.map +1 -0
- package/sdk/dist/query/agent-failure-classifier.d.ts +38 -0
- package/sdk/dist/query/agent-failure-classifier.d.ts.map +1 -0
- package/sdk/dist/query/agent-failure-classifier.js +83 -0
- package/sdk/dist/query/agent-failure-classifier.js.map +1 -0
- package/sdk/dist/query/audit-open.d.ts +46 -0
- package/sdk/dist/query/audit-open.d.ts.map +1 -0
- package/sdk/dist/query/audit-open.js +662 -0
- package/sdk/dist/query/audit-open.js.map +1 -0
- package/sdk/dist/query/check-auto-mode.d.ts +13 -0
- package/sdk/dist/query/check-auto-mode.d.ts.map +1 -0
- package/sdk/dist/query/check-auto-mode.js +40 -0
- package/sdk/dist/query/check-auto-mode.js.map +1 -0
- package/sdk/dist/query/check-completion.d.ts +10 -0
- package/sdk/dist/query/check-completion.d.ts.map +1 -0
- package/sdk/dist/query/check-completion.js +157 -0
- package/sdk/dist/query/check-completion.js.map +1 -0
- package/sdk/dist/query/check-decision-coverage.d.ts +33 -0
- package/sdk/dist/query/check-decision-coverage.d.ts.map +1 -0
- package/sdk/dist/query/check-decision-coverage.js +472 -0
- package/sdk/dist/query/check-decision-coverage.js.map +1 -0
- package/sdk/dist/query/check-gates.d.ts +10 -0
- package/sdk/dist/query/check-gates.d.ts.map +1 -0
- package/sdk/dist/query/check-gates.js +89 -0
- package/sdk/dist/query/check-gates.js.map +1 -0
- package/sdk/dist/query/check-ship-ready.d.ts +10 -0
- package/sdk/dist/query/check-ship-ready.d.ts.map +1 -0
- package/sdk/dist/query/check-ship-ready.js +93 -0
- package/sdk/dist/query/check-ship-ready.js.map +1 -0
- package/sdk/dist/query/check-verification-status.d.ts +10 -0
- package/sdk/dist/query/check-verification-status.d.ts.map +1 -0
- package/sdk/dist/query/check-verification-status.js +142 -0
- package/sdk/dist/query/check-verification-status.js.map +1 -0
- package/sdk/dist/query/command-aliases.generated.d.ts +31 -0
- package/sdk/dist/query/command-aliases.generated.d.ts.map +1 -0
- package/sdk/dist/query/command-aliases.generated.js +135 -0
- package/sdk/dist/query/command-aliases.generated.js.map +1 -0
- package/sdk/dist/query/command-catalog.d.ts +9 -0
- package/sdk/dist/query/command-catalog.d.ts.map +1 -0
- package/sdk/dist/query/command-catalog.js +17 -0
- package/sdk/dist/query/command-catalog.js.map +1 -0
- package/sdk/dist/query/command-definition.d.ts +19 -0
- package/sdk/dist/query/command-definition.d.ts.map +1 -0
- package/sdk/dist/query/command-definition.js +44 -0
- package/sdk/dist/query/command-definition.js.map +1 -0
- package/sdk/dist/query/command-family-handlers.d.ts +3 -0
- package/sdk/dist/query/command-family-handlers.d.ts.map +1 -0
- package/sdk/dist/query/command-family-handlers.js +94 -0
- package/sdk/dist/query/command-family-handlers.js.map +1 -0
- package/sdk/dist/query/command-manifest.d.ts +2 -0
- package/sdk/dist/query/command-manifest.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.init.d.ts +6 -0
- package/sdk/dist/query/command-manifest.init.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.init.js +23 -0
- package/sdk/dist/query/command-manifest.init.js.map +1 -0
- package/sdk/dist/query/command-manifest.js +17 -0
- package/sdk/dist/query/command-manifest.js.map +1 -0
- package/sdk/dist/query/command-manifest.non-family.d.ts +9 -0
- package/sdk/dist/query/command-manifest.non-family.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.non-family.js +59 -0
- package/sdk/dist/query/command-manifest.non-family.js.map +1 -0
- package/sdk/dist/query/command-manifest.phase.d.ts +6 -0
- package/sdk/dist/query/command-manifest.phase.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.phase.js +15 -0
- package/sdk/dist/query/command-manifest.phase.js.map +1 -0
- package/sdk/dist/query/command-manifest.phases.d.ts +7 -0
- package/sdk/dist/query/command-manifest.phases.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.phases.js +10 -0
- package/sdk/dist/query/command-manifest.phases.js.map +1 -0
- package/sdk/dist/query/command-manifest.roadmap.d.ts +6 -0
- package/sdk/dist/query/command-manifest.roadmap.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.roadmap.js +10 -0
- package/sdk/dist/query/command-manifest.roadmap.js.map +1 -0
- package/sdk/dist/query/command-manifest.state.d.ts +9 -0
- package/sdk/dist/query/command-manifest.state.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.state.js +30 -0
- package/sdk/dist/query/command-manifest.state.js.map +1 -0
- package/sdk/dist/query/command-manifest.types.d.ts +12 -0
- package/sdk/dist/query/command-manifest.types.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.types.js +2 -0
- package/sdk/dist/query/command-manifest.types.js.map +1 -0
- package/sdk/dist/query/command-manifest.validate.d.ts +6 -0
- package/sdk/dist/query/command-manifest.validate.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.validate.js +10 -0
- package/sdk/dist/query/command-manifest.validate.js.map +1 -0
- package/sdk/dist/query/command-manifest.verify.d.ts +6 -0
- package/sdk/dist/query/command-manifest.verify.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.verify.js +14 -0
- package/sdk/dist/query/command-manifest.verify.js.map +1 -0
- package/sdk/dist/query/command-static-catalog-domain.d.ts +3 -0
- package/sdk/dist/query/command-static-catalog-domain.d.ts.map +1 -0
- package/sdk/dist/query/command-static-catalog-domain.js +116 -0
- package/sdk/dist/query/command-static-catalog-domain.js.map +1 -0
- package/sdk/dist/query/command-static-catalog-foundation.d.ts +7 -0
- package/sdk/dist/query/command-static-catalog-foundation.d.ts.map +1 -0
- package/sdk/dist/query/command-static-catalog-foundation.js +98 -0
- package/sdk/dist/query/command-static-catalog-foundation.js.map +1 -0
- package/sdk/dist/query/command-topology.d.ts +32 -0
- package/sdk/dist/query/command-topology.d.ts.map +1 -0
- package/sdk/dist/query/command-topology.js +66 -0
- package/sdk/dist/query/command-topology.js.map +1 -0
- package/sdk/dist/query/commands-list.d.ts +14 -0
- package/sdk/dist/query/commands-list.d.ts.map +1 -0
- package/sdk/dist/query/commands-list.js +18 -0
- package/sdk/dist/query/commands-list.js.map +1 -0
- package/sdk/dist/query/commit.d.ts +79 -0
- package/sdk/dist/query/commit.d.ts.map +1 -0
- package/sdk/dist/query/commit.js +340 -0
- package/sdk/dist/query/commit.js.map +1 -0
- package/sdk/dist/query/config-gates.d.ts +12 -0
- package/sdk/dist/query/config-gates.d.ts.map +1 -0
- package/sdk/dist/query/config-gates.js +66 -0
- package/sdk/dist/query/config-gates.js.map +1 -0
- package/sdk/dist/query/config-mutation.d.ts +86 -0
- package/sdk/dist/query/config-mutation.d.ts.map +1 -0
- package/sdk/dist/query/config-mutation.js +518 -0
- package/sdk/dist/query/config-mutation.js.map +1 -0
- package/sdk/dist/query/config-query.d.ts +57 -0
- package/sdk/dist/query/config-query.d.ts.map +1 -0
- package/sdk/dist/query/config-query.js +208 -0
- package/sdk/dist/query/config-query.js.map +1 -0
- package/sdk/dist/query/config-schema.d.ts +36 -0
- package/sdk/dist/query/config-schema.d.ts.map +1 -0
- package/sdk/dist/query/config-schema.js +147 -0
- package/sdk/dist/query/config-schema.js.map +1 -0
- package/sdk/dist/query/decisions.d.ts +58 -0
- package/sdk/dist/query/decisions.d.ts.map +1 -0
- package/sdk/dist/query/decisions.js +161 -0
- package/sdk/dist/query/decisions.js.map +1 -0
- package/sdk/dist/query/detect-custom-files.d.ts +11 -0
- package/sdk/dist/query/detect-custom-files.d.ts.map +1 -0
- package/sdk/dist/query/detect-custom-files.js +89 -0
- package/sdk/dist/query/detect-custom-files.js.map +1 -0
- package/sdk/dist/query/detect-phase-type.d.ts +9 -0
- package/sdk/dist/query/detect-phase-type.d.ts.map +1 -0
- package/sdk/dist/query/detect-phase-type.js +124 -0
- package/sdk/dist/query/detect-phase-type.js.map +1 -0
- package/sdk/dist/query/docs-init.d.ts +26 -0
- package/sdk/dist/query/docs-init.d.ts.map +1 -0
- package/sdk/dist/query/docs-init.js +231 -0
- package/sdk/dist/query/docs-init.js.map +1 -0
- package/sdk/dist/query/fallow-audit.d.ts +44 -0
- package/sdk/dist/query/fallow-audit.d.ts.map +1 -0
- package/sdk/dist/query/fallow-audit.js +44 -0
- package/sdk/dist/query/fallow-audit.js.map +1 -0
- package/sdk/dist/query/frontmatter-mutation.d.ts +77 -0
- package/sdk/dist/query/frontmatter-mutation.d.ts.map +1 -0
- package/sdk/dist/query/frontmatter-mutation.js +317 -0
- package/sdk/dist/query/frontmatter-mutation.js.map +1 -0
- package/sdk/dist/query/frontmatter.d.ts +93 -0
- package/sdk/dist/query/frontmatter.d.ts.map +1 -0
- package/sdk/dist/query/frontmatter.js +365 -0
- package/sdk/dist/query/frontmatter.js.map +1 -0
- package/sdk/dist/query/helpers.d.ts +191 -0
- package/sdk/dist/query/helpers.d.ts.map +1 -0
- package/sdk/dist/query/helpers.js +613 -0
- package/sdk/dist/query/helpers.js.map +1 -0
- package/sdk/dist/query/index.d.ts +8 -0
- package/sdk/dist/query/index.d.ts.map +1 -0
- package/sdk/dist/query/index.js +6 -0
- package/sdk/dist/query/index.js.map +1 -0
- package/sdk/dist/query/init-complex.d.ts +47 -0
- package/sdk/dist/query/init-complex.d.ts.map +1 -0
- package/sdk/dist/query/init-complex.js +718 -0
- package/sdk/dist/query/init-complex.js.map +1 -0
- package/sdk/dist/query/init.d.ts +106 -0
- package/sdk/dist/query/init.d.ts.map +1 -0
- package/sdk/dist/query/init.js +1159 -0
- package/sdk/dist/query/init.js.map +1 -0
- package/sdk/dist/query/intel.d.ts +43 -0
- package/sdk/dist/query/intel.d.ts.map +1 -0
- package/sdk/dist/query/intel.js +416 -0
- package/sdk/dist/query/intel.js.map +1 -0
- package/sdk/dist/query/mutation-event-decorator.d.ts +5 -0
- package/sdk/dist/query/mutation-event-decorator.d.ts.map +1 -0
- package/sdk/dist/query/mutation-event-decorator.js +28 -0
- package/sdk/dist/query/mutation-event-decorator.js.map +1 -0
- package/sdk/dist/query/mutation-event-mapper.d.ts +4 -0
- package/sdk/dist/query/mutation-event-mapper.d.ts.map +1 -0
- package/sdk/dist/query/mutation-event-mapper.js +70 -0
- package/sdk/dist/query/mutation-event-mapper.js.map +1 -0
- package/sdk/dist/query/mvp.d.ts +113 -0
- package/sdk/dist/query/mvp.d.ts.map +1 -0
- package/sdk/dist/query/mvp.js +225 -0
- package/sdk/dist/query/mvp.js.map +1 -0
- package/sdk/dist/query/phase-filesystem-adapter.d.ts +4 -0
- package/sdk/dist/query/phase-filesystem-adapter.d.ts.map +1 -0
- package/sdk/dist/query/phase-filesystem-adapter.js +33 -0
- package/sdk/dist/query/phase-filesystem-adapter.js.map +1 -0
- package/sdk/dist/query/phase-lifecycle-policy.d.ts +34 -0
- package/sdk/dist/query/phase-lifecycle-policy.d.ts.map +1 -0
- package/sdk/dist/query/phase-lifecycle-policy.js +138 -0
- package/sdk/dist/query/phase-lifecycle-policy.js.map +1 -0
- package/sdk/dist/query/phase-lifecycle.d.ts +116 -0
- package/sdk/dist/query/phase-lifecycle.d.ts.map +1 -0
- package/sdk/dist/query/phase-lifecycle.js +1486 -0
- package/sdk/dist/query/phase-lifecycle.js.map +1 -0
- package/sdk/dist/query/phase-list-queries.d.ts +18 -0
- package/sdk/dist/query/phase-list-queries.d.ts.map +1 -0
- package/sdk/dist/query/phase-list-queries.js +129 -0
- package/sdk/dist/query/phase-list-queries.js.map +1 -0
- package/sdk/dist/query/phase-ready.d.ts +9 -0
- package/sdk/dist/query/phase-ready.d.ts.map +1 -0
- package/sdk/dist/query/phase-ready.js +132 -0
- package/sdk/dist/query/phase-ready.js.map +1 -0
- package/sdk/dist/query/phase-roadmap-mutation.d.ts +13 -0
- package/sdk/dist/query/phase-roadmap-mutation.d.ts.map +1 -0
- package/sdk/dist/query/phase-roadmap-mutation.js +65 -0
- package/sdk/dist/query/phase-roadmap-mutation.js.map +1 -0
- package/sdk/dist/query/phase.d.ts +48 -0
- package/sdk/dist/query/phase.d.ts.map +1 -0
- package/sdk/dist/query/phase.js +451 -0
- package/sdk/dist/query/phase.js.map +1 -0
- package/sdk/dist/query/pipeline.d.ts +53 -0
- package/sdk/dist/query/pipeline.d.ts.map +1 -0
- package/sdk/dist/query/pipeline.js +198 -0
- package/sdk/dist/query/pipeline.js.map +1 -0
- package/sdk/dist/query/plan-scan.d.ts +14 -0
- package/sdk/dist/query/plan-scan.d.ts.map +1 -0
- package/sdk/dist/query/plan-scan.js +70 -0
- package/sdk/dist/query/plan-scan.js.map +1 -0
- package/sdk/dist/query/plan-task-structure.d.ts +9 -0
- package/sdk/dist/query/plan-task-structure.d.ts.map +1 -0
- package/sdk/dist/query/plan-task-structure.js +59 -0
- package/sdk/dist/query/plan-task-structure.js.map +1 -0
- package/sdk/dist/query/profile-extract-messages.d.ts +40 -0
- package/sdk/dist/query/profile-extract-messages.d.ts.map +1 -0
- package/sdk/dist/query/profile-extract-messages.js +195 -0
- package/sdk/dist/query/profile-extract-messages.js.map +1 -0
- package/sdk/dist/query/profile-output.d.ts +11 -0
- package/sdk/dist/query/profile-output.d.ts.map +1 -0
- package/sdk/dist/query/profile-output.js +873 -0
- package/sdk/dist/query/profile-output.js.map +1 -0
- package/sdk/dist/query/profile-questionnaire-data.d.ts +21 -0
- package/sdk/dist/query/profile-questionnaire-data.d.ts.map +1 -0
- package/sdk/dist/query/profile-questionnaire-data.js +171 -0
- package/sdk/dist/query/profile-questionnaire-data.js.map +1 -0
- package/sdk/dist/query/profile-sample.d.ts +22 -0
- package/sdk/dist/query/profile-sample.d.ts.map +1 -0
- package/sdk/dist/query/profile-sample.js +136 -0
- package/sdk/dist/query/profile-sample.js.map +1 -0
- package/sdk/dist/query/profile-scan-sessions.d.ts +49 -0
- package/sdk/dist/query/profile-scan-sessions.d.ts.map +1 -0
- package/sdk/dist/query/profile-scan-sessions.js +137 -0
- package/sdk/dist/query/profile-scan-sessions.js.map +1 -0
- package/sdk/dist/query/profile.d.ts +61 -0
- package/sdk/dist/query/profile.d.ts.map +1 -0
- package/sdk/dist/query/profile.js +307 -0
- package/sdk/dist/query/profile.js.map +1 -0
- package/sdk/dist/query/progress.d.ts +77 -0
- package/sdk/dist/query/progress.d.ts.map +1 -0
- package/sdk/dist/query/progress.js +481 -0
- package/sdk/dist/query/progress.js.map +1 -0
- package/sdk/dist/query/query-cli-adapter.d.ts +8 -0
- package/sdk/dist/query/query-cli-adapter.d.ts.map +1 -0
- package/sdk/dist/query/query-cli-adapter.js +32 -0
- package/sdk/dist/query/query-cli-adapter.js.map +1 -0
- package/sdk/dist/query/query-cli-output.d.ts +9 -0
- package/sdk/dist/query/query-cli-output.d.ts.map +1 -0
- package/sdk/dist/query/query-cli-output.js +28 -0
- package/sdk/dist/query/query-cli-output.js.map +1 -0
- package/sdk/dist/query/query-command-diagnosis.d.ts +6 -0
- package/sdk/dist/query/query-command-diagnosis.d.ts.map +1 -0
- package/sdk/dist/query/query-command-diagnosis.js +6 -0
- package/sdk/dist/query/query-command-diagnosis.js.map +1 -0
- package/sdk/dist/query/query-command-resolution-strategy.d.ts +29 -0
- package/sdk/dist/query/query-command-resolution-strategy.d.ts.map +1 -0
- package/sdk/dist/query/query-command-resolution-strategy.js +103 -0
- package/sdk/dist/query/query-command-resolution-strategy.js.map +1 -0
- package/sdk/dist/query/query-command-semantics.d.ts +7 -0
- package/sdk/dist/query/query-command-semantics.d.ts.map +1 -0
- package/sdk/dist/query/query-command-semantics.js +7 -0
- package/sdk/dist/query/query-command-semantics.js.map +1 -0
- package/sdk/dist/query/query-dispatch-contract.d.ts +21 -0
- package/sdk/dist/query/query-dispatch-contract.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-contract.js +2 -0
- package/sdk/dist/query/query-dispatch-contract.js.map +1 -0
- package/sdk/dist/query/query-dispatch-error-mapper.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-error-mapper.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-error-mapper.js +6 -0
- package/sdk/dist/query/query-dispatch-error-mapper.js.map +1 -0
- package/sdk/dist/query/query-dispatch-formatting.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-formatting.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-formatting.js +6 -0
- package/sdk/dist/query/query-dispatch-formatting.js.map +1 -0
- package/sdk/dist/query/query-dispatch-input-validation.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-input-validation.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-input-validation.js +6 -0
- package/sdk/dist/query/query-dispatch-input-validation.js.map +1 -0
- package/sdk/dist/query/query-dispatch-observability.d.ts +2 -0
- package/sdk/dist/query/query-dispatch-observability.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-observability.js +7 -0
- package/sdk/dist/query/query-dispatch-observability.js.map +1 -0
- package/sdk/dist/query/query-dispatch-plan.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-plan.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-plan.js +6 -0
- package/sdk/dist/query/query-dispatch-plan.js.map +1 -0
- package/sdk/dist/query/query-dispatch-result-builder.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-result-builder.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-result-builder.js +6 -0
- package/sdk/dist/query/query-dispatch-result-builder.js.map +1 -0
- package/sdk/dist/query/query-dispatch.d.ts +48 -0
- package/sdk/dist/query/query-dispatch.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch.js +175 -0
- package/sdk/dist/query/query-dispatch.js.map +1 -0
- package/sdk/dist/query/query-error-details-schema.d.ts +19 -0
- package/sdk/dist/query/query-error-details-schema.d.ts.map +1 -0
- package/sdk/dist/query/query-error-details-schema.js +10 -0
- package/sdk/dist/query/query-error-details-schema.js.map +1 -0
- package/sdk/dist/query/query-error-taxonomy.d.ts +38 -0
- package/sdk/dist/query/query-error-taxonomy.d.ts.map +1 -0
- package/sdk/dist/query/query-error-taxonomy.js +74 -0
- package/sdk/dist/query/query-error-taxonomy.js.map +1 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.d.ts +14 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.js +33 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.js.map +1 -0
- package/sdk/dist/query/query-fallback-executor.d.ts +11 -0
- package/sdk/dist/query/query-fallback-executor.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-executor.js +31 -0
- package/sdk/dist/query/query-fallback-executor.js.map +1 -0
- package/sdk/dist/query/query-fallback-output-classifier.d.ts +6 -0
- package/sdk/dist/query/query-fallback-output-classifier.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-output-classifier.js +27 -0
- package/sdk/dist/query/query-fallback-output-classifier.js.map +1 -0
- package/sdk/dist/query/query-fallback-policy.d.ts +6 -0
- package/sdk/dist/query/query-fallback-policy.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-policy.js +7 -0
- package/sdk/dist/query/query-fallback-policy.js.map +1 -0
- package/sdk/dist/query/query-native-dispatch-adapter.d.ts +7 -0
- package/sdk/dist/query/query-native-dispatch-adapter.d.ts.map +1 -0
- package/sdk/dist/query/query-native-dispatch-adapter.js +6 -0
- package/sdk/dist/query/query-native-dispatch-adapter.js.map +1 -0
- package/sdk/dist/query/query-policy-capability.d.ts +10 -0
- package/sdk/dist/query/query-policy-capability.d.ts.map +1 -0
- package/sdk/dist/query/query-policy-capability.js +17 -0
- package/sdk/dist/query/query-policy-capability.js.map +1 -0
- package/sdk/dist/query/query-runtime-context.d.ts +19 -0
- package/sdk/dist/query/query-runtime-context.d.ts.map +1 -0
- package/sdk/dist/query/query-runtime-context.js +31 -0
- package/sdk/dist/query/query-runtime-context.js.map +1 -0
- package/sdk/dist/query/query-unknown-command-hints.d.ts +2 -0
- package/sdk/dist/query/query-unknown-command-hints.d.ts.map +1 -0
- package/sdk/dist/query/query-unknown-command-hints.js +6 -0
- package/sdk/dist/query/query-unknown-command-hints.js.map +1 -0
- package/sdk/dist/query/registry-assembly-descriptor.d.ts +12 -0
- package/sdk/dist/query/registry-assembly-descriptor.d.ts.map +1 -0
- package/sdk/dist/query/registry-assembly-descriptor.js +61 -0
- package/sdk/dist/query/registry-assembly-descriptor.js.map +1 -0
- package/sdk/dist/query/registry-assembly-invariants.d.ts +30 -0
- package/sdk/dist/query/registry-assembly-invariants.d.ts.map +1 -0
- package/sdk/dist/query/registry-assembly-invariants.js +77 -0
- package/sdk/dist/query/registry-assembly-invariants.js.map +1 -0
- package/sdk/dist/query/registry-assembly.d.ts +10 -0
- package/sdk/dist/query/registry-assembly.d.ts.map +1 -0
- package/sdk/dist/query/registry-assembly.js +53 -0
- package/sdk/dist/query/registry-assembly.js.map +1 -0
- package/sdk/dist/query/registry.d.ts +90 -0
- package/sdk/dist/query/registry.d.ts.map +1 -0
- package/sdk/dist/query/registry.js +129 -0
- package/sdk/dist/query/registry.js.map +1 -0
- package/sdk/dist/query/requirements-extract-from-plans.d.ts +9 -0
- package/sdk/dist/query/requirements-extract-from-plans.d.ts.map +1 -0
- package/sdk/dist/query/requirements-extract-from-plans.js +76 -0
- package/sdk/dist/query/requirements-extract-from-plans.js.map +1 -0
- package/sdk/dist/query/roadmap-update-plan-progress.d.ts +11 -0
- package/sdk/dist/query/roadmap-update-plan-progress.d.ts.map +1 -0
- package/sdk/dist/query/roadmap-update-plan-progress.js +124 -0
- package/sdk/dist/query/roadmap-update-plan-progress.js.map +1 -0
- package/sdk/dist/query/roadmap.d.ts +137 -0
- package/sdk/dist/query/roadmap.d.ts.map +1 -0
- package/sdk/dist/query/roadmap.js +753 -0
- package/sdk/dist/query/roadmap.js.map +1 -0
- package/sdk/dist/query/route-next-action.d.ts +9 -0
- package/sdk/dist/query/route-next-action.d.ts.map +1 -0
- package/sdk/dist/query/route-next-action.js +318 -0
- package/sdk/dist/query/route-next-action.js.map +1 -0
- package/sdk/dist/query/schema-detect.d.ts +21 -0
- package/sdk/dist/query/schema-detect.d.ts.map +1 -0
- package/sdk/dist/query/schema-detect.js +146 -0
- package/sdk/dist/query/schema-detect.js.map +1 -0
- package/sdk/dist/query/secrets.d.ts +27 -0
- package/sdk/dist/query/secrets.d.ts.map +1 -0
- package/sdk/dist/query/secrets.js +42 -0
- package/sdk/dist/query/secrets.js.map +1 -0
- package/sdk/dist/query/skill-manifest.d.ts +50 -0
- package/sdk/dist/query/skill-manifest.d.ts.map +1 -0
- package/sdk/dist/query/skill-manifest.js +171 -0
- package/sdk/dist/query/skill-manifest.js.map +1 -0
- package/sdk/dist/query/skills.d.ts +27 -0
- package/sdk/dist/query/skills.d.ts.map +1 -0
- package/sdk/dist/query/skills.js +137 -0
- package/sdk/dist/query/skills.js.map +1 -0
- package/sdk/dist/query/state-document.d.ts +14 -0
- package/sdk/dist/query/state-document.d.ts.map +1 -0
- package/sdk/dist/query/state-document.js +110 -0
- package/sdk/dist/query/state-document.js.map +1 -0
- package/sdk/dist/query/state-mutation.d.ts +224 -0
- package/sdk/dist/query/state-mutation.d.ts.map +1 -0
- package/sdk/dist/query/state-mutation.js +1539 -0
- package/sdk/dist/query/state-mutation.js.map +1 -0
- package/sdk/dist/query/state-project-load.d.ts +23 -0
- package/sdk/dist/query/state-project-load.d.ts.map +1 -0
- package/sdk/dist/query/state-project-load.js +75 -0
- package/sdk/dist/query/state-project-load.js.map +1 -0
- package/sdk/dist/query/state.d.ts +78 -0
- package/sdk/dist/query/state.d.ts.map +1 -0
- package/sdk/dist/query/state.js +430 -0
- package/sdk/dist/query/state.js.map +1 -0
- package/sdk/dist/query/summary.d.ts +18 -0
- package/sdk/dist/query/summary.d.ts.map +1 -0
- package/sdk/dist/query/summary.js +249 -0
- package/sdk/dist/query/summary.js.map +1 -0
- package/sdk/dist/query/template.d.ts +46 -0
- package/sdk/dist/query/template.d.ts.map +1 -0
- package/sdk/dist/query/template.js +210 -0
- package/sdk/dist/query/template.js.map +1 -0
- package/sdk/dist/query/uat.d.ts +34 -0
- package/sdk/dist/query/uat.d.ts.map +1 -0
- package/sdk/dist/query/uat.js +339 -0
- package/sdk/dist/query/uat.js.map +1 -0
- package/sdk/dist/query/utils.d.ts +59 -0
- package/sdk/dist/query/utils.d.ts.map +1 -0
- package/sdk/dist/query/utils.js +74 -0
- package/sdk/dist/query/utils.js.map +1 -0
- package/sdk/dist/query/validate.d.ts +67 -0
- package/sdk/dist/query/validate.d.ts.map +1 -0
- package/sdk/dist/query/validate.js +908 -0
- package/sdk/dist/query/validate.js.map +1 -0
- package/sdk/dist/query/verify.d.ts +110 -0
- package/sdk/dist/query/verify.d.ts.map +1 -0
- package/sdk/dist/query/verify.js +631 -0
- package/sdk/dist/query/verify.js.map +1 -0
- package/sdk/dist/query/websearch.d.ts +24 -0
- package/sdk/dist/query/websearch.d.ts.map +1 -0
- package/sdk/dist/query/websearch.js +68 -0
- package/sdk/dist/query/websearch.js.map +1 -0
- package/sdk/dist/query/workspace.d.ts +62 -0
- package/sdk/dist/query/workspace.d.ts.map +1 -0
- package/sdk/dist/query/workspace.js +104 -0
- package/sdk/dist/query/workspace.js.map +1 -0
- package/sdk/dist/query/workstream-inventory.d.ts +52 -0
- package/sdk/dist/query/workstream-inventory.d.ts.map +1 -0
- package/sdk/dist/query/workstream-inventory.js +141 -0
- package/sdk/dist/query/workstream-inventory.js.map +1 -0
- package/sdk/dist/query/workstream.d.ts +35 -0
- package/sdk/dist/query/workstream.d.ts.map +1 -0
- package/sdk/dist/query/workstream.js +298 -0
- package/sdk/dist/query/workstream.js.map +1 -0
- package/sdk/dist/query/worktree.d.ts +3 -0
- package/sdk/dist/query/worktree.d.ts.map +1 -0
- package/sdk/dist/query/worktree.js +36 -0
- package/sdk/dist/query/worktree.js.map +1 -0
- package/sdk/dist/query-command-executor.d.ts +22 -0
- package/sdk/dist/query-command-executor.d.ts.map +1 -0
- package/sdk/dist/query-command-executor.js +22 -0
- package/sdk/dist/query-command-executor.js.map +1 -0
- package/sdk/dist/query-execution-policy.d.ts +24 -0
- package/sdk/dist/query-execution-policy.d.ts.map +1 -0
- package/sdk/dist/query-execution-policy.js +27 -0
- package/sdk/dist/query-execution-policy.js.map +1 -0
- package/sdk/dist/query-failure-classification.d.ts +9 -0
- package/sdk/dist/query-failure-classification.d.ts.map +1 -0
- package/sdk/dist/query-failure-classification.js +32 -0
- package/sdk/dist/query-failure-classification.js.map +1 -0
- package/sdk/dist/query-hotpath-methods.d.ts +19 -0
- package/sdk/dist/query-hotpath-methods.d.ts.map +1 -0
- package/sdk/dist/query-hotpath-methods.js +34 -0
- package/sdk/dist/query-hotpath-methods.js.map +1 -0
- package/sdk/dist/query-native-direct-adapter.d.ts +20 -0
- package/sdk/dist/query-native-direct-adapter.d.ts.map +1 -0
- package/sdk/dist/query-native-direct-adapter.js +52 -0
- package/sdk/dist/query-native-direct-adapter.js.map +1 -0
- package/sdk/dist/query-native-hotpath-adapter.d.ts +15 -0
- package/sdk/dist/query-native-hotpath-adapter.d.ts.map +1 -0
- package/sdk/dist/query-native-hotpath-adapter.js +32 -0
- package/sdk/dist/query-native-hotpath-adapter.js.map +1 -0
- package/sdk/dist/query-raw-output-projection.d.ts +6 -0
- package/sdk/dist/query-raw-output-projection.d.ts.map +1 -0
- package/sdk/dist/query-raw-output-projection.js +67 -0
- package/sdk/dist/query-raw-output-projection.js.map +1 -0
- package/sdk/dist/query-runtime-bridge.d.ts +61 -0
- package/sdk/dist/query-runtime-bridge.d.ts.map +1 -0
- package/sdk/dist/query-runtime-bridge.js +144 -0
- package/sdk/dist/query-runtime-bridge.js.map +1 -0
- package/sdk/dist/query-sdd-tools-path.d.ts +2 -0
- package/sdk/dist/query-sdd-tools-path.d.ts.map +1 -0
- package/sdk/dist/query-sdd-tools-path.js +2 -0
- package/sdk/dist/query-sdd-tools-path.js.map +1 -0
- package/sdk/dist/query-sdd-tools-runtime.d.ts +20 -0
- package/sdk/dist/query-sdd-tools-runtime.d.ts.map +1 -0
- package/sdk/dist/query-sdd-tools-runtime.js +47 -0
- package/sdk/dist/query-sdd-tools-runtime.js.map +1 -0
- package/sdk/dist/query-subprocess-adapter.d.ts +18 -0
- package/sdk/dist/query-subprocess-adapter.d.ts.map +1 -0
- package/sdk/dist/query-subprocess-adapter.js +92 -0
- package/sdk/dist/query-subprocess-adapter.js.map +1 -0
- package/sdk/dist/query-tools-error-factory.d.ts +16 -0
- package/sdk/dist/query-tools-error-factory.d.ts.map +1 -0
- package/sdk/dist/query-tools-error-factory.js +33 -0
- package/sdk/dist/query-tools-error-factory.js.map +1 -0
- package/sdk/dist/research-gate.d.ts +24 -0
- package/sdk/dist/research-gate.d.ts.map +1 -0
- package/sdk/dist/research-gate.js +70 -0
- package/sdk/dist/research-gate.js.map +1 -0
- package/sdk/dist/runtime-gate.d.ts +14 -0
- package/sdk/dist/runtime-gate.d.ts.map +1 -0
- package/sdk/dist/runtime-gate.js +48 -0
- package/sdk/dist/runtime-gate.js.map +1 -0
- package/sdk/dist/sdd-tools-error.d.ts +23 -0
- package/sdk/dist/sdd-tools-error.d.ts.map +1 -0
- package/sdk/dist/sdd-tools-error.js +29 -0
- package/sdk/dist/sdd-tools-error.js.map +1 -0
- package/sdk/dist/sdd-tools.d.ts +97 -0
- package/sdk/dist/sdd-tools.d.ts.map +1 -0
- package/sdk/dist/sdd-tools.js +168 -0
- package/sdk/dist/sdd-tools.js.map +1 -0
- package/sdk/dist/sdd-transport-policy.d.ts +10 -0
- package/sdk/dist/sdd-transport-policy.d.ts.map +1 -0
- package/sdk/dist/sdd-transport-policy.js +32 -0
- package/sdk/dist/sdd-transport-policy.js.map +1 -0
- package/sdk/dist/sdd-transport.d.ts +39 -0
- package/sdk/dist/sdd-transport.d.ts.map +1 -0
- package/sdk/dist/sdd-transport.js +78 -0
- package/sdk/dist/sdd-transport.js.map +1 -0
- package/sdk/dist/sdk-package-compatibility.d.ts +38 -0
- package/sdk/dist/sdk-package-compatibility.d.ts.map +1 -0
- package/sdk/dist/sdk-package-compatibility.js +90 -0
- package/sdk/dist/sdk-package-compatibility.js.map +1 -0
- package/sdk/dist/session-runner.d.ts +40 -0
- package/sdk/dist/session-runner.d.ts.map +1 -0
- package/sdk/dist/session-runner.js +274 -0
- package/sdk/dist/session-runner.js.map +1 -0
- package/sdk/dist/tool-scoping.d.ts +31 -0
- package/sdk/dist/tool-scoping.d.ts.map +1 -0
- package/sdk/dist/tool-scoping.js +54 -0
- package/sdk/dist/tool-scoping.js.map +1 -0
- package/sdk/dist/types.d.ts +794 -0
- package/sdk/dist/types.d.ts.map +1 -0
- package/sdk/dist/types.js +77 -0
- package/sdk/dist/types.js.map +1 -0
- package/sdk/dist/workstream-name-policy.d.ts +13 -0
- package/sdk/dist/workstream-name-policy.d.ts.map +1 -0
- package/sdk/dist/workstream-name-policy.js +24 -0
- package/sdk/dist/workstream-name-policy.js.map +1 -0
- package/sdk/dist/workstream-utils.d.ts +15 -0
- package/sdk/dist/workstream-utils.d.ts.map +1 -0
- package/sdk/dist/workstream-utils.js +21 -0
- package/sdk/dist/workstream-utils.js.map +1 -0
- package/sdk/dist/ws-transport.d.ts +32 -0
- package/sdk/dist/ws-transport.d.ts.map +1 -0
- package/sdk/dist/ws-transport.js +84 -0
- package/sdk/dist/ws-transport.js.map +1 -0
- package/sdk/package-lock.json +2502 -0
- package/sdk/package.json +57 -0
- package/sdk/prompts/templates/project.md +186 -0
- package/sdk/prompts/templates/requirements.md +231 -0
- package/sdk/prompts/templates/research-project/ARCHITECTURE.md +204 -0
- package/sdk/prompts/templates/research-project/FEATURES.md +147 -0
- package/sdk/prompts/templates/research-project/PITFALLS.md +200 -0
- package/sdk/prompts/templates/research-project/STACK.md +120 -0
- package/sdk/prompts/templates/research-project/SUMMARY.md +170 -0
- package/sdk/prompts/templates/roadmap.md +202 -0
- package/sdk/prompts/templates/state.md +175 -0
- package/sdk/shared/model-catalog.json +122 -0
- package/sdk/src/assembled-prompts.test.ts +349 -0
- package/sdk/src/bug-3591-sddtools-runtime-workstream.test.ts +179 -0
- package/sdk/src/cli-transport.test.ts +388 -0
- package/sdk/src/cli-transport.ts +130 -0
- package/sdk/src/cli.test.ts +426 -0
- package/sdk/src/cli.ts +589 -0
- package/sdk/src/config.test.ts +271 -0
- package/sdk/src/config.ts +218 -0
- package/sdk/src/context-engine.test.ts +295 -0
- package/sdk/src/context-engine.ts +170 -0
- package/sdk/src/context-truncation.test.ts +163 -0
- package/sdk/src/context-truncation.ts +233 -0
- package/sdk/src/e2e.integration.test.ts +181 -0
- package/sdk/src/errors.ts +72 -0
- package/sdk/src/event-stream.test.ts +661 -0
- package/sdk/src/event-stream.ts +441 -0
- package/sdk/src/golden/capture.ts +95 -0
- package/sdk/src/golden/fixtures/generate-slug.golden.json +1 -0
- package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +3 -0
- package/sdk/src/golden/fixtures/summary-extract-sample.md +26 -0
- package/sdk/src/golden/fixtures/uat-render-checkpoint-sample.md +15 -0
- package/sdk/src/golden/golden-integration-covered.ts +30 -0
- package/sdk/src/golden/golden-mutation-covered.ts +17 -0
- package/sdk/src/golden/golden-policy.test.ts +8 -0
- package/sdk/src/golden/golden-policy.ts +120 -0
- package/sdk/src/golden/golden.integration.test.ts +677 -0
- package/sdk/src/golden/init-golden-normalize.ts +15 -0
- package/sdk/src/golden/read-only-golden-rows.ts +77 -0
- package/sdk/src/golden/read-only-parity.integration.test.ts +133 -0
- package/sdk/src/golden/registry-canonical-commands.ts +31 -0
- package/sdk/src/index.ts +352 -0
- package/sdk/src/init-e2e.integration.test.ts +138 -0
- package/sdk/src/init-runner.test.ts +740 -0
- package/sdk/src/init-runner.ts +734 -0
- package/sdk/src/lifecycle-e2e.integration.test.ts +258 -0
- package/sdk/src/logger.test.ts +149 -0
- package/sdk/src/logger.ts +113 -0
- package/sdk/src/milestone-runner.test.ts +421 -0
- package/sdk/src/model-catalog.ts +70 -0
- package/sdk/src/phase-prompt.test.ts +535 -0
- package/sdk/src/phase-prompt.ts +259 -0
- package/sdk/src/phase-runner-types.test.ts +421 -0
- package/sdk/src/phase-runner.integration.test.ts +377 -0
- package/sdk/src/phase-runner.test.ts +2720 -0
- package/sdk/src/phase-runner.ts +1442 -0
- package/sdk/src/plan-parser.test.ts +579 -0
- package/sdk/src/plan-parser.ts +431 -0
- package/sdk/src/planning-journal.test.ts +70 -0
- package/sdk/src/planning-journal.ts +153 -0
- package/sdk/src/planning-runtime.test.ts +29 -0
- package/sdk/src/planning-runtime.ts +100 -0
- package/sdk/src/prompt-builder.test.ts +318 -0
- package/sdk/src/prompt-builder.ts +218 -0
- package/sdk/src/prompt-sanitizer.test.ts +260 -0
- package/sdk/src/prompt-sanitizer.ts +116 -0
- package/sdk/src/query/QUERY-HANDLERS.md +349 -0
- package/sdk/src/query/active-workstream-store.ts +50 -0
- package/sdk/src/query/agent-failure-classifier.test.ts +157 -0
- package/sdk/src/query/agent-failure-classifier.ts +105 -0
- package/sdk/src/query/audit-open.ts +722 -0
- package/sdk/src/query/check-auto-mode.test.ts +77 -0
- package/sdk/src/query/check-auto-mode.ts +49 -0
- package/sdk/src/query/check-completion.test.ts +113 -0
- package/sdk/src/query/check-completion.ts +182 -0
- package/sdk/src/query/check-decision-coverage.test.ts +519 -0
- package/sdk/src/query/check-decision-coverage.ts +554 -0
- package/sdk/src/query/check-gates.test.ts +103 -0
- package/sdk/src/query/check-gates.ts +112 -0
- package/sdk/src/query/check-ship-ready.test.ts +111 -0
- package/sdk/src/query/check-ship-ready.ts +104 -0
- package/sdk/src/query/check-verification-status.test.ts +143 -0
- package/sdk/src/query/check-verification-status.ts +160 -0
- package/sdk/src/query/command-aliases.generated.ts +156 -0
- package/sdk/src/query/command-catalog.ts +31 -0
- package/sdk/src/query/command-definition.test.ts +47 -0
- package/sdk/src/query/command-definition.ts +70 -0
- package/sdk/src/query/command-family-handlers.ts +117 -0
- package/sdk/src/query/command-manifest.init.ts +24 -0
- package/sdk/src/query/command-manifest.non-family.ts +85 -0
- package/sdk/src/query/command-manifest.phase.ts +16 -0
- package/sdk/src/query/command-manifest.phases.ts +11 -0
- package/sdk/src/query/command-manifest.roadmap.ts +11 -0
- package/sdk/src/query/command-manifest.state.ts +31 -0
- package/sdk/src/query/command-manifest.ts +17 -0
- package/sdk/src/query/command-manifest.types.ts +13 -0
- package/sdk/src/query/command-manifest.validate.ts +11 -0
- package/sdk/src/query/command-manifest.verify.ts +15 -0
- package/sdk/src/query/command-resolution.test.ts +70 -0
- package/sdk/src/query/command-seam-coverage.test.ts +118 -0
- package/sdk/src/query/command-static-catalog-domain.ts +117 -0
- package/sdk/src/query/command-static-catalog-foundation.ts +103 -0
- package/sdk/src/query/command-topology.test.ts +28 -0
- package/sdk/src/query/command-topology.ts +114 -0
- package/sdk/src/query/commands-list.test.ts +36 -0
- package/sdk/src/query/commands-list.ts +19 -0
- package/sdk/src/query/commit.test.ts +485 -0
- package/sdk/src/query/commit.ts +383 -0
- package/sdk/src/query/config-gates.test.ts +89 -0
- package/sdk/src/query/config-gates.ts +69 -0
- package/sdk/src/query/config-mutation.test.ts +598 -0
- package/sdk/src/query/config-mutation.ts +575 -0
- package/sdk/src/query/config-query.test.ts +367 -0
- package/sdk/src/query/config-query.ts +244 -0
- package/sdk/src/query/config-schema.ts +159 -0
- package/sdk/src/query/decisions.test.ts +215 -0
- package/sdk/src/query/decisions.ts +192 -0
- package/sdk/src/query/decomposed-handlers.test.ts +431 -0
- package/sdk/src/query/detect-custom-files.test.ts +115 -0
- package/sdk/src/query/detect-custom-files.ts +96 -0
- package/sdk/src/query/detect-phase-type.test.ts +105 -0
- package/sdk/src/query/detect-phase-type.ts +141 -0
- package/sdk/src/query/docs-init.ts +258 -0
- package/sdk/src/query/fallow-audit.ts +88 -0
- package/sdk/src/query/frontmatter-array.test.ts +14 -0
- package/sdk/src/query/frontmatter-mutation.test.ts +259 -0
- package/sdk/src/query/frontmatter-mutation.ts +343 -0
- package/sdk/src/query/frontmatter.test.ts +326 -0
- package/sdk/src/query/frontmatter.ts +395 -0
- package/sdk/src/query/helpers.test.ts +615 -0
- package/sdk/src/query/helpers.ts +646 -0
- package/sdk/src/query/index-thin-seam.test.ts +16 -0
- package/sdk/src/query/index.ts +9 -0
- package/sdk/src/query/init-complex.test.ts +616 -0
- package/sdk/src/query/init-complex.ts +799 -0
- package/sdk/src/query/init-progress-precedence.test.ts +177 -0
- package/sdk/src/query/init-workstream-milestone-op.test.ts +321 -0
- package/sdk/src/query/init.test.ts +792 -0
- package/sdk/src/query/init.ts +1262 -0
- package/sdk/src/query/intel.test.ts +90 -0
- package/sdk/src/query/intel.ts +404 -0
- package/sdk/src/query/mutation-event-decorator.test.ts +45 -0
- package/sdk/src/query/mutation-event-decorator.ts +37 -0
- package/sdk/src/query/mutation-event-mapper.test.ts +33 -0
- package/sdk/src/query/mutation-event-mapper.ts +102 -0
- package/sdk/src/query/mvp.test.ts +335 -0
- package/sdk/src/query/mvp.ts +292 -0
- package/sdk/src/query/normalize-query-command.test.ts +102 -0
- package/sdk/src/query/phase-filesystem-adapter.ts +35 -0
- package/sdk/src/query/phase-lifecycle-policy.ts +171 -0
- package/sdk/src/query/phase-lifecycle.test.ts +1750 -0
- package/sdk/src/query/phase-lifecycle.ts +1833 -0
- package/sdk/src/query/phase-list-queries.test.ts +88 -0
- package/sdk/src/query/phase-list-queries.ts +152 -0
- package/sdk/src/query/phase-ready.test.ts +65 -0
- package/sdk/src/query/phase-ready.ts +159 -0
- package/sdk/src/query/phase-roadmap-mutation.ts +77 -0
- package/sdk/src/query/phase.test.ts +651 -0
- package/sdk/src/query/phase.ts +550 -0
- package/sdk/src/query/pipeline.test.ts +169 -0
- package/sdk/src/query/pipeline.ts +243 -0
- package/sdk/src/query/plan-scan.test.ts +35 -0
- package/sdk/src/query/plan-scan.ts +82 -0
- package/sdk/src/query/plan-task-structure.test.ts +65 -0
- package/sdk/src/query/plan-task-structure.ts +63 -0
- package/sdk/src/query/policy-convergence.test.ts +28 -0
- package/sdk/src/query/profile-extract-messages.ts +247 -0
- package/sdk/src/query/profile-output.ts +929 -0
- package/sdk/src/query/profile-questionnaire-data.ts +181 -0
- package/sdk/src/query/profile-sample.ts +184 -0
- package/sdk/src/query/profile-scan-sessions.ts +174 -0
- package/sdk/src/query/profile.test.ts +136 -0
- package/sdk/src/query/profile.ts +337 -0
- package/sdk/src/query/progress.test.ts +156 -0
- package/sdk/src/query/progress.ts +566 -0
- package/sdk/src/query/query-cli-adapter.test.ts +79 -0
- package/sdk/src/query/query-cli-adapter.ts +39 -0
- package/sdk/src/query/query-cli-output.test.ts +33 -0
- package/sdk/src/query/query-cli-output.ts +35 -0
- package/sdk/src/query/query-command-diagnosis.test.ts +22 -0
- package/sdk/src/query/query-command-diagnosis.ts +5 -0
- package/sdk/src/query/query-command-resolution-strategy.test.ts +34 -0
- package/sdk/src/query/query-command-resolution-strategy.ts +121 -0
- package/sdk/src/query/query-command-semantics.test.ts +22 -0
- package/sdk/src/query/query-command-semantics.ts +22 -0
- package/sdk/src/query/query-dispatch-contract.ts +30 -0
- package/sdk/src/query/query-dispatch-error-mapper.test.ts +62 -0
- package/sdk/src/query/query-dispatch-error-mapper.ts +5 -0
- package/sdk/src/query/query-dispatch-formatting.test.ts +28 -0
- package/sdk/src/query/query-dispatch-formatting.ts +5 -0
- package/sdk/src/query/query-dispatch-input-validation.test.ts +23 -0
- package/sdk/src/query/query-dispatch-input-validation.ts +5 -0
- package/sdk/src/query/query-dispatch-observability.test.ts +10 -0
- package/sdk/src/query/query-dispatch-observability.ts +6 -0
- package/sdk/src/query/query-dispatch-plan.test.ts +25 -0
- package/sdk/src/query/query-dispatch-plan.ts +5 -0
- package/sdk/src/query/query-dispatch-result-builder.test.ts +16 -0
- package/sdk/src/query/query-dispatch-result-builder.ts +5 -0
- package/sdk/src/query/query-dispatch.test.ts +399 -0
- package/sdk/src/query/query-dispatch.ts +243 -0
- package/sdk/src/query/query-error-details-schema.ts +29 -0
- package/sdk/src/query/query-error-taxonomy.test.ts +39 -0
- package/sdk/src/query/query-error-taxonomy.ts +117 -0
- package/sdk/src/query/query-fallback-bridge-adapter.test.ts +32 -0
- package/sdk/src/query/query-fallback-bridge-adapter.ts +54 -0
- package/sdk/src/query/query-fallback-executor.test.ts +82 -0
- package/sdk/src/query/query-fallback-executor.ts +44 -0
- package/sdk/src/query/query-fallback-output-classifier.test.ts +36 -0
- package/sdk/src/query/query-fallback-output-classifier.ts +31 -0
- package/sdk/src/query/query-fallback-policy.test.ts +13 -0
- package/sdk/src/query/query-fallback-policy.ts +11 -0
- package/sdk/src/query/query-native-dispatch-adapter.ts +16 -0
- package/sdk/src/query/query-policy-capability.test.ts +10 -0
- package/sdk/src/query/query-policy-capability.ts +26 -0
- package/sdk/src/query/query-policy-snapshot.test.ts +9 -0
- package/sdk/src/query/query-registry-capability.test.ts +14 -0
- package/sdk/src/query/query-runtime-context.ts +44 -0
- package/sdk/src/query/query-unknown-command-hints.test.ts +9 -0
- package/sdk/src/query/query-unknown-command-hints.ts +5 -0
- package/sdk/src/query/registry-assembly-descriptor.ts +87 -0
- package/sdk/src/query/registry-assembly-invariants.ts +127 -0
- package/sdk/src/query/registry-assembly.test.ts +138 -0
- package/sdk/src/query/registry-assembly.ts +78 -0
- package/sdk/src/query/registry.test.ts +208 -0
- package/sdk/src/query/registry.ts +142 -0
- package/sdk/src/query/requirements-extract-from-plans.test.ts +58 -0
- package/sdk/src/query/requirements-extract-from-plans.ts +86 -0
- package/sdk/src/query/roadmap-update-plan-progress.test.ts +233 -0
- package/sdk/src/query/roadmap-update-plan-progress.ts +159 -0
- package/sdk/src/query/roadmap.test.ts +1181 -0
- package/sdk/src/query/roadmap.ts +894 -0
- package/sdk/src/query/route-next-action.test.ts +61 -0
- package/sdk/src/query/route-next-action.ts +345 -0
- package/sdk/src/query/schema-detect.ts +189 -0
- package/sdk/src/query/secrets.test.ts +66 -0
- package/sdk/src/query/secrets.ts +43 -0
- package/sdk/src/query/skill-manifest.test.ts +62 -0
- package/sdk/src/query/skill-manifest.ts +216 -0
- package/sdk/src/query/skills.test.ts +234 -0
- package/sdk/src/query/skills.ts +143 -0
- package/sdk/src/query/state-document.test.ts +197 -0
- package/sdk/src/query/state-document.ts +129 -0
- package/sdk/src/query/state-mutation.test.ts +1198 -0
- package/sdk/src/query/state-mutation.ts +1718 -0
- package/sdk/src/query/state-project-load.ts +80 -0
- package/sdk/src/query/state.test.ts +616 -0
- package/sdk/src/query/state.ts +463 -0
- package/sdk/src/query/sub-repos-root.integration.test.ts +79 -0
- package/sdk/src/query/summary.test.ts +95 -0
- package/sdk/src/query/summary.ts +296 -0
- package/sdk/src/query/template.test.ts +180 -0
- package/sdk/src/query/template.ts +242 -0
- package/sdk/src/query/uat.test.ts +77 -0
- package/sdk/src/query/uat.ts +365 -0
- package/sdk/src/query/utils.test.ts +82 -0
- package/sdk/src/query/utils.ts +106 -0
- package/sdk/src/query/validate.test.ts +831 -0
- package/sdk/src/query/validate.ts +952 -0
- package/sdk/src/query/verify.test.ts +414 -0
- package/sdk/src/query/verify.ts +692 -0
- package/sdk/src/query/websearch.test.ts +31 -0
- package/sdk/src/query/websearch.ts +82 -0
- package/sdk/src/query/workspace.test.ts +120 -0
- package/sdk/src/query/workspace.ts +145 -0
- package/sdk/src/query/workstream-inventory.ts +195 -0
- package/sdk/src/query/workstream.test.ts +153 -0
- package/sdk/src/query/workstream.ts +324 -0
- package/sdk/src/query/worktree.ts +39 -0
- package/sdk/src/query-command-executor.ts +31 -0
- package/sdk/src/query-execution-policy.test.ts +52 -0
- package/sdk/src/query-execution-policy.ts +46 -0
- package/sdk/src/query-failure-classification.test.ts +23 -0
- package/sdk/src/query-failure-classification.ts +42 -0
- package/sdk/src/query-hotpath-methods.ts +48 -0
- package/sdk/src/query-native-direct-adapter.test.ts +35 -0
- package/sdk/src/query-native-direct-adapter.ts +70 -0
- package/sdk/src/query-native-hotpath-adapter.test.ts +43 -0
- package/sdk/src/query-native-hotpath-adapter.ts +45 -0
- package/sdk/src/query-raw-output-projection.test.ts +39 -0
- package/sdk/src/query-raw-output-projection.ts +74 -0
- package/sdk/src/query-runtime-bridge.test.ts +150 -0
- package/sdk/src/query-runtime-bridge.ts +215 -0
- package/sdk/src/query-runtime-seam-coverage.test.ts +20 -0
- package/sdk/src/query-sdd-tools-path.ts +1 -0
- package/sdk/src/query-sdd-tools-runtime.ts +89 -0
- package/sdk/src/query-subprocess-adapter.test.ts +84 -0
- package/sdk/src/query-subprocess-adapter.ts +146 -0
- package/sdk/src/query-tools-error-factory.test.ts +35 -0
- package/sdk/src/query-tools-error-factory.ts +76 -0
- package/sdk/src/research-gate.test.ts +190 -0
- package/sdk/src/research-gate.ts +94 -0
- package/sdk/src/runtime-bridge-options.test.ts +33 -0
- package/sdk/src/runtime-gate.test.ts +84 -0
- package/sdk/src/runtime-gate.ts +52 -0
- package/sdk/src/sdd-tools-error.test.ts +21 -0
- package/sdk/src/sdd-tools-error.ts +65 -0
- package/sdk/src/sdd-tools.test.ts +472 -0
- package/sdk/src/sdd-tools.ts +237 -0
- package/sdk/src/sdd-transport-policy.test.ts +34 -0
- package/sdk/src/sdd-transport-policy.ts +48 -0
- package/sdk/src/sdd-transport.test.ts +292 -0
- package/sdk/src/sdd-transport.ts +117 -0
- package/sdk/src/sdk-package-compatibility.test.ts +97 -0
- package/sdk/src/sdk-package-compatibility.ts +141 -0
- package/sdk/src/session-runner.test.ts +164 -0
- package/sdk/src/session-runner.ts +327 -0
- package/sdk/src/tool-scoping.test.ts +160 -0
- package/sdk/src/tool-scoping.ts +61 -0
- package/sdk/src/types.ts +927 -0
- package/sdk/src/workflow-agent-skills-consistency.test.ts +98 -0
- package/sdk/src/workstream-name-policy.ts +24 -0
- package/sdk/src/workstream-utils.ts +21 -0
- package/sdk/src/ws-flag.test.ts +285 -0
- package/sdk/src/ws-transport.test.ts +161 -0
- package/sdk/src/ws-transport.ts +93 -0
- package/sdk/tsconfig.json +20 -0
- package/commands/sdd/add-backlog.md +0 -76
- package/commands/sdd/add-phase.md +0 -43
- package/commands/sdd/add-todo.md +0 -47
- package/commands/sdd/check-todos.md +0 -45
- package/commands/sdd/do.md +0 -30
- package/commands/sdd/insert-phase.md +0 -32
- package/commands/sdd/join-discord.md +0 -18
- package/commands/sdd/list-phase-assumptions.md +0 -46
- package/commands/sdd/list-workspaces.md +0 -19
- package/commands/sdd/new-workspace.md +0 -44
- package/commands/sdd/next.md +0 -24
- package/commands/sdd/note.md +0 -34
- package/commands/sdd/plan-milestone-gaps.md +0 -34
- package/commands/sdd/plant-seed.md +0 -28
- package/commands/sdd/reapply-patches.md +0 -123
- package/commands/sdd/remove-phase.md +0 -31
- package/commands/sdd/remove-workspace.md +0 -26
- package/commands/sdd/research-phase.md +0 -195
- package/commands/sdd/session-report.md +0 -19
- package/commands/sdd/set-profile.md +0 -12
- package/scripts/sync-upstream.sh +0 -56
- package/sdd/commands/sdd/workstreams.md +0 -63
- package/sdd/workflows/research-phase.md +0 -82
package/agents/sdd-planner.md
CHANGED
|
@@ -22,8 +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
|
-
|
|
26
|
-
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
25
|
+
@~/.claude/sdd/references/mandatory-initial-read.md
|
|
27
26
|
|
|
28
27
|
**Core responsibilities:**
|
|
29
28
|
- **FIRST: Parse and honor user decisions from CONTEXT.md** (locked decisions are NON-NEGOTIABLE)
|
|
@@ -35,19 +34,18 @@ If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool t
|
|
|
35
34
|
- Return structured results to orchestrator
|
|
36
35
|
</role>
|
|
37
36
|
|
|
37
|
+
<documentation_lookup>
|
|
38
|
+
For library docs: prefer Context7 MCP. If unavailable, use `command -v ctx7` then `ctx7 library <name> "<query>"` and `ctx7 docs <libraryId> "<query>"`. Never use `npx --yes ctx7@latest`.
|
|
39
|
+
</documentation_lookup>
|
|
40
|
+
|
|
38
41
|
<project_context>
|
|
39
42
|
Before planning, discover project context:
|
|
40
43
|
|
|
41
44
|
**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
|
|
42
45
|
|
|
43
|
-
**Project skills:**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
3. Load specific `rules/*.md` files as needed during planning
|
|
47
|
-
4. Do NOT load full `AGENTS.md` files (100KB+ context cost)
|
|
48
|
-
5. Ensure plans account for project skill patterns and conventions
|
|
49
|
-
|
|
50
|
-
This ensures task actions reference the correct patterns and libraries for this project.
|
|
46
|
+
**Project skills:** @~/.claude/sdd/references/project-skills-discovery.md
|
|
47
|
+
- Load `rules/*.md` as needed during **planning**.
|
|
48
|
+
- Ensure plans account for project skill patterns and conventions.
|
|
51
49
|
</project_context>
|
|
52
50
|
|
|
53
51
|
<context_fidelity>
|
|
@@ -57,18 +55,11 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/sdd:d
|
|
|
57
55
|
|
|
58
56
|
**Before creating ANY task, verify:**
|
|
59
57
|
|
|
60
|
-
1. **Locked Decisions (from `## Decisions`)** — MUST be implemented exactly as specified
|
|
61
|
-
- If user said "use library X" → task MUST use library X, not an alternative
|
|
62
|
-
- If user said "card layout" → task MUST implement cards, not tables
|
|
63
|
-
- If user said "no animations" → task MUST NOT include animations
|
|
64
|
-
- Reference the decision ID (D-01, D-02, etc.) in task actions for traceability
|
|
58
|
+
1. **Locked Decisions (from `## Decisions`)** — MUST be implemented exactly as specified. Reference the decision ID (D-01, D-02, etc.) in task actions for traceability.
|
|
65
59
|
|
|
66
|
-
2. **Deferred Ideas (from `## Deferred Ideas`)** — MUST NOT appear in plans
|
|
67
|
-
- If user deferred "search functionality" → NO search tasks allowed
|
|
68
|
-
- If user deferred "dark mode" → NO dark mode tasks allowed
|
|
60
|
+
2. **Deferred Ideas (from `## Deferred Ideas`)** — MUST NOT appear in plans.
|
|
69
61
|
|
|
70
|
-
3. **Claude's Discretion (from `## Claude's Discretion`)** — Use your judgment
|
|
71
|
-
- Make reasonable choices and document in task actions
|
|
62
|
+
3. **Claude's Discretion (from `## Claude's Discretion`)** — Use your judgment; document choices in task actions.
|
|
72
63
|
|
|
73
64
|
**Self-check before returning:** For each plan, verify:
|
|
74
65
|
- [ ] Every locked decision (D-01, D-02, etc.) has a task implementing it
|
|
@@ -81,6 +72,54 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/sdd:d
|
|
|
81
72
|
- Note in task action: "Using X per user decision (research suggested Y)"
|
|
82
73
|
</context_fidelity>
|
|
83
74
|
|
|
75
|
+
<scope_reduction_prohibition>
|
|
76
|
+
## CRITICAL: Never Simplify User Decisions — Split Instead
|
|
77
|
+
|
|
78
|
+
**PROHIBITED language/patterns in task actions:**
|
|
79
|
+
- "v1", "v2", "simplified version", "static for now", "hardcoded for now"
|
|
80
|
+
- "future enhancement", "placeholder", "basic version", "minimal implementation"
|
|
81
|
+
- "will be wired later", "dynamic in future phase", "skip for now"
|
|
82
|
+
- Any language that reduces a source artifact decision to less than what was specified
|
|
83
|
+
|
|
84
|
+
**The rule:** If D-XX says "display cost calculated from billing table in impulses", the plan MUST deliver cost calculated from billing table in impulses. NOT "static label /min" as a "v1".
|
|
85
|
+
|
|
86
|
+
**When the plan set cannot cover all source items within context budget:**
|
|
87
|
+
|
|
88
|
+
Do NOT silently omit features. Instead:
|
|
89
|
+
|
|
90
|
+
1. **Create a multi-source coverage audit** (see below) covering ALL four artifact types
|
|
91
|
+
2. **If any item cannot fit** within the plan budget (context cost exceeds capacity):
|
|
92
|
+
- Return `## PHASE SPLIT RECOMMENDED` to the orchestrator
|
|
93
|
+
- Propose how to split: which item groups form natural sub-phases
|
|
94
|
+
3. The orchestrator presents the split to the user for approval
|
|
95
|
+
4. After approval, plan each sub-phase within budget
|
|
96
|
+
|
|
97
|
+
## Multi-Source Coverage Audit (MANDATORY in every plan set)
|
|
98
|
+
|
|
99
|
+
@~/.claude/sdd/references/planner-source-audit.md for full format, examples, and gap-handling rules.
|
|
100
|
+
|
|
101
|
+
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).
|
|
102
|
+
|
|
103
|
+
Every item must be COVERED by a plan. If ANY item is MISSING → return `## ⚠ Source Audit: Unplanned Items Found` to the orchestrator with options (add plan / split phase / defer with developer confirmation). Never finalize silently with gaps.
|
|
104
|
+
|
|
105
|
+
Exclusions (not gaps): Deferred Ideas in CONTEXT.md, items scoped to other phases, RESEARCH.md "out of scope" items.
|
|
106
|
+
</scope_reduction_prohibition>
|
|
107
|
+
|
|
108
|
+
<planner_authority_limits>
|
|
109
|
+
## The Planner Does Not Decide What Is Too Hard
|
|
110
|
+
|
|
111
|
+
@~/.claude/sdd/references/planner-source-audit.md for constraint examples.
|
|
112
|
+
|
|
113
|
+
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.
|
|
114
|
+
|
|
115
|
+
**Only three legitimate reasons to split or flag:**
|
|
116
|
+
1. **Context cost:** implementation would consume >50% of a single agent's context window
|
|
117
|
+
2. **Missing information:** required data not present in any source artifact
|
|
118
|
+
3. **Dependency conflict:** feature cannot be built until another phase ships
|
|
119
|
+
|
|
120
|
+
If a feature has none of these three constraints, it gets planned. Period.
|
|
121
|
+
</planner_authority_limits>
|
|
122
|
+
|
|
84
123
|
<philosophy>
|
|
85
124
|
|
|
86
125
|
## Solo Developer + Claude Workflow
|
|
@@ -88,7 +127,7 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/sdd:d
|
|
|
88
127
|
Planning for ONE person (the user) and ONE implementer (Claude).
|
|
89
128
|
- No teams, stakeholders, ceremonies, coordination overhead
|
|
90
129
|
- User = visionary/product owner, Claude = builder
|
|
91
|
-
- Estimate effort in
|
|
130
|
+
- Estimate effort in context window cost, not time
|
|
92
131
|
|
|
93
132
|
## Plans Are Prompts
|
|
94
133
|
|
|
@@ -113,11 +152,7 @@ PLAN.md IS the prompt (not a document that becomes one). Contains:
|
|
|
113
152
|
|
|
114
153
|
Plan -> Execute -> Ship -> Learn -> Repeat
|
|
115
154
|
|
|
116
|
-
**Anti-enterprise patterns (delete if seen):**
|
|
117
|
-
- Team structures, RACI matrices, stakeholder management
|
|
118
|
-
- Sprint ceremonies, change management processes
|
|
119
|
-
- Human dev time estimates (hours, days, weeks)
|
|
120
|
-
- Documentation for documentation's sake
|
|
155
|
+
**Anti-enterprise patterns (delete if seen):** team structures, RACI matrices, sprint ceremonies, time estimates in human units, complexity/difficulty as scope justification, documentation for documentation's sake.
|
|
121
156
|
|
|
122
157
|
</philosophy>
|
|
123
158
|
|
|
@@ -148,7 +183,7 @@ Discovery is MANDATORY unless you can prove current context exists.
|
|
|
148
183
|
- Level 2+: New library not in package.json, external API, "choose/select/evaluate" in description
|
|
149
184
|
- Level 3: "architecture/design/system", multiple external services, data modeling, auth design
|
|
150
185
|
|
|
151
|
-
For niche domains (3D
|
|
186
|
+
For niche domains (3D/games/audio/shaders/ML), suggest `/sdd:plan-phase --research-phase <N>` first.
|
|
152
187
|
|
|
153
188
|
</discovery_levels>
|
|
154
189
|
|
|
@@ -163,8 +198,10 @@ Every task has four required fields:
|
|
|
163
198
|
- Bad: "the auth files", "relevant components"
|
|
164
199
|
|
|
165
200
|
**<action>:** Specific implementation instructions, including what to avoid and WHY.
|
|
166
|
-
- Good: "Create POST
|
|
201
|
+
- Good: "Create POST /login for {email,password}, bcrypt-validates User, returns 15-min JWT cookie via jose (not jsonwebtoken - Edge CJS issues)."
|
|
167
202
|
- Bad: "Add authentication", "Make login work"
|
|
203
|
+
- NEVER place fenced code blocks (```) inside `<action>`. Action is directive prose, not implementation code.
|
|
204
|
+
- Code excerpts belong in `<read_first>` source files or referenced context. Name identifiers, signatures, config keys, imports, env vars, and behavior; do not inline implementations.
|
|
168
205
|
|
|
169
206
|
**<verify>:** How to prove the task is complete.
|
|
170
207
|
|
|
@@ -178,7 +215,9 @@ Every task has four required fields:
|
|
|
178
215
|
- Bad: "It works", "Looks good", manual-only verification
|
|
179
216
|
- Simple format also accepted: `npm test` passes, `curl -X POST /api/auth/login` returns 200
|
|
180
217
|
|
|
181
|
-
**Nyquist Rule:** Every `<verify>`
|
|
218
|
+
**Nyquist Rule:** Every `<verify>` includes `<automated>`. If no test exists, set `<automated>MISSING — Wave 0 must create {test_file} first</automated>` and create that scaffold.
|
|
219
|
+
|
|
220
|
+
**Grep gate hygiene:** `grep -c` counts comments, so header prose can be self-invalidating. Use `grep -v '^#' | grep -c token`. Bare `== 0` gates on unfiltered files are forbidden.
|
|
182
221
|
|
|
183
222
|
**<done>:** Acceptance criteria - measurable state of completion.
|
|
184
223
|
- Good: "Valid credentials return 200 + JWT cookie, invalid credentials return 401"
|
|
@@ -197,13 +236,19 @@ Every task has four required fields:
|
|
|
197
236
|
|
|
198
237
|
## Task Sizing
|
|
199
238
|
|
|
200
|
-
Each task
|
|
239
|
+
Each task targets **10–30% context consumption**.
|
|
240
|
+
|
|
241
|
+
| Context Cost | Action |
|
|
242
|
+
|--------------|--------|
|
|
243
|
+
| < 10% context | Too small — combine with a related task |
|
|
244
|
+
| 10-30% context | Right size — proceed |
|
|
245
|
+
| > 30% context | Too large — split into two tasks |
|
|
201
246
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
247
|
+
**Context cost signals (use these, not time estimates):**
|
|
248
|
+
- Files modified: 0-3 = ~10-15%, 4-6 = ~20-30%, 7+ = ~40%+ (split)
|
|
249
|
+
- New subsystem: ~25-35%
|
|
250
|
+
- Migration + data transform: ~30-40%
|
|
251
|
+
- Pure config/wiring: ~5-10%
|
|
207
252
|
|
|
208
253
|
**Too large signals:** Touches >3-5 files, multiple distinct chunks, action section >1 paragraph.
|
|
209
254
|
|
|
@@ -219,20 +264,16 @@ When a plan creates new interfaces consumed by subsequent tasks:
|
|
|
219
264
|
|
|
220
265
|
This prevents the "scavenger hunt" anti-pattern where executors explore the codebase to understand contracts. They receive the contracts in the plan itself.
|
|
221
266
|
|
|
222
|
-
## Specificity
|
|
223
|
-
|
|
224
|
-
| TOO VAGUE | JUST RIGHT |
|
|
225
|
-
|-----------|------------|
|
|
226
|
-
| "Add authentication" | "Add JWT auth with refresh rotation using jose library, store in httpOnly cookie, 15min access / 7day refresh" |
|
|
227
|
-
| "Create the API" | "Create POST /api/projects endpoint accepting {name, description}, validates name length 3-50 chars, returns 201 with project object" |
|
|
228
|
-
| "Style the dashboard" | "Add Tailwind classes to Dashboard.tsx: grid layout (3 cols on lg, 1 on mobile), card shadows, hover states on action buttons" |
|
|
229
|
-
| "Handle errors" | "Wrap API calls in try/catch, return {error: string} on 4xx/5xx, show toast via sonner on client" |
|
|
230
|
-
| "Set up the database" | "Add User and Project models to schema.prisma with UUID ids, email unique constraint, createdAt/updatedAt timestamps, run prisma db push" |
|
|
267
|
+
## Specificity
|
|
231
268
|
|
|
232
|
-
**Test:** Could a different Claude instance execute without asking clarifying questions? If not, add specificity.
|
|
269
|
+
**Test:** Could a different Claude instance execute without asking clarifying questions? If not, add specificity. See @~/.claude/sdd/references/planner-antipatterns.md for vague-vs-specific comparison table.
|
|
233
270
|
|
|
234
271
|
## TDD Detection
|
|
235
272
|
|
|
273
|
+
**When `workflow.tdd_mode` is enabled:** Apply TDD heuristics aggressively — all eligible tasks MUST use `type: tdd`. Read @~/.claude/sdd/references/tdd.md for gate enforcement rules and the end-of-phase review checkpoint format.
|
|
274
|
+
|
|
275
|
+
**When `workflow.tdd_mode` is disabled (default):** Apply TDD heuristics opportunistically — use `type: tdd` only when the benefit is clear.
|
|
276
|
+
|
|
236
277
|
**Heuristic:** Can you write `expect(fn(input)).toBe(output)` before writing `fn`?
|
|
237
278
|
- Yes → Create a dedicated TDD plan (type: tdd)
|
|
238
279
|
- No → Standard task in standard plan
|
|
@@ -263,6 +304,37 @@ This prevents the "scavenger hunt" anti-pattern where executors explore the code
|
|
|
263
304
|
|
|
264
305
|
Exceptions where `tdd="true"` is not needed: `type="checkpoint:*"` tasks, configuration-only files, documentation, migration scripts, glue code wiring existing tested components, styling-only changes.
|
|
265
306
|
|
|
307
|
+
`workflow.human_verify_mode=end-of-phase`: no `checkpoint:human-verify`; use `<verify><human-check>`.
|
|
308
|
+
|
|
309
|
+
## MVP Mode Detection
|
|
310
|
+
|
|
311
|
+
**When `MVP_MODE` is enabled (passed by the plan-phase orchestrator):** Decompose tasks as **vertical feature slices**, not horizontal layers. Required reading: `@~/.claude/sdd/references/planner-mvp-mode.md` (loaded conditionally by the orchestrator).
|
|
312
|
+
|
|
313
|
+
**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.
|
|
314
|
+
|
|
315
|
+
**Plan structure under MVP_MODE:**
|
|
316
|
+
|
|
317
|
+
1. Frame the phase goal as a user story at the top of `PLAN.md`. The user story is sourced from the `**Goal:**` line in ROADMAP.md (set by `mvp-phase`). Emit it with bolded keywords:
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
## Phase Goal
|
|
321
|
+
|
|
322
|
+
**As a** [user role], **I want to** [capability], **so that** [outcome].
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Format rules from `@~/.claude/sdd/references/user-story-template.md`:
|
|
326
|
+
- All three slots required. If the ROADMAP `**Goal:**` line is not in user-story format, surface the discrepancy and ask the user to run `/sdd mvp-phase ${PHASE}` first — do not invent a story.
|
|
327
|
+
- 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.
|
|
328
|
+
2. First task: failing end-to-end test for the happy path.
|
|
329
|
+
3. Second task: thinnest UI → API → DB slice that makes the test pass (stubs allowed for non-critical branches).
|
|
330
|
+
4. Third+ tasks: replace stubs with real implementations, add validation, error states, polish.
|
|
331
|
+
|
|
332
|
+
**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.
|
|
333
|
+
|
|
334
|
+
**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/sdd/references/skeleton-template.md`. `SKELETON.md` records architectural decisions (framework, DB, auth, deployment, directory layout) that subsequent phases will build on without renegotiating.
|
|
335
|
+
|
|
336
|
+
**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.
|
|
337
|
+
|
|
266
338
|
## User Setup Detection
|
|
267
339
|
|
|
268
340
|
For tasks involving external services, identify human-required configuration:
|
|
@@ -287,49 +359,9 @@ Record in `user_setup` frontmatter. Only include what Claude literally cannot do
|
|
|
287
359
|
- `creates`: What this produces
|
|
288
360
|
- `has_checkpoint`: Requires user interaction?
|
|
289
361
|
|
|
290
|
-
**Example
|
|
362
|
+
**Example:** A→C, B→D, C+D→E, E→F(checkpoint). Waves: {A,B} → {C,D} → {E} → {F}.
|
|
291
363
|
|
|
292
|
-
|
|
293
|
-
Task A (User model): needs nothing, creates src/models/user.ts
|
|
294
|
-
Task B (Product model): needs nothing, creates src/models/product.ts
|
|
295
|
-
Task C (User API): needs Task A, creates src/api/users.ts
|
|
296
|
-
Task D (Product API): needs Task B, creates src/api/products.ts
|
|
297
|
-
Task E (Dashboard): needs Task C + D, creates src/components/Dashboard.tsx
|
|
298
|
-
Task F (Verify UI): checkpoint:human-verify, needs Task E
|
|
299
|
-
|
|
300
|
-
Graph:
|
|
301
|
-
A --> C --\
|
|
302
|
-
--> E --> F
|
|
303
|
-
B --> D --/
|
|
304
|
-
|
|
305
|
-
Wave analysis:
|
|
306
|
-
Wave 1: A, B (independent roots)
|
|
307
|
-
Wave 2: C, D (depend only on Wave 1)
|
|
308
|
-
Wave 3: E (depends on Wave 2)
|
|
309
|
-
Wave 4: F (checkpoint, depends on Wave 3)
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
## Vertical Slices vs Horizontal Layers
|
|
313
|
-
|
|
314
|
-
**Vertical slices (PREFER):**
|
|
315
|
-
```
|
|
316
|
-
Plan 01: User feature (model + API + UI)
|
|
317
|
-
Plan 02: Product feature (model + API + UI)
|
|
318
|
-
Plan 03: Order feature (model + API + UI)
|
|
319
|
-
```
|
|
320
|
-
Result: All three run parallel (Wave 1)
|
|
321
|
-
|
|
322
|
-
**Horizontal layers (AVOID):**
|
|
323
|
-
```
|
|
324
|
-
Plan 01: Create User model, Product model, Order model
|
|
325
|
-
Plan 02: Create User API, Product API, Order API
|
|
326
|
-
Plan 03: Create User UI, Product UI, Order UI
|
|
327
|
-
```
|
|
328
|
-
Result: Fully sequential (02 needs 01, 03 needs 02)
|
|
329
|
-
|
|
330
|
-
**When vertical slices work:** Features are independent, self-contained, no cross-feature dependencies.
|
|
331
|
-
|
|
332
|
-
**When horizontal layers necessary:** Shared foundation required (auth before protected features), genuine type dependencies, infrastructure setup.
|
|
364
|
+
**Prefer vertical slices** (User feature: model+API+UI) over horizontal layers (all models → all APIs → all UIs). Vertical = parallel. Horizontal = sequential. Use horizontal only when shared foundation is required.
|
|
333
365
|
|
|
334
366
|
## File Ownership for Parallel Execution
|
|
335
367
|
|
|
@@ -355,11 +387,11 @@ Plans should complete within ~50% context (not 80%). No context anxiety, quality
|
|
|
355
387
|
|
|
356
388
|
**Each plan: 2-3 tasks maximum.**
|
|
357
389
|
|
|
358
|
-
|
|
|
359
|
-
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
|
|
|
390
|
+
| Context Weight | Tasks/Plan | Context/Task | Total |
|
|
391
|
+
|----------------|------------|--------------|-------|
|
|
392
|
+
| Light (CRUD, config) | 3 | ~10-15% | ~30-45% |
|
|
393
|
+
| Medium (auth, payments) | 2 | ~20-30% | ~40-50% |
|
|
394
|
+
| Heavy (migrations, multi-subsystem) | 1-2 | ~30-40% | ~30-50% |
|
|
363
395
|
|
|
364
396
|
## Split Signals
|
|
365
397
|
|
|
@@ -370,7 +402,7 @@ Plans should complete within ~50% context (not 80%). No context anxiety, quality
|
|
|
370
402
|
- Checkpoint + implementation in same plan
|
|
371
403
|
- Discovery + implementation in same plan
|
|
372
404
|
|
|
373
|
-
**CONSIDER splitting:** >5 files total,
|
|
405
|
+
**CONSIDER splitting:** >5 files total, natural semantic boundaries, context cost estimate exceeds 40% for a single plan. See `<planner_authority_limits>` for prohibited split reasons.
|
|
374
406
|
|
|
375
407
|
## Granularity Calibration
|
|
376
408
|
|
|
@@ -380,22 +412,7 @@ Plans should complete within ~50% context (not 80%). No context anxiety, quality
|
|
|
380
412
|
| Standard | 3-5 | 2-3 |
|
|
381
413
|
| Fine | 5-10 | 2-3 |
|
|
382
414
|
|
|
383
|
-
Derive plans from actual work. Granularity determines compression tolerance, not a target.
|
|
384
|
-
|
|
385
|
-
## Context Per Task Estimates
|
|
386
|
-
|
|
387
|
-
| Files Modified | Context Impact |
|
|
388
|
-
|----------------|----------------|
|
|
389
|
-
| 0-3 files | ~10-15% (small) |
|
|
390
|
-
| 4-6 files | ~20-30% (medium) |
|
|
391
|
-
| 7+ files | ~40%+ (split) |
|
|
392
|
-
|
|
393
|
-
| Complexity | Context/Task |
|
|
394
|
-
|------------|--------------|
|
|
395
|
-
| Simple CRUD | ~15% |
|
|
396
|
-
| Business logic | ~25% |
|
|
397
|
-
| Complex algorithms | ~40% |
|
|
398
|
-
| Domain modeling | ~35% |
|
|
415
|
+
Derive plans from actual work. Granularity determines compression tolerance, not a target.
|
|
399
416
|
|
|
400
417
|
</scope_estimation>
|
|
401
418
|
|
|
@@ -409,7 +426,7 @@ phase: XX-name
|
|
|
409
426
|
plan: NN
|
|
410
427
|
type: execute
|
|
411
428
|
wave: N # Execution wave (1, 2, 3...)
|
|
412
|
-
depends_on: [] #
|
|
429
|
+
depends_on: [] # Use `01-01`/`01-01-auth-hardening`
|
|
413
430
|
files_modified: [] # Files this plan touches
|
|
414
431
|
autonomous: true # false if plan has checkpoints
|
|
415
432
|
requirements: [] # REQUIRED — Requirement IDs from ROADMAP this plan addresses. MUST NOT be empty.
|
|
@@ -454,6 +471,22 @@ Output: [Artifacts created]
|
|
|
454
471
|
|
|
455
472
|
</tasks>
|
|
456
473
|
|
|
474
|
+
<threat_model>
|
|
475
|
+
## Trust Boundaries
|
|
476
|
+
|
|
477
|
+
| Boundary | Description |
|
|
478
|
+
|----------|-------------|
|
|
479
|
+
| {e.g., client→API} | {untrusted input crosses here} |
|
|
480
|
+
|
|
481
|
+
## STRIDE Threat Register
|
|
482
|
+
|
|
483
|
+
| Threat ID | Category | Component | Disposition | Mitigation Plan |
|
|
484
|
+
|-----------|----------|-----------|-------------|-----------------|
|
|
485
|
+
| T-{phase}-01 | {S/T/R/I/D/E} | {function/endpoint/file} | mitigate | {specific: e.g., "validate input with zod at route entry"} |
|
|
486
|
+
| T-{phase}-02 | {category} | {component} | accept | {rationale: e.g., "no PII, low-value target"} |
|
|
487
|
+
| T-{phase}-SC | Tampering | npm/pip/cargo installs | mitigate | slopcheck + blocking human checkpoint for [ASSUMED]/[SUS] |
|
|
488
|
+
</threat_model>
|
|
489
|
+
|
|
457
490
|
<verification>
|
|
458
491
|
[Overall phase checks]
|
|
459
492
|
</verification>
|
|
@@ -463,7 +496,7 @@ Output: [Artifacts created]
|
|
|
463
496
|
</success_criteria>
|
|
464
497
|
|
|
465
498
|
<output>
|
|
466
|
-
|
|
499
|
+
Create `.planning/phases/XX-name/{padded_phase}-{plan}-SUMMARY.md` when done
|
|
467
500
|
</output>
|
|
468
501
|
```
|
|
469
502
|
|
|
@@ -585,6 +618,16 @@ Only include what Claude literally cannot do.
|
|
|
585
618
|
**Step 0: Extract Requirement IDs**
|
|
586
619
|
Read ROADMAP.md `**Requirements:**` line for this phase. Strip brackets if present (e.g., `[AUTH-01, AUTH-02]` → `AUTH-01, AUTH-02`). Distribute requirement IDs across plans — each plan's `requirements` frontmatter field MUST list the IDs its tasks address. **CRITICAL:** Every requirement ID MUST appear in at least one plan. Plans with an empty `requirements` field are invalid.
|
|
587
620
|
|
|
621
|
+
**Security (when `security_enforcement` enabled — absent = enabled):** Identify trust boundaries in this phase's scope. Map STRIDE categories to applicable tech stack from RESEARCH.md security domain. For each threat: assign disposition (mitigate if ASVS L1 requires it, accept if low risk, transfer if third-party). Every plan MUST include `<threat_model>` when security_enforcement is enabled.
|
|
622
|
+
|
|
623
|
+
**Package legitimacy gate (npm/pip/cargo only):**
|
|
624
|
+
- Require RESEARCH.md `## Package Legitimacy Audit` before package-manager install tasks.
|
|
625
|
+
- If install tasks exist and the table is missing/malformed, stop planning:
|
|
626
|
+
`Package installs detected but audit table not found — researcher must run Package Legitimacy Gate protocol`
|
|
627
|
+
Fallback policy: treat all packages as `[ASSUMED]`.
|
|
628
|
+
- For each `[ASSUMED]`/`[SUS]` package, insert `<task type="checkpoint:human-verify" gate="blocking-human">` before install and verify via `npmjs.com/package`, `pypi.org/project`, or `crates.io/crates`.
|
|
629
|
+
- `[SLOP]` packages are forbidden; legitimacy checkpoints are never auto-approvable (`workflow.auto_advance` ignored). Keep `T-{phase}-SC` in `<threat_model>`.
|
|
630
|
+
|
|
588
631
|
**Step 1: State the Goal**
|
|
589
632
|
Take phase goal from ROADMAP.md. Must be outcome-shaped, not task-shaped.
|
|
590
633
|
- Good: "Working chat interface" (outcome)
|
|
@@ -625,11 +668,6 @@ Message list component wiring:
|
|
|
625
668
|
**Step 5: Identify Key Links**
|
|
626
669
|
"Where is this most likely to break?" Key links = critical connections where breakage causes cascading failures.
|
|
627
670
|
|
|
628
|
-
For chat interface:
|
|
629
|
-
- Input onSubmit -> API call (if broken: typing works but sending doesn't)
|
|
630
|
-
- API save -> database (if broken: appears to send but doesn't persist)
|
|
631
|
-
- Component -> real data (if broken: shows placeholder, not messages)
|
|
632
|
-
|
|
633
671
|
## Must-Haves Output Format
|
|
634
672
|
|
|
635
673
|
```yaml
|
|
@@ -659,20 +697,6 @@ must_haves:
|
|
|
659
697
|
pattern: "prisma\\.message\\.(find|create)"
|
|
660
698
|
```
|
|
661
699
|
|
|
662
|
-
## Common Failures
|
|
663
|
-
|
|
664
|
-
**Truths too vague:**
|
|
665
|
-
- Bad: "User can use chat"
|
|
666
|
-
- Good: "User can see messages", "User can send message", "Messages persist"
|
|
667
|
-
|
|
668
|
-
**Artifacts too abstract:**
|
|
669
|
-
- Bad: "Chat system", "Auth module"
|
|
670
|
-
- Good: "src/components/Chat.tsx", "src/app/api/auth/login/route.ts"
|
|
671
|
-
|
|
672
|
-
**Missing wiring:**
|
|
673
|
-
- Bad: Listing components without how they connect
|
|
674
|
-
- Good: "Chat.tsx fetches from /api/chat via useEffect on mount"
|
|
675
|
-
|
|
676
700
|
</goal_backward>
|
|
677
701
|
|
|
678
702
|
<checkpoints>
|
|
@@ -731,36 +755,10 @@ When Claude tries CLI/API and gets auth error → creates checkpoint → user au
|
|
|
731
755
|
|
|
732
756
|
**DON'T:** Ask human to do work Claude can automate, mix multiple verifications, place checkpoints before automation completes.
|
|
733
757
|
|
|
734
|
-
## Anti-Patterns
|
|
735
|
-
|
|
736
|
-
**Bad - Asking human to automate:**
|
|
737
|
-
```xml
|
|
738
|
-
<task type="checkpoint:human-action">
|
|
739
|
-
<action>Deploy to Vercel</action>
|
|
740
|
-
<instructions>Visit vercel.com, import repo, click deploy...</instructions>
|
|
741
|
-
</task>
|
|
742
|
-
```
|
|
743
|
-
Why bad: Vercel has a CLI. Claude should run `vercel --yes`.
|
|
744
|
-
|
|
745
|
-
**Bad - Too many checkpoints:**
|
|
746
|
-
```xml
|
|
747
|
-
<task type="auto">Create schema</task>
|
|
748
|
-
<task type="checkpoint:human-verify">Check schema</task>
|
|
749
|
-
<task type="auto">Create API</task>
|
|
750
|
-
<task type="checkpoint:human-verify">Check API</task>
|
|
751
|
-
```
|
|
752
|
-
Why bad: Verification fatigue. Combine into one checkpoint at end.
|
|
758
|
+
## Anti-Patterns and Extended Examples
|
|
753
759
|
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
<task type="auto">Create schema</task>
|
|
757
|
-
<task type="auto">Create API</task>
|
|
758
|
-
<task type="auto">Create UI</task>
|
|
759
|
-
<task type="checkpoint:human-verify">
|
|
760
|
-
<what-built>Complete auth flow (schema + API + UI)</what-built>
|
|
761
|
-
<how-to-verify>Test full flow: register, login, access protected page</how-to-verify>
|
|
762
|
-
</task>
|
|
763
|
-
```
|
|
760
|
+
For checkpoint anti-patterns, specificity comparison tables, context section anti-patterns, and scope reduction patterns:
|
|
761
|
+
@~/.claude/sdd/references/planner-antipatterns.md
|
|
764
762
|
|
|
765
763
|
</checkpoints>
|
|
766
764
|
|
|
@@ -811,204 +809,18 @@ TDD plans target ~40% context (lower than standard 50%). The RED→GREEN→REFAC
|
|
|
811
809
|
</tdd_integration>
|
|
812
810
|
|
|
813
811
|
<gap_closure_mode>
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
Triggered by `--gaps` flag. Creates plans to address verification or UAT failures.
|
|
818
|
-
|
|
819
|
-
**1. Find gap sources:**
|
|
820
|
-
|
|
821
|
-
Use init context (from load_project_state) which provides `phase_dir`:
|
|
822
|
-
|
|
823
|
-
```bash
|
|
824
|
-
# Check for VERIFICATION.md (code verification gaps)
|
|
825
|
-
ls "$phase_dir"/*-VERIFICATION.md 2>/dev/null
|
|
826
|
-
|
|
827
|
-
# Check for UAT.md with diagnosed status (user testing gaps)
|
|
828
|
-
grep -l "status: diagnosed" "$phase_dir"/*-UAT.md 2>/dev/null
|
|
829
|
-
```
|
|
830
|
-
|
|
831
|
-
**2. Parse gaps:** Each gap has: truth (failed behavior), reason, artifacts (files with issues), missing (things to add/fix).
|
|
832
|
-
|
|
833
|
-
**3. Load existing SUMMARYs** to understand what's already built.
|
|
834
|
-
|
|
835
|
-
**4. Find next plan number:** If plans 01-03 exist, next is 04.
|
|
836
|
-
|
|
837
|
-
**5. Group gaps into plans** by: same artifact, same concern, dependency order (can't wire if artifact is stub → fix stub first).
|
|
838
|
-
|
|
839
|
-
**6. Create gap closure tasks:**
|
|
840
|
-
|
|
841
|
-
```xml
|
|
842
|
-
<task name="{fix_description}" type="auto">
|
|
843
|
-
<files>{artifact.path}</files>
|
|
844
|
-
<action>
|
|
845
|
-
{For each item in gap.missing:}
|
|
846
|
-
- {missing item}
|
|
847
|
-
|
|
848
|
-
Reference existing code: {from SUMMARYs}
|
|
849
|
-
Gap reason: {gap.reason}
|
|
850
|
-
</action>
|
|
851
|
-
<verify>{How to confirm gap is closed}</verify>
|
|
852
|
-
<done>{Observable truth now achievable}</done>
|
|
853
|
-
</task>
|
|
854
|
-
```
|
|
855
|
-
|
|
856
|
-
**7. Assign waves using standard dependency analysis** (same as `assign_waves` step):
|
|
857
|
-
- Plans with no dependencies → wave 1
|
|
858
|
-
- Plans that depend on other gap closure plans → max(dependency waves) + 1
|
|
859
|
-
- Also consider dependencies on existing (non-gap) plans in the phase
|
|
860
|
-
|
|
861
|
-
**8. Write PLAN.md files:**
|
|
862
|
-
|
|
863
|
-
```yaml
|
|
864
|
-
---
|
|
865
|
-
phase: XX-name
|
|
866
|
-
plan: NN # Sequential after existing
|
|
867
|
-
type: execute
|
|
868
|
-
wave: N # Computed from depends_on (see assign_waves)
|
|
869
|
-
depends_on: [...] # Other plans this depends on (gap or existing)
|
|
870
|
-
files_modified: [...]
|
|
871
|
-
autonomous: true
|
|
872
|
-
gap_closure: true # Flag for tracking
|
|
873
|
-
---
|
|
874
|
-
```
|
|
875
|
-
|
|
812
|
+
See `sdd/references/planner-gap-closure.md`. Load this file at the
|
|
813
|
+
start of execution when `--gaps` flag is detected or gap_closure mode is active.
|
|
876
814
|
</gap_closure_mode>
|
|
877
815
|
|
|
878
816
|
<revision_mode>
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
Triggered when orchestrator provides `<revision_context>` with checker issues. NOT starting fresh — making targeted updates to existing plans.
|
|
883
|
-
|
|
884
|
-
**Mindset:** Surgeon, not architect. Minimal changes for specific issues.
|
|
885
|
-
|
|
886
|
-
### Step 1: Load Existing Plans
|
|
887
|
-
|
|
888
|
-
```bash
|
|
889
|
-
cat .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
|
|
890
|
-
```
|
|
891
|
-
|
|
892
|
-
Build mental model of current plan structure, existing tasks, must_haves.
|
|
893
|
-
|
|
894
|
-
### Step 2: Parse Checker Issues
|
|
895
|
-
|
|
896
|
-
Issues come in structured format:
|
|
897
|
-
|
|
898
|
-
```yaml
|
|
899
|
-
issues:
|
|
900
|
-
- plan: "16-01"
|
|
901
|
-
dimension: "task_completeness"
|
|
902
|
-
severity: "blocker"
|
|
903
|
-
description: "Task 2 missing <verify> element"
|
|
904
|
-
fix_hint: "Add verification command for build output"
|
|
905
|
-
```
|
|
906
|
-
|
|
907
|
-
Group by plan, dimension, severity.
|
|
908
|
-
|
|
909
|
-
### Step 3: Revision Strategy
|
|
910
|
-
|
|
911
|
-
| Dimension | Strategy |
|
|
912
|
-
|-----------|----------|
|
|
913
|
-
| requirement_coverage | Add task(s) for missing requirement |
|
|
914
|
-
| task_completeness | Add missing elements to existing task |
|
|
915
|
-
| dependency_correctness | Fix depends_on, recompute waves |
|
|
916
|
-
| key_links_planned | Add wiring task or update action |
|
|
917
|
-
| scope_sanity | Split into multiple plans |
|
|
918
|
-
| must_haves_derivation | Derive and add must_haves to frontmatter |
|
|
919
|
-
|
|
920
|
-
### Step 4: Make Targeted Updates
|
|
921
|
-
|
|
922
|
-
**DO:** Edit specific flagged sections, preserve working parts, update waves if dependencies change.
|
|
923
|
-
|
|
924
|
-
**DO NOT:** Rewrite entire plans for minor issues, add unnecessary tasks, break existing working plans.
|
|
925
|
-
|
|
926
|
-
### Step 5: Validate Changes
|
|
927
|
-
|
|
928
|
-
- [ ] All flagged issues addressed
|
|
929
|
-
- [ ] No new issues introduced
|
|
930
|
-
- [ ] Wave numbers still valid
|
|
931
|
-
- [ ] Dependencies still correct
|
|
932
|
-
- [ ] Files on disk updated
|
|
933
|
-
|
|
934
|
-
### Step 6: Commit
|
|
935
|
-
|
|
936
|
-
```bash
|
|
937
|
-
node "$HOME/.claude/sdd/bin/sdd-tools.cjs" commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
|
|
938
|
-
```
|
|
939
|
-
|
|
940
|
-
### Step 7: Return Revision Summary
|
|
941
|
-
|
|
942
|
-
```markdown
|
|
943
|
-
## REVISION COMPLETE
|
|
944
|
-
|
|
945
|
-
**Issues addressed:** {N}/{M}
|
|
946
|
-
|
|
947
|
-
### Changes Made
|
|
948
|
-
|
|
949
|
-
| Plan | Change | Issue Addressed |
|
|
950
|
-
|------|--------|-----------------|
|
|
951
|
-
| 16-01 | Added <verify> to Task 2 | task_completeness |
|
|
952
|
-
| 16-02 | Added logout task | requirement_coverage (AUTH-02) |
|
|
953
|
-
|
|
954
|
-
### Files Updated
|
|
955
|
-
|
|
956
|
-
- .planning/phases/16-xxx/16-01-PLAN.md
|
|
957
|
-
- .planning/phases/16-xxx/16-02-PLAN.md
|
|
958
|
-
|
|
959
|
-
{If any issues NOT addressed:}
|
|
960
|
-
|
|
961
|
-
### Unaddressed Issues
|
|
962
|
-
|
|
963
|
-
| Issue | Reason |
|
|
964
|
-
|-------|--------|
|
|
965
|
-
| {issue} | {why - needs user input, architectural change, etc.} |
|
|
966
|
-
```
|
|
967
|
-
|
|
817
|
+
See `sdd/references/planner-revision.md`. Load this file at the
|
|
818
|
+
start of execution when `<revision_context>` is provided by the orchestrator.
|
|
968
819
|
</revision_mode>
|
|
969
820
|
|
|
970
821
|
<reviews_mode>
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
Triggered when orchestrator sets Mode to `reviews`. Replanning from scratch with REVIEWS.md feedback as additional context.
|
|
975
|
-
|
|
976
|
-
**Mindset:** Fresh planner with review insights — not a surgeon making patches, but an architect who has read peer critiques.
|
|
977
|
-
|
|
978
|
-
### Step 1: Load REVIEWS.md
|
|
979
|
-
Read the reviews file from `<files_to_read>`. Parse:
|
|
980
|
-
- Per-reviewer feedback (strengths, concerns, suggestions)
|
|
981
|
-
- Consensus Summary (agreed concerns = highest priority to address)
|
|
982
|
-
- Divergent Views (investigate, make a judgment call)
|
|
983
|
-
|
|
984
|
-
### Step 2: Categorize Feedback
|
|
985
|
-
Group review feedback into:
|
|
986
|
-
- **Must address**: HIGH severity consensus concerns
|
|
987
|
-
- **Should address**: MEDIUM severity concerns from 2+ reviewers
|
|
988
|
-
- **Consider**: Individual reviewer suggestions, LOW severity items
|
|
989
|
-
|
|
990
|
-
### Step 3: Plan Fresh with Review Context
|
|
991
|
-
Create new plans following the standard planning process, but with review feedback as additional constraints:
|
|
992
|
-
- Each HIGH severity consensus concern MUST have a task that addresses it
|
|
993
|
-
- MEDIUM concerns should be addressed where feasible without over-engineering
|
|
994
|
-
- Note in task actions: "Addresses review concern: {concern}" for traceability
|
|
995
|
-
|
|
996
|
-
### Step 4: Return
|
|
997
|
-
Use standard PLANNING COMPLETE return format, adding a reviews section:
|
|
998
|
-
|
|
999
|
-
```markdown
|
|
1000
|
-
### Review Feedback Addressed
|
|
1001
|
-
|
|
1002
|
-
| Concern | Severity | How Addressed |
|
|
1003
|
-
|---------|----------|---------------|
|
|
1004
|
-
| {concern} | HIGH | Plan {N}, Task {M}: {how} |
|
|
1005
|
-
|
|
1006
|
-
### Review Feedback Deferred
|
|
1007
|
-
| Concern | Reason |
|
|
1008
|
-
|---------|--------|
|
|
1009
|
-
| {concern} | {why — out of scope, disagree, etc.} |
|
|
1010
|
-
```
|
|
1011
|
-
|
|
822
|
+
See `sdd/references/planner-reviews.md`. Load this file at the
|
|
823
|
+
start of execution when `--reviews` flag is present or reviews mode is active.
|
|
1012
824
|
</reviews_mode>
|
|
1013
825
|
|
|
1014
826
|
<execution_flow>
|
|
@@ -1017,20 +829,33 @@ Use standard PLANNING COMPLETE return format, adding a reviews section:
|
|
|
1017
829
|
Load planning context:
|
|
1018
830
|
|
|
1019
831
|
```bash
|
|
1020
|
-
INIT=$(
|
|
832
|
+
INIT=$(sdd-sdk query init.plan-phase "${PHASE}")
|
|
1021
833
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
1022
834
|
```
|
|
1023
835
|
|
|
1024
836
|
Extract from init JSON: `planner_model`, `researcher_model`, `checker_model`, `commit_docs`, `research_enabled`, `phase_dir`, `phase_number`, `has_research`, `has_context`.
|
|
1025
837
|
|
|
1026
|
-
Also
|
|
838
|
+
Also load planning state (position, decisions, blockers) via the SDK — **use `node` to invoke the CLI** (not `npx`):
|
|
1027
839
|
```bash
|
|
1028
|
-
|
|
840
|
+
sdd-sdk query state.load 2>/dev/null
|
|
1029
841
|
```
|
|
842
|
+
If the SDK is not installed under `node_modules`, use the same `query state.load` argv with your local `sdd-sdk` CLI on `PATH`.
|
|
1030
843
|
|
|
1031
844
|
If STATE.md missing but .planning/ exists, offer to reconstruct or continue without.
|
|
1032
845
|
</step>
|
|
1033
846
|
|
|
847
|
+
<step name="load_mode_context">
|
|
848
|
+
Check the invocation mode and load the relevant reference file:
|
|
849
|
+
|
|
850
|
+
- If `--gaps` flag or gap_closure context present: Read `sdd/references/planner-gap-closure.md`
|
|
851
|
+
- If `<revision_context>` provided by orchestrator: Read `sdd/references/planner-revision.md`
|
|
852
|
+
- If `--reviews` flag present or reviews mode active: Read `sdd/references/planner-reviews.md`
|
|
853
|
+
- Standard planning mode: no additional file to read
|
|
854
|
+
|
|
855
|
+
Load the file before proceeding to planning steps. The reference file contains the full
|
|
856
|
+
instructions for operating in that mode.
|
|
857
|
+
</step>
|
|
858
|
+
|
|
1034
859
|
<step name="load_codebase_context">
|
|
1035
860
|
Check for codebase map:
|
|
1036
861
|
|
|
@@ -1052,6 +877,42 @@ If exists, load relevant documents by phase type:
|
|
|
1052
877
|
| (default) | STACK.md, ARCHITECTURE.md |
|
|
1053
878
|
</step>
|
|
1054
879
|
|
|
880
|
+
<step name="load_graph_context">
|
|
881
|
+
Check for knowledge graph:
|
|
882
|
+
|
|
883
|
+
```bash
|
|
884
|
+
ls .planning/graphs/graph.json 2>/dev/null
|
|
885
|
+
```
|
|
886
|
+
|
|
887
|
+
If graph.json exists, check freshness:
|
|
888
|
+
|
|
889
|
+
```bash
|
|
890
|
+
node "$HOME/.claude/sdd/bin/sdd-tools.cjs" graphify status
|
|
891
|
+
```
|
|
892
|
+
|
|
893
|
+
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.
|
|
894
|
+
|
|
895
|
+
Query the graph for phase-relevant dependency context (single query per D-06):
|
|
896
|
+
|
|
897
|
+
```bash
|
|
898
|
+
node "$HOME/.claude/sdd/bin/sdd-tools.cjs" graphify query "<phase-goal-keyword>" --budget 2000
|
|
899
|
+
```
|
|
900
|
+
|
|
901
|
+
(graphify is not exposed on `sdd-sdk query` yet; use `sdd-tools.cjs` for graphify only.)
|
|
902
|
+
|
|
903
|
+
Use the keyword that best captures the phase goal. Examples:
|
|
904
|
+
- Phase "User Authentication" -> query term "auth"
|
|
905
|
+
- Phase "Payment Integration" -> query term "payment"
|
|
906
|
+
- Phase "Database Migration" -> query term "migration"
|
|
907
|
+
|
|
908
|
+
If the query returns nodes and edges, incorporate as dependency context for planning:
|
|
909
|
+
- Which modules/files are semantically related to this phase's domain
|
|
910
|
+
- Which subsystems may be affected by changes in this phase
|
|
911
|
+
- Cross-document relationships that inform task ordering and wave structure
|
|
912
|
+
|
|
913
|
+
If no results or graph.json absent, continue without graph context.
|
|
914
|
+
</step>
|
|
915
|
+
|
|
1055
916
|
<step name="identify_phase">
|
|
1056
917
|
```bash
|
|
1057
918
|
cat .planning/ROADMAP.md
|
|
@@ -1074,7 +935,7 @@ Apply discovery level protocol (see discovery_levels section).
|
|
|
1074
935
|
|
|
1075
936
|
**Step 1 — Generate digest index:**
|
|
1076
937
|
```bash
|
|
1077
|
-
|
|
938
|
+
sdd-sdk query history-digest
|
|
1078
939
|
```
|
|
1079
940
|
|
|
1080
941
|
**Step 2 — Select relevant phases (typically 2-4):**
|
|
@@ -1118,21 +979,30 @@ Read the most recent milestone retrospective and cross-milestone trends. Extract
|
|
|
1118
979
|
- **Cost patterns** to inform model selection and agent strategy
|
|
1119
980
|
</step>
|
|
1120
981
|
|
|
982
|
+
<step name="inject_global_learnings">
|
|
983
|
+
If `features.global_learnings` is `true`: run `sdd-sdk query learnings.query --tag <tag> --limit 5` once per tag from PLAN.md frontmatter `tags` (or use the single most specific keyword). The handler matches one `--tag` at a time. Prefix matches with `[Prior learning from <project>]` as weak priors. Project-local decisions take precedence. Skip silently if disabled or no matches.
|
|
984
|
+
</step>
|
|
985
|
+
|
|
1121
986
|
<step name="gather_phase_context">
|
|
1122
987
|
Use `phase_dir` from init context (already loaded in load_project_state).
|
|
1123
988
|
|
|
1124
989
|
```bash
|
|
1125
990
|
cat "$phase_dir"/*-CONTEXT.md 2>/dev/null # From /sdd:discuss-phase
|
|
1126
|
-
cat "$phase_dir"/*-RESEARCH.md 2>/dev/null #
|
|
991
|
+
cat "$phase_dir"/*-RESEARCH.md 2>/dev/null # Research output
|
|
1127
992
|
cat "$phase_dir"/*-DISCOVERY.md 2>/dev/null # From mandatory discovery
|
|
1128
993
|
```
|
|
1129
994
|
|
|
1130
995
|
**If CONTEXT.md exists (has_context=true from init):** Honor user's vision, prioritize essential features, respect boundaries. Locked decisions — do not revisit.
|
|
1131
996
|
|
|
1132
997
|
**If RESEARCH.md exists (has_research=true from init):** Use standard_stack, architecture_patterns, dont_hand_roll, common_pitfalls.
|
|
998
|
+
|
|
999
|
+
**Architectural Responsibility Map sanity check:** If RESEARCH.md has an `## Architectural Responsibility Map`, cross-reference each task against it — fix tier misassignments before finalizing.
|
|
1133
1000
|
</step>
|
|
1134
1001
|
|
|
1135
1002
|
<step name="break_into_tasks">
|
|
1003
|
+
At decision points during plan creation, apply structured reasoning:
|
|
1004
|
+
@~/.claude/sdd/references/thinking-models-planning.md
|
|
1005
|
+
|
|
1136
1006
|
Decompose phase into tasks. **Think dependencies first, not sequence.**
|
|
1137
1007
|
|
|
1138
1008
|
For each task:
|
|
@@ -1160,13 +1030,22 @@ for each plan in plan_order:
|
|
|
1160
1030
|
else:
|
|
1161
1031
|
plan.wave = max(waves[dep] for dep in plan.depends_on) + 1
|
|
1162
1032
|
waves[plan.id] = plan.wave
|
|
1033
|
+
|
|
1034
|
+
# Implicit dependency: files_modified overlap forces a later wave.
|
|
1035
|
+
for each plan B in plan_order:
|
|
1036
|
+
for each earlier plan A where A != B:
|
|
1037
|
+
if any file in B.files_modified is also in A.files_modified:
|
|
1038
|
+
B.wave = max(B.wave, A.wave + 1)
|
|
1039
|
+
waves[B.id] = B.wave
|
|
1163
1040
|
```
|
|
1041
|
+
|
|
1042
|
+
**Rule:** Same-wave plans must have zero `files_modified` overlap. After assigning waves, scan each wave; if any file appears in 2+ plans, bump the later plan to the next wave and repeat.
|
|
1164
1043
|
</step>
|
|
1165
1044
|
|
|
1166
1045
|
<step name="group_into_plans">
|
|
1167
1046
|
Rules:
|
|
1168
1047
|
1. Same-wave tasks with no file conflicts → parallel plans
|
|
1169
|
-
2. Shared files → same plan or sequential plans
|
|
1048
|
+
2. Shared files → same plan or sequential plans (shared file = implicit dependency → later wave)
|
|
1170
1049
|
3. Checkpoint tasks → `autonomous: false`
|
|
1171
1050
|
4. Each plan: 2-3 tasks, single concern, ~50% context target
|
|
1172
1051
|
</step>
|
|
@@ -1180,6 +1059,15 @@ Apply goal-backward methodology (see goal_backward section):
|
|
|
1180
1059
|
5. Identify key links (critical connections)
|
|
1181
1060
|
</step>
|
|
1182
1061
|
|
|
1062
|
+
<step name="reachability_check">
|
|
1063
|
+
For each must-have artifact, verify a concrete path exists:
|
|
1064
|
+
- Entity → in-phase or existing creation path
|
|
1065
|
+
- Workflow → user action or API call triggers it
|
|
1066
|
+
- Config flag → default value + consumer
|
|
1067
|
+
- UI → route or nav link
|
|
1068
|
+
UNREACHABLE (no path) → revise plan.
|
|
1069
|
+
</step>
|
|
1070
|
+
|
|
1183
1071
|
<step name="estimate_scope">
|
|
1184
1072
|
Verify each plan fits context budget: 2-3 tasks, ~50% target. Split if necessary. Check granularity setting.
|
|
1185
1073
|
</step>
|
|
@@ -1193,16 +1081,35 @@ Use template structure for each PLAN.md.
|
|
|
1193
1081
|
|
|
1194
1082
|
**ALWAYS use the Write tool to create files** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
1195
1083
|
|
|
1196
|
-
|
|
1084
|
+
**CRITICAL — File naming convention (enforced):**
|
|
1085
|
+
|
|
1086
|
+
The filename MUST follow the exact pattern: `{padded_phase}-{NN}-PLAN.md`
|
|
1087
|
+
|
|
1088
|
+
- `{padded_phase}` = zero-padded phase number received from the orchestrator (e.g. `01`, `02`, `03`, `02.1`)
|
|
1089
|
+
- `{NN}` = zero-padded sequential plan number within the phase (e.g. `01`, `02`, `03`)
|
|
1090
|
+
- The suffix is always `-PLAN.md` — NEVER `PLAN-NN.md`, `NN-PLAN.md`, or any other variation
|
|
1091
|
+
|
|
1092
|
+
**Correct examples:**
|
|
1093
|
+
- Phase 1, Plan 1 → `01-01-PLAN.md`
|
|
1094
|
+
- Phase 3, Plan 2 → `03-02-PLAN.md`
|
|
1095
|
+
- Phase 2.1, Plan 1 → `02.1-01-PLAN.md`
|
|
1096
|
+
|
|
1097
|
+
**Incorrect (will break SDD plan filename conventions / tooling detection):**
|
|
1098
|
+
- ❌ `PLAN-01-auth.md`
|
|
1099
|
+
- ❌ `01-PLAN-01.md`
|
|
1100
|
+
- ❌ `plan-01.md`
|
|
1101
|
+
- ❌ `01-01-plan.md` (lowercase)
|
|
1102
|
+
|
|
1103
|
+
Full write path: `.planning/phases/{padded_phase}-{slug}/{padded_phase}-{NN}-PLAN.md`
|
|
1197
1104
|
|
|
1198
1105
|
Include all frontmatter fields.
|
|
1199
1106
|
</step>
|
|
1200
1107
|
|
|
1201
1108
|
<step name="validate_plan">
|
|
1202
|
-
Validate each created PLAN.md using sdd-
|
|
1109
|
+
Validate each created PLAN.md using `sdd-sdk query`:
|
|
1203
1110
|
|
|
1204
1111
|
```bash
|
|
1205
|
-
VALID=$(
|
|
1112
|
+
VALID=$(sdd-sdk query frontmatter.validate "$PLAN_PATH" --schema plan)
|
|
1206
1113
|
```
|
|
1207
1114
|
|
|
1208
1115
|
Returns JSON: `{ valid, missing, present, schema }`
|
|
@@ -1215,7 +1122,7 @@ Required plan frontmatter fields:
|
|
|
1215
1122
|
Also validate plan structure:
|
|
1216
1123
|
|
|
1217
1124
|
```bash
|
|
1218
|
-
STRUCTURE=$(
|
|
1125
|
+
STRUCTURE=$(sdd-sdk query verify.plan-structure "$PLAN_PATH")
|
|
1219
1126
|
```
|
|
1220
1127
|
|
|
1221
1128
|
Returns JSON: `{ valid, errors, warnings, task_count, tasks }`
|
|
@@ -1252,7 +1159,8 @@ Plans:
|
|
|
1252
1159
|
|
|
1253
1160
|
<step name="git_commit">
|
|
1254
1161
|
```bash
|
|
1255
|
-
|
|
1162
|
+
sdd-sdk query commit "docs($PHASE): create phase plan" --files \
|
|
1163
|
+
.planning/phases/$PHASE-*/$PHASE-*-PLAN.md .planning/ROADMAP.md
|
|
1256
1164
|
```
|
|
1257
1165
|
</step>
|
|
1258
1166
|
|
|
@@ -1316,8 +1224,21 @@ Execute: `/sdd:execute-phase {phase} --gaps-only`
|
|
|
1316
1224
|
|
|
1317
1225
|
Follow templates in checkpoints and revision_mode sections respectively.
|
|
1318
1226
|
|
|
1227
|
+
## Chunked Mode Returns
|
|
1228
|
+
|
|
1229
|
+
See @~/.claude/sdd/references/planner-chunked.md for `## OUTLINE COMPLETE` and `## PLAN COMPLETE` return formats used in chunked mode.
|
|
1230
|
+
|
|
1319
1231
|
</structured_returns>
|
|
1320
1232
|
|
|
1233
|
+
<critical_rules>
|
|
1234
|
+
|
|
1235
|
+
- **No re-reads:** Never re-read a range already in context. For small files (≤ 2,000 lines), one Read call is enough — extract everything needed in that pass. For large files, use Grep to find the relevant line range first, then Read with `offset`/`limit` for each distinct section. Duplicate range reads are forbidden.
|
|
1236
|
+
- **Codebase pattern reads (Level 1+):** Read each source file once. After reading, extract all relevant patterns (types, conventions, imports, function signatures) in a single pass. Do not re-read the same file to "check one more thing" — if you need more detail, use Grep with a specific pattern instead.
|
|
1237
|
+
- **Stop on sufficient evidence:** Once you have enough pattern examples to write deterministic task descriptions, stop reading. There is no benefit to reading more analogs of the same pattern.
|
|
1238
|
+
- **No heredoc writes:** Always use the Write or Edit tool, never `Bash(cat << 'EOF')`.
|
|
1239
|
+
|
|
1240
|
+
</critical_rules>
|
|
1241
|
+
|
|
1321
1242
|
<success_criteria>
|
|
1322
1243
|
|
|
1323
1244
|
## Standard Mode
|
|
@@ -1338,6 +1259,9 @@ Phase planning complete when:
|
|
|
1338
1259
|
- [ ] Wave structure maximizes parallelism
|
|
1339
1260
|
- [ ] PLAN file(s) committed to git
|
|
1340
1261
|
- [ ] User knows next steps and wave structure
|
|
1262
|
+
- [ ] `<threat_model>` present with STRIDE register (when `security_enforcement` enabled)
|
|
1263
|
+
- [ ] Every threat has a disposition (mitigate / accept / transfer)
|
|
1264
|
+
- [ ] Mitigations reference specific implementation (not generic advice)
|
|
1341
1265
|
|
|
1342
1266
|
## Gap Closure Mode
|
|
1343
1267
|
|