--- name: kickoff description: Kickoff (开工) — run before starting any non-trivial task. Diagnoses the gap between what the user asked for (the map) and what the codebase or domain actually requires (the territory), then applies only the techniques needed — blindspot briefing for unfamiliar territory, premise challenges that falsify what's treated as fact, throwaway prototypes and feasibility spikes for "I'll know it when I see it", one-question-at-a-time interviews for ambiguities, reference extraction, and an unknowns-first plan. Use when the user says "kickoff", "开工", "帮我开始", "找找我的盲区", "help me start", "find my unknowns", "what am I missing", "I don't know where to start", or when a previous attempt — theirs or an AI's — came back wrong and they don't know why. --- # Kickoff The user's request is the map. The codebase and the real world are the territory. The difference between them is the user's **unknowns** — and when you hit one mid-task, you guess. This skill spends a little time up front so you guess less later. **The deliverable is clarity, not code.** Kickoff never implements. **Language:** write everything user-facing — briefings, questions, prototypes' copy, plans — in the language the user is speaking. File names and code identifiers stay in English. ## Step 1 — Diagnose (quietly) Read the request, glance at the relevant territory (code, docs, history, and working-tree state — uncommitted changes are territory too), and score the signals below. Assess silently — don't lecture the framework; the diagnosis surfaces as one line at the top of Step 2: | Signal | Evidence | |---|---| | **Unfamiliar territory** | New domain or untouched part of the codebase; user says "I've never…" / "I don't know X" | | **Confident assertions** | Statements about the territory phrased as certainty — "it's stored in X", "nothing else calls this" — especially about code nobody has touched recently | | **Failed prior attempts** | Reverted commits, abandoned branches, "we tried it and it broke", "the last attempt came back wrong and I don't know why" | | **Taste-driven criteria** | Vague quality words — "clean", "modern", "feels right" — user will know it when they see it | | **Feasibility in doubt** | Nobody knows if the approach is physically possible, accurate enough, or fast enough | | **Open decisions** | Ambiguities where different answers produce different architectures | | **A reference exists** | User points at (or you find) code, a library, or a site that already does it | Also collect the user's starting point if not stated — their experience with this problem and codebase, and where they are in their thinking — but ask only if the answer could change what fires; otherwise infer it from context. One short question at most; uncommitted local changes always earn it (are they intended state?). ## Step 2 — Run only what fires **Open with the diagnosis in one line** — name the signals that fired, the techniques you'll run, and the rough cost: "Two signals fired: unfamiliar territory, open decisions — blind spot pass on src/auth first, then a ~5-question interview." The user can veto or reorder before anything runs; they should never wonder why they're being asked things. When three or more techniques fire, quote the cost as total expected user turns and offer a lite path (premise challenge + interview + plan); fold questions into other techniques' reaction rounds rather than stacking full loops. For each technique you run, **read its reference file first** and follow it: | Fires when | Technique | Read | |---|---|---| | Unfamiliar territory | Blind spot pass — brief them on the questions they didn't know to ask | `references/blindspot.md` | | Confident assertions | Premise challenge — verify what's treated as fact against the territory, before building on it | `references/challenge.md` | | Failed prior attempts | The wreckage is territory — blind spot pass over the failed diffs, premise challenge on the failure's framing ("it's flaky", "it broke X") | `references/blindspot.md`, `references/challenge.md` | | Taste-driven criteria; feasibility or cause in doubt; an open decision whose option space is unexplored | Brainstorm, throwaway prototypes, or a feasibility/diagnostic spike — turn reactions and measurements into explicit criteria | `references/brainstorm.md` | | A reference exists | Extract its semantics into a keep/adapt/drop checklist | `references/use-reference.md` | | Open decisions remain | Interview — one question at a time, biggest blast radius first | `references/interview.md` | The listed order is a default — reorder when one technique's output is another's input: a reference's checklist feeds the brainstorm, and a premise that could invalidate the framing gets challenged before anything else. Run **only the ones that fired** — kickoff is a diagnosis, not a ceremony. Between techniques, keep the user in the loop with one-line status ("territory is clear, but three decisions could flip the architecture — interviewing you next"). If nothing fires: say plainly "no meaningful unknowns here — just implement", and offer to start right away — once nothing fires, kickoff is over and normal work continues in this same session. That answer is kickoff succeeding, not failing. ## Step 3 — Always land on a handoff Every kickoff that ran at least one technique lands on an artifact — the nothing-fired exit needs none; "just implement" *is* its handoff: - **An unknowns-first plan** (read `references/plan.md`) if the user is heading into implementation. The plan embeds a deviation policy and instructs the implementer to keep implementation notes (read `references/impl-notes.md` and fold its setup into the plan's handoff section). - **A rewritten prompt** if the user just wanted clarity — their original request with resolved assumptions inlined and remaining open questions flagged, ready to paste into a fresh session. - **The requested document itself**, when the deliverable is a plan or doc (a migration runbook, a design doc) — the unknowns-first plan is its skeleton, and writing it is not "implementing". Adapt the section vocabulary to the domain and hand off to whoever actually executes (see plan.md's handoff). ## Guardrails - One technique at a time; each technique's output feeds the next. - If diagnosis reveals the problem should be solved a different way altogether, say so before anything else — that's the most valuable outcome a kickoff can have. - Simple task, familiar territory, clear spec → don't invent process. Say so and stop.