Omnibus
200 skills · 1230 min
Omnibus
Skill 105 of 200
How to author custom PostHog Review skills: the review perspectives, blind-spot checks, validation criteria, and resolution criteria that drive PostHog Review’s automated PR…
5 minutes · 1,030 words · 6 sections
Install
npx skills add PostHog/skills --skill review-hog-authoringnpx skills add PostHog/skills/plugin marketplace add PostHog/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
PostHog Review is PostHog’s automated PR reviewer. A review splits the PR into chunks, then for each chunk runs every enabled perspective in parallel (independent specialist lenses), a single blind-spot check afterwards (a final sweep conditioned on what the perspectives found), and finally judges every surviving candidate finding against one validation criteria skill — only findings that pass get published to the pull request. After a published review, the resolution stage goes back over the PR’s unresolved review threads and judges each against one resolution criteria skill — worth-and-safe asks get implemented on the PR branch, every thread gets a reply.
All four kinds are team LLMSkill rows the review agents pull over MCP at run time. PostHog ships
canonicals; this skill is the guide for authoring custom ones. The skill itself is team-level;
whether it runs is a per-user setting in Inbox → Code review.
| Kind | Name contract | Cardinality per user | Canonical example |
|---|---|---|---|
| Review perspective | review-hog-perspective-<slug> | Multi-enable, at least one stays on | review-hog-perspective-logic-correctness |
| Blind-spot check | review-hog-blind-spots-<slug> | Exactly one active; selecting swaps | review-hog-blind-spots-general |
| Validation criteria | review-hog-validation-<slug> | Exactly one active; selecting swaps | review-hog-validation-criteria |
| Resolution criteria | review-hog-resolution-<slug> | Exactly one active; selecting swaps | review-hog-resolution-criteria |
skill-list the team’s review-hog-*
skills and skill-get the canonical of the kind you’re authoring (see the table above) — it is
the reference for structure and tone. For a perspective, skim the descriptions of every existing
review-hog-perspective-* so the new lens doesn’t re-cover ground an enabled one already owns
(overlap gets deduplicated later, but it wastes review passes).posthog:skill-create — actually create the team LLMSkill
row; never hand the user a body to copy-paste. Pass the exact name per the contract above
(lowercase slug), a one-paragraph description of what the lens/sweep/bar is, and the body.
The name prefix is the whole identity — it is how the Code review tab and the review runs
discover the skill. There is no category parameter on the skill tools and you don’t need one:
the backend stamps the review_hog grouping category itself (it only affects grouping on the
Skills page) — do not spend turns trying to set or verify it. Iterate with
posthog:skill-update if the user wants changes. Author fresh — don’t skill-duplicate a
canonical to edit: seeded metadata rides along with the copy, and the canonical sync may
overwrite or prune it.The body instructs one specialist review pass over one PR chunk. Match the canonical logic-correctness skill’s shape:
The review harness already tells the agent the pipeline mechanics — parallel perspectives, later deduplication, severity levels, the non-test-files rule — so the skill carries only the lens; restating harness rules dilutes it.
The body instructs the final sweep that runs after every enabled perspective finished a chunk. It is conditioned on the covered findings (the prompt lists which perspectives ran and what they found), so the body should say how to use that: the covered findings map where attention already went, and the sweep’s value is the negative space — error paths, unhandled inputs, cross-file interactions, assumptions. It is not scoped to one specialty, and an empty result beats padding. A custom sweep narrows or re-weights this hunt (e.g. toward a domain the team keeps getting burned by).
The body defines the keep/drop bar every candidate finding is judged against before publishing. Precision over recall is the house default — a reviewer that raises noise gets muted — so define: what makes a finding real and worth an author’s attention (user-affecting correctness, security, data loss, contract breaks, performance), what gets dropped (overengineering, speculation, defensive paranoia, unreachable edges, style), and how to treat genuine uncertainty (default: drop). A custom bar shifts strictness or re-weights concerns; it should still demand evidence from the live codebase, not vibes.
The body defines the bar the resolution stage applies to each unresolved review thread on a PR: worth implementing (a real improvement the PR should carry, in scope for what it changes) and safe to implement unattended (small blast radius, no contract or API changes, no cross-cutting rewrites, verifiable locally). Define what gets implemented, what gets a reasoned decline (overengineering asks, scope creep, style-only churn, requests better served by a follow-up), and what escalates to a human. The harness owns the hard floors — human-authored threads are never resolved by the bot, escalations never resolve a thread, replies always explain the decision — so a custom skill may tighten the bar or re-weight what counts as worth it, never loosen those floors.
How to author custom PostHog Review skills: the review perspectives, blind-spot checks, validation criteria, and resolution criteria that drive PostHog Review's automated PR reviews. Use when a user wants a new review perspective (a specialist lens on their PRs), a custom blind-spot sweep, their own validation bar for which findings get published, or their own bar for which review comments get implemented. Trigger on "create a PostHog Review perspective", "custom review perspective", "my own blind-spot check", "custom validation criteria", "custom resolution criteria", "tune what PostHog Review publishes", "tune what PostHog Review implements".
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 24 September 2026.SKILL.md, not by matching a directory convention. 2 distinct layouts observed: skills/omnibus/*/SKILL.md, skills/posthog/all/skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by PostHog, declaring 6 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./PostHog/skills.md, and each skill at its own .md URL.