Subcommand Dispatch — Per-Recipe Behavior (Full Detail)
Canonical, unabridged behavior notes for each Plea Recipe. SKILL.md § Subcommand Dispatch carries one-line summaries; this file holds the full calibration ceilings, disambiguation lanes, and handoff order. Read the per-recipe protocol file named in each note for the method itself.
request: EXPLORE. 3-7 personas (beginner + power user + edge case required). First-person voice. Include ≥1 aspirational "magic wand" demand (see Core Contract) alongside the friction-relief requests — overlayASPIREexplicitly when the user wants a bold, delight-driven slate rather than incremental fixes.need: DEEP on latent unmet needs the user cannot articulate. Apply the Unmet-Need Elicitation method (reference/patterns.mdPattern 7) — infer needs from observable proxies (workaround / abandonment / non-consumption / over-service / tolerated-pain / adjacent-tool-leakage), report the underlying need not the workaround, and name the team blind spot via the curse-of-knowledge table. Calibration ceiling is[hypothesis]until Trace/Field behavioral evidence confirms the proxy — default handoff is Field/Trace for validation, then Spark/Scribe[unified]. Disambiguation:need= breadth-first discovery; escalate one need to5whys(root cause) /jtbd(the job) /opportunity(structure toward an outcome).challenge: CHALLENGE. Counter assumptions in the existing roadmap. Discipline: steelman → counter → falsifiable test → verdict. State each assumption in its strongest form before countering (no strawman); give every challenge a concrete test that would confirm/refute it (no test ⇒ synthetic FUD, drop it); close with a verdict (SURVIVES/WEAKENED/KILLED-pending-test) where the test, not Plea, settles it. Calibration ceiling[hypothesis]— a synthetic challenge is never user fact. Lane:challenge= user-voice objection (a persona disagreeing); not architectural arbitration (magi), failure-mode enumeration (omen), or scope subtraction (void). Hand off to Scribe[unified] (roadmap integration) / Rank (re-prioritize survivors).roleplay: DEEP, single-persona depth — a sustained first-person embodiment, not a demand list. Apply the Single-Persona Depth method (reference/persona-embodiment.md): stack ≥ 3 of the 5 tactics on the one persona, span a full Day-in-the-Life / journey arc with an emotional trajectory, and hold character coherence (consistent vocabulary/assumption/frustration; zero PM-voice leakage — break-character ⇒ restart the scene). Shape output as aROLEPLAY_ARC(setup → inciting friction → escalation → turning point → demands) for the Scribe (user stories) / Saga (narrative) handoff. Representativeness ceiling[hypothesis]— one vivid persona is the highest projection-bias risk; state "one persona, not the market" and recommend a breadth (request/multi) or Field pass before generalizing.jtbd: Christensen / Moesta Switch interview producing synthetic JTBD (4 forces × 8-stage Job Map × functional/emotional/social). Emit aSWITCH_PREDICTION— per-force calibration tags, aSWITCHES/STAYS/TOO-CLOSE-TO-CALLverdict, the riskiest force (verdict-flipper), and afalsifiable_test; ceiling[hypothesis]until Field validates with real switchers. Bridge Job-Map per-stage frictions into Plea's standard tagged demands (don't stop at the abstract map) and run therequestself-rejection gate. Real-user JTBD is Field's domain — tagsynthetic: trueand hand off (riskiest_force first). Protocol:reference/jtbd-switch-interview.md.5whys: Toyota / Ohno 5 Whys on a user demand. ≥5 vertical levels, lateral Ishikawa fishbone, causal vs sequential discipline; rewrite output as root unmet need. Calibrate the synthetic chain: per-linkconfidence(monotonically decaying with depth), aspeculation_cliffmarker, a namedweakest_link(Field validates first — it invalidates its descendants), and aroot_falsifiable_test; root ceilings at[hypothesis]until Field/Voice confirms with real-user language. Protocol:reference/5whys-root-cause.md.opportunity: Torres OST — Outcome (behavioral metric) → Opportunity (user-voice unmet need) → Solution (2-4) → Experiment (smallest test + kill rule). Each node carries acalibrationtag (default[hypothesis]; only[validated]/[supported]are growth-acceptance Insight-Ledger-citable). Synthetic-tree prune caveat: every node is self-generated, so don't cut high-impact branches for "low evidence" (circular) — cut only[synthetic-only]implausible nodes; high-impact[hypothesis]nodes go to Field. Name the load-bearing opportunity (highest impact × uncertainty) — Field validates it first. Weekly cadence; hand off to Field / Spark / Experiment. Protocol:reference/opportunity-solution-tree.md.multi: Multi-engine demand generation (dual-engine baseline Claude + Codex; tri-engine when agy AVAILABLE). All engines channel the same persona set; divergence reveals engine-specific persona-channeling angles. Per-cluster scoring (UNIVERSAL-DEMAND3/3,LIKELY-DEMAND2/3,VERIFIED-DIVERGENT-VOICE1/3) + cross-persona axis (CROSS-PERSONA-UNIVERSAL) + negative concurrence (NO-DEMAND-CONSENSUS— all engines silent ⇒ don't-build/non-need signal, the subtraction signal single-engine can't produce; distinguish "agree it's fine" from shared-bias blind spot). Name the load-bearing demand for Field to validate first (riskiest-first family). Compatible withCOMPETE/EDGE/CHALLENGE. Critical: divergent voice often surfaces silent-majority insight — NOT auto-low-value. Full flow + JSON schema + degraded modes:reference/tri-engine-demand.md.
Per-Recipe Behavior Notes (SKILL.md excerpt)
Behavior notes per Recipe — summaries below; full calibration ceilings, disambiguation lanes, and handoff order in reference/subcommand-behavior.md.
request: EXPLORE. 3-7 personas (beginner + power user + edge case required), first-person voice, ≥1 aspirational "magic wand" demand (Core Contract); overlayASPIREfor a bold, delight-driven slate.need: DEEP on latent unmet needs via proxy-based Unmet-Need Elicitation (reference/patterns.mdPattern 7); ceiling[hypothesis]until Trace/Field confirms, handoff Field/Trace first then Spark/Scribe[unified]. Breadth-first — escalate one need to5whys/jtbd/opportunity.challenge: CHALLENGE — steelman → counter → falsifiable test → verdict (reference/mode-playbooks.md); ceiling[hypothesis]. Lane = user-voice objection, notmagi/omen/void. Handoff Scribe[unified] / Rank.roleplay: DEEP single-persona depth — sustained first-personROLEPLAY_ARC, ≥3 tactics, character coherence with zero PM-voice leakage (reference/persona-embodiment.md). Highest projection-bias risk; ceiling[hypothesis], recommend breadth/Field before generalizing. Handoff Scribe / Saga.jtbd: synthetic Switch interview — 4 forces × 8-stage Job Map × functional/emotional/social +SWITCH_PREDICTION(verdict, riskiest force,falsifiable_test); ceiling[hypothesis], bridge to tagged demands and run therequestself-rejection gate. Protocol:reference/jtbd-switch-interview.md.5whys: ≥5-level why-chain + lateral Ishikawa, causal-vs-sequential; per-link decaying confidence,speculation_cliff,weakest_link(Field validates first),root_falsifiable_test; ceiling[hypothesis]. Protocol:reference/5whys-root-cause.md.opportunity: Torres OST — Outcome → Opportunity → Solution → Experiment (+ kill rule); per-nodecalibration, synthetic-tree prune caveat, named load-bearing opportunity for Field. Weekly cadence; handoff Field / Spark / Experiment. Protocol:reference/opportunity-solution-tree.md.multi: multi-engine demand generation (dual-engine Claude + Codex baseline; tri-engine when agy AVAILABLE), same persona set. Concurrence-divergence scoring + negative concurrence (NO-DEMAND-CONSENSUS= don't-build signal), named load-bearing demand for Field. Compatible withCOMPETE/EDGE/CHALLENGE; divergent voice is NOT auto-low-value. Protocol:reference/tri-engine-demand.md.