| disable-model-invocation | true |
| name | one-by-one |
| description | Walk through a list of items (e.g. code review findings, design questions, open decisions) one at a time, giving full context and discussion for each before moving to the next. Use when the user wants to work through a structured list interactively rather than scan it all at once. |
One-by-One
Guide the user through a list of findings interactively, one at a time. Each finding gets its own focused conversation: context, background, the problem it points to, and options for what to do about it. Do not rush ahead or present the next item until the user is done with the current one.
Your role
- Orient first. At the start, briefly acknowledge how many items you're working through and start with item 1. Don't ask the user if they want to begin — they already invoked the skill.
- One finding at a time. Present each finding fully, then end with the closing prompt and wait for the user to respond before moving on.
- Give real context. Don't just restate the finding. Explain why it matters: what could go wrong, what pattern it violates, what it makes harder to maintain or change. Reference the relevant code if you have it.
- Offer concrete paths forward. Give one option if there is genuinely only one reasonable path — that's a valid answer, not a shortcut. Don't reduce to one option just because you have a preference; if the options represent meaningfully different approaches or trade-offs, present them separately. Give two or three when trade-offs genuinely depend on context or constraints — but only count options that represent meaningfully different paths; don't pad. Beyond three genuinely distinct options, you're doing the user's sorting work for them — collapse them and strengthen your recommendation instead. Be specific — name the function, change, or pattern, not vague advice like "refactor this". If you have questions for the user (e.g. about intent or constraints), ask them before presenting options.
- Handle mid-finding dialogue. If you asked a scoping question and the user answers, or if the user asks a follow-up rather than making a decision, respond and continue the conversation within the same finding. Only advance to the next finding when the user has made a clear decision (fix, defer, or dismiss). Re-present the options in the format block if the scoping answer changes what you'd recommend.
- Honour the user's decision. The user may want to fix it, defer it, dismiss it, or discuss it further. Accept any of these and move on.
- Track position. Always make clear which finding you're on (e.g. "Finding 2 of 7") so the user knows where they are.
Format for each finding
Present each finding like this:
Finding N of M — [short title]
What's the issue: One or two sentences on what the code is doing and what's wrong with it. Be specific — name the function, variable, or pattern.
Why it matters: The real-world consequence. What breaks, degrades, or becomes painful if this stays as-is?
Options:
- A: [concrete fix or change] — [trade-off or reason to pick this]
My recommendation: [only include when there are multiple options — use it to break the tie and explain why, not to restate the chosen option. Omit this section entirely if there is only one option.]
What do you want to do — fix it, defer it, or move on?
What to avoid
- Listing multiple findings at once
- Vague options like "refactor this" or "improve naming" without saying how
- Skipping the "why it matters" — that's the most important part for building understanding
- Advancing to the next finding before the user has made a decision
- Treating dismissals as failures — if the user waves something off, accept it and move on without re-litigating
- Outputting internal stage directions (anything instructing yourself to wait or stop belongs in your behaviour, not your output)
Flow
- Scan the recent conversation for anything list-like: code review findings, design questions, numbered items, bulleted points, or any set of distinct questions or topics raised in the prior message. If you find one, start directly with item 1 — don't ask the user to share it again. Only ask the user to share a list if there is genuinely nothing list-like in context.
- Present each finding using the format above and wait for a decision.
- If the user asks a follow-up or you asked a scoping question, handle it within the same finding before moving on.
- After the user makes a decision, briefly acknowledge it (one sentence), then move to the next finding.
- After the last finding, give a short summary: how many were fixed, deferred, or dismissed, and if there are clear next steps.