readout
warpdotdev/common-skills
Generate polished, self-contained HTML readout documents from conversation findings or fresh research.
What is readout?
Readout turns investigations into durable HTML documents stored in ~/.readouts with an auto-maintained index. Invoke it mid-conversation to snapshot findings ("write this up") or fresh to research and document a topic ("/readout on X"). The work runs in a child agent, keeping your main conversation context clean.
- Snapshot mode: converts accumulated conversation findings into a polished HTML document
- Research mode: investigates a codebase from scratch, answers specific questions, and produces a self-contained reference
- Maintains an auto-updated index page listing all readouts in ~/.readouts
- Runs investigation/writing in a child agent to preserve main conversation context
- Supports code snippet embedding and linked references to hosted repositories
How to install readout
npx skills add https://github.com/warpdotdev/common-skills --skill readoutHow to use readout
- 1.Invoke the skill mid-conversation with /readout, "write this up", "turn this into a doc", or similar; or invoke fresh with /readout on <topic>
- 2.If scope is unclear, the orchestrator will ask 2–4 clarifying questions (depth, audience, which subsystems) before launching
- 3.A child agent is spawned to handle research or conversation-mining; your main conversation continues uninterrupted
- 4.The child produces a single self-contained HTML file in ~/.readouts/<date>-<topic>.html and updates the index
- 5.Open the generated file in your browser; the path is reported back when complete
Use cases
- Document how a system or feature works after exploring it in conversation
- Create a shareable reference guide from investigation findings without cluttering the main chat
- Generate high-level orientation docs or deep technical deep-dives depending on audience and depth needs
- Capture gotchas, entry points, and subsystem interactions as a durable record
- Turn ad-hoc code exploration into team-ready documentation
- Engineers documenting system behavior or architecture decisions
- Teams needing shareable technical references without conversation noise
- Developers investigating unfamiliar codebases and wanting to preserve findings
- Anyone creating personal or shared knowledge bases from research
readout FAQ
Snapshot mode (invoked mid-conversation) mines findings from the current conversation history. Research mode (invoked fresh, e.g. "/readout on how webhooks work") investigates the codebase from scratch to answer specific questions. Both produce the same polished HTML output.
The child agent keeps the investigation and writing work out of your main conversation context window, so your primary task stays focused and responsive. The child reports back when done.
Yes. The orchestrator asks clarifying questions about depth (high-level overview vs. deep mechanics with line-level grounding) and audience (personal notes vs. team-shared docs) before launching. You can also provide these details upfront to skip the interview.
All readouts are stored in ~/.readouts/ with filenames like YYYY-MM-DD-topic-slug.html. An auto-maintained index.html lists all readouts. You can open them directly in your browser.
The child agent embeds referenced source code per the doc guide and generates linked references to hosted repositories (e.g. GitHub) when the repo URL and commit are known, so readers can jump to the actual code.
Full instructions (SKILL.md)
Source of truth, from warpdotdev/common-skills.
name: readout description: Produce a polished, self-contained HTML "readout" document under ~/.readouts (with an auto-maintained index page), either by snapshotting the findings accumulated in the current conversation or — when invoked fresh, e.g. "/readout on how github webhook events are processed" — by sharpening scope with clarifying questions and researching the codebase before documenting. The work runs in a child agent so the main conversation's context stays clean. Use whenever the user invokes /readout, says "write this up", "turn this into a doc/page", "make a readout", or asks for a readable, shareable document capturing findings or explaining how something works.
Readout
A readout turns an investigation into a durable HTML document someone can read weeks later without any of the original context. It starts one of two ways:
- Snapshot mode — invoked mid-conversation ("write this up"): the conversation's accumulated findings are the source material.
- Research mode — invoked fresh ("/readout on how github webhook events are processed in the server"): there is no conversation to mine, so the investigation itself is part of the job.
Either way, invoking this skill is a side task. Your job as the main agent is to sharpen the scope, launch a child agent with a good brief, and get out of the way — the child does the mining/research and the writing, keeping that (often large) work out of your context window.
Orchestrator workflow
1. Sharpen the scope — ask before launching
A vague brief produces a vague document. Before launching you should be able to list the specific questions the document will answer; if you can't, interview the user first:
- Ask 2–4 targeted questions, offering concrete options rather than open prompts — take a quick look at the code or topic first so the options are real (subsystems, entry points, competing concerns). For "/readout on how github webhook events are processed": which direction matters — inbound triggers, post-back, or both? a current-state reference or a gotcha hunt? which repo(s)?
- Always pin down depth and audience: high-level orientation vs. deep mechanics with line-level grounding; personal notes vs. shared with the team.
- Respect a shrug. "Just a high-level overview" is a valid answer — record it in the brief and move on rather than interrogating. Even then, try to extract the two or three questions the reader most needs answered; specificity is what makes a readout useful.
- Skip the interview when the scope is already specific — a snapshot of a focused conversation, or a precise research request, needs no questions. In snapshot mode the conversation usually supplies the questions; ask only when the invocation is ambiguous about which threads to include.
2. Compose the brief
Write a short brief (roughly 10–20 lines) carrying pointers, not payloads:
- A working title / topic, and the mode (snapshot or research)
- The specific questions the document must answer (from the conversation or the interview), plus depth and audience
- Scope: which threads/subsystems to cover, and anything to explicitly exclude
- Snapshot mode: headline conclusions worth centering the doc on, one line each — the child pulls the full content from conversation history itself, so don't paste findings wholesale
- Research mode: starting pointers — entry-point files, symbols, or directories you already know about
- Absolute paths to the repos/directories that ground the work
- Each repo's hosted URL and the examined commit when known (e.g.
github.com/org/repo @ abc123), so the document can hyperlink code references
3. Launch one local child agent
Spawn exactly one child agent via run_agents, local execution. Local matters: the document lands on the user's filesystem and opens in their browser. Name the child readout-<topic-slug>.
Build the child's prompt from the template below. It must include:
- The brief
- The source-material block matching the mode (snapshot mode also needs your agent run ID —
current_run_idfrom the orchestration runtime context — so the child can mine the parent conversation withsearch_conversation_history) - The instruction to read
references/doc-guide.mdfrom this skill's directory before writing - The output path convention and completion protocol
4. Get back to work
After launching, resume whatever you were doing, or end your turn — the child's completion message arrives on its own; relay the file path to the user with a one-line description when it does. In research mode a fresh conversation may have nothing else pending; just end the turn. Don't sit in a wait loop unless the user asked to wait for the document.
Child agent prompt template
Adapt this; keep the structure, and include the source-material block that matches the mode.
You are producing a "readout": a single self-contained HTML document that answers a
specific set of questions about <topic>, for a reader who has none of this context.
Brief:
<brief — including the questions to answer, depth, and audience>
Source material (snapshot mode):
- The parent conversation: agent run ID <current_run_id>. Use search_conversation_history
with agent_run_id set to that ID. Make several targeted queries — one per question in
the brief — rather than one broad query; targeted queries surface far more usable detail.
- The codebase(s) at <absolute paths>. The conversation is your starting point, not a cage:
verify file references before asserting them, and where a section needs more depth to
stand on its own, go read the code and fill the gap.
Source material (research mode):
- Investigate directly in the codebase(s) at <absolute paths>. Let the brief's questions
drive the investigation: trace the actual code paths, read the real implementations, and
ground every claim in file:line references. Distinguish verified from inferred. Do not
pad the document with generic knowledge — its value is what's true of THIS codebase.
- Repo host + commit for linked code references, if known: <github.com/org/repo @ commit>
(otherwise derive from git; see the doc guide's "Linked code references").
Start from the canonical template at <skill-directory>/assets/template.html — its
data-readout chrome blocks must be copied verbatim so every readout looks like every
other. Before writing, read <skill-directory>/references/doc-guide.md and follow it.
Output:
- Write ONE self-contained HTML file to ~/.readouts/<YYYY-MM-DD>-<topic-slug>.html
(create ~/.readouts if it doesn't exist; suffix -2, -3, ... if the name is taken;
get the date from `date +%F`).
- Embed referenced source per the doc guide when a repo is checked out
(<skill-directory>/scripts/embed_snippets.py).
- Refresh the readouts index: python3 <skill-directory>/scripts/update_index.py
(fully regenerates ~/.readouts/index.html listing every readout).
- When the file is written, open it with `open <path>` (skip this if the environment is
headless).
- Report back to your orchestrator: the absolute file path, a 2–3 sentence summary of what
the document covers, and anything you could not verify.
Fallbacks
- Child spawning unavailable or denied: produce the document yourself, following
references/doc-guide.md. If a research subagent is available, delegate the conversation-mining or code investigation to it so your context still stays lean. - Child can't search conversation history (snapshot mode; it will report this back): reply to the child with a distilled dump of the findings so it can proceed — this is the one case where payload-in-prompt is the right call.
- User-provided material instead of a conversation (transcripts, files, links): treat that material as the source; everything else in the workflow is unchanged.
Related skills
More from warpdotdev/common-skills and the wider catalog.

reproduce-bug-report
Launch cloud agents with computer use to reproduce UI bugs and capture visual evidence.

research
Delegate noisy investigation to subagents to keep your context clean and focused.

resolve-merge-conflicts
Extract conflict hunks and compact diffs to resolve Git merge conflicts without loading full files.

respond-to-pr-comments-in-blocklist
Interactively respond to and resolve GitHub PR review comments with agent-authored replies.

review-pr
Review pull request diffs and write structured feedback to review.json for workflow publishing.

saga
Orchestrate autonomous, spec-driven development of medium-to-large features using worker subagents and airtight validation contracts.