一键导入
map
Turn a loose, multi-session idea into a durable decision-map of dependency-linked investigation tickets, then drive it toward a plan one ticket per cycle.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Turn a loose, multi-session idea into a durable decision-map of dependency-linked investigation tickets, then drive it toward a plan one ticket per cycle.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Cut an npm release of @kvnwolf/dobby from the main checkout — inferred bump, raw-TS tarball gate, publish, tag, GitHub release with changelog.
Syncs documentation, authors the commit message + PR body, runs the gate and performs the git/gh ceremony directly (stage → `dobby check --fix` → commit → push → PR), then monitors the PR to a verdict. Use when committing code, finishing a task, pushing changes, or creating a PR.
One-pass migration of a consumer repo off vite-plus onto @kvnwolf/dobby — swap deps, thin `tsconfig.json` and delete the now-default tool configs (biome/vite/vitest/drizzle, kept only for real deltas), move files to canonical paths, regenerate dobby.config.json, drop .conductor, rewire CI + Vercel build, verify with `dobby check`. Run in a consumer repo, once, after updating the dobby plugin.
Set up a repo (greenfield or existing) for the work skills — interview, install @kvnwolf/dobby, scaffold the base files + thin tsconfig, write the dobby.config.json contract. Run once.
Disciplined diagnosis loop for hard bugs — build a fast deterministic feedback loop, rank falsifiable hypotheses, instrument one variable at a time. Use when something is failing, a bug is intermittent or non-obvious, or there's a performance regression.
Dispatch a scoped, ad-hoc task to a worker agent (or a few in parallel) and review what comes back — without the full /dobby:execute plan-and-waves ceremony. Use for a small fix or change, or a bounded investigation, when you don't need a STATE.md spec.
| name | map |
| description | Turn a loose, multi-session idea into a durable decision-map of dependency-linked investigation tickets, then drive it toward a plan one ticket per cycle. |
| argument-hint | [loose idea, or path to an existing map (+ optional ticket slug)] |
| disable-model-invocation | true |
Some ideas are too large to interview-then-plan in one sitting: the open decisions block each other and each needs its own investigation. A decision-map makes that tractable — a durable, git-tracked file of dependency-linked tickets you resolve one per cycle, pushing back the fog until the path to a plan is clear. You stay the architect: you build and update the map and synthesize each answer, but you dispatch the actual investigation to a worker or a stage — you never do the digging yourself.
One compact Markdown file per planning effort, stored at docs/maps/<effort-slug>.md (create docs/maps/ lazily on first write — no empty dir). It is the canonical artifact and git-tracked: the whole map loads as context every cycle, so keep it compact. Assets a ticket produces (a research summary, a prototype, a captured answer) are linked by path, never copied in.
Each ticket is a section keyed by a short dash-case slug that reads as a mini-title (relational-db, auth-strategy, cache-layer) — terse, token-efficient, unique within the map.
## relational-db: Relational or non-relational database?
Blocked by: <slug>, <slug>
Status: open | in-progress | resolved
Type: Research | Prototype | Grilling
### Question
<the open decision, stated sharply>
### Answer
<recorded when resolved — the verdict + why, with any asset linked by path>
The slug is the canonical id, used in every Blocked by edge and in prose. A ticket is unblocked when every ticket in its Blocked by list is resolved. Claim a ticket by setting Status: in-progress and saving the map before any work — so a parallel session skips it. Size each ticket to one focused investigation (~one agent session's worth).
Each type routes to a dobby worker or stage:
| Type | Question it answers | Dispatch |
|---|---|---|
| Research | Needs knowledge outside the working tree — docs, third-party APIs, a knowledge base. Produces a linked markdown summary. | A dobby:researcher agent (Agent tool, subagent_type: "dobby:researcher") — the same worker /dobby:research orchestrates. |
| Prototype | "How should it look / behave?" — answerable only by building throwaway code. | /dobby:prototype (state the ONE question; the prototype's captured answer is the asset). |
| Grilling | A decision resolvable by conversation. The default case. | /dobby:interview (dobby's grilling + domain-modeling), one question at a time. |
The map is deliberately incomplete beyond the frontier — don't try to enumerate every decision up front. Resolve the frontier tickets; each answer reveals what's next. One ticket per cycle: resolve it, record it, then push the frontier — add the tickets the answer newly exposed (with correct Blocked by edges), and prune or rewrite any the answer invalidated. Repeat until the path to a plan is clear and no tickets remain.
Pick by the argument. Either branch ends with a Handoff.
/dobby:interview pass to surface the open decisions (one question at a time). You may also dispatch a dobby:researcher for a quick lay-of-the-land if the idea leans on unfamiliar tech.docs/maps/<effort-slug>.md — mostly fog: identify the frontier, add the tickets you can see with their Blocked by edges and Type, and resolve inline only the entries that are trivially decidable now.open, unblocked ticket in document order — you pick, not the user. Claim it: set Status: in-progress and save before any work.Type (see the table). You synthesize the worker's/stage's return into an answer; you don't investigate in the main thread. If genuinely unsure of the type, treat it as Grilling (/dobby:interview).### Answer, link any asset by path, set Status: resolved, and save.Blocked by); prune or rewrite any it invalidated.Parallel sessions may work other unblocked tickets, so expect the map to have moved — re-read it, and rely on the claim (in-progress + save) to avoid collisions.
Every cycle ends here. Present an AskUserQuestion restating that a map cycle just finished, with the next-step commands as options (recommended one first, plus a Stop here option). On selection, invoke the chosen /dobby:<skill> via the Skill tool; Stop here ends the turn. Two cases:
Open tickets remain. List the currently-unblocked tickets. Because parallel sessions may work them independently, still surface the copy-paste block for opening fresh windows — but drive the gate through AskUserQuestion:
A map cycle just finished — 3 tickets unblocked:
auth-strategy,cache-layer,rate-limits. Pair with/dobby:handoffto clear context, and to run them in parallel paste one line per fresh window:/dobby:map docs/maps/<effort-slug>.md auth-strategy /dobby:map docs/maps/<effort-slug>.md cache-layer /dobby:map docs/maps/<effort-slug>.md rate-limits
Then ask (options):
/dobby:map docs/maps/<effort-slug>.md (Recommended) — resolve the next unblocked ticket in this session./dobby:handoff — clear context before opening fresh session(s).No open tickets remain. The fog is pushed back — the path to a plan is clear and the map is done. (The initial interview may also surface no fog at all, in which case there was never a map to build.) Ask (options):
/dobby:spec (Recommended) — turn the resolved map into a build plan.Interact with the user in their language. Write the map, tickets, and captured answers in English; keep domain terms in their real-world form.
docs/maps/<effort-slug>.md, compact, assets linked-not-copied; docs/maps/ created lazily## slug: Title + Blocked by + Status + Type + ### Question/### Answer)in-progress + saved) before any work; exactly ONE ticket resolved this cycleType (Research→dobby:researcher, Prototype→/dobby:prototype, Grilling→/dobby:interview); architect synthesized, did NOT dig in the main threadStatus: resolved, frontier pushed (new tickets + edges added; invalidated ones pruned)/dobby:map …, or /dobby:spec when no tickets remain, plus Stop here); /dobby:handoff referenced for the cross-session boundaryAdapted from mattpocock/skills in-progress/decision-mapping.