From an uncertain idea to a build-ready decision
product-engineering
Raw idea → build-ready decision brief.
The contract
- Use it when
- You have a raw product idea or problem and need to converge on a build-ready decision brief before anyone writes code.
- You type
Shape this: teams cannot tell which pack to install first.- You provide
- A product idea or problem description, with any scope constraints or prior discovery context.
- You receive
- A build-ready decision brief — intent, validated candidate, assumption-test, and decomposition into delivery briefs.
Where you decide
The agent pauses at these points. You choose whether to continue, redirect, or stop.
What changes when you install this
After installing product-engineering, upstream intent work runs through discovery-loop: frame → explore → converge → commit. The discovery-lead agent diverges across candidate product shapes, drives the lens roster to convergence, and emits a connected hypothesis with validation hooks — no engine. You review at four human gates; the agent runs everything between them.
The journey
| Say this | What happens |
|---|---|
discovery-loop |
Start or resume a supervised end-to-end discovery |
frame-intent |
Frame a product problem at any altitude |
de-risk-intent |
Surface the riskiest assumption and design a prototype approach |
decompose-intent |
Break the converged intent into delivery briefs and specs |
ux-writing |
Characterize the product voice and write per-state UI copy |
Which level to enter at
Every intent — from a product bet to a single feature — is the same artifact with one field that differs: Level. The recognized set runs deepest-product-bet first:
product-vision › product-strategy › capability › feature
You enter at the altitude you’re operating at. Most work starts somewhere in the middle; the rungs above exist for when the real bet is higher up.
| Level | The question being answered | Enter here when… |
|---|---|---|
product-vision |
Should this product exist at all, for whom, and through what wedge? | You’re at a greenfield concept and the existence bet is not yet settled |
product-strategy |
What is the central challenge, and what path do we take through it? | The product exists but the strategic direction — which problem, which segment, in what order — is the open question |
capability |
Can we build and operate this platform or capability coherently? | The strategy is set and you’re committing a bounded capability (a billing platform, an API gateway, a data pipeline) |
feature |
Do users want this specific thing, and does it land? | The scope is already clear — one buildable, shippable slice |
The set is open: if your org operates at an altitude the recognized set doesn’t name (an initiative, an epic), name it — Level is a free string, not a fixed ladder.
De-risking shifts with the level. At product-vision and product-strategy, the riskiest assumption is market-existence — will anyone want this at all, can it be a business? That bet is tested once at the top, not relitigated per feature. At capability, the risk is architectural or adoption-shaped. At feature, it’s desirability — do users want this feature?
Decomposition runs one level at a time. A capability intent decomposes into feature intents; a feature intent decomposes into a spec/slice — the shippable unit your delivery loop builds. Each child re-enters the loop at its own level: frame-intent → de-risk-intent → decompose-intent.
1. Shape intent
Type frame-intent and describe the product problem — any altitude, any level of clarity. The agent will confirm the level with you before framing begins; if the scope implies a higher bet, it will offer to raise it.
At feature level — the scope is already clear, one shippable slice:
frame-intent
Level feature
Problem New users don't understand the product's value in the first session.
User First-time user arriving after sign-up with no prior context.
Outcome Activation rate rises; first-session drop-off decreases.
Ratify framing? ›
At capability level — committing a bounded platform or capability:
frame-intent
Level capability
Problem Every team builds its own billing integration — no shared primitives.
User Engineering teams shipping subscription-based features.
Outcome Time to add a new billing flow drops from weeks to days.
Ratify framing? ›
At product-vision level — the existence bet is the open question:
frame-intent
Level product-vision
Problem Small studios can't afford dedicated developer tooling, so they ship slowly and inconsistently.
User 2–5-person studio without a dedicated platform engineer.
Outcome Studios reach production quality on their first release, not their third.
Ratify framing? ›
- You decide: approve the intent — ratify the framing before the loop diverges. A vague problem means the loop explores the wrong space.
- Output: an intent document with a specific problem, named user, and measurable outcome, stamped with the confirmed
Level. - State: draft
2. Diverge across candidates
Type discovery-loop and let the agent run explore-options to generate candidate product shapes with distinct tradeoff profiles.
explore-options
Shape Mechanic Riskiest assumption
A Guided setup wizard Users complete wizard without abandoning
B API-first self-serve Users tolerate high first-session cost
C Community-driven templates Template quality drives first activation
D In-app explainer video Passive exposure converts without action
- Output: a set of candidate product shapes with distinct tradeoff profiles — each with a named riskiest assumption.
- State: draft
3. Run the lens roster
The discovery-lead agent runs discovery-threat-reviewer and discovery-reliability-reviewer against each surviving candidate; each reads cold and returns findings.
discovery-threat-reviewer
Concern Shape A: wizard collects account data before trust is established
Blocker Shape B: token stored at rest without encryption boundary named
discovery-reliability-reviewer
Concern Shape C: community template freshness has no defined staleness bound
- Output: a filtered candidate set with review findings attached; candidates with Blockers are eliminated.
- State: read-only
4. Check mid-discovery
The agent surfaces the surviving candidates for your mid-course review.
discovery-loop
Candidate Status Note
Shape A surviving concern addressed — trust framing added
Shape C surviving staleness concern open — carried to convergence
Shape B eliminated token-at-rest blocker
Shape D eliminated no commitment signal detected
Mid-discovery check — confirm candidates? ›
- You decide: choose a candidate — confirm the surviving candidates or direct a re-exploration. This is the last cheap moment to expand the option space.
- Output: a confirmed candidate field ready for convergence.
- State: draft
5. Converge on the candidate
The agent runs de-risk-intent to surface the riskiest assumption and design a test, then decompose-intent to break the winning shape into the next level down.
de-risk-intent
Assumption Users complete the wizard without abandoning at step 2.
Kill cond. < 4 of 6 target users reach step 3 in a moderated prototype session.
Approach validate-first — predeclare the line, then run sessions.
Hook Conduct 6 moderated prototype sessions with target user profile.
What decompose-intent produces depends on your level:
- At
capabilityor above — child intents at the next level down (e.g. a capability intent produces feature intents). Each child re-enters the loop at its own level and is de-risked independently. - At
feature— one independently shippable feature becomes a delivery contract. Use a delivery brief only when the result coordinates multiple specs or repositories.
A child whose riskiest assumption is killed bubbles back up — the parent must re-decompose or reframe. That feedback edge keeps the tree honest.
- Output: a de-risked candidate with a predeclared kill condition and a named validation hook; then a decomposition one level down — child intents or, at the leaf, a delivery contract unless multi-spec or cross-repository coordination requires a delivery brief.
- State: draft
6. Reconcile and commit
The agent presents the full discovery sidecar — intent, assumption-test, validated candidate, and decomposition — for your final review.
discovery-loop
Section Status Notes
intent ratified feature level, onboarding-activation
assumption-test done validate-first, 6 sessions, line predeclared
candidates 1 of 4 Shape A survived
decision-brief ready validation hook attached
Reconcile? ›
- You decide: approve the decision brief — is the brief complete? Then commit to build — am I ready to build this? These are two distinct decisions; read the brief in full before ratifying either.
- Output: a ratified decision record with a connected hypothesis and
validation hooks. One independently shippable
featurehands off as a delivery contract; a multi-spec or cross-repository result uses a coordinating delivery brief. A compatible Core invocation admits either throughwork-intake; otherwise the agent renders a portable bounded handoff. Atcapabilityor above it produces ratified child intents — each re-enters the loop independently at its own level. - State: confirmed-write
What good output looks like
- YouUse
discovery-loopto take this feature idea to a build-ready decision brief. Release owners can see which automated check failed, but not what action will unblock it. Diverge before converging. - AgentInitial framing: the affected user is the release owner; the failure names the rule but not the corrective action; success means choosing the next step without inspecting source code.
- YouApprove the intent.
- AgentI compared three candidates: richer inline guidance, a linked runbook, and interactive remediation. I recommend concise inline guidance with a stable documentation link: it shortens recovery without creating a new runtime path.
- YouChoose that candidate.
- AgentThe decision brief now records the evidence, boundaries, risks, rejected alternatives, and success measures.
- YouApprove the decision brief.
- AgentThe capability map separates failure diagnosis, corrective guidance, and verification. The first build slice is specified and independently reviewable.
- YouCommit to build.
Human gates
For each gate, everything you need to make a confident decision.
Approve the intent
What to check, good, bad, consequence
What to check
- Is the problem statement specific enough to eliminate candidates? (A vague problem cannot be de-risked.)
- Is the user named specifically — not 'users' or 'teams'?
- Is the outcome measurable — what would change in the world if this succeeded?
What good looks like
A framing that names a specific user, a falsifiable problem, and a measurable outcome.
What bad looks like
A framing that could apply to any product — 'improve developer productivity' is not a problem statement.
Consequence of skipping
This is the framing gate. A bad framing means the entire discovery loop explores the wrong space.
Choose a candidate
What to check, good, bad, consequence
What to check
- Which candidates survived the lens roster? Do the survivors feel right?
- Are eliminated candidates genuinely eliminated, or just deprioritized?
- Is there a candidate missing that should be explored?
What good looks like
A clear field of two or three differentiated candidates, each with a distinct tradeoff profile.
What bad looks like
All candidates converged to the same shape before the lens roster ran — the diverge step didn't diverge.
Consequence of skipping
The mid-discovery check prevents the loop from converging on a bad candidate without the human noticing.
Approve the decision brief
What to check, good, bad, consequence
What to check
- Did both discovery reviewers (threat + reliability) flag anything that would block the build?
- Does the validated candidate's hypothesis have a clear validation hook?
- Is the decomposition granular enough to fit in one build-loop iteration?
What good looks like
A build-ready decision brief — reviewers clean, falsifiable hypothesis, decomposition that fits the delivery loop.
What bad looks like
A brief that passes the gate but skips the riskiest assumption. Or a decomposition too large for one loop.
Consequence of skipping
This produces the build commitment artifact. A bad brief means the delivery loop builds the wrong thing faithfully.
Commit to build
What to check, good, bad, consequence
What to check
- Is the decision brief complete? (intent, assumption-test, validated candidate, decomposition)
- Is there anything in the brief you are not prepared to ship?
What good looks like
You ratify the brief and hand it to the delivery loop.
What bad looks like
You ratify with reservations and don't surface them. The delivery loop builds faithfully to a brief you had doubts about.
Consequence of skipping
This is the discovery-to-delivery handoff. After this gate, the delivery loop builds.
Typical session
- Agent turns
- 12–20
- Human gates
- 4
- Wall-clock time
- 60–120 min
Install
agentbundle install --pack product-engineering --scope userSkills in this pack
discovery-loop4 gatesThe discovery supervisor. Diverges across candidate product shapes, drives the lens roster to convergence, and emits a connected hypothesis with validation hooks.
frame-intent1 gateEstablishes product framing — problem, user, outcome — before the loop begins; optionally requests Core's independent shaping review when available.
frame-domain1 gateGrounds the product in the real-world activity it serves and bounds the MVP — produces Domain Framing and Scope Boundary artifacts before the convergent design loop.
frame-situation1 gateClassifies an initiative-level signal into a typed finding, assesses Wardley capability maturities, and anchors the team to the right entry point in the PE six-step shaping sequence.
identify-opportunities1 gateStep 2 of the PE six-step shaping sequence — surfaces all functional, emotional, and social jobs behind an opportunity area, scores each via the Ulwick formula, and produces a ranked opportunity-assessment.md artifact.
diverge-solutions1 gateGenerates ≥3 structured comparable solution options for a confirmed opportunity, with a recommendation and retained rationale for parked and rejected options.
lean-canvas1 gateElicits an initiative brief through an adapted Lean Canvas (simple 5-box or full 9-box) and produces a single shareable initiative brief with a Value Proposition section.
de-risk-intent1 gateSurfaces the riskiest assumption and designs a prototype approach to de-risk it before committing to build.
place-bet1 gateStep 5 of the PE six-step shaping sequence — commits the team to a chosen direction by producing a structured bet.md with a full betting table for map-capabilities to reason against.
map-capabilities1 gateStep 6 (terminal) of the PE six-step shaping sequence — translates a committed bet into a Capability Map with L1 domain organisation, Wardley × strategic-criticality annotation, Build/Buy/Partner/Adopt disposition, and a Build-only suggested build sequence anchoring M3–M6 spec-writing.
decompose-intent1 gateDecomposes the chosen direction into briefs and specs for the delivery loop.
explore-optionsGenerates candidate product shapes with distinct tradeoff profiles.
plan-validationValidates a plan against the discovery sidecar — checks that the build plan addresses the grounded hypothesis.
ux-writing1 gateCharacterizes a product's voice and writes blame-free, actionable UI copy.
align-value-stream1 gateCoordinates a multi-component product intent across a business-unit value stream.