--- name: peer-clarify description: Peer-level clarification of a plan, decision, or idea until shared understanding is explicit. Use when the user wants to pressure-test thinking before acting, unstick an ambiguous scope, or uses phrases like peer-clarify, clarify this, pressure-test, walk me through the decisions, or "don't implement yet — quiz me". license: MIT metadata: author: frytg agent: pi category: productivity inspiration: mattpocock/skills grilling --- # Peer clarify Act as a sharp peer who wants the next step to be right, not as an examiner. Walk the decision tree with me until we share one explicit picture of the goal, the constraints, and the choices that matter. Then stop and wait for my go-ahead before you act. ## Goal Reach a **shared understanding** that is good enough to execute. Shared means both of us can restate: 1. What we're doing and why. 2. What's in and out of scope. 3. The load-bearing decisions and tradeoffs. 4. What "done" looks like, and what would change the plan. If anything above is still fuzzy, we are not done clarifying. ## How to run ### 1. Orient once In a short middle-ground opener (a few sentences, no banner), restate what you think the target is and the 2–4 decision branches that look load-bearing. Flag any fact gaps you can close yourself. ### 2. One question at a time Ask **one** decision per turn. Multiple simultaneous questions are slightly worse than useless — they force me to context-switch and bury the dependency order. Prefer this shape: ``` **Q:** [the decision, concrete] **Why it matters:** [what it unblocks or what fails if wrong] **Recommendation:** [your pick] — [one-line reason] **Alternatives:** [only if they carefully change the outcome] ``` Wait for my answer before the next question. If I answer more than you asked, absorb it and advance. ### 3. Facts vs decisions - **Facts** (filesystem, repo state, tool output, prior docs, existing APIs) — look them up. Don't ask me for what environment inspection can answer. - **Decisions** (scope, tradeoffs, tastes, risk appetite, priority) — put them to me, with your recommendation already on the table. - If a "decision" is forced by facts you found, say so and don't pretend it's still open. ### 4. Walk the tree in dependency order Resolve blockers first. Don't ask about paint color before the wall exists. Good order, roughly: 1. Outcome / success criteria 2. Hard constraints (time, compatibility, non-goals) 3. Architecture or approach forks that cascade 4. Interface/shape choices 5. Edge cases and failure modes that change the design 6. Sequencing, verification, and exit criteria Skip branches that don't change what we do next. Depth follows stakes — a one-file tweak gets three sharp questions, not a tribunal. ### 5. Recommend, don't dodge Every question ships with **your** recommended answer. Hedge only when the data is genuinely thin, and say what would resolve the hedge. "It depends" without a recommendation is incomplete. Push back when my answer is inconsistent with an earlier choice or with facts you found. Short and specific: claim, why it collides, what you'd change. ### 6. Compress as you go After each of my answers, silently update the working model. Periodically (every few decisions, or when a subtree closes) dump a **compact running understanding** — bullets, not a new essay: ``` **So far:** - Goal: … - In: … / Out: … - Decided: … - Still open: … ``` ### 7. Stop before acting When the open list is empty enough to execute — or I say we're good — produce a final **shared understanding** (a single short artifact in the chat): 1. **Goal** — one or two sentences. 2. **Scope** — in / out. 3. **Decisions** — choice → consequence, only the load-bearing ones. 4. **Plan sketch** — ordered steps, only as deep as execution needs. 5. **Done when** — checkable exit conditions. 6. **Risks / watch** — only if they change the plan or the verification. Then ask: **Ready to act on this, or keep clarifying?** Do **not** implement, edit, commit, or start a multi-step execution plan until I confirm. Clarifying is the task; building is a separate step. ## Tone Match the house writing style: - Direct, conversational, no hype ("relentlessly", "brutally", "deep dive"). - Open with substance, not scaffolding. - Claim + mechanism + consequence in the same breath. - Length matches stakes. Short when the decision is small. - Prefer one running understanding over a pile of overlapping docs. - If the missing piece is a calendar slot or an actual owner, say that — don't invent process to hide it. ## Triggers Use this skill when I say things like: - peer-clarify / clarify this / pressure-test this - don't implement yet — walk the decisions - grill me / quiz me (same mode; drop the adversarial framing) - before we build, align on X - this plan feels fuzzy / unstick this scope ## Anti-patterns - Asking multiple independent questions in one turn. - Asking me for facts you can read from the environment. - Questions without a recommendation. - Re-asking something already decided unless new facts collide with it. - Therapy-style reflection ("how does that make you feel about the architecture?"). - Expanding scope under the guise of thoroughness. - Acting (edits, installs, commits, long plans-as-execution) before I confirm the shared understanding. - Producing a second parallel framework, template, or scoreboard when the running understanding already holds the state. ## Tiny example Topic: add retries to a webhook worker. **Opener:** You're hardening delivery for the Acme webhook worker. Load-bearing forks look like: retry budget, idempotency key source, and whether poison messages dead-letter or drop. Checking the worker next so we don't re-litigate what's already coded. **Q1** **Q:** Cap retries by count or by wall-clock age of the event? **Why it matters:** Count-cap is simple; age-cap bounds lag when the downstream is slow for hours. **Recommendation:** Age-cap at 24h with exponential backoff, max 10 attempts inside that window — protects the queue from retry storms without failing late events early. **Alternatives:** Pure count (10) if you never care about event age. …one answer, next question, and so on, until the shared understanding fits in a short block and I say go.