Skip to content

Kickoff

Three plain markdown prompts, pasted into any LLM chat in order. Each answer is saved to a file and becomes the next prompt's input, for the same reason a feature's plan lives in plan.md.

The three prompts

Copy the first one. Save what it produces into context/, then paste that into the second.

  1. 1

    Interview

    Writes project-overview.md: what it is, who it's for, what it deliberately won't do.

    01-interview.md78 lines
    # Stage 1 — InterviewYou are a senior product engineer interviewing someone about a project before any codegets written. Your only output is `project-overview.md` — the thing every later stage, andevery session that ever works on this project, treats as ground truth for what it'sbuilding and why.You don't have this yet, so ask for it first, in order, across several turns — not as onegiant form. Move to the next phase only once the current one is specific enough to buildfrom. If an answer would let two different products satisfy it, it isn't done.## The phases1. **Product and problem.** What is it, in plain language — and what does someone lose   today by not having it? "It's useful" is not a problem. A problem is something the   person currently does the slow way, or doesn't do at all because it's not worth the   effort.2. **Target user.** Who specifically. Not "anyone who wants X" — what do they already have,   what do they already know, what's true about their situation that makes this worth   building for them and not someone else.3. **Pages.** Every screen that exists, as a flat list with a route and a one-line purpose.   Ask "is that all of them?" at least once — a first answer is usually missing the login   screen, a settings page, or a detail view implied by a list.4. **Navigation.** How someone moves between the pages above. Top nav, sidebar, tabs — and   which pages are public versus behind a login.5. **Flow, per page.** Not "walk me through the app" once — one pass per page from the list   in phase 3. What does someone see first, what can they click or type, what happens after.   A page whose flow is "they use it" gets asked again: used how, starting from what, ending   at what state.6. **Data and ownership.** What are the distinct pieces of data the product keeps — not   columns, the real-world things (a profile, an order, a document, a generated result).   For each: what's allowed to change it, and is there anything that must **never** touch   it? This second question is the one people skip — ask it explicitly for every piece of   data that's produced by something automated (a background job, an AI call, a sync). The   most common real bug in a product like this is an automated process quietly overwriting   something a person entered by hand.7. **Tracked events**, only if the person mentions analytics, metrics, or a dashboard. If   they do, get the actual event names and what each carries — not "we track usage." An   event without a name and a payload is a wish, not a spec.8. **Scope — in.** The features that exist, as a flat list. This should mostly restate   phases 3-6 in list form; if it introduces something new, that thing was missing from an   earlier phase and belongs there too.9. **Scope — out.** What a reasonable person would expect this to do, that it deliberately   won't. This is the phase people shortcut, and it's the one that saves the most rework   later — see the rule below.10. **Success criteria.** How someone would know this works, stated as something you could    actually check — a number, a behavior, an outcome — never a feeling.## The rule that makes this worth running**A short out-of-scope list means the interview stopped too early, not that the product issimple.** Every real product has a long list of adjacent things it isn't doing yet — aperson's first pass names three or four obvious ones and stops. Push past that: for everyfeature named in phase 8, ask what a *related* feature someone might assume comes with itwould be, and confirm it's excluded. Keep going until answers start repeating or the personsays there's genuinely nothing left — not after a fixed count, because the right number isdifferent for every product, but don't accept fewer than ten without at least three roundsof "and what about—" first.The same standard applies everywhere in this interview: "not much," "the usual stuff," or"you know, standard auth" is a shrug, not an answer. Ask what "standard" means for thisproduct specifically. A vague answer gets a sharper question back, not a note that fillsthe gap with your own guess — this stage has no code to fall back on for what's actuallytrue, only what the person tells you.## OutputOnce every phase is specific enough to build from, write `project-overview.md` in a singlefenced code block, with these sections in this order: **About the Project**, **The ProblemIt Solves**, **Pages** (a flat list with routes), **Navigation**, **Core User Flow** (onesubsection per page, from phase 5), **Data Ownership** (one entry per data entity fromphase 6, stating what can and cannot modify it), **Features In Scope**, **Features Out ofScope**, **Tracked Events** (omit the section entirely if phase 7 didn't apply), **TargetUser**, **Success Criteria**.Say nothing else after the file — no summary, no "let me know if you'd like changes." Thefile is the deliverable; paste it into stage 2 next.
  2. 2

    Architecture

    Writes architecture.md: the stack, the schema, the data flow.

    02-architecture.md80 lines
    # Stage 2 — ArchitectureYou are a senior engineer turning a decided product into a decided build. You've just beenhanded a `project-overview.md` for a project that doesn't exist yet. Your job is to produce`architecture.md`: the stack, the folder structure, the data flow, the database schema, andthe invariants the code must never violate.**Paste the complete `project-overview.md` from stage 1 as your first message, unedited.**If you're missing it, stop and ask for it — this stage does not run from memory of aconversation, only from the file.## What you ask, and why so littleStage 1 already decided what the product is. This stage decides how it's built, and most ofthat follows mechanically from the overview — Next.js, a store, an auth pattern. Don'tre-litigate settled product decisions, and don't ask about anything the overview alreadyanswers. Ask only what genuinely changes the shape of the code:- **The backend.** A managed all-in-one (Supabase, InsForge, Firebase) or something you'd  assemble yourself (a hosted Postgres plus your own auth)? This decides whether there's a  client/server SDK split to design around or a schema you own outright either way.- **Any third-party service the overview implies but doesn't name.** A "the agent researches  companies" feature implies a browser-automation or search provider; "AI-powered" implies  a model provider. Ask, don't guess a specific vendor — a wrong guess here is expensive  later, a generic placeholder is not.- **Deployment target**, only if it changes a structural decision (e.g. edge-compatible code  paths). Default to "Vercel, Next.js App Router" and only ask if the overview signals  otherwise (a stated preference, a non-web client, a constraint on where data can live).That's the ceiling — three or four questions, one at a time, each with your default statedup front ("I'd assume Postgres via a managed provider unless you tell me otherwise — isthat right?") so a yes closes it in one turn. If the overview leaves a page or flowgenuinely ambiguous in a way that changes the schema, ask about that specifically instead ofguessing at a column. Otherwise, don't interview — derive.## Depth is forced, not requested"Add more detail" produces nothing. What produces a schema someone can build against isrefusing to write anything vague:- **Every table gets every column, with a type and a one-line note** — never a table with  just names, never a note that restates the column name. If you don't know whether a field  is nullable or what constrains it, that's a question, not a guess.- **Every folder in the structure gets a one-line purpose**, and folders share a rule when  the rule is real: state it once as a system boundary, not once per file.- **At least 3 data-flow diagrams** — as many as there are genuinely distinct paths through  the system (a UI mutation, an agent/background operation, an upload, a webhook — whatever  the overview actually has), each a plain arrow chain from trigger to effect. A project  with only one kind of write gets one honest diagram, not three padded variations of it.- **The invariants list is rules, not restated features.** "Users can log in" is not an  invariant. "Every write scopes to `user_id` — never query without a user filter" is. If  you can't state a boundary as a rule that could be violated, it doesn't belong on the  list.## OutputA single `architecture.md`, in one fenced code block, with these sections in this order:1. **Stack** — a table: layer, tool, purpose. One row per real decision, including the ones   you defaulted rather than asked.2. **Folder Structure** — a tree, annotated inline, deep enough to show every top-level   concern the overview implies (pages, business logic, shared utilities, types) but not   deeper than the project's actual size warrants. Don't invent files the overview gives you   no reason to need.3. **System Boundaries** — a table: folder, what it owns and what it must never contain.4. **Data Flow** — the diagrams described above.5. **Database Schema** — one subsection per table: columns, types, notes, and any rule that   holds across the whole schema (ownership columns, cascade behaviour, RLS or equivalent)   stated once above the tables rather than repeated in every note.6. **Third-party integration patterns** — a short, real code sketch for each non-trivial   external call the overview implies (the shape of a request, not a tutorial). You're   writing this from training data, not a live doc lookup — mark a sketch as unverified   rather than presenting a remembered API shape as checked; the project's own `/harvest`   corrects it against the real thing on first use.7. **Invariants** — the rules list.When you're done, say one thing: which of the questions above you had to ask versusdefaulted, so stage 3 (or a person reading over your shoulder) knows which parts of this areload-bearing decisions and which are reasonable guesses.
  3. 3

    Build plan

    Writes build-plan.md: numbered features, ordered by what depends on what.

    03-build-plan.md72 lines
    # Stage 3 — Build PlanYou are a tech lead turning a decided product and a decided architecture into an orderedlist of what to build and in what order. Your output is `build-plan.md`: numbered features,grouped into phases, each one small enough to build and see working before the next starts.**Paste the complete `project-overview.md` and `architecture.md` from stages 1 and 2 as yourfirst message, both unedited.** If either is missing, stop and ask for it — this stagederives from those two files, not from a description of them.## What you ask, and why almost nothingEverything this stage needs is already decided in the two files you were given. Don't askabout scope (stage 1 settled it) or the schema (stage 2 did). Ask exactly one thing, andonly if the overview doesn't make it obvious: **is this built UI-first with mock data, thenwired to real logic feature by feature — or does it need to work end to end from the firstfeature** (true for something with no meaningful UI, or where the backend is the entireproduct). Default to UI-first-then-wired; it's the right call for anything with pages, andmost projects have pages. State the default and move on unless the overview signalsotherwise (an API-only service, a CLI, a background-job system with no interface).## Deriving the plan1. **State the core principle** at the top of the file — the answer to the question above,   in one or two sentences, plus whatever it implies ("every feature must be visible and   testable before the next starts" if UI-first; the equivalent discipline otherwise).2. **List every page from the overview**, then every piece of infrastructure the   architecture requires before any page can do anything real: the database schema, auth,   any tracking or analytics initialization, any third-party client setup. These become   your first phase — nothing in a later phase should assume infrastructure that hasn't   been built yet.3. **One feature per page's UI**, built with mock data if that's the chosen principle. Pull   the actual elements from the overview's per-page flow — a feature whose UI section says   "build the form" is too vague; list the actual fields, buttons, and states the flow   described.4. **Split a page's logic into its own feature per distinct operation**, not one "wire it   up" feature per page. A profile page with manual editing, AI-assisted extraction, and   PDF generation is three logic features, not one — each is independently buildable and   independently breakable, and lumping them hides which one actually failed. Use the   data-flow diagrams in the architecture to find the seams: each diagram is usually one   feature.5. **Order by dependency, not by page order.** A feature that reads data another feature   writes comes after it. State the dependency when it's not obvious from the order alone.6. **Carry every invariant and out-of-scope item forward as a constraint**, not just as   background — a feature whose obvious implementation would violate one gets a line saying   so ("no tailored fields: resume tailoring is out of scope"). This is what stops the plan   from silently reintroducing something stage 1 explicitly cut.## Depth is forced, not requested- **Every feature's UI section is a list of real elements** — inputs, buttons, states,  copy where the overview specified exact copy — not a paragraph describing the page in  general terms.- **Every feature's Logic section is a list of real behavior** — what calls what, what gets  written where, using the actual names from the architecture (table names, function names  if the architecture gave you a folder structure to draw them from).- **A feature with no UI needs (schema, a background job, an integration) states only a  Logic section** — don't invent a UI section to keep the format symmetric.- **A dependency between features is stated, not implied by proximity.** If feature 11  needs feature 04's schema and feature 03's tracking client, say both.## Output`build-plan.md`, in a single fenced code block:1. **Core Principle** — from step 1 above.2. **Phases**, each a `## Phase N — <name>` heading grouping related features.3. **Features**, each `### NN <name>` with a **UI** and/or **Logic** subsection as described   above, numbered sequentially across the whole plan regardless of phase.Say nothing else after the file.

What kit init copies

The prompts write what is specific to a project. The rest of context/ is house style, copied once from a preset by kit init.

templates/next16-insforge/
  • code-standards.md
  • ui-rules.md
  • library-docs.md
  • progress.md
  • ui-registry.md
  • features/
    • README.md
Use the arrow keys to move. Right expands a folder, left collapses it or climbs to its parent. Home and End jump to the ends, and typing a letter jumps to the next name starting with it.

Why the prompts stay manual

They work for anyone, in any LLM chat, with nothing installed. See where they sit in setup.