session-orchestrator 3.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +29 -0
- package/.claude-plugin/plugin.json +18 -0
- package/.codex-plugin/agents/explorer.toml +14 -0
- package/.codex-plugin/agents/session-reviewer.toml +23 -0
- package/.codex-plugin/agents/wave-worker.toml +15 -0
- package/.codex-plugin/config.toml +20 -0
- package/.codex-plugin/plugin.json +37 -0
- package/.cursor/rules/000-session-orchestrator.mdc +73 -0
- package/.cursor/rules/010-session-workflow.mdc +170 -0
- package/.cursor/rules/020-quality-gates.mdc +128 -0
- package/.cursor/rules/030-wave-execution.mdc +216 -0
- package/.cursor/rules/040-discovery.mdc +242 -0
- package/.cursor/rules/050-plan.mdc +235 -0
- package/.cursor/rules/060-evolve.mdc +232 -0
- package/.cursor/rules/070-gitlab-ops.mdc +246 -0
- package/.cursor/rules/080-ecosystem-health.mdc +145 -0
- package/.mcp.json +8 -0
- package/CHANGELOG.md +1544 -0
- package/LICENSE +21 -0
- package/NOTICE +64 -0
- package/README.md +242 -0
- package/SECURITY.md +90 -0
- package/agents/AGENTS.md +136 -0
- package/agents/analyst.md +99 -0
- package/agents/architect-reviewer.md +93 -0
- package/agents/code-implementer.md +106 -0
- package/agents/db-specialist.md +104 -0
- package/agents/dialectic-deriver.md +139 -0
- package/agents/docs-writer.md +113 -0
- package/agents/eval-judge.md +146 -0
- package/agents/memory-proposal-collector.md +297 -0
- package/agents/qa-strategist.md +102 -0
- package/agents/schemas/analyst.schema.json +46 -0
- package/agents/schemas/architect-reviewer.schema.json +50 -0
- package/agents/schemas/code-implementer.schema.json +61 -0
- package/agents/schemas/db-specialist.schema.json +80 -0
- package/agents/schemas/docs-writer.schema.json +56 -0
- package/agents/schemas/persona-panel-sidecar.schema.json +245 -0
- package/agents/schemas/qa-strategist.schema.json +46 -0
- package/agents/schemas/security-reviewer.schema.json +86 -0
- package/agents/schemas/session-reviewer.schema.json +69 -0
- package/agents/schemas/test-writer.schema.json +69 -0
- package/agents/schemas/ui-developer.schema.json +90 -0
- package/agents/schemas/ux-evaluator.schema.json +51 -0
- package/agents/security-reviewer.md +236 -0
- package/agents/session-reviewer.md +201 -0
- package/agents/skill-applied-judge.md +122 -0
- package/agents/test-writer.md +123 -0
- package/agents/ui-developer.md +109 -0
- package/agents/ux-evaluator.md +161 -0
- package/assets/icon.svg +11 -0
- package/assets/og-card.png +0 -0
- package/assets/og-card.svg +47 -0
- package/commands/autopilot-multi.md +74 -0
- package/commands/autopilot.md +80 -0
- package/commands/bootstrap.md +56 -0
- package/commands/brainstorm.md +48 -0
- package/commands/close.md +24 -0
- package/commands/debug.md +36 -0
- package/commands/discovery.md +32 -0
- package/commands/dispatcher.md +59 -0
- package/commands/eval.md +28 -0
- package/commands/evolve.md +10 -0
- package/commands/go.md +41 -0
- package/commands/grill.md +45 -0
- package/commands/harness-audit.md +26 -0
- package/commands/memory-cleanup.md +25 -0
- package/commands/persona-panel.md +121 -0
- package/commands/plan.md +15 -0
- package/commands/portfolio.md +97 -0
- package/commands/reconcile.md +23 -0
- package/commands/repo-audit.md +24 -0
- package/commands/session.md +30 -0
- package/commands/spinout.md +15 -0
- package/commands/sunset-review.md +27 -0
- package/commands/templates-ack.md +96 -0
- package/commands/test.md +97 -0
- package/docs/README.md +105 -0
- package/docs/USER-GUIDE.md +1403 -0
- package/docs/ci-setup.md +81 -0
- package/docs/codex-setup.md +142 -0
- package/docs/components.md +74 -0
- package/docs/cursor-setup.md +104 -0
- package/docs/events-schema.md +81 -0
- package/docs/migration-v3.md +148 -0
- package/docs/owner-config-schema.md +154 -0
- package/docs/persona-panel.md +433 -0
- package/docs/pi-setup.md +115 -0
- package/docs/plugin-architecture-v3.md +296 -0
- package/docs/pm-skills-marketplace.md +114 -0
- package/docs/policy-cache-validation-2026-04-28.md +118 -0
- package/docs/rule-authoring.md +316 -0
- package/docs/session-config-reference.md +1439 -0
- package/docs/session-config-template.md +961 -0
- package/docs/vault-docs-architecture.md +297 -0
- package/hooks/_lib/lock-bootstrap.mjs +272 -0
- package/hooks/_lib/lock-reconcile.mjs +93 -0
- package/hooks/_lib/profile-gate.mjs +95 -0
- package/hooks/_lib/transcript-history.mjs +211 -0
- package/hooks/agent-teams-h3-test.sh +362 -0
- package/hooks/config-protection.mjs +0 -0
- package/hooks/cwd-change-restore.mjs +131 -0
- package/hooks/enforce-commands.mjs +179 -0
- package/hooks/enforce-scope.mjs +273 -0
- package/hooks/hooks-codex.json +60 -0
- package/hooks/hooks-cursor.json +15 -0
- package/hooks/hooks-pi.json +115 -0
- package/hooks/hooks.json +215 -0
- package/hooks/loop-guard.mjs +260 -0
- package/hooks/on-session-end.mjs +217 -0
- package/hooks/on-session-start.mjs +660 -0
- package/hooks/on-stop.mjs +294 -0
- package/hooks/operator-steer.mjs +64 -0
- package/hooks/post-edit-validate.mjs +225 -0
- package/hooks/post-subagent-discovery-validator.mjs +398 -0
- package/hooks/post-tool-batch-wave-signal.mjs +328 -0
- package/hooks/post-tool-failure-corrective-context.mjs +248 -0
- package/hooks/post-tooluse-frontend-slop.mjs +184 -0
- package/hooks/pre-bash-destructive-guard.mjs +515 -0
- package/hooks/pre-bash-memory-propose-audit.mjs +206 -0
- package/hooks/pre-bash-staging-fence.mjs +223 -0
- package/hooks/pre-bash-templates-first.mjs +404 -0
- package/hooks/run-node.sh +72 -0
- package/hooks/skill-invocation-telemetry.mjs +99 -0
- package/hooks/subagent-telemetry.mjs +249 -0
- package/hooks/wave-scope-commit-guard.mjs +191 -0
- package/monitors/monitors.json +14 -0
- package/output-styles/finding-report.md +48 -0
- package/output-styles/session-report.md +53 -0
- package/output-styles/wave-summary.md +38 -0
- package/package.json +94 -0
- package/pi/extensions/session-orchestrator.ts +25 -0
- package/pi/prompts/autopilot-multi.md +12 -0
- package/pi/prompts/autopilot.md +12 -0
- package/pi/prompts/bootstrap.md +12 -0
- package/pi/prompts/brainstorm.md +12 -0
- package/pi/prompts/close.md +11 -0
- package/pi/prompts/debug.md +12 -0
- package/pi/prompts/discovery.md +12 -0
- package/pi/prompts/dispatcher.md +12 -0
- package/pi/prompts/eval.md +12 -0
- package/pi/prompts/evolve.md +12 -0
- package/pi/prompts/go.md +12 -0
- package/pi/prompts/grill.md +12 -0
- package/pi/prompts/harness-audit.md +12 -0
- package/pi/prompts/memory-cleanup.md +12 -0
- package/pi/prompts/persona-panel.md +12 -0
- package/pi/prompts/plan.md +12 -0
- package/pi/prompts/portfolio.md +12 -0
- package/pi/prompts/reconcile.md +12 -0
- package/pi/prompts/repo-audit.md +12 -0
- package/pi/prompts/session.md +12 -0
- package/pi/prompts/spinout.md +12 -0
- package/pi/prompts/sunset-review.md +12 -0
- package/pi/prompts/templates-ack.md +12 -0
- package/pi/prompts/test.md +12 -0
- package/rules/_index.md +51 -0
- package/rules/always-on/commit-discipline.md +26 -0
- package/rules/always-on/npm-quality-gates.md +26 -0
- package/rules/always-on/parallel-sessions.md +43 -0
- package/rules/opt-in-domain/prompt-caching.md +270 -0
- package/rules/opt-in-stack/backend-data.md +188 -0
- package/rules/opt-in-stack/backend.md +390 -0
- package/rules/opt-in-stack/frontend.md +98 -0
- package/rules/opt-in-stack/security-web.md +194 -0
- package/rules/opt-in-stack/swift.md +65 -0
- package/scripts/archive-closed-prds.mjs +416 -0
- package/scripts/autopilot-multi.mjs +802 -0
- package/scripts/autopilot.mjs +383 -0
- package/scripts/backfill-abandoned-sessions.mjs +265 -0
- package/scripts/backfill-learnings-expires.mjs +196 -0
- package/scripts/backfill-learnings.mjs +203 -0
- package/scripts/backfill-sessions.mjs +282 -0
- package/scripts/check-doc-consistency.sh +279 -0
- package/scripts/check-package-manager.mjs +445 -0
- package/scripts/ci/assert-vitest-green.mjs +267 -0
- package/scripts/codex-install.mjs +435 -0
- package/scripts/compute-grounding-injection.sh +186 -0
- package/scripts/cursor-install.mjs +113 -0
- package/scripts/dialectic-deriver.mjs +573 -0
- package/scripts/emit-event.mjs +160 -0
- package/scripts/emit-session.mjs +212 -0
- package/scripts/eval-session.mjs +262 -0
- package/scripts/export-hw-learnings.mjs +437 -0
- package/scripts/gc-stale-worktrees.mjs +666 -0
- package/scripts/generate-pi-prompts.mjs +127 -0
- package/scripts/harness-audit.mjs +287 -0
- package/scripts/lib/agent-frontmatter.mjs +266 -0
- package/scripts/lib/agent-output-schema.mjs +166 -0
- package/scripts/lib/agent-status.mjs +303 -0
- package/scripts/lib/ajv-loader.mjs +34 -0
- package/scripts/lib/auto-dialectic.mjs +382 -0
- package/scripts/lib/auto-dream.mjs +471 -0
- package/scripts/lib/autonomy/suitability.mjs +212 -0
- package/scripts/lib/autopilot/dep-graph.mjs +417 -0
- package/scripts/lib/autopilot/durable-telemetry.mjs +121 -0
- package/scripts/lib/autopilot/flags.mjs +104 -0
- package/scripts/lib/autopilot/kill-switches.mjs +174 -0
- package/scripts/lib/autopilot/loop.mjs +320 -0
- package/scripts/lib/autopilot/mr-draft.mjs +520 -0
- package/scripts/lib/autopilot/multi-killswitch.mjs +184 -0
- package/scripts/lib/autopilot/recent-runs.mjs +106 -0
- package/scripts/lib/autopilot/stall-sampler.mjs +97 -0
- package/scripts/lib/autopilot/telemetry.mjs +224 -0
- package/scripts/lib/autopilot/worktree-pipeline.mjs +605 -0
- package/scripts/lib/autopilot-telemetry.mjs +11 -0
- package/scripts/lib/autopilot.mjs +39 -0
- package/scripts/lib/backlog-scan.mjs +179 -0
- package/scripts/lib/bootstrap-lock-freshness.mjs +260 -0
- package/scripts/lib/bootstrap-lock-refresh.mjs +186 -0
- package/scripts/lib/build-live-signals.mjs +150 -0
- package/scripts/lib/ci-status-banner.mjs +425 -0
- package/scripts/lib/claude-md-budget-lint.mjs +246 -0
- package/scripts/lib/cli-flags.mjs +158 -0
- package/scripts/lib/codex/plugin-contract.mjs +610 -0
- package/scripts/lib/cold-start-detector.mjs +240 -0
- package/scripts/lib/command-blocker.mjs +458 -0
- package/scripts/lib/common.mjs +333 -0
- package/scripts/lib/config/auto-dream.mjs +77 -0
- package/scripts/lib/config/block-header.mjs +94 -0
- package/scripts/lib/config/broken-window.mjs +114 -0
- package/scripts/lib/config/coercers.mjs +248 -0
- package/scripts/lib/config/cold-start.mjs +92 -0
- package/scripts/lib/config/config-protection.mjs +120 -0
- package/scripts/lib/config/cross-repo.mjs +104 -0
- package/scripts/lib/config/custom-phases.mjs +213 -0
- package/scripts/lib/config/dialectic.mjs +92 -0
- package/scripts/lib/config/discovery-validator.mjs +75 -0
- package/scripts/lib/config/dispatcher-autonomy-capture.mjs +240 -0
- package/scripts/lib/config/dispatcher-autonomy.mjs +152 -0
- package/scripts/lib/config/docs-orchestrator.mjs +90 -0
- package/scripts/lib/config/docs-staleness.mjs +96 -0
- package/scripts/lib/config/drift-check.mjs +155 -0
- package/scripts/lib/config/eval.mjs +130 -0
- package/scripts/lib/config/events-rotation.mjs +74 -0
- package/scripts/lib/config/evolve.mjs +308 -0
- package/scripts/lib/config/frontend-slop-hook.mjs +104 -0
- package/scripts/lib/config/gitlab-portfolio.mjs +150 -0
- package/scripts/lib/config/handover-gate.mjs +106 -0
- package/scripts/lib/config/host-paths.mjs +76 -0
- package/scripts/lib/config/io.mjs +54 -0
- package/scripts/lib/config/loop-guard.mjs +117 -0
- package/scripts/lib/config/memory.mjs +150 -0
- package/scripts/lib/config/persona-gate-wave.mjs +258 -0
- package/scripts/lib/config/reconcile.mjs +205 -0
- package/scripts/lib/config/section-extractor.mjs +100 -0
- package/scripts/lib/config/skill-evolution.mjs +112 -0
- package/scripts/lib/config/slopcheck.mjs +99 -0
- package/scripts/lib/config/state-md-lock.mjs +83 -0
- package/scripts/lib/config/templates-first.mjs +94 -0
- package/scripts/lib/config/test.mjs +113 -0
- package/scripts/lib/config/vault-integration.mjs +201 -0
- package/scripts/lib/config/vault-mirror-quality.mjs +99 -0
- package/scripts/lib/config/vault-staleness.mjs +84 -0
- package/scripts/lib/config/vault-sync.mjs +96 -0
- package/scripts/lib/config/verification-auto-fix.mjs +84 -0
- package/scripts/lib/config/wave-reviewers.mjs +133 -0
- package/scripts/lib/config-schema.mjs +345 -0
- package/scripts/lib/config.mjs +474 -0
- package/scripts/lib/convergence-monitor.mjs +389 -0
- package/scripts/lib/coordinator-snapshot.mjs +371 -0
- package/scripts/lib/crypto-digest-utils.mjs +91 -0
- package/scripts/lib/discovery/helpers.mjs +127 -0
- package/scripts/lib/discovery/triage-state.mjs +279 -0
- package/scripts/lib/dispatcher/cli.mjs +257 -0
- package/scripts/lib/dispatcher/enumerate.mjs +243 -0
- package/scripts/lib/dispatcher/rank.mjs +363 -0
- package/scripts/lib/ecosystem-health.mjs +224 -0
- package/scripts/lib/ecosystem-wizard/ci-detector.mjs +18 -0
- package/scripts/lib/ecosystem-wizard/config-parser.mjs +54 -0
- package/scripts/lib/ecosystem-wizard/config-writer.mjs +287 -0
- package/scripts/lib/ecosystem-wizard/package-manager-detector.mjs +42 -0
- package/scripts/lib/ecosystem-wizard/wizard-prompt.mjs +246 -0
- package/scripts/lib/ecosystem-wizard.mjs +48 -0
- package/scripts/lib/env-check.mjs +89 -0
- package/scripts/lib/eval/engine.mjs +605 -0
- package/scripts/lib/eval/judge.mjs +433 -0
- package/scripts/lib/eval/report.mjs +367 -0
- package/scripts/lib/eval/schema.mjs +618 -0
- package/scripts/lib/eval/session-resolve.mjs +137 -0
- package/scripts/lib/eval/sink.mjs +77 -0
- package/scripts/lib/events-rotation.mjs +86 -0
- package/scripts/lib/events-schema.mjs +81 -0
- package/scripts/lib/events.mjs +80 -0
- package/scripts/lib/evolve/autonomy-verdict.mjs +461 -0
- package/scripts/lib/evolve/autopilot-effectiveness.mjs +293 -0
- package/scripts/lib/exclusivity-matrix.mjs +68 -0
- package/scripts/lib/fetch-baseline.mjs +311 -0
- package/scripts/lib/file-lock.mjs +512 -0
- package/scripts/lib/frontend-detect/detect.mjs +138 -0
- package/scripts/lib/frontend-detect/rules.mjs +295 -0
- package/scripts/lib/frontmatter-guard.mjs +241 -0
- package/scripts/lib/gates/echo-stub-detect.mjs +39 -0
- package/scripts/lib/gates/gate-baseline.mjs +42 -0
- package/scripts/lib/gates/gate-full.mjs +85 -0
- package/scripts/lib/gates/gate-helpers.mjs +231 -0
- package/scripts/lib/gates/gate-incremental.mjs +76 -0
- package/scripts/lib/gates/gate-per-file.mjs +55 -0
- package/scripts/lib/gitlab-ops/stale-mr-sweep.mjs +447 -0
- package/scripts/lib/gitlab-portfolio/aggregator.mjs +383 -0
- package/scripts/lib/gitlab-portfolio/cli.mjs +428 -0
- package/scripts/lib/gitlab-portfolio/markdown-writer.mjs +289 -0
- package/scripts/lib/gitlab-portfolio/vcs-detect.mjs +182 -0
- package/scripts/lib/handover-gate.mjs +222 -0
- package/scripts/lib/hardening.mjs +43 -0
- package/scripts/lib/hardware-pattern-detector.mjs +238 -0
- package/scripts/lib/harness-audit/categories/category1.mjs +123 -0
- package/scripts/lib/harness-audit/categories/category2.mjs +145 -0
- package/scripts/lib/harness-audit/categories/category3.mjs +143 -0
- package/scripts/lib/harness-audit/categories/category4.mjs +202 -0
- package/scripts/lib/harness-audit/categories/category5.mjs +152 -0
- package/scripts/lib/harness-audit/categories/category6.mjs +211 -0
- package/scripts/lib/harness-audit/categories/category7.mjs +125 -0
- package/scripts/lib/harness-audit/categories/category8.mjs +328 -0
- package/scripts/lib/harness-audit/categories/category9.mjs +294 -0
- package/scripts/lib/harness-audit/categories/helpers.mjs +165 -0
- package/scripts/lib/harness-audit/categories.mjs +19 -0
- package/scripts/lib/historical-guard.mjs +15 -0
- package/scripts/lib/host-identity.mjs +262 -0
- package/scripts/lib/instruction-budget-guard.mjs +332 -0
- package/scripts/lib/io.mjs +304 -0
- package/scripts/lib/issue-close-strip-labels.mjs +161 -0
- package/scripts/lib/language-mappers/README.md +57 -0
- package/scripts/lib/language-mappers/index.mjs +165 -0
- package/scripts/lib/language-mappers/markdown.mjs +149 -0
- package/scripts/lib/language-mappers/python.mjs +249 -0
- package/scripts/lib/language-mappers/swift.mjs +201 -0
- package/scripts/lib/language-mappers/typescript.mjs +433 -0
- package/scripts/lib/learnings/expiry-sweep.mjs +164 -0
- package/scripts/lib/learnings/filters.mjs +43 -0
- package/scripts/lib/learnings/io.mjs +255 -0
- package/scripts/lib/learnings/schema.mjs +518 -0
- package/scripts/lib/learnings/surface.mjs +207 -0
- package/scripts/lib/learnings.mjs +42 -0
- package/scripts/lib/lock-reaper.mjs +648 -0
- package/scripts/lib/locks/index.mjs +31 -0
- package/scripts/lib/locks/lock-body.mjs +62 -0
- package/scripts/lib/locks/staging-fence-lock.mjs +267 -0
- package/scripts/lib/locks/state-md-lock.mjs +351 -0
- package/scripts/lib/loop-readiness-banner.mjs +144 -0
- package/scripts/lib/memory-banner.mjs +478 -0
- package/scripts/lib/memory-cleanup/worktree-sweep.mjs +108 -0
- package/scripts/lib/memory-cleanup-stamp.mjs +56 -0
- package/scripts/lib/memory-paths.mjs +31 -0
- package/scripts/lib/memory-proposals/collector.mjs +334 -0
- package/scripts/lib/memory-proposals/schema.mjs +289 -0
- package/scripts/lib/memory-proposals/sink.mjs +507 -0
- package/scripts/lib/memory-proposals/store.mjs +441 -0
- package/scripts/lib/mission-status-schema.mjs +114 -0
- package/scripts/lib/mode-selector/alternatives.mjs +64 -0
- package/scripts/lib/mode-selector/constants.mjs +29 -0
- package/scripts/lib/mode-selector/context-pressure.mjs +157 -0
- package/scripts/lib/mode-selector/rationale.mjs +55 -0
- package/scripts/lib/mode-selector/scoring.mjs +221 -0
- package/scripts/lib/mode-selector-accuracy.mjs +121 -0
- package/scripts/lib/mode-selector.mjs +160 -0
- package/scripts/lib/multi-provider-build/providers.mjs +64 -0
- package/scripts/lib/multi-provider-build/templating.mjs +130 -0
- package/scripts/lib/named-baseline-resolver.mjs +233 -0
- package/scripts/lib/named-vault-resolver.mjs +433 -0
- package/scripts/lib/owner-config/coerce.mjs +29 -0
- package/scripts/lib/owner-config/constants.mjs +21 -0
- package/scripts/lib/owner-config/defaults.mjs +50 -0
- package/scripts/lib/owner-config/error.mjs +19 -0
- package/scripts/lib/owner-config/index.mjs +13 -0
- package/scripts/lib/owner-config/merge.mjs +52 -0
- package/scripts/lib/owner-config/validate.mjs +259 -0
- package/scripts/lib/owner-config-banner.mjs +126 -0
- package/scripts/lib/owner-config-loader.mjs +159 -0
- package/scripts/lib/owner-config.example.yaml +72 -0
- package/scripts/lib/owner-config.mjs +28 -0
- package/scripts/lib/owner-interview.mjs +243 -0
- package/scripts/lib/owner-yaml.mjs +571 -0
- package/scripts/lib/package-manager.mjs +160 -0
- package/scripts/lib/path-utils.mjs +217 -0
- package/scripts/lib/peer-cards/merger.mjs +310 -0
- package/scripts/lib/peer-cards/reader.mjs +125 -0
- package/scripts/lib/peer-cards/schema.mjs +230 -0
- package/scripts/lib/peer-cards/staleness-banner.mjs +86 -0
- package/scripts/lib/peer-cards/writer.mjs +138 -0
- package/scripts/lib/peer-discovery.mjs +200 -0
- package/scripts/lib/persona-panel/catalog-loader.mjs +577 -0
- package/scripts/lib/persona-panel/consolidator.mjs +370 -0
- package/scripts/lib/persona-panel/persona-runner.mjs +375 -0
- package/scripts/lib/persona-panel/threshold.mjs +130 -0
- package/scripts/lib/pi-hook-bridge.mjs +328 -0
- package/scripts/lib/platform.mjs +266 -0
- package/scripts/lib/playwright-driver/runner.mjs +297 -0
- package/scripts/lib/plugin-root.mjs +210 -0
- package/scripts/lib/pre-dispatch-check.mjs +126 -0
- package/scripts/lib/product-repo-detect.mjs +121 -0
- package/scripts/lib/profiles/registry.mjs +176 -0
- package/scripts/lib/profiles/schema.mjs +209 -0
- package/scripts/lib/qg-command-drift-banner.mjs +88 -0
- package/scripts/lib/quality-gate/diagnostics.mjs +92 -0
- package/scripts/lib/quality-gate.mjs +536 -0
- package/scripts/lib/quality-gates-cache.mjs +228 -0
- package/scripts/lib/quality-gates-policy.mjs +95 -0
- package/scripts/lib/recommendations-v0.mjs +156 -0
- package/scripts/lib/reconcile/eligibility.mjs +203 -0
- package/scripts/lib/reconcile/emitter.mjs +244 -0
- package/scripts/lib/reconcile/engine.mjs +412 -0
- package/scripts/lib/reconcile/idempotency.mjs +239 -0
- package/scripts/lib/reconcile/renderer.mjs +211 -0
- package/scripts/lib/reconcile/writer.mjs +293 -0
- package/scripts/lib/reconcile-nudge-banner.mjs +284 -0
- package/scripts/lib/resource-probe/evaluate.mjs +190 -0
- package/scripts/lib/resource-probe/parsers.mjs +181 -0
- package/scripts/lib/resource-probe/probe-platform.mjs +300 -0
- package/scripts/lib/resource-probe.mjs +95 -0
- package/scripts/lib/rule-loader.mjs +552 -0
- package/scripts/lib/rules-sync.mjs +439 -0
- package/scripts/lib/scope-gate.mjs +496 -0
- package/scripts/lib/session-close-backfill.mjs +539 -0
- package/scripts/lib/session-discovery.mjs +256 -0
- package/scripts/lib/session-end/phase-skip.mjs +357 -0
- package/scripts/lib/session-end/worktree-cleanup.mjs +112 -0
- package/scripts/lib/session-id.mjs +362 -0
- package/scripts/lib/session-lock.mjs +703 -0
- package/scripts/lib/session-registry.mjs +355 -0
- package/scripts/lib/session-schema/aliases.mjs +71 -0
- package/scripts/lib/session-schema/constants.mjs +115 -0
- package/scripts/lib/session-schema/normalizer.mjs +66 -0
- package/scripts/lib/session-schema/timestamps.mjs +64 -0
- package/scripts/lib/session-schema/validator.mjs +453 -0
- package/scripts/lib/session-schema.mjs +71 -0
- package/scripts/lib/session-token-rollup.mjs +137 -0
- package/scripts/lib/sessions-staleness-banner.mjs +247 -0
- package/scripts/lib/skill-evolution/blast-radius-classifier.mjs +114 -0
- package/scripts/lib/skill-evolution/candidate-intake.mjs +270 -0
- package/scripts/lib/skill-evolution/config-validation-gate.mjs +279 -0
- package/scripts/lib/skill-evolution/engine.mjs +719 -0
- package/scripts/lib/skill-evolution/idempotency.mjs +279 -0
- package/scripts/lib/skill-evolution/mr-opener.mjs +507 -0
- package/scripts/lib/skill-health/join.mjs +181 -0
- package/scripts/lib/skill-health/score.mjs +123 -0
- package/scripts/lib/skill-invocations-schema.mjs +214 -0
- package/scripts/lib/skill-judge.mjs +348 -0
- package/scripts/lib/skill-judgments-schema.mjs +264 -0
- package/scripts/lib/slopcheck.mjs +501 -0
- package/scripts/lib/soul-resolve.mjs +118 -0
- package/scripts/lib/spiral-carryover.mjs +495 -0
- package/scripts/lib/state-md/body-sections.mjs +851 -0
- package/scripts/lib/state-md/frontmatter-mutators.mjs +453 -0
- package/scripts/lib/state-md/mission-status.mjs +247 -0
- package/scripts/lib/state-md/recommendations.mjs +57 -0
- package/scripts/lib/state-md/yaml-parser.mjs +234 -0
- package/scripts/lib/state-md-peer-guard.mjs +232 -0
- package/scripts/lib/state-md.mjs +53 -0
- package/scripts/lib/subagents-schema.mjs +309 -0
- package/scripts/lib/sunset/walker.mjs +1192 -0
- package/scripts/lib/test-runner/artifact-paths.mjs +94 -0
- package/scripts/lib/test-runner/fingerprint.mjs +33 -0
- package/scripts/lib/test-runner/issue-reconcile.mjs +770 -0
- package/scripts/lib/tmux-layout/layouts.mjs +224 -0
- package/scripts/lib/tmux-layout/telemetry-stats.mjs +100 -0
- package/scripts/lib/tmux-layout/telemetry.mjs +88 -0
- package/scripts/lib/tmux-layout/tmux-shell.mjs +82 -0
- package/scripts/lib/tmux-layout/vcs-detector.mjs +88 -0
- package/scripts/lib/validate/check-agents.mjs +457 -0
- package/scripts/lib/validate/check-codex-plugin.mjs +37 -0
- package/scripts/lib/validate/check-commands.mjs +148 -0
- package/scripts/lib/validate/check-component-paths.mjs +112 -0
- package/scripts/lib/validate/check-dead-bridge.mjs +180 -0
- package/scripts/lib/validate/check-hooks-symmetry.mjs +258 -0
- package/scripts/lib/validate/check-json-files.mjs +116 -0
- package/scripts/lib/validate/check-owner-leakage.mjs +1011 -0
- package/scripts/lib/validate/check-path-utils-canary.mjs +175 -0
- package/scripts/lib/validate/check-peekaboo-driver-canary.mjs +201 -0
- package/scripts/lib/validate/check-pi-package.mjs +110 -0
- package/scripts/lib/validate/check-pi-prompts.mjs +43 -0
- package/scripts/lib/validate/check-playwright-mcp-canary.mjs +154 -0
- package/scripts/lib/validate/check-plugin-json.mjs +96 -0
- package/scripts/lib/validate/check-plugin-monitors.mjs +206 -0
- package/scripts/lib/validate/check-plugin-schema.mjs +137 -0
- package/scripts/lib/validate/check-rules.mjs +143 -0
- package/scripts/lib/validate/check-session-plan-routing.mjs +154 -0
- package/scripts/lib/validate/check-test-fixture-shapes.mjs +280 -0
- package/scripts/lib/validate/check-unicode-safety.mjs +533 -0
- package/scripts/lib/validate/confidential-names.mjs +169 -0
- package/scripts/lib/validate/dead-bridge-corpus.mjs +141 -0
- package/scripts/lib/validate/dead-bridge-detectors.mjs +568 -0
- package/scripts/lib/validate/tier-inference.mjs +100 -0
- package/scripts/lib/validate-vendored-rules.mjs +519 -0
- package/scripts/lib/vault-archive.mjs +404 -0
- package/scripts/lib/vault-backfill/glab.mjs +164 -0
- package/scripts/lib/vault-backfill/manifest.mjs +75 -0
- package/scripts/lib/vault-backfill/template.mjs +130 -0
- package/scripts/lib/vault-consolidate-fs.mjs +331 -0
- package/scripts/lib/vault-migration-rules.mjs +155 -0
- package/scripts/lib/vault-mirror/auto-commit.mjs +203 -0
- package/scripts/lib/vault-mirror/namespace.mjs +152 -0
- package/scripts/lib/vault-mirror/process.mjs +567 -0
- package/scripts/lib/vault-mirror/pseudonym-map.mjs +164 -0
- package/scripts/lib/vault-mirror/render-learnings.mjs +201 -0
- package/scripts/lib/vault-mirror/render-sessions.mjs +367 -0
- package/scripts/lib/vault-mirror/render.mjs +8 -0
- package/scripts/lib/vault-mirror/utils.mjs +217 -0
- package/scripts/lib/vault-relocation-rules.mjs +555 -0
- package/scripts/lib/vault-repo-backfill.mjs +235 -0
- package/scripts/lib/vault-staleness-banner.mjs +142 -0
- package/scripts/lib/vault-status/board-writer.mjs +769 -0
- package/scripts/lib/vault-status/narrative-mirror.mjs +544 -0
- package/scripts/lib/vault-sync-baseline.mjs +152 -0
- package/scripts/lib/wave-context.mjs +29 -0
- package/scripts/lib/wave-executor/pool.mjs +248 -0
- package/scripts/lib/wave-resource-gate.mjs +204 -0
- package/scripts/lib/wave-sizing.mjs +75 -0
- package/scripts/lib/webhook-url.mjs +105 -0
- package/scripts/lib/workspace.mjs +198 -0
- package/scripts/lib/worktree/constants.mjs +35 -0
- package/scripts/lib/worktree/index.mjs +17 -0
- package/scripts/lib/worktree/lifecycle.mjs +287 -0
- package/scripts/lib/worktree/listing.mjs +118 -0
- package/scripts/lib/worktree/meta.mjs +64 -0
- package/scripts/lib/worktree-freshness.mjs +313 -0
- package/scripts/lib/worktree.mjs +15 -0
- package/scripts/lifecycle-sim-v6.mjs +347 -0
- package/scripts/lock-reaper.mjs +185 -0
- package/scripts/mcp-server.sh +241 -0
- package/scripts/measure-policy-cache-effectiveness.mjs +427 -0
- package/scripts/memory-propose.mjs +464 -0
- package/scripts/migrate-cold-start-seed.mjs +404 -0
- package/scripts/migrate-learnings-jsonl.mjs +189 -0
- package/scripts/migrate-legacy-learnings.sh +61 -0
- package/scripts/migrate-sessions-jsonl.mjs +448 -0
- package/scripts/migrate-subagents-jsonl.mjs +196 -0
- package/scripts/migrate-vault-paths.mjs +796 -0
- package/scripts/parse-config.mjs +149 -0
- package/scripts/pi-install.mjs +117 -0
- package/scripts/print-applicable-rules.mjs +247 -0
- package/scripts/promote-vault-strict.mjs +496 -0
- package/scripts/relocate-vault-corpus.mjs +1178 -0
- package/scripts/run-migrate-v2-cross-repo.mjs +385 -0
- package/scripts/run-quality-gate.mjs +216 -0
- package/scripts/spikes/h3-agent-teams/preflight.sh +53 -0
- package/scripts/spikes/h3-agent-teams/run-h3.sh +112 -0
- package/scripts/spikes/h3-agent-teams/setup.sh +137 -0
- package/scripts/spikes/h3-agent-teams/toggle.sh +38 -0
- package/scripts/sweep-expired-learnings.mjs +135 -0
- package/scripts/sync-vault-schema.mjs +376 -0
- package/scripts/tests/fixtures/fetch-baseline/sample-rule.md +8 -0
- package/scripts/tmux-layout.mjs +245 -0
- package/scripts/token-audit.sh +191 -0
- package/scripts/typecheck.mjs +42 -0
- package/scripts/upload-social-preview.mjs +316 -0
- package/scripts/validate-config.mjs +46 -0
- package/scripts/validate-plugin-manifests.mjs +163 -0
- package/scripts/validate-plugin.mjs +264 -0
- package/scripts/validate-wave-scope.mjs +289 -0
- package/scripts/vault-backfill.mjs +404 -0
- package/scripts/vault-consolidate.mjs +596 -0
- package/scripts/vault-integration-watcher.mjs +394 -0
- package/scripts/vault-mirror.mjs +430 -0
- package/skills/_shared/bootstrap-gate.md +111 -0
- package/skills/_shared/config-reading.md +226 -0
- package/skills/_shared/instruction-file-resolution.md +79 -0
- package/skills/_shared/model-selection.md +64 -0
- package/skills/_shared/monitor-patterns.md +300 -0
- package/skills/_shared/parallel-aware-auq.md +121 -0
- package/skills/_shared/parallel-aware-preamble.md +185 -0
- package/skills/_shared/platform-tools.md +96 -0
- package/skills/_shared/state-ownership.md +221 -0
- package/skills/architecture/DEEPENING.md +37 -0
- package/skills/architecture/INTERFACE-DESIGN.md +44 -0
- package/skills/architecture/LANGUAGE.md +53 -0
- package/skills/architecture/SKILL.md +92 -0
- package/skills/autopilot/SKILL.md +419 -0
- package/skills/bootstrap/SKILL.md +592 -0
- package/skills/bootstrap/STATE.md.template +24 -0
- package/skills/bootstrap/_shared-template.md +243 -0
- package/skills/bootstrap/deep-template.md +659 -0
- package/skills/bootstrap/fast-template.md +251 -0
- package/skills/bootstrap/intensity-heuristic.md +80 -0
- package/skills/bootstrap/public-fallback.md +342 -0
- package/skills/bootstrap/standard-template.md +736 -0
- package/skills/bootstrap/templates/agents/project-code-review.md +18 -0
- package/skills/bootstrap/templates/agents/project-discovery.md +18 -0
- package/skills/bootstrap/templates/agents/project-quality-gate.md +18 -0
- package/skills/brainstorm/SKILL.md +268 -0
- package/skills/brainstorm/soul.md +49 -0
- package/skills/claude-md-drift-check/SKILL.md +186 -0
- package/skills/claude-md-drift-check/checker.mjs +1380 -0
- package/skills/claude-md-drift-check/checker.sh +37 -0
- package/skills/claude-md-drift-check/package.json +16 -0
- package/skills/convergence-monitoring/README.md +39 -0
- package/skills/convergence-monitoring/SIGNALS.md +246 -0
- package/skills/convergence-monitoring/SKILL.md +285 -0
- package/skills/daily/SKILL.md +222 -0
- package/skills/daily/generate.sh +92 -0
- package/skills/daily/templates/daily.md.tpl +36 -0
- package/skills/debug/SKILL.md +188 -0
- package/skills/debug/soul.md +35 -0
- package/skills/discovery/SKILL.md +567 -0
- package/skills/discovery/issue-templates.md +237 -0
- package/skills/discovery/probes/docs-staleness.mjs +195 -0
- package/skills/discovery/probes/frontend-slop.mjs +186 -0
- package/skills/discovery/probes/ssot-code-diff.mjs +310 -0
- package/skills/discovery/probes/supply-chain-slopcheck.mjs +440 -0
- package/skills/discovery/probes/vault-narrative-staleness.mjs +355 -0
- package/skills/discovery/probes/vault-staleness.mjs +272 -0
- package/skills/discovery/probes-arch.md +252 -0
- package/skills/discovery/probes-audit.md +95 -0
- package/skills/discovery/probes-code.md +329 -0
- package/skills/discovery/probes-docs.md +76 -0
- package/skills/discovery/probes-feature.md +150 -0
- package/skills/discovery/probes-infra.md +138 -0
- package/skills/discovery/probes-intro.md +25 -0
- package/skills/discovery/probes-session.md +495 -0
- package/skills/discovery/probes-supply-chain.md +94 -0
- package/skills/discovery/probes-ui.md +147 -0
- package/skills/discovery/probes-vault.md +64 -0
- package/skills/discovery/slop-patterns.md +115 -0
- package/skills/dispatcher/SKILL.md +173 -0
- package/skills/docs-orchestrator/SKILL.md +362 -0
- package/skills/docs-orchestrator/audience-mapping.md +140 -0
- package/skills/domain-model/ADR-FORMAT.md +47 -0
- package/skills/domain-model/CONTEXT-FORMAT.md +77 -0
- package/skills/domain-model/SKILL.md +85 -0
- package/skills/ecosystem-health/SKILL.md +119 -0
- package/skills/ecosystem-health/wizard.md +193 -0
- package/skills/eval/SKILL.md +293 -0
- package/skills/eval/rubric-v1.md +218 -0
- package/skills/evolve/SKILL.md +546 -0
- package/skills/frontmatter-guard/SKILL.md +126 -0
- package/skills/gitlab-ops/SKILL.md +368 -0
- package/skills/gitlab-portfolio/SKILL.md +196 -0
- package/skills/grill/SKILL.md +185 -0
- package/skills/grill/soul.md +55 -0
- package/skills/hook-development/SKILL.md +413 -0
- package/skills/mcp-builder/SKILL.md +260 -0
- package/skills/memory-cleanup/SKILL.md +310 -0
- package/skills/mode-selector/SKILL.md +226 -0
- package/skills/peekaboo-driver/SKILL.md +237 -0
- package/skills/peekaboo-driver/soul.md +32 -0
- package/skills/persona-panel/SKILL.md +365 -0
- package/skills/persona-panel/persona-format.md +205 -0
- package/skills/persona-panel/presets/designer-lens.md +87 -0
- package/skills/persona-panel/presets/engineer-lens.md +88 -0
- package/skills/persona-panel/presets/pm-lens.md +86 -0
- package/skills/plan/SKILL.md +496 -0
- package/skills/plan/mode-feature.md +141 -0
- package/skills/plan/mode-new.md +297 -0
- package/skills/plan/mode-retro.md +271 -0
- package/skills/plan/prd-feature-template.md +132 -0
- package/skills/plan/prd-full-template.md +151 -0
- package/skills/plan/prd-reviewer-prompt.md +103 -0
- package/skills/plan/retro-template.md +75 -0
- package/skills/plan/soul.md +62 -0
- package/skills/playwright-driver/SKILL.md +226 -0
- package/skills/playwright-driver/soul.md +30 -0
- package/skills/quality-gates/SKILL.md +212 -0
- package/skills/reconcile/SKILL.md +324 -0
- package/skills/repo-audit/SKILL.md +272 -0
- package/skills/session-end/SKILL.md +1044 -0
- package/skills/session-end/discovery-scan.md +37 -0
- package/skills/session-end/drift-operations.md +97 -0
- package/skills/session-end/learning-patterns.md +78 -0
- package/skills/session-end/metrics-collection.md +175 -0
- package/skills/session-end/phase-3-2-docs-verification.md +148 -0
- package/skills/session-end/phase-3-6-tail.md +344 -0
- package/skills/session-end/phase-3-7a-recommendations.md +86 -0
- package/skills/session-end/plan-verification.md +288 -0
- package/skills/session-end/session-metrics-write.md +223 -0
- package/skills/session-end/vault-operations.md +50 -0
- package/skills/session-end/verification-checklist.md +20 -0
- package/skills/session-plan/SKILL.md +554 -0
- package/skills/session-plan/wave-template.md +37 -0
- package/skills/session-start/SKILL.md +1043 -0
- package/skills/session-start/phase-2-5-docs-planning.md +119 -0
- package/skills/session-start/phase-4-5-resource-health.md +49 -0
- package/skills/session-start/phase-7-1-premise-check.md +47 -0
- package/skills/session-start/phase-7-5-mode-selector.md +237 -0
- package/skills/session-start/phase-8-5-express-path.md +61 -0
- package/skills/session-start/presentation-format.md +81 -0
- package/skills/session-start/soul.md +57 -0
- package/skills/skill-creator/SKILL.md +168 -0
- package/skills/spinout/SKILL.md +76 -0
- package/skills/sunset-review/SKILL.md +96 -0
- package/skills/test-runner/SKILL.md +362 -0
- package/skills/test-runner/rubric-v1.md +388 -0
- package/skills/test-runner/soul.md +46 -0
- package/skills/tmux-layout/SKILL.md +104 -0
- package/skills/ubiquitous-language/SKILL.md +97 -0
- package/skills/using-orchestrator/SKILL.md +144 -0
- package/skills/vault-mirror/SKILL.md +234 -0
- package/skills/vault-sync/SKILL.md +319 -0
- package/skills/vault-sync/package-lock.json +40 -0
- package/skills/vault-sync/package.json +11 -0
- package/skills/vault-sync/tests/fixtures/archive-test-vault/90-archive/bad-archived.md +8 -0
- package/skills/vault-sync/tests/fixtures/archive-test-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/archive-test-vault/live-note.md +8 -0
- package/skills/vault-sync/tests/fixtures/broken-frontmatter-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/broken-frontmatter-vault/bad-type.md +8 -0
- package/skills/vault-sync/tests/fixtures/broken-frontmatter-vault/good-note.md +8 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/.obsidian/config.md +8 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/01-projects/foo/projects-baseline.md +10 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/03-daily/daily-2026-04-13.md +8 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/README.md +3 -0
- package/skills/vault-sync/tests/fixtures/clean-vault/hello-world.md +11 -0
- package/skills/vault-sync/tests/fixtures/dangling-link-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/dangling-link-vault/has-dangling.md +9 -0
- package/skills/vault-sync/tests/fixtures/dangling-link-vault/real-target.md +8 -0
- package/skills/vault-sync/tests/fixtures/empty-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/missing-field-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/missing-field-vault/missing-id.md +7 -0
- package/skills/vault-sync/tests/fixtures/nested-tag-vault/03-daily/daily-2026-04-13.md +9 -0
- package/skills/vault-sync/tests/fixtures/nested-tag-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/nested-tag-vault/nested-tags-note.md +11 -0
- package/skills/vault-sync/tests/fixtures/no-frontmatter-vault/README.md +3 -0
- package/skills/vault-sync/tests/fixtures/no-frontmatter-vault/_MOC.md +3 -0
- package/skills/vault-sync/tests/fixtures/no-frontmatter-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/with-moc-vault/_MOC.md +11 -0
- package/skills/vault-sync/tests/fixtures/with-moc-vault/_meta/.gitkeep +0 -0
- package/skills/vault-sync/tests/fixtures/with-moc-vault/hello-world.md +11 -0
- package/skills/vault-sync/tests/schema-drift.test.mjs +133 -0
- package/skills/vault-sync/validator.mjs +658 -0
- package/skills/vault-sync/validator.sh +55 -0
- package/skills/wave-executor/SKILL.md +496 -0
- package/skills/wave-executor/circuit-breaker.md +169 -0
- package/skills/wave-executor/wave-loop.md +1043 -0
- package/skills/write-executable-plan/SKILL.md +237 -0
- package/skills/write-executable-plan/plan-template.md +154 -0
- package/templates/_minimal/CLAUDE.md.tmpl +41 -0
- package/templates/_minimal/README.md.tmpl +15 -0
- package/templates/_minimal/gitignore.tmpl +47 -0
- package/templates/_shared/harte-regeln.md +16 -0
- package/templates/_shared/loop.md +90 -0
- package/templates/_shared/rules/parallel-sessions.md +77 -0
- package/templates/nextjs-minimal/README.md +30 -0
- package/templates/nextjs-minimal/app/layout.tsx +18 -0
- package/templates/nextjs-minimal/app/page.tsx +7 -0
- package/templates/nextjs-minimal/eslint.config.mjs +16 -0
- package/templates/nextjs-minimal/next.config.mjs +4 -0
- package/templates/nextjs-minimal/package.json +27 -0
- package/templates/nextjs-minimal/tsconfig.json +23 -0
- package/templates/node-minimal/README.md +33 -0
- package/templates/node-minimal/eslint.config.mjs +10 -0
- package/templates/node-minimal/package.json +21 -0
- package/templates/node-minimal/src/index.ts +1 -0
- package/templates/node-minimal/tests/sanity.test.ts +5 -0
- package/templates/node-minimal/tsconfig.json +17 -0
- package/templates/personas/README.md +150 -0
- package/templates/personas/accounting-compliance.v1.md +120 -0
- package/templates/personas/accounting-tax-advisor.v1.md +116 -0
- package/templates/personas/buyer-p1-cto.v1.md +125 -0
- package/templates/personas/buyer-p2-kanzlei.v1.md +134 -0
- package/templates/personas/buyer-p3-build.v1.md +130 -0
- package/templates/personas/buyer-p4-tech-veto.v1.md +130 -0
- package/templates/personas/buyer-p5-solo.v1.md +132 -0
- package/templates/personas/buyer-p6-ld.v1.md +130 -0
- package/templates/personas/klima-ai-expert.v1.md +114 -0
- package/templates/personas/klima-physicist.v1.md +117 -0
- package/templates/python-uv/README.md +28 -0
- package/templates/python-uv/pyproject.toml +32 -0
- package/templates/python-uv/src/__PROJECT_NAME__/__init__.py +0 -0
- package/templates/python-uv/src/__PROJECT_NAME__/main.py +6 -0
- package/templates/python-uv/tests/test_sanity.py +2 -0
- package/templates/static-html/README.md +19 -0
- package/templates/static-html/index.html +15 -0
- package/templates/static-html/script.js +1 -0
- package/templates/static-html/styles.css +26 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# PRD Template — Feature (5 Sections)
|
|
2
|
+
|
|
3
|
+
> Template for `/plan feature` mode. Used by SKILL.md Phase 3 to generate feature PRDs.
|
|
4
|
+
> Fill each `{{placeholder}}` with data gathered during the Q&A waves.
|
|
5
|
+
> Delete this instruction block before saving the final PRD.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Feature: {{feature-name}}
|
|
10
|
+
|
|
11
|
+
**Date:** {{YYYY-MM-DD}}
|
|
12
|
+
**Author:** {{user}} + Claude (AI-assisted planning)
|
|
13
|
+
**Status:** Draft
|
|
14
|
+
**Appetite:** {{1w|2w|6w}}
|
|
15
|
+
**Parent Project:** {{project-name or "standalone"}}
|
|
16
|
+
|
|
17
|
+
## 1. Problem & Motivation
|
|
18
|
+
|
|
19
|
+
### What
|
|
20
|
+
{{What we're building — clear, concise description}}
|
|
21
|
+
|
|
22
|
+
### Why
|
|
23
|
+
{{Business driver, user feedback, or technical necessity — from Wave 1 Q2}}
|
|
24
|
+
|
|
25
|
+
### Who
|
|
26
|
+
{{Target users — existing personas or new audience — from Wave 1 Q3}}
|
|
27
|
+
|
|
28
|
+
## 2. Solution & Scope
|
|
29
|
+
|
|
30
|
+
### In-Scope
|
|
31
|
+
- [ ] {{scope-item-1}}
|
|
32
|
+
- [ ] {{scope-item-2}}
|
|
33
|
+
- [ ] {{scope-item-3}}
|
|
34
|
+
|
|
35
|
+
### Out-of-Scope
|
|
36
|
+
- {{excluded-1 — why}}
|
|
37
|
+
- {{excluded-2 — why}}
|
|
38
|
+
|
|
39
|
+
## User Stories
|
|
40
|
+
|
|
41
|
+
> Optional intent layer — emitted only when the Wave-1 story toggle is "yes". Leave blank or delete this section if §3/§3.A acceptance criteria already capture the intent. Stories are the "who/why"; acceptance criteria are the "verify".
|
|
42
|
+
|
|
43
|
+
### US-1 (→ {{Feature Area}})
|
|
44
|
+
**Als** {{Persona}} **möchte ich** {{Capability}}, **damit** {{Nutzen}}.
|
|
45
|
+
- ↳ AC: {{§3 / §3.A reference to ≥1 acceptance criterion}}
|
|
46
|
+
|
|
47
|
+
### US-2 (→ {{Feature Area}})
|
|
48
|
+
**Als** {{Persona}} **möchte ich** {{Capability}}, **damit** {{Nutzen}}.
|
|
49
|
+
- ↳ AC: {{§3 / §3.A reference to ≥1 acceptance criterion}}
|
|
50
|
+
|
|
51
|
+
> **Alternative form (job-story / JTBD):** if the Wave-1 toggle selected "Ja (job-story)" instead of "Ja (Als/möchte/damit)", emit each story in this shape instead of US-1/US-2 above — use ONE form consistently across the whole section, never mix:
|
|
52
|
+
>
|
|
53
|
+
> ### US-1 (→ {{Feature Area}})
|
|
54
|
+
> **When** {{situation}}, **I want** {{motivation}}, **so I can** {{outcome}}.
|
|
55
|
+
> - ↳ AC: {{§3 / §3.A reference to ≥1 acceptance criterion}}
|
|
56
|
+
|
|
57
|
+
## 3. Acceptance Criteria
|
|
58
|
+
|
|
59
|
+
### {{Feature Area 1}}
|
|
60
|
+
```gherkin
|
|
61
|
+
Given {{precondition}}
|
|
62
|
+
When {{action}}
|
|
63
|
+
Then {{expected result}}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### {{Feature Area 2}}
|
|
67
|
+
```gherkin
|
|
68
|
+
Given {{precondition}}
|
|
69
|
+
When {{action}}
|
|
70
|
+
Then {{expected result}}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### {{Edge Case / Error Handling}}
|
|
74
|
+
```gherkin
|
|
75
|
+
Given {{error condition}}
|
|
76
|
+
When {{action}}
|
|
77
|
+
Then {{graceful handling}}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## 3.A Acceptance Criteria (EARS)
|
|
81
|
+
|
|
82
|
+
> Optional companion to Section 3 — translates each Feature Area's acceptance criteria into EARS-shaped statements for deterministic vitest stub generation by `/write-executable-plan`. Leave blank if Section 3's narrative Gherkin suffices.
|
|
83
|
+
|
|
84
|
+
### Feature Area 1 — {{name}}
|
|
85
|
+
|
|
86
|
+
**Ubiquitous** (always-true invariants — no trigger, no state):
|
|
87
|
+
- The {{system}} shall {{response}}.
|
|
88
|
+
|
|
89
|
+
**State-driven** (`While …`):
|
|
90
|
+
- While {{precondition}}, the {{system}} shall {{response}}.
|
|
91
|
+
|
|
92
|
+
**Event-driven** (`When …`):
|
|
93
|
+
- When {{trigger}}, the {{system}} shall {{response}}.
|
|
94
|
+
|
|
95
|
+
**Optional feature** (`Where …`):
|
|
96
|
+
- Where {{feature enabled}}, the {{system}} shall {{response}}.
|
|
97
|
+
|
|
98
|
+
**Unwanted behaviour** (`If … then …`):
|
|
99
|
+
- If {{unwanted condition}}, then the {{system}} shall {{response}}.
|
|
100
|
+
|
|
101
|
+
### Feature Area 2 — {{name}}
|
|
102
|
+
|
|
103
|
+
[repeat pattern]
|
|
104
|
+
|
|
105
|
+
### Edge Case / Error Handling
|
|
106
|
+
|
|
107
|
+
[repeat pattern, typically focused on Unwanted + Optional]
|
|
108
|
+
|
|
109
|
+
## 4. Technical Notes
|
|
110
|
+
|
|
111
|
+
### Affected Files
|
|
112
|
+
- `{{file-path-1}}` — {{what changes}}
|
|
113
|
+
- `{{file-path-2}}` — {{what changes}}
|
|
114
|
+
|
|
115
|
+
### Architecture
|
|
116
|
+
{{High-level approach — patterns to follow, components to modify}}
|
|
117
|
+
|
|
118
|
+
### Data Model Changes
|
|
119
|
+
{{New tables, columns, migrations — or "None"}}
|
|
120
|
+
|
|
121
|
+
### API Changes
|
|
122
|
+
{{New endpoints, modified contracts — or "None"}}
|
|
123
|
+
|
|
124
|
+
## 5. Risks & Dependencies
|
|
125
|
+
|
|
126
|
+
| Risk | Impact | Mitigation | Triage |
|
|
127
|
+
|------|--------|------------|--------|
|
|
128
|
+
| {{risk-1}} | {{impact}} | {{mitigation}} | {{Triage: Defer\|Implement\|Reject\|Experiment}} |
|
|
129
|
+
|
|
130
|
+
### Dependencies
|
|
131
|
+
- {{dependency-1}}: {{status}}
|
|
132
|
+
- {{open-issue-ref}}: {{relationship}}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# PRD Template — Full (8 Sections)
|
|
2
|
+
|
|
3
|
+
> Template for `/plan new` mode. Used by SKILL.md Phase 3 to generate project PRDs.
|
|
4
|
+
> Fill each `{{placeholder}}` with data gathered during the Q&A waves.
|
|
5
|
+
> Delete this instruction block before saving the final PRD.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# {{project-name}} — Product Requirements Document
|
|
10
|
+
|
|
11
|
+
**Date:** {{YYYY-MM-DD}}
|
|
12
|
+
**Author:** {{user}} + Claude (AI-assisted planning)
|
|
13
|
+
**Status:** Draft
|
|
14
|
+
**Appetite:** {{1w|2w|6w}}
|
|
15
|
+
|
|
16
|
+
## 1. Executive Summary
|
|
17
|
+
|
|
18
|
+
{{2-3 paragraph synthesis of the project: what it is, who it's for, and why it matters. Written in active voice.}}
|
|
19
|
+
|
|
20
|
+
## 2. Problem & Context
|
|
21
|
+
|
|
22
|
+
### Problem Statement
|
|
23
|
+
{{Core problem being solved — from Wave 1 Q4}}
|
|
24
|
+
|
|
25
|
+
### Context
|
|
26
|
+
{{Market context, user feedback, technical necessity — from Wave 1 Q3 + research}}
|
|
27
|
+
|
|
28
|
+
### Current State
|
|
29
|
+
{{How users currently solve this problem. Pain points.}}
|
|
30
|
+
|
|
31
|
+
## 3. Target Audience & Personas
|
|
32
|
+
|
|
33
|
+
| Persona | Description | Primary Need | Usage Frequency |
|
|
34
|
+
|---------|-------------|--------------|-----------------|
|
|
35
|
+
| {{persona-1}} | {{description}} | {{need}} | {{daily/weekly/monthly}} |
|
|
36
|
+
| {{persona-2}} | {{description}} | {{need}} | {{daily/weekly/monthly}} |
|
|
37
|
+
|
|
38
|
+
{{1-2 paragraphs elaborating on primary persona}}
|
|
39
|
+
|
|
40
|
+
## User Stories
|
|
41
|
+
|
|
42
|
+
> Optional intent layer — emitted only when the Wave-1 story toggle is "yes". Leave blank or delete this section if §5/§5.A acceptance criteria already capture the intent. Stories are the "who/why"; acceptance criteria are the "verify".
|
|
43
|
+
|
|
44
|
+
### US-1 (→ {{Feature Area}})
|
|
45
|
+
**Als** {{Persona}} **möchte ich** {{Capability}}, **damit** {{Nutzen}}.
|
|
46
|
+
- ↳ AC: {{§5 / §5.A reference to ≥1 acceptance criterion}}
|
|
47
|
+
|
|
48
|
+
### US-2 (→ {{Feature Area}})
|
|
49
|
+
**Als** {{Persona}} **möchte ich** {{Capability}}, **damit** {{Nutzen}}.
|
|
50
|
+
- ↳ AC: {{§5 / §5.A reference to ≥1 acceptance criterion}}
|
|
51
|
+
|
|
52
|
+
## 4. Solution & Scope
|
|
53
|
+
|
|
54
|
+
### In-Scope (MVP)
|
|
55
|
+
- [ ] {{feature-1 — must-have for launch}}
|
|
56
|
+
- [ ] {{feature-2}}
|
|
57
|
+
- [ ] {{feature-3}}
|
|
58
|
+
|
|
59
|
+
### Explicitly Out-of-Scope
|
|
60
|
+
- {{excluded-1 — and why it's excluded}}
|
|
61
|
+
- {{excluded-2}}
|
|
62
|
+
|
|
63
|
+
### Future Phases
|
|
64
|
+
- Phase 2: {{what comes after MVP}}
|
|
65
|
+
- Phase 3: {{long-term vision}}
|
|
66
|
+
|
|
67
|
+
## 5. Success Criteria
|
|
68
|
+
|
|
69
|
+
| Metric | Target | Measurement Method | Deadline |
|
|
70
|
+
|--------|--------|--------------------|----------|
|
|
71
|
+
| {{metric-1}} | {{specific target}} | {{how to measure}} | {{date}} |
|
|
72
|
+
| {{metric-2}} | {{specific target}} | {{how to measure}} | {{date}} |
|
|
73
|
+
| {{metric-3}} | {{specific target}} | {{how to measure}} | {{date}} |
|
|
74
|
+
|
|
75
|
+
## 5.A Acceptance Criteria (EARS)
|
|
76
|
+
|
|
77
|
+
> Optional companion to Section 5 — translates each Feature Area's acceptance criteria into EARS-shaped statements for deterministic vitest stub generation by `/write-executable-plan`. Leave blank if Section 5's success metrics suffice.
|
|
78
|
+
|
|
79
|
+
### Feature Area 1 — {{name}}
|
|
80
|
+
|
|
81
|
+
**Ubiquitous** (always-true invariants — no trigger, no state):
|
|
82
|
+
- The {{system}} shall {{response}}.
|
|
83
|
+
|
|
84
|
+
**State-driven** (`While …`):
|
|
85
|
+
- While {{precondition}}, the {{system}} shall {{response}}.
|
|
86
|
+
|
|
87
|
+
**Event-driven** (`When …`):
|
|
88
|
+
- When {{trigger}}, the {{system}} shall {{response}}.
|
|
89
|
+
|
|
90
|
+
**Optional feature** (`Where …`):
|
|
91
|
+
- Where {{feature enabled}}, the {{system}} shall {{response}}.
|
|
92
|
+
|
|
93
|
+
**Unwanted behaviour** (`If … then …`):
|
|
94
|
+
- If {{unwanted condition}}, then the {{system}} shall {{response}}.
|
|
95
|
+
|
|
96
|
+
### Feature Area 2 — {{name}}
|
|
97
|
+
|
|
98
|
+
[repeat pattern]
|
|
99
|
+
|
|
100
|
+
### Edge Case / Error Handling
|
|
101
|
+
|
|
102
|
+
[repeat pattern, typically focused on Unwanted + Optional]
|
|
103
|
+
|
|
104
|
+
## 6. Technical Architecture
|
|
105
|
+
|
|
106
|
+
### Archetype
|
|
107
|
+
{{archetype from Wave 1 Q1}} (from projects-baseline)
|
|
108
|
+
|
|
109
|
+
### Tech Stack
|
|
110
|
+
| Layer | Technology | Rationale |
|
|
111
|
+
|-------|-----------|-----------|
|
|
112
|
+
| Frontend | {{tech}} | {{why}} |
|
|
113
|
+
| Backend | {{tech}} | {{why}} |
|
|
114
|
+
| Database | {{tech}} | {{why}} |
|
|
115
|
+
| Auth | {{tech}} | {{why}} |
|
|
116
|
+
| Hosting | {{tech}} | {{why}} |
|
|
117
|
+
|
|
118
|
+
### Integrations
|
|
119
|
+
- {{integration-1}}: {{purpose}}
|
|
120
|
+
- {{integration-2}}: {{purpose}}
|
|
121
|
+
|
|
122
|
+
### Schema Sketch
|
|
123
|
+
{{High-level data model — key entities and relationships}}
|
|
124
|
+
|
|
125
|
+
## 7. Risks & Dependencies
|
|
126
|
+
|
|
127
|
+
| Risk | Probability | Impact | Mitigation |
|
|
128
|
+
|------|-------------|--------|------------|
|
|
129
|
+
| {{risk-1}} | High/Medium/Low | High/Medium/Low | {{mitigation}} |
|
|
130
|
+
| {{risk-2}} | High/Medium/Low | High/Medium/Low | {{mitigation}} |
|
|
131
|
+
|
|
132
|
+
### Dependencies
|
|
133
|
+
- {{dependency-1}}: {{status and impact if unavailable}}
|
|
134
|
+
- {{dependency-2}}: {{status and impact if unavailable}}
|
|
135
|
+
|
|
136
|
+
## 8. Post-Launch Plan
|
|
137
|
+
|
|
138
|
+
### Monitoring
|
|
139
|
+
- {{what to monitor and how}}
|
|
140
|
+
|
|
141
|
+
### Rollback Strategy
|
|
142
|
+
- {{how to rollback if issues arise}}
|
|
143
|
+
|
|
144
|
+
### Feedback Channels
|
|
145
|
+
- {{how users report issues / provide feedback}}
|
|
146
|
+
|
|
147
|
+
### First Week Checklist
|
|
148
|
+
- [ ] Deploy to production
|
|
149
|
+
- [ ] Verify monitoring dashboards
|
|
150
|
+
- [ ] Announce to target audience
|
|
151
|
+
- [ ] Collect initial feedback
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# PRD Reviewer — Subagent Prompt
|
|
2
|
+
|
|
3
|
+
> Review instructions for PRD quality assurance. Dispatched by SKILL.md Phase 4 after PRD generation.
|
|
4
|
+
> The reviewer agent receives this prompt + the generated PRD content.
|
|
5
|
+
> Max 3 review iterations, then surface remaining issues to the user.
|
|
6
|
+
|
|
7
|
+
## Your Role
|
|
8
|
+
|
|
9
|
+
You are a PRD reviewer. Your job is to ensure the PRD is complete, consistent, and implementable. You are critical but constructive — flag real issues, not style preferences.
|
|
10
|
+
|
|
11
|
+
## Review Criteria
|
|
12
|
+
|
|
13
|
+
Evaluate the PRD against these 7 criteria. For each, report **PASS** or **FAIL** with specific feedback.
|
|
14
|
+
|
|
15
|
+
### 1. Completeness
|
|
16
|
+
- All sections are filled — no `{{placeholder}}`, `TBD`, `TODO`, or empty sections
|
|
17
|
+
- Each section has substantive content (not just a single sentence)
|
|
18
|
+
- Tables have real data, not template rows
|
|
19
|
+
- **FAIL if:** any section is empty, contains unfilled placeholders, or has only generic content
|
|
20
|
+
|
|
21
|
+
### 2. Consistency
|
|
22
|
+
- No internal contradictions (e.g., scope says X is excluded but success criteria measures X)
|
|
23
|
+
- Technical decisions align with stated requirements
|
|
24
|
+
- Persona needs match the solution scope
|
|
25
|
+
- Appetite matches the scope size (1w appetite shouldn't have 20 features)
|
|
26
|
+
- **FAIL if:** any contradiction found between sections
|
|
27
|
+
|
|
28
|
+
### 3. Clarity
|
|
29
|
+
- Requirements are specific enough to implement without guessing
|
|
30
|
+
- Acceptance criteria are testable (Given/When/Then with concrete values)
|
|
31
|
+
- If an EARS Acceptance Criteria section is present (`## 3.A` or `## Acceptance Criteria (EARS)`), verify well-formed `shall` statements across all 5 canonical patterns (Ubiquitous, State-driven, Event-driven, Optional feature, Unwanted behaviour) and that Unwanted/Optional templates cover edge cases not in the narrative Gherkin
|
|
32
|
+
- Technical notes reference actual file paths or components (not vague "the backend")
|
|
33
|
+
- Success metrics have numbers, not qualitative statements ("improve performance" -> "p95 latency < 200ms")
|
|
34
|
+
- **FAIL if:** an engineer would need to ask clarifying questions to start implementing
|
|
35
|
+
|
|
36
|
+
### 4. Scope
|
|
37
|
+
- Focused on one project/feature — not multiple unrelated subsystems
|
|
38
|
+
- In-scope list is achievable within the stated appetite
|
|
39
|
+
- Out-of-scope list exists and is explicit
|
|
40
|
+
- No feature creep disguised as "nice-to-haves" in scope
|
|
41
|
+
- **FAIL if:** scope is unbounded, missing out-of-scope, or appetite/scope mismatch
|
|
42
|
+
|
|
43
|
+
### 5. YAGNI (You Ain't Gonna Need It)
|
|
44
|
+
- No speculative features ("we might need X later")
|
|
45
|
+
- No over-engineered architecture for current requirements
|
|
46
|
+
- No premature abstractions or framework decisions that exceed scope
|
|
47
|
+
- Every feature traces back to a stated requirement or user need
|
|
48
|
+
- **FAIL if:** features exist that weren't requested or derived from requirements
|
|
49
|
+
|
|
50
|
+
### 6. SMART Metrics (for full PRDs with Section 5)
|
|
51
|
+
- Each success metric is: **S**pecific, **M**easurable, **A**chievable, **R**elevant, **T**ime-bound
|
|
52
|
+
- Measurement methods are practical (not "we'll know when we see it")
|
|
53
|
+
- Deadlines are realistic given the appetite
|
|
54
|
+
- **FAIL if:** any metric is vague, unmeasurable, or missing a deadline
|
|
55
|
+
- **SKIP if:** feature PRD (no Section 5)
|
|
56
|
+
|
|
57
|
+
### 7. User Stories (gated — active only when stories were requested)
|
|
58
|
+
- **SKIP if:** the PRD has no `## User Stories` section (stories were not requested) — in that case this criterion is not evaluated.
|
|
59
|
+
- When a populated `## User Stories` section IS present, check:
|
|
60
|
+
- (a) the section is present and non-empty.
|
|
61
|
+
- (b) every story uses one complete form — either `Als/möchte/damit` (persona, capability, benefit all present) or the job-story form `When [situation], I want [motivation], so I can [outcome]` (situation, motivation, outcome all present). A single section must use one form consistently, not mix both.
|
|
62
|
+
- (c) each story links at least one acceptance criterion via a `↳ AC:` pointer to §3/§3.A (feature PRD) or §5/§5.A (full PRD).
|
|
63
|
+
- Do NOT apply INVEST (Independent / Negotiable / Estimable) checks — only the present/form/link checks above.
|
|
64
|
+
|
|
65
|
+
## Output Format
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
## PRD Review — Iteration {{N}}/3
|
|
69
|
+
|
|
70
|
+
| Criterion | Result | Notes |
|
|
71
|
+
|-----------|--------|-------|
|
|
72
|
+
| Completeness | PASS/FAIL | {{specific feedback}} |
|
|
73
|
+
| Consistency | PASS/FAIL | {{specific feedback}} |
|
|
74
|
+
| Clarity | PASS/FAIL | {{specific feedback}} |
|
|
75
|
+
| Scope | PASS/FAIL | {{specific feedback}} |
|
|
76
|
+
| YAGNI | PASS/FAIL | {{specific feedback}} |
|
|
77
|
+
| SMART Metrics | PASS/FAIL/SKIP | {{specific feedback}} |
|
|
78
|
+
| User Stories | PASS/FAIL/SKIP | {{specific feedback}} |
|
|
79
|
+
|
|
80
|
+
### Issues to Fix
|
|
81
|
+
1. {{specific issue with location in PRD and suggested fix}}
|
|
82
|
+
2. {{...}}
|
|
83
|
+
|
|
84
|
+
### Verdict
|
|
85
|
+
- **APPROVED** — all criteria PASS -> proceed to user review
|
|
86
|
+
- **REVISE** — one or more FAIL -> return to SKILL.md for revision
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Iteration Protocol
|
|
90
|
+
|
|
91
|
+
1. SKILL.md dispatches you with the PRD content.
|
|
92
|
+
2. You review against all 7 criteria.
|
|
93
|
+
3. If all PASS -> return APPROVED verdict.
|
|
94
|
+
4. If any FAIL -> return REVISE verdict with specific issues.
|
|
95
|
+
5. SKILL.md revises the PRD and re-dispatches you.
|
|
96
|
+
6. Max 3 iterations. After iteration 3, return your verdict regardless — SKILL.md surfaces remaining issues to the user.
|
|
97
|
+
|
|
98
|
+
## What You Are NOT
|
|
99
|
+
|
|
100
|
+
- Not a copy editor — don't flag grammar or style (unless it causes ambiguity)
|
|
101
|
+
- Not a pessimist — don't invent risks that aren't there
|
|
102
|
+
- Not a maximalist — don't request more sections or detail than the template requires
|
|
103
|
+
- Focus on: can this PRD be implemented as written? If yes -> PASS.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Retro Document Template
|
|
2
|
+
|
|
3
|
+
> Template for `/plan retro` mode. Used by SKILL.md Phase 3 to generate retrospective documents.
|
|
4
|
+
> Fill each `{{placeholder}}` with data from Phase 1 (automatic) and Phase 2 (reflection waves).
|
|
5
|
+
> Delete this instruction block before saving the final retro document.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Retrospective — {{YYYY-MM-DD}}
|
|
10
|
+
|
|
11
|
+
**Project:** {{project-name}}
|
|
12
|
+
**Period:** {{start-date}} to {{end-date}}
|
|
13
|
+
**Sessions analyzed:** {{N}}
|
|
14
|
+
|
|
15
|
+
## Metrics
|
|
16
|
+
|
|
17
|
+
> Auto-generated from `.orchestrator/metrics/sessions.jsonl`. Do not edit manually.
|
|
18
|
+
|
|
19
|
+
| Metric | Value | Trend |
|
|
20
|
+
|--------|-------|-------|
|
|
21
|
+
| Total sessions | {{N}} | — |
|
|
22
|
+
| Average duration | {{Xm}} | {{↑/↓/→}} |
|
|
23
|
+
| Completion rate | {{X%}} | {{↑/↓/→}} |
|
|
24
|
+
| Agent success rate | {{X%}} | {{↑/↓/→}} |
|
|
25
|
+
| Spiral rate | {{X%}} | {{↑/↓/→}} |
|
|
26
|
+
| Total files changed | {{N}} | {{↑/↓/→}} |
|
|
27
|
+
| Carryover rate | {{X%}} | {{↑/↓/→}} |
|
|
28
|
+
|
|
29
|
+
### Session Breakdown
|
|
30
|
+
|
|
31
|
+
| Date | Type | Duration | Waves | Completion |
|
|
32
|
+
|------|------|----------|-------|------------|
|
|
33
|
+
| {{date}} | {{type}} | {{Xm}} | {{N}} | {{X%}} |
|
|
34
|
+
|
|
35
|
+
### Change Hotspots
|
|
36
|
+
|
|
37
|
+
| File | Changes | Last Modified |
|
|
38
|
+
|------|---------|---------------|
|
|
39
|
+
| {{file}} | {{N}} | {{date}} |
|
|
40
|
+
|
|
41
|
+
## Highlights
|
|
42
|
+
|
|
43
|
+
### 1. {{highlight-title}}
|
|
44
|
+
{{Description backed by data. What went well, with evidence from metrics or git history.}}
|
|
45
|
+
|
|
46
|
+
### 2. {{highlight-title}}
|
|
47
|
+
{{Description}}
|
|
48
|
+
|
|
49
|
+
### 3. {{highlight-title}}
|
|
50
|
+
{{Description}}
|
|
51
|
+
|
|
52
|
+
## Improvement Areas
|
|
53
|
+
|
|
54
|
+
### 1. {{area-title}}
|
|
55
|
+
**Root cause:** {{analysis of why this is a problem}}
|
|
56
|
+
**Evidence:** {{data points supporting this}}
|
|
57
|
+
**Impact:** {{what happens if not addressed}}
|
|
58
|
+
|
|
59
|
+
### 2. {{area-title}}
|
|
60
|
+
**Root cause:** {{analysis}}
|
|
61
|
+
**Evidence:** {{data}}
|
|
62
|
+
**Impact:** {{consequence}}
|
|
63
|
+
|
|
64
|
+
### 3. {{area-title}}
|
|
65
|
+
**Root cause:** {{analysis}}
|
|
66
|
+
**Evidence:** {{data}}
|
|
67
|
+
**Impact:** {{consequence}}
|
|
68
|
+
|
|
69
|
+
## Actions
|
|
70
|
+
|
|
71
|
+
| # | Action | Issue Link | Priority | Owner | Deadline |
|
|
72
|
+
|---|--------|------------|----------|-------|----------|
|
|
73
|
+
| 1 | {{action}} | {{#issue}} | {{high/medium/low}} | {{who}} | {{when}} |
|
|
74
|
+
| 2 | {{action}} | {{#issue}} | {{high/medium/low}} | {{who}} | {{when}} |
|
|
75
|
+
| 3 | {{action}} | {{#issue}} | {{high/medium/low}} | {{who}} | {{when}} |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Plan Skill — Soul
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
|
|
5
|
+
You are the Plan Skill — a Product Strategist who has shipped dozens of products and knows the difference between a good idea and a shippable product. You don't collect features; you drive planning outcomes. You think in user value, not technology. You care about what problem gets solved, not which framework gets used.
|
|
6
|
+
|
|
7
|
+
You respond in {{owner.language}} when that matches the user's language. You speak technical when they're technical. You meet people where they are.
|
|
8
|
+
|
|
9
|
+
## Communication Principles
|
|
10
|
+
|
|
11
|
+
### Be decisive
|
|
12
|
+
- Always recommend Option 1. Mark it with "Recommended" so the pick is unmistakable.
|
|
13
|
+
- Back every recommendation with evidence — market data, codebase analysis, or prior art.
|
|
14
|
+
- If the user overrides your recommendation, respect it and move on. Don't relitigate.
|
|
15
|
+
- Opinions without evidence are just guesses. You don't guess.
|
|
16
|
+
|
|
17
|
+
### Research first, ask second
|
|
18
|
+
- Never ask a question you haven't already researched via Explore agents.
|
|
19
|
+
- Every option you present comes with data, not hypotheticals.
|
|
20
|
+
- "I looked at X and found Y, so I recommend Z" — that's the pattern.
|
|
21
|
+
- Vague questions get vague answers. Your questions are specific because you did the homework.
|
|
22
|
+
|
|
23
|
+
### Speak the user's language
|
|
24
|
+
- Respond in {{owner.language}} when that is the user's language. No exceptions.
|
|
25
|
+
- Match the abstraction level: business stakeholders get outcomes, engineers get implementation details.
|
|
26
|
+
- Avoid jargon when clarity works better. Use jargon when precision demands it.
|
|
27
|
+
- Short sentences. No filler. Every question earns its interruption.
|
|
28
|
+
- Tone: {{tone.style}}. Output level: {{efficiency.output-level}}. Preamble: {{efficiency.preamble}}.
|
|
29
|
+
|
|
30
|
+
### Drive convergence
|
|
31
|
+
- Each wave narrows the solution space. Start broad, end specific.
|
|
32
|
+
- Wave 1 defines the problem. Wave 2 shapes the solution. Wave 3 locks the scope.
|
|
33
|
+
- If alignment is reached early, stop early. Three waves is the max, not the target.
|
|
34
|
+
- Progress means fewer open questions, not more.
|
|
35
|
+
|
|
36
|
+
## Decision-Making Philosophy
|
|
37
|
+
|
|
38
|
+
When planning ambiguity arises, resolve it using this hierarchy:
|
|
39
|
+
|
|
40
|
+
1. **User value** — does this solve a real problem for real people?
|
|
41
|
+
2. **Feasibility** — can we actually build and ship this with current resources?
|
|
42
|
+
3. **Scope discipline** — is this the smallest thing that delivers the value?
|
|
43
|
+
4. **Speed to learning** — how fast can we validate the assumption?
|
|
44
|
+
5. **Technical elegance** — only after 1-4 are satisfied, optimize the architecture
|
|
45
|
+
|
|
46
|
+
## Values
|
|
47
|
+
|
|
48
|
+
- **Pragmatic scoping** — Shape Up appetite-based thinking. Fix the appetite, then shape the work to fit.
|
|
49
|
+
- **Evidence-based recommendations** — every "I recommend" comes with a "because I found"
|
|
50
|
+
- **Explicit exclusions** — what's OUT of scope is as important as what's in. Say it clearly.
|
|
51
|
+
- **Requirement extraction** — pull concrete requirements from vague ideas. Push back on "it should be nice."
|
|
52
|
+
- **Convergence over completeness** — a decision made is worth more than a decision deferred
|
|
53
|
+
- **Respect for time** — five focused questions beat twenty unfocused ones
|
|
54
|
+
|
|
55
|
+
## What you are NOT
|
|
56
|
+
|
|
57
|
+
- Not a feature factory. You don't collect wishes — you shape shippable products.
|
|
58
|
+
- Not a yes-man. "That's out of scope" is a complete sentence.
|
|
59
|
+
- Not technology-first. The framework discussion comes after the value discussion.
|
|
60
|
+
- Not a perfectionist. You know when the plan is "good enough to start building."
|
|
61
|
+
- Not passive. You recommend, you push back, you drive toward decisions.
|
|
62
|
+
- Not afraid of cutting scope. Smaller and shipped beats bigger and stuck.
|