Ask Kent
You don't remember every skill, so ask.
A flow is a path through the skills. Most work travels one main flow.
Everything else is a close call or a skip.
How to answer
- Place the situation on the main flow at a step.
- Name the next
/skill to type, and why the near-miss is wrong.
- Say where a human decision sits (architecture, recap classification, merge).
- Stop. Do not start the work. Do not invoke the skill you named.
- If a claim about another skill matters, read that
SKILL.md first. This map
is a secondary source. The skill file wins.
This is a hand-written map of this repo. Do not scan skills/, do not route
over repo-local skills (Kody's conduct, remix, …), and do not route over
another author's skills. Cursor's cloud-agent /orchestrate plugin is a
different skill from this repo's /orchestrate.
If they already know the skill, tell them to invoke it. /ask-kent has nothing
useful to add.
The main flow: idea → ship
The route most work travels.
flowchart TD
sit[Situation] --> big{Large or parallel?}
big -->|yes| orch["/orchestrate"]
big -->|no| plan{Non-trivial system change?}
orch --> plan
plan -->|yes| vplan["/visual-recap plan"]
plan -->|no| build[Build]
vplan --> build
build --> recap{PR + worth a system map?}
recap -->|yes| vrecap["/visual-recap recap"]
recap -->|no| ship["/ship-pr"]
vrecap --> ship
Branch: is this large, multi-stream, or too much for one agent?
- Yes →
/orchestrate. Two modes: be the orchestrator (plan,
delegate, review, integrate), or spawn one if you are a cheap/fast
model. Frontier model orchestrates; cheap/fast models implement. You do the
QA — never declare done from sub-agent reports.
- No → stay in this session and build it. Fan-out that does not pay is
orchestration theater.
Branch: is the change non-trivial? System primitives, architecture,
contracts, review-critical behavior.
- Yes →
/visual-recap in plan mode before you implement. Classify
against docs/contributing/architecture/primitives.yaml in the working
repo. Lowest-risk outcome: the plan requires no primitive change — say
so.
- No → skip. A tiny, obvious diff reviews faster as a plain diff.
Build. /orchestrate delegates this. A small change you just do.
PR exists → /visual-recap in recap mode. Reads
git diff <base>...HEAD, not memory. Replaces a plan-mode block. Re-run
after significant new commits.
Babysit until it's landed → /ship-pr. Mark ready, wait on CI
(composes loop-on-ci / fix-ci), address valid review feedback, rebase if
needed. Merge only if asked or the change is low risk. Always
Discord-summarize via kody:@kentcdodds/discord/send-shipped-pr — never raw
post-message, never guess token cost.
Keep plan → recap → ship in the repo that owns the PR. /orchestrate is the
parent session; implementer context is disposable.
Situation → route
| Your situation |
Type this |
Not this |
| Idea is big, parallel, or multi-stream |
/orchestrate |
Building it all yourself |
| You are a cheap/fast model handed a large task |
/orchestrate (spawn a smarter orchestrator) |
Doing the bulk coding |
| Planning a non-trivial change |
/visual-recap (plan) |
Recap mode — the work does not exist yet |
| PR needs a system-level summary |
/visual-recap (recap) |
Plan mode — read the diff |
| Tiny, obvious diff |
skip visual-recap |
A recap nobody will open |
| CI, review, merge, Discord summary |
/ship-pr |
Re-explaining the babysit loop |
| Already know the skill |
that skill |
/ask-kent |
Working repo has no primitives.yaml |
say so; don't fake a recap |
Inventing primitive ids |
| Not Kent / no Kody Discord exports |
fork ship-pr or skip Discord |
Pretending the Discord step will work |
Close calls
The useful part of this map. One concrete test each.
/orchestrate vs just build. Can one agent finish the critical path in
this window without file conflicts? If yes, build. Fan out only when
independent workstreams clearly beat one implementer.
- This
/orchestrate vs Cursor's plugin. Same slash name, different job.
This skill keeps sub-agents in one environment, splits models, and has you QA.
Cursor's plugin fans work across cloud agents via its own SDK. This map only
names this repo's skill.
visual-recap plan vs recap. Does the work exist? Plan describes the
intended change. Recap describes the diff. Never recap from session memory.
visual-recap vs skip. Would a reviewer benefit from a system map
before the diff? If no, skip. Recap is review overhead.
ship-pr vs "just merge it". Need the CI/review loop and the Discord
summary? That's /ship-pr. Merge is a branch inside it, not a different
skill.
Preconditions
The router names skills; it does not install them.
npx skills add kentcdodds/kcd-skills (or --skill <name>). Skills with
disable-model-invocation: true (ask-kent, orchestrate) still exist — type
the slash command anyway.
/visual-recap needs docs/contributing/architecture/primitives.yaml in
the working repo, plus gh auth to upsert the PR block.
/ship-pr needs gh auth and Kent's Kody packages
(kody:@kentcdodds/github, kody:@kentcdodds/discord). The Discord step is
Kent-specific.
/orchestrate needs a harness that can spawn sub-agents.
It's working if
- It ends by naming what to type and stops, instead of starting the work.
- The route says where you review or verify, not just a list of skill names.
- Close skills get one concrete test for why the other is wrong.
- Any load-bearing claim about another skill shows up as a read of that
SKILL.md.
- You recognize your situation, not the nearest generic scenario.
1---2name: ask-kent3description: Ask which kcd-skills flow fits your situation. A router over the skills in this repo. Use when you don't know which Kent skill to run, or which order.4---56# Ask Kent78You don't remember every skill, so ask.910A **flow** is a path through the skills. Most work travels one **main flow**.11Everything else is a close call or a skip.1213## How to answer14151. Place the situation on the main flow at a step.162. Name the next `/skill` to type, and why the near-miss is wrong.173. Say where a human decision sits (architecture, recap classification, merge).184. **Stop.** Do not start the work. Do not invoke the skill you named.195. If a claim about another skill matters, read that `SKILL.md` first. This map20 is a secondary source. The skill file wins.2122This is a **hand-written map of this repo**. Do not scan `skills/`, do not route23over repo-local skills (Kody's `conduct`, `remix`, …), and do not route over24another author's skills. Cursor's cloud-agent `/orchestrate` plugin is a25different skill from this repo's `/orchestrate`.2627If they already know the skill, tell them to invoke it. `/ask-kent` has nothing28useful to add.2930## The main flow: idea → ship3132The route most work travels.3334```mermaid35flowchart TD36 sit[Situation] --> big{Large or parallel?}37 big -->|yes| orch["/orchestrate"]38 big -->|no| plan{Non-trivial system change?}39 orch --> plan40 plan -->|yes| vplan["/visual-recap plan"]41 plan -->|no| build[Build]42 vplan --> build43 build --> recap{PR + worth a system map?}44 recap -->|yes| vrecap["/visual-recap recap"]45 recap -->|no| ship["/ship-pr"]46 vrecap --> ship47```48491. **Branch: is this large, multi-stream, or too much for one agent?**50 - **Yes** → **`/orchestrate`**. Two modes: **be** the orchestrator (plan,51 delegate, review, integrate), or **spawn** one if you are a cheap/fast52 model. Frontier model orchestrates; cheap/fast models implement. You do the53 QA — never declare done from sub-agent reports.54 - **No** → stay in this session and build it. Fan-out that does not pay is55 orchestration theater.56572. **Branch: is the change non-trivial?** System primitives, architecture,58 contracts, review-critical behavior.59 - **Yes** → **`/visual-recap` in plan mode** before you implement. Classify60 against `docs/contributing/architecture/primitives.yaml` in the _working_61 repo. Lowest-risk outcome: the plan requires **no** primitive change — say62 so.63 - **No** → skip. A tiny, obvious diff reviews faster as a plain diff.64653. **Build.** `/orchestrate` delegates this. A small change you just do.66674. **PR exists** → **`/visual-recap` in recap mode**. Reads68 `git diff <base>...HEAD`, not memory. Replaces a plan-mode block. Re-run69 after significant new commits.70715. **Babysit until it's landed** → **`/ship-pr`**. Mark ready, wait on CI72 (composes `loop-on-ci` / `fix-ci`), address valid review feedback, rebase if73 needed. Merge only if asked or the change is low risk. Always74 Discord-summarize via `kody:@kentcdodds/discord/send-shipped-pr` — never raw75 `post-message`, never guess token cost.7677Keep plan → recap → ship in the repo that owns the PR. `/orchestrate` is the78parent session; implementer context is disposable.7980## Situation → route8182| Your situation | Type this | Not this |83| ---------------------------------------------- | --------------------------------------------- | ---------------------------------------- |84| Idea is big, parallel, or multi-stream | `/orchestrate` | Building it all yourself |85| You are a cheap/fast model handed a large task | `/orchestrate` (spawn a smarter orchestrator) | Doing the bulk coding |86| Planning a non-trivial change | `/visual-recap` (plan) | Recap mode — the work does not exist yet |87| PR needs a system-level summary | `/visual-recap` (recap) | Plan mode — read the diff |88| Tiny, obvious diff | skip `visual-recap` | A recap nobody will open |89| CI, review, merge, Discord summary | `/ship-pr` | Re-explaining the babysit loop |90| Already know the skill | that skill | `/ask-kent` |91| Working repo has no `primitives.yaml` | say so; don't fake a recap | Inventing primitive ids |92| Not Kent / no Kody Discord exports | fork `ship-pr` or skip Discord | Pretending the Discord step will work |9394## Close calls9596The useful part of this map. One concrete test each.9798- **`/orchestrate` vs just build.** Can one agent finish the critical path in99 this window without file conflicts? If yes, build. Fan out only when100 independent workstreams clearly beat one implementer.101- **This `/orchestrate` vs Cursor's plugin.** Same slash name, different job.102 This skill keeps sub-agents in one environment, splits models, and has you QA.103 Cursor's plugin fans work across cloud agents via its own SDK. This map only104 names this repo's skill.105- **`visual-recap` plan vs recap.** Does the work exist? Plan describes the106 intended change. Recap describes the diff. Never recap from session memory.107- **`visual-recap` vs skip.** Would a reviewer benefit from a system map108 _before_ the diff? If no, skip. Recap is review overhead.109- **`ship-pr` vs "just merge it".** Need the CI/review loop and the Discord110 summary? That's `/ship-pr`. Merge is a branch inside it, not a different111 skill.112113## Preconditions114115The router names skills; it does not install them.116`npx skills add kentcdodds/kcd-skills` (or `--skill <name>`). Skills with117`disable-model-invocation: true` (`ask-kent`, `orchestrate`) still exist — type118the slash command anyway.119120- **`/visual-recap`** needs `docs/contributing/architecture/primitives.yaml` in121 the working repo, plus `gh` auth to upsert the PR block.122- **`/ship-pr`** needs `gh` auth and Kent's Kody packages123 (`kody:@kentcdodds/github`, `kody:@kentcdodds/discord`). The Discord step is124 Kent-specific.125- **`/orchestrate`** needs a harness that can spawn sub-agents.126127## It's working if128129- It ends by naming what to type and **stops**, instead of starting the work.130- The route says where you review or verify, not just a list of skill names.131- Close skills get one concrete test for why the other is wrong.132- Any load-bearing claim about another skill shows up as a read of that133 `SKILL.md`.134- You recognize your situation, not the nearest generic scenario.