Use when planning features, designing changes, or scoping work before implementation. Use when user says plan, design, think through, shape, or how should we approach. Use before building anything non-trivial in a brownfield codebase.
Core principle: align on the problem and reduce uncertainty before production implementation. Do not propose HOW until WHAT is clear; do not produce a plan that hides unresolved decisions.
Shaping is not ceremony. It chooses the smallest artifact that makes the next implementation step safe: a one-sentence scope, a grilling question, a prototype, a decision map, or agent-ready vertical slices.
NO PRODUCTION IMPLEMENTATION BEFORE ALIGNMENT.
Do not edit production code, create migrations, generate files, or commit while shaping. Throwaway prototypes are allowed only when they answer a specific question and are clearly marked to delete or absorb later.
| Situation | Mode | |---|---| | Clear change, <3 files, no real design decision | State done criteria + quick approach; ask for thumbs up | | Non-trivial feature/design in a codebase | Full shaping | | User wants to stress-test an idea / “grill me” | Grilling loop | | A question cannot be answered from prose | Throwaway prototype | | Too many unknowns for one session | Decision map | | Multiple agents/days of implementation | Agent-ready PRD/issues/plan |
If you pick the wrong mode, say so and switch. Do not force full shaping onto trivial work; do not fake certainty on fog-of-war work.
Read the codebase silently before asking questions when code can answer them. Understand:
git log --oneline -- <file> for files you rely on.Verify runtime assumptions by running code, throwaway scripts, tests, or grep. Reading tells you what could happen; running tells you what does happen.
Output only what changes the conversation: “this already exists”, “this pattern is fragile”, or “the code contradicts the premise”.
Write requirements as outcomes and constraints, not implementations:
CardTemplate with a JSON column.”Define acceptance proof before options:
If you cannot verify something yourself, state the manual check the user must do.
Use when the plan/design needs sharpening. Walk the design tree depth-first.
Rules:
Format:
Foundational decision: <decision>
Options:
A. ...
B. ...
C. ...
My recommendation: <option> because <evidence/tradeoff>.
Which one matches your intent?
Do not dump a questionnaire. Ten questions at once is avoidance disguised as diligence.
Stop grilling when requirements are stable and new questions no longer change the plan.
A prototype is throwaway code that answers one question.
Use when:
Rules:
Default shapes:
Do not call production implementation a prototype. If it must be kept, it is implementation and needs normal TDD/verification.
Use when a loose idea has more uncertainty than one shaping session can resolve.
Create a compact decision map instead of a fake implementation plan. Each ticket answers one blocking question and is sized for one agent session.
# Decision Map: <idea>
## #1: <question>
Blocked by: none | #n
Type: Research | Prototype | Discuss
### Question
<the decision to resolve>
### Answer
<empty until resolved>
Ticket types:
Stop after creating the map unless the user explicitly asks to resolve ticket #1 now. Push back the fog one node at a time.
Skip the map if grilling resolves all decisions in-session.
Propose 2–3 concrete mechanisms, not vague directions. Compare against requirements with ✅ / ❌ only. If you cannot say yes, it is no until proven.
Flag unknowns as ⚠️ and spike them before recommending if they could change the choice.
Falsify before recommending:
This works IF ___.
Then check the condition: run a throwaway script, estimate workload × cost, grep callers, inspect real config, or test the critical API.
If all options pass but one feels wrong, you are missing a requirement. Add it.
Lead with your recommendation and why. Challenge the user’s preferred approach if investigation disproves it.
Then wait for the decision. Do not proceed to implementation until the user chooses or explicitly accepts your recommendation.
Slice vertically by observable capability, not by technical layer.
Bad:
Good:
Each slice includes data, logic, UI/API, tests, and acceptance proof. Each should be demoable or verifiable on its own.
For multi-agent work, produce agent-ready slices/issues:
## Slice: <observable capability>
Goal: <what user/consumer can now do>
Scope: <included>
Acceptance proof:
- [automated] ...
- [manual] ...
Dependencies: none | <slice ids>
Out of scope: <explicit exclusions>
Notes for agent: <patterns, seams, risks>
Make dependencies explicit. If agents will work independently, recommend fresh context per slice and a shared PRD/plan as the source of truth.
While shaping, capture durable context when it crystallizes:
Do not write ADRs for obvious or temporary choices.
A shaping session is complete when you have one of:
Implementation completion still requires a final Verification section:
### Verification
- [automated] ...
- [manual] ...
At least one item must be observable behavior beyond “tests pass”.
| Anti-pattern | Fix | |---|---| | “Just build it and we’ll refine” | Shape the minimum decision first | | Asking what code can answer | Inspect code silently | | Ten questions at once | One foundational decision at a time | | Question without recommendation | Give your recommended answer | | Requirements describe implementation | Rewrite as outcome/constraint | | Fake plan despite unknowns | Create decision map | | Prose debate cannot settle behavior | Build throwaway prototype | | Prototype becomes production | Delete or absorb through normal implementation | | “Tests pass” as done | Name observable acceptance proof | | Horizontal slices | Slice vertical tracer bullets | | ADR for everything | ADR only hard-to-reverse + surprising + trade-off |
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer