skills/final-brief/SKILL.md
Generates a rich, visual HTML one-pager describing the FINAL state of a branch or PR stack — what the code does now, how the key pieces work, and how each PR evolved (every commit beyond the initial slice and why it landed — review findings, user steering, or otherwise) — so a busy reviewer can do a confident final pass before merge. Use this after the work is done and reviewed — at a pre-merge gate in a shipping workflow once review is complete, or when the user asks to "explain the final code", "walk me through what shipped", "summarize the branch / the stack before merge", "what did the review change", or wants an overview of finished work. It leads with high-stakes surface area (service endpoints, auth, schema), walks the important functions, and traces every follow-up commit in each PR to the finding or steer that caused it. Reach for this skill whenever someone wants to understand finished, reviewed code before merging it — even if they don't say "brief" or "HTML".
npx skillsauth add ilamanov/skills final-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 the finished, reviewed state of a branch or PR stack and merge it with confidence, without reading the code or the review thread themselves.
This is the bookend to draft-brief. Where draft-brief answers "what is being proposed and how is it sliced," final-brief answers "what does the code actually do now, and how did each PR get to its final shape." The reader is the same busy manager: front-load the high-stakes surface area, explain the real logic clearly, and never trade clarity for brevity. Be thorough — just put what matters first.
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 finished work, not filing a report. This matters most in the code walkthrough: explaining how the feature works is inherently a narrative, not a list.
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). Collect the finished state of the work against it — the cumulative diff and stats, and every commit on the branch or stack with its full message.
If a PR stack exists, gather it too: the PRs, their status (open / merged), and which branch maps to which PR.
Find the review findings, if review happened. This is what makes a final brief different from a draft one. Pull the review threads on the PRs — both the summary reviews and the inline comments. Review-fix commits are typically one focused commit per finding, with a message that references the finding it addressed; cross-reference commit messages against the review comments to build the finding → commit mapping. If there was no review (no PRs, no comments), skip the review section entirely — just brief the final state.
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 work.
Sort the final change into tiers; this ordering drives the page.
Tier 1 — High-stakes (lead with these):
Tier 2 — Core logic: the important functions and modules that carry the feature.
Tier 3 — Routine: UI, refactors, tests, docs.
If a tier is empty, say so — "no auth changes" is useful information.
If the schema changed, walk it — do not summarize. One row per individual change: table/model, exact field, before → after, nullability, default, index/constraint impact, and the practical consequence (backfill needed, data loss on a drop, non-null-without-default failure on a populated table). The reviewer should be able to audit the entire schema delta from this section. Show it in its final, post-review form.
This is the heart of a final brief. For the functions and modules that carry the feature — prioritizing endpoints, auth, and core logic over routine glue — explain each one so a reviewer understands the behavior without opening the file:
Don't walk every function — walk the ones that matter. A reviewer should finish this section understanding how the feature actually works.
A PR in the stack rarely stays at its first commit. It starts as the single slice from the stack split, and then commits accumulate on top — some fixing review findings, some because the user steered the feature in a new direction mid-flight, some for other reasons (CI fixes, restacking fallout, follow-up polish). The final brief must account for all of them: the reviewer needs to see not just the end state but how each PR got there and why.
For each PR in the stack, walk its full commit history:
Present this per PR: the initial commit as a baseline, then a chronological list of follow-up commits, each tagged with its cause (review finding / user steering / other) and a one-line description of the change. This turns a bare "5 commits" into a readable account of how the PR converged on its final shape.
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 high-stakes surface area and the review outcome 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 particular work. A small bugfix wants a very different shape from a multi-PR feature with heavy review activity. Don't force a one-size-fits-all template.
Content worth considering (use what's relevant to this work, 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 (priority, severity, review state), 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. final-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:
Then tell the user the brief is ready and where it is.
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).
development
Runs on a schedule to mine recent Codex and Claude Code conversations across configured projects, find moments where things went off plan (the user had to steer, correct, abort, or re-explain), and propose targeted improvements to the specific skills that were in use at the time. Opens one pull request per run against the skills repo, with each proposed edit annotated with the concrete steering moment that motivated it. Also analyzes its own runs (the `skills` repo is one of the configured projects) so it iteratively improves itself. Use this skill when the user asks to "analyze recent conversations", "find what went wrong", "improve skills based on past runs", or sets up a scheduled run of skill-improver. Make sure to use this skill whenever the user mentions recursive skill improvement, post-mortem analysis of agent conversations, or automating skill quality based on real usage.