100%

Coverage-driven grill-me front-end in /create-plan

Goal

Interactive /create-plan grills the user across a coverage checklist before authoring, producing the mission + the required functional criterion; suppressed when grilling is impossible.

Implementation Sketch

Add create_plan_runtime/grill_checker.py (deterministic coverage-checklist state router: dimensions = outcome/consumer/acceptance-test/scope/constraints/deps; next-question-or-complete; skips dimensions the opening prompt answered; strong-default with a logged-waiver early-escape). SKILL.md emits the AskUserQuestion rounds (recommended-option per ask-user-question.md, up-to-4 per round, all before scaffold per Front-Loading). Grill output -> mission_ref body + the ownerless functional criterion fed to scaffold. Suppress in --inline/--autopilot (hybrid flag-precedence); fallback authors best-effort mission with assumptions stamped into the plan. Persist the grill transcript as provenance (decisions/ sidecar).

Spec References

scripts/create_plan_runtime/main.py select/scaffold; .claude/rules/skill-control-contract.md Front-Loading + Hybrid Contract; .claude/rules/ask-user-question.md.

Work Items

  • Author create_plan_runtime/grill_checker.py coverage-checklist state router (dimensions + next-or-complete + waiver logging).
  • Wire the grill loop into /create-plan SKILL.md (AskUserQuestion rounds, recommended-option, grill-output -> mission + functional criterion).
  • Suppress grill in --inline/--autopilot; author stamped-assumptions fallback mission.
  • Persist grill transcript to a decisions/ provenance sidecar.
  • pytest: state-router dimension coverage + waiver logging + suppression-mode fallback.