From research
Disciplined iterative web research. Decomposes a question into sub-questions, searches the web in batches, reshapes the plan based on what each batch returns (adding, removing, pivoting), verifies load-bearing facts against primary sources, and synthesizes a context-aware answer with cited sources. Use this whenever the user wants to research a topic — a how-to ("how do I make a button accessible", "how do I rotate an OAuth token correctly"), the current state of something ("is X production-ready", "what's the state of Y in 2026"), a best-practice question, investigating why something behaves a certain way, evaluating an approach, or comparing options — or asks you to "look into", "dig into", "research", "investigate", or "search iteratively". Reach for it even when the user never says the word "research" but is plainly asking an evidence-backed question that one search won't settle.
How this skill is triggered — by the user, by Claude, or both
Slash command
/research:iterative-researchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A single web search gives you the first page of someone else's summary.
A single web search gives you the first page of someone else's summary. Real questions — "how do I do X correctly", "is Y production-ready", "what's the current best practice for Z", or yes, "should I use A or B" — have several moving parts, and the answer to one search reshapes what you need to ask next. This skill is the loop that handles that properly: anchor to the user's actual situation, break the question down, search until each piece is genuinely answered, check the load-bearing facts against primary sources, then give back an answer that's actually useful to this user.
Use it for any question where one search won't settle it. Common shapes:
Skip it for a single quick fact ("what port does Redis use" — just search once) or anything answerable from the codebase or the conversation itself.
A research answer is only useful if it's tied to the user's actual situation. Before searching, note the constraints that will shape the conclusion: their environment, stack, scale, existing tools, skills, stated goals, hard requirements. Pull these from the conversation; ask if something material is missing.
Generic advice often reads as plausible but doesn't actually help. "Use
ARIA labels" is much weaker than "the button is icon-only inside a <form>
that already has a visible heading, so aria-label on the button is the
right move and aria-labelledby would double-announce." The context is
what turns a textbook answer into the one the user can act on.
Write an explicit list of the specific sub-questions that, once answered, fully resolve the topic. This is the starting plan, not the final one. It will be reshaped by what each batch of results reveals — that's the whole point of the loop. "Search until everything is answered" is meaningless without a written, evolving definition of "everything".
The shape of the initial plan depends on the question:
These are starting points; expect the plan to look different after the first batch.
Surface the initial plan to the user in a sentence or two so they can flag anything you missed before you sink time into searching.
This is the core of the skill. The plan is a live queue you edit after every batch — not a checklist you tick off.
Each turn:
Pick the top few open items from the plan and search them in parallel. Independent sub-questions are independent searches — issue several WebSearch calls in a single turn so they run together. Write specific queries, not broad ones; include the current month/year when recency matters (versions, "best practice", "current recommendation"). Don't burn the whole plan in one batch — the next batch should be informed by what this one returns.
If a batch comes back as mostly SEO listicles and shallow round-ups,
reformulate before searching again: swap terminology, add
site:github.com for issues and discussions, site:<official-docs>
for primary sources, or site:reddit.com for practitioner takes. The
top organic results are often the worst signal-to-noise; the answers
that actually settle a question usually live in project docs, release
notes, GitHub issues, and posts by people who shipped the thing.
Read the results, then reshape the plan. This is the step people skip. After every batch, do four things explicitly:
Two read-the-results habits that shape every reshape. When well-sourced answers contradict each other, the usual cause isn't that one is wrong — it's that they're talking about different cases. Find the boundary that explains both rather than picking a side ("it depends on X" is a real finding, not a cop-out, if you can name X). And on time-sensitive questions (current versions, current best practice, current behaviour), the more recent credible source usually wins as a tiebreaker — though check that the older one isn't being kept alive for a reason (a deprecation that got reversed, a regression in the newer version).
Make this edit visible — write the updated plan in the response so the user can see what shifted. Naming the moves out loud also helps you actually make them rather than just running more searches by reflex.
Repeat until either every open item is answered, or new batches only re-confirm what you have (diminishing returns). State which of the two ended the loop. If something genuinely can't be pinned down, say so plainly — a known gap is more useful than a confident guess.
The shape of the answer should match the shape of the question:
Across all of these: cite sources inline as markdown links. Prefer concrete specifics — version numbers, flag names, attribute names, code snippets, command lines — over vague summaries; the specifics are what make the answer actionable rather than just plausible-sounding. And don't state as settled fact anything that rests on a single unverified snippet.
Deliver the findings in the conversation, structured to skim. The right
structure depends on the question — a comparison table for "X vs Y", a
numbered procedure for a how-to, short labelled sections for state-of /
best-practice. Put the actionable conclusion where the user will see it
(the steps, the recommendation, the verdict), not buried under context.
Close with a Sources: list of the markdown links the answer actually
rests on — not every URL that appeared, the ones that matter.
Then offer to save a research doc — don't wait to be asked, and don't
force it either. Something like: "Want me to save this to
docs/research/<topic>.md so the reasoning isn't lost?" Write it only if
they say yes. Put it wherever fits the repo (docs/research/ is a good
default; match existing conventions if the repo has them). For non-repo
contexts, suggest a sensible place or just ask where.
When the user opts in, follow this shape (omit sections that don't apply — e.g. the Recommendation section is only for decisions):
# <Topic> — research
Research captured <date>.<If a decision was made: **Decision: <X>.**>
<One line on why this doc exists / what it feeds into.>
## Question
<What was being researched and why.>
## Findings
<The sub-questions and their answers, organized for the question type.
A table for comparisons, a procedure for how-to, sections for state-of.
The facts that drove the conclusion.>
## Recommendation
<Only for decisions. The call, the reasoning, the costs/risks of the
pick, and when the other option would win.>
## Sources
<Every source as a markdown link.>
Builds accessible UIs with shadcn/ui components on Radix UI + Tailwind CSS, plus canvas visuals. For React apps (Next.js, Vite, Remix, Astro), design systems, responsive layouts, themes, dark mode, prototypes.
npx claudepluginhub nebraskacoder/nebraskacoder-claude-plugins --plugin research