Deep Research

zernie/vigiles/.claude/skills/deep-research

by zernie1d562c69566fNo license15 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated today

Use when the user asks to research a topic in depth, map a competitive/market landscape, run a multi-source investigation, or "fan out" parallel research agents — anything where many findings must be gathered and then NOT lost. Enforces durable, detail-preserving research (write full findings to disk; keep a full appendix beside the synthesis).

Instructions only

Deep research — gather wide, lose nothing

The failure mode this skill exists to prevent: a big parallel research fan-out gathers 80–100K tokens of detail, each subagent returns a trimmed summary, the orchestrator compresses again into a short brief, and the raw findings live only in ephemeral agent transcripts (scratchpad task outputs) that vanish when the container is reclaimed. Net: expensive research → a thin artifact, detail gone. Don't do that.

The rule: two durable artifacts, never just one

Every nontrivial research effort produces, and SAVES to disk:

  1. A synthesis — the brief / answer (tables, thesis, recommendation).
  2. A full appendix — the per-source / per-company / per-angle DETAIL (raw numbers, funding histories, surfaces, dates, verbatim source URLs) the synthesis compressed.

If the saved synthesis is dramatically smaller than what was gathered, the appendix is how you reconcile that — the detail must land somewhere durable, not only in chat or a transcript. "I summarized it in chat" is not saved.

Running a fan-out

  1. Plan the angles — one subagent per distinct angle (company, source class, sub-question). Tell the user which model each runs on and why (the subagent-model-note rule).
  2. Mandate write-to-disk in the subagent prompt. Every research subagent must WRITE its full findings to a durable file (e.g. the session scratchpad dir, one file per angle) with sources verbatim, and return only a short pointer + the headline findings. Do NOT rely on the agent's returned summary as the record — it is trimmed by construction and its transcript is ephemeral.
  3. Capture sources verbatim — every claim carries [number] [source URL] [date] [reported vs estimate]. URLs are the first thing lost in compression; keep them.
  4. Synthesize from the files, not from memory — read back the written files to build the synthesis, so nothing silently drops.
  5. Save both artifacts before declaring done — commit/write the synthesis AND the appendix. Then it's saved.

Where to save

  • Technical research about shipped behaviour → a docs/ page if a user needs it to act, otherwise a contributor note cited from CLAUDE.md keyFiles so it isn't an orphan doc. Which tier is decided by public-vs-internal-docs and doc-tiers.
  • Competitive, market, pricing, go-to-market or roadmap research → not into this repository, in any directory. This repo is public and no-product-strategy-here is unconditional: a deleted file stays in history and on other branches. Hand the findings back in the answer and let the human place them somewhere private.
  • When in doubt which, ask — but never let "unsure where" become "saved nowhere."

Don't

  • Don't present a one-paragraph chat summary as the deliverable for a 15-agent fan-out.
  • Don't trim sources/URLs/dates to make the brief shorter — that detail goes in the appendix.
  • Don't leave the only full copy in an ephemeral transcript or scratchpad you didn't commit.
<!-- vigiles:ignore-test — project-local workflow skill, not a shipped vigiles surface -->

Source and attribution

Source:zernie/vigilesin.claude/skills/deep-researchat commit1d562c6

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

More from zernie/vigiles

Linter Docs

zernie

Deep linter reference for authoring or debugging a vigiles enforce() rule — plugin tables, AST selectors, type-aware rules, auto-fix, and edge cases for ESLint, Ruff, Pylint, RuboCop, Stylelint, and Clippy. Use when you need the exact rule name or config for a specific linter, not for running a linter. (JVM/Go linters — detekt, ktlint, Checkstyle, golangci-lint — and Cedar have no deep-dive file yet; their reference lives in docs/linter-support.md.)

Awaiting classification15updated today

Debug My Harness

zernie

Diagnoses agent harness misbehavior by reading the local .vigiles/runs.jsonl flight-recorder ledger.

AI & Agents15updated today

Review Docs

zernie

Review the README or a documentation page from several real reader points of view at once. Fans out one parallel reviewer per audience — Claude Code newcomer, power user, plugin/skill author, skeptical senior engineer, non-running decision-maker — each scoring it x/5 and naming concrete, line-level fixes. Use when asked to review, critique, grade, or "get to N/5" the README or any front-door doc, or to check how a doc reads for real users. Not for code review (use /code-review for that).

Awaiting classification15updated today

Adopt Spec

zernie

Converts an existing hand-written CLAUDE.md into a typed CLAUDE.md.spec.ts using the vigiles spec library.

AI & Agents15updated today

Pr To Lint Rule

zernie

Turns a recurring prose code-review rule into a custom lint rule, gated by an independent soundness test that abstains if it leaks.

Software Development15updated today

Enforce Rules Format

zernie

Validates that project instruction-file rules carry proper enforcement classifications and fixes missing ones.

AI & Agents15updated today