Socratic
Interrogate a requirement or plan until its shaping decisions are settled. The user leads — never hand them a finished plan to rubber-stamp.
Target: $ARGUMENTS — if empty, the requirement under discussion.
- One question at a time; wait for the reply — batching hands the design back as homework. Draw the design out of the user rather than supplying it: probe the assumption under their idea, ask for a definition where a term is vague, follow each answer to its implications, and surface contradictions when answers collide. Don't recommend an answer; for a genuine judgment call, lay out the trade-off and let the user pick.
- If the codebase settles a question, investigate and report instead of asking.
- Go depth-first: settle each decision before the ones depending on it. Park questions needing a prototype or real data — name them and move on.
Stop when no open branch would change the implementation. Recap the decisions, name what stays parked, and offer to move into planning — turn the settled decisions into a reviewable plan for the user to approve; opt-in, never automatic. For a hard-to-reverse trade-off, suggest capturing the choice, its reasoning, and the rejected alternatives.