skills/draft-brief/SKILL.md
Generates a rich, visual HTML one-pager that summarizes the current working-tree changes — and the proposed PR stack, if one exists — so a busy reviewer can grasp the work and approve it fast. Use this whenever someone needs an overview of in-progress changes before sign-off — at a stack-breakup or pre-approval gate in a shipping workflow, or when the user asks to "review the changes", "show me what changed", "summarize the diff / the branch", "what am I about to approve", or wants a digest of the working tree before approving. The brief leads with high-stakes changes (new service endpoints, auth/access control, database schema) and walks schema changes line by line. Reach for this skill whenever someone wants to eyeball a body of uncommitted work before approving it — even if they don't say the words "brief" or "HTML".
npx skillsauth add ilamanov/skills draft-briefInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produce a rich, visual one-pager — a single self-contained HTML file, designed like a dense dashboard rather than a written document — that lets a time-pressed reviewer understand a body of in-progress changes and decide whether to approve them, without reading the diff themselves.
The reader is a busy manager. They might give this 30 seconds or they might give it 10 minutes; the brief has to reward both. So the structure is strictly priority-ordered: the highest-stakes, hardest-to-undo changes come first, and the long tail of routine edits comes last. The goal is maximum signal in minimum time — but never trade away clarity to save the reader a few seconds. Be thorough; just front-load what matters.
A page of tables and callouts is quick to skim but hard to truly absorb: the reviewer gets facts without the thread that connects them. So beyond being well-structured, the brief should read — like walking a colleague through the change, not filing a report.
Keep this as connective tissue, not bulk. The prose threads the visual elements together; it never replaces them and never pushes the page long. A skimmer still gets everything from the structure; a top-to-bottom reader gets a coherent story.
Identify the trunk branch the work is based on (usually main). Then collect the full picture of what changed against it — the diff stats, the actual diff, and any commits already made on the branch. Crucially, include untracked files: brand-new files often carry the most important code in the change and are easy to miss. Read whatever you need directly to understand it.
Find the proposed PR stack, if one exists. It may already be in the current conversation context, or saved in a file named proposed-pr-stack.md (look in the repo root and .briefs/). If neither exists, that is fine — some changes have no stack. Just brief the changes and omit the stack section entirely. Do not invent or propose a stack yourself.
Ignore any pre-existing brief files. .briefs/ may already contain briefs from earlier runs or other work. They are never an input — they may be stale or obsolete, and that does not matter. Do not read them. Every invocation generates a brand-new brief from the current state of the change.
Before writing anything, sort what you found into tiers. This ordering drives the whole page.
Tier 1 — High-stakes (lead with these, make them impossible to miss):
Tier 2 — Behavior changes: business logic, data flow, API response shapes, migrations of existing behavior.
Tier 3 — Routine: UI tweaks, refactors, tests, docs, formatting.
If a tier is empty, say so explicitly ("No auth or schema changes") — absence of high-stakes change is itself valuable information for the reviewer.
Schema changes are the single most dangerous thing in most diffs and the easiest to wave through. So when the schema source changed (schema.prisma, db/schema.ts, migration files, model definitions), do not summarize — walk it.
For each individual change produce one row: the table/model, the exact field, old state → new state, nullability, default, index/constraint impact, and the practical consequence ("existing rows need a backfill", "this drop loses data", "non-null without default will fail on a populated table"). The reviewer should be able to audit the schema delta entirely from this section.
Write one self-contained .html file — all CSS inline in a <style> block, no external requests, no JS frameworks. It must open straight from disk.
Aim for the goal, not a fixed layout. A reviewer should be able to grasp the riskiest parts of the change from the top of the page within roughly half a minute, and read the whole brief without much scrolling. Beyond that, the visual design is yours — pick a structure that serves this change. A schema-heavy change wants a different shape than a UI refactor; a 2-PR stack wants different framing than a 6-PR one. Don't force a one-size-fits-all template.
Content worth considering (use what's relevant to this change, skip what isn't, in whatever order best serves the reader):
Visual craft — this lands in front of a manager, so it should look deliberate, not generic: clear type hierarchy, color used purposefully (especially to signal priority/severity), monospace for code and paths, real whitespace rhythm. Avoid the generic AI-generated look. If a frontend-design skill is available, lean on its principles.
Save the file into a .briefs/ directory at the repo root, naming it after the change so it never collides with briefs from other work — e.g. draft-brief-<slug>.html, where <slug> is the branch name or a short slug of what the change does. Make sure that directory is ignored by version control so the brief is never committed — prefer a local, uncommitted ignore rule over editing a tracked ignore file. Then open the brief in the user's browser.
Before handing off, check the brief against its purpose:
Then tell the user the brief is ready and where it is.
development
Map every Codex and Claude Code session for a project to the git worktrees they ran in, in an interactive local UI. Use whenever someone wants to see, search, audit, or clean up past AI coding-agent conversations and the worktrees those ran in — e.g. "what Codex sessions ran on this repo", "list my Claude Code sessions", "which worktree was that session in", "find the chat where I refactored auth", "archive old Codex sessions", or "show every session across my worktrees". Reach for it to untangle which of many worktrees still has live agent history attached. This is about Codex and Claude Code transcript history plus git worktrees — not HTTP, login, or auth sessions, not terminal or tmux sessions, and not user-research sessions.
tools
Generally-applicable conventions for how code is written and arranged — tooling/package manager, import style, file & component naming, comments, and where files live (colocation vs. global folders). Use whenever creating, naming, moving, or importing a file, running project commands, or deciding where a new module belongs. Consult BEFORE writing the code so the conventions are baked in, not retrofitted. If a convention below matches the work, apply it — don't ask, just follow it (call out the choice in one line so the user can override).
development
Generally-applicable frontend/UI best practices. Use whenever building, modifying, or reviewing UI — adding a form/button/dialog/modal, wiring keyboard shortcuts, creating any interactive surface that submits a form, or any time TSX/JSX is being written or edited. Consult BEFORE writing the code so the patterns are baked in, not retrofitted. If a scenario described in the skill body matches the work, apply the pattern — don't ask, just follow it (call out the choice in one line so the user can override).
tools
Generally-applicable backend/data best practices. Use whenever writing or modifying backend/data code — API routes, server actions, DB writes, background jobs, agent tools, import flows, webhooks, paste handlers, or anywhere data enters the system. Consult BEFORE writing the code so the patterns are baked in, not retrofitted. If a scenario described in the skill body matches the work, apply the pattern — don't ask, just follow it (call out the choice in one line so the user can override).