fix: establish shared intent before implementation

Discover the intended outcome, audience and success criteria before proposing
features when the request leaves them unclear. Reflect the understanding for
correction and carry it into the selected path's design artifact.

Bind approval to the actual stage presented: new architectural work requires
written-spec review and the planning handoff before implementation. Preserve
the existing lighter spike and bounded paths and clarify the short-design
example accordingly.

Jesse requested this repair after a React todo session advanced from feature
scope approval without establishing purpose. The controlled CLI comparison
observed purpose discovery in 5/5 candidate openings versus 0/5 controls, with
full-chain and holdout outcomes and their limits recorded in the PR. This
commit preserves the independently reviewed skill bytes; research artifacts
and the original development history are archived outside the PR.
This commit is contained in:
Jesse Vincent
2026-09-04 16:03:59 -07:00
parent fd02874aa5
commit 3b4f2caf9e
+47 -12
View File
@@ -11,12 +11,48 @@ Start by classifying how much process the request needs, then work
through your path: understand the context, refine the idea, present a through your path: understand the context, refine the idea, present a
design, and get your human partner's approval. design, and get your human partner's approval.
## Establish Shared Understanding
The outcome of brainstorming is an understanding your human partner can
recognize and correct, grounded in what they want to accomplish.
1. **Discover intent.** Use the request and available context to identify
the intended outcome, who it is for, and what success looks like. When
that information is missing, ask one focused question about purpose or
intended use before proposing features or an approach. Knowing the app
genre does not tell you why your partner wants it. Gathering missing
requirements does not ask them to authorize the task again.
2. **Write back your understanding.** Summarize the intended outcome,
relevant constraints, and success criteria in a short note your partner
can assess. Separate what they said from assumptions. Invite correction
and incorporate their answer before treating this as the design brief.
3. **Carry intent into the design.** Preserve the agreed understanding in
the selected path's design artifact: the written spec for architectural
work, or the in-chat design/probe for bounded work and spikes. Check
proposed features and technical choices against that understanding.
When the request already supplies the purpose and constraints, reflect
that understanding instead of asking the same questions again. Keep the
note concise; its accuracy and the opportunity to correct it matter.
<HARD-GATE> <HARD-GATE>
Do NOT invoke any implementation skill, write any code, scaffold any Before taking any implementation action, including invoking an
project, or take any implementation action until you have told your implementation skill, writing product code, scaffolding, installing
human partner what you intend and they have approved it. This applies product dependencies, or creating an external project, complete the
to EVERY task on EVERY path below — the ceremony scales with the task; selected path's prerequisites:
the approval gate never does.
- Spike: the human partner approves the question and probe.
- Bounded: the human partner approves the short in-chat design.
- Architectural: the human partner reviews and approves the written spec,
then reviews the written implementation plan and selects its execution
method. Conversational design approval only permits writing the spec;
written-spec approval only permits invoking writing-plans.
A reply approves the stage actually presented. Approval of an idea or
feature scope does not approve artifacts that do not exist yet. Resume
at the earliest incomplete stage; do not turn one approval into permission
to skip the rest of the selected path. Read-only project exploration is
allowed while those prerequisites remain incomplete.
</HARD-GATE> </HARD-GATE>
## Three Paths ## Three Paths
@@ -53,18 +89,17 @@ stop, say so, and step up. Nothing downgrades mid-task.
## Anti-Pattern: "Too Simple To Need Approval" ## Anti-Pattern: "Too Simple To Need Approval"
Every path ends with your human partner approving your intent before Every path ends with your human partner approving the required design
implementation. A todo list, a single-function utility, a config before implementation. A bounded change may need only two sentences in
change — the design may be two sentences in chat, but you MUST present chat. A new todo-list project is architectural and requires the written
it and get approval. "Simple" tasks are where unexamined assumptions spec and planning handoffs. Scale the artifact to the selected path;
cause the most wasted work. What scales with simplicity is the complete that path's reviews before implementation.
artifact, never the approval.
## Red Flags ## Red Flags
| Thought | Reality | | Thought | Reality |
|---------|---------| |---------|---------|
| "This is too simple to need a design" | Simple means a short design, not no design. Two sentences in chat, then approval. | | "This is too simple to need a design" | Follow the selected path: a bounded change gets a short chat design; an architectural change gets the written spec and planning handoffs. |
| "I'll call it bounded and skip the spec" | Reaching for a label to skip work IS the doubt — take the heavier path. | | "I'll call it bounded and skip the spec" | Reaching for a label to skip work IS the doubt — take the heavier path. |
| "It's bounded and the design is obvious — I'll start while they read it" | The gate is the approval, not the design's length. Present, then stop until you hear yes. | | "It's bounded and the design is obvious — I'll start while they read it" | The gate is the approval, not the design's length. Present, then stop until you hear yes. |
| "I understand this kind of app, so it's bounded" | Bounded measures the repo, not your familiarity. A new project has no existing flow — it is architectural. | | "I understand this kind of app, so it's bounded" | Bounded measures the repo, not your familiarity. A new project has no existing flow — it is architectural. |