Agent skill

Dev Review

by FHIR in FHIR/fhir-codegen

Performs a two-track code-quality and QA review in the roles of a staff-level Engineering Lead and QA Lead, then synthesizes both critiques into a single analysis.md.

MITAuto-check passedTesting & QA

Install Dev Review

skills CLI
$ npx skills add FHIR/fhir-codegen --skill dev-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FHIR/fhir-codegen dev-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FHIR/fhir-codegen.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/dev-review .claude/skills/dev-review && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dev-review
GitHub stars
154
Token cost
~5k tokens
SKILL.md length
2,212 words
Files
1
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Performs a two-track code-quality and QA review in the roles of a staff-level Engineering Lead and QA Lead, then synthesizes both critiques into a single analysis.md.

  • Works in 4 steps: Target (required) — where to write the… → Scope (optional) — what to review. If… → Optional focus — free-form text.… → …
  • : pre-PR self-review
  • SKILL.md covers Roles, Inputs, Scope Resolution (when Scope… and Workflow, plus 4 more sections
  • Calls git

What it does

Dev Review is an agent skill from FHIR/fhir-codegen. Performs a two-track code-quality and QA review in the roles of a staff-level Engineering Lead and QA Lead, then synthesizes both critiques into a single analysis.md. USE FOR: pre-PR self-review, post-dev-do quality gates, ad-hoc deep reviews of a change set. Accepts either a full path to the analysis file or a short slot number that expands to scratch/[MMDD]-[]/analysis.md. Optional maxsubagents (default 3) caps parallel sub-agent fan-out. Engineering review covers antipatterns, hot paths, consistency errors…

Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Subagents, Test coverage and Quality gates. It works with GitHub. The repository describes itself as: Tools for code generation based on the FHIR specification. The licence is MIT.

When your agent uses it

  • : pre-PR self-review
  • Post-dev-do quality gates
  • Ad-hoc deep reviews of a change set

Example prompts

  • “Use the dev-review skill to perform a two-track code-quality and QA review in the roles of a staff-level Engineering Lead and QA Lead, then…”
  • “/dev-review”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Target (required) — where to write the analysis. One of
  2. Scope (optional) — what to review. If the user names a scope,
  3. Optional focus — free-form text. Examples: "focus on the
  4. max_subagents (optional, default 3) — maximum number of

What it can do on your machine

Read from SKILL.md and the folder at commit b5f97c7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dev Review loads about 5k tokens when it runs. Until then it costs about 251 tokens; SKILL.md has 2,212 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~251
When it runs · the whole SKILL.md, loaded when a task matches
~5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FHIR/fhir-codegen at commit b5f97c7, republished under its MIT licence (© FHIR). 2,212 words, ~5,035 tokens.

Download SKILL.mdSave it as .claude/skills/dev-review/SKILL.md (or your agent's skills folder).
name
dev-review
description
Performs a two-track code-quality and QA review in the roles of a staff-level Engineering Lead and QA Lead, then synthesizes both critiques into a single `analysis.md`. USE FOR: pre-PR self-review, post-`dev-do` quality gates, ad-hoc deep reviews of a change set. Accepts either a full path to the analysis file or a short slot number that expands to `scratch/[MMDD]-[##]/analysis.md`. Optional `max_subagents` (default 3) caps parallel sub-agent fan-out. Engineering review covers antipatterns, hot paths, consistency errors, dead code, and design issues; QA review covers test coverage, edge cases, regression risk, and verifiability. Read-only with respect to the codebase — never modifies source, never commits, never pushes, and never publishes `analysis.md` to GitHub. Pairs with `dev-request`/`dev-report` (capture the ask), `dev-plan` (fold findings into a plan), `dev-do` (execute the remediation), `dev-issue` (publish the request or report), and `dev-pr-open` (push and open the PR).

Dev Review Skill

Acts as a staff-level Engineering Lead and a staff-level QA Lead for local development work in this repository. Runs two independent review passes over a defined change scope, then synthesizes their findings into a single analysis.md that an engineering team can act on.

This skill is for shortcutting the local inner loop — typically run after dev-do has produced a phase or two of commits, or before opening a PR. Output lives under scratch/ (which is gitignored) and is not intended to be committed.

This skill is read-only with respect to the codebase: it never modifies source files, never stages, never commits, and never pushes. The only file it writes is the analysis report itself.

Roles

This skill plays two roles, in sequence, then a third synthesizing role.

Role 1 — Staff-level Engineering Lead (code review)

You are looking at the change as the engineer who has to live with it. Your concerns:

  • Antipatterns — misuse of language/runtime features, fighting the framework, copy-paste duplication, leaky abstractions, god objects, primitive obsession, swallowed exceptions, etc.
  • Hot paths — unnecessary allocations, N+1 queries, sync-over-async, blocking I/O on hot threads, repeated work that could be cached, algorithmic complexity that doesn't match the data shape.
  • Consistency — does this change follow the patterns already established in this repository? Naming, exception handling, logging, resource lifecycle, DI registration, project boundaries, layout, and the conventions documented in AGENTS.md (including its architectural invariants). Do not invent a convention: if AGENTS.md and the surrounding code are both silent on a point, it is not a consistency finding.
  • Dead code paths — branches that can't be reached, parameters that are never read, TODOs left in shipped code, types/methods now unused after the change.
  • Design — wrong layer, wrong ownership, missing or wrong abstraction boundary, public API surface that leaks internals.
  • Correctness smells — off-by-one errors, null handling, boundary conditions, race conditions, resource leaks, misuse of IDisposable/IAsyncDisposable, cancellation propagation, transaction scoping, swallowed exceptions, and behavior that conflicts with the runtime/compatibility constraints documented in AGENTS.md.
Role 2 — Staff-level QA Lead (test & verifiability review)

You are looking at the change as the person who has to certify it. Your concerns:

  • Coverage — are the new code paths covered by tests? Which existing tests exercise the changed code? Which obvious paths are not covered?
  • Edge cases — empty inputs, max-size inputs, Unicode, time-zone / DST boundaries, leap days, network failure, partial writes, malformed data, concurrent access. Which edges are tested? Which are not?
  • Regression risk — what existing behavior could this break? Are there characterization tests pinning that behavior down?
  • Verifiability — can a reviewer reproduce the author's claim that this works? Is there a build/test command that demonstrates green? Are manual verification steps reproducible?
  • Determinism & flakiness — new tests that depend on wall clock, network, file-system ordering, or shared global state.
  • Test quality — assertions that don't actually pin behavior, over-mocked tests that pass without exercising real logic, missing negative-path tests, missing async/cancellation tests.
  • Observability — when this fails in the wild, will the logs / traces / metrics actually tell you what went wrong?
Role 3 — Synthesizer (final report author)

After both reviews complete, you put on a single hat: the senior engineer writing the analysis the team will actually read. You:

  • Deduplicate. When both reviewers raise the same concern, merge them into one finding.
  • Rank. Order findings by severity (Blocker → High → Medium → Low → Nit). Severity is your judgment, not a copy of either reviewer's framing.
  • Cite. Every finding names a file and a line range (or a symbol). No "somewhere in the auth module".
  • Recommend. Each finding ends with a concrete next step (fix here / add test for X / open a follow-up ticket / accept and document).
  • Stay actionable. Drop noise — style nits that the formatter would catch, "consider renaming this variable", restating what the code obviously does. The engineering team should be able to walk this document top-to-bottom and act on each item.

Inputs

  1. Target (required) — where to write the analysis. One of:

    • A full path (absolute or repo-relative) to a .md file. Used verbatim. Example: scratch/0423-02/analysis.md, C:\path\to\repo\scratch\0501-04\analysis.md.
    • A slot number (one or more digits, e.g. 2, 02, 14). Expands to scratch/<MMDD>-<##>/analysis.md, where:
      • <MMDD> is today's local date (zero-padded month + day).
      • <##> is the slot number, always zero-padded to two digits.
    • When given a number, confirm the resolved path back to the user in your first response.
    • The parent directory is created if missing. The analysis file is overwritten if it already exists, after showing the user a short notice that you're replacing the prior analysis.
  2. Scope (optional) — what to review. If the user names a scope, honor it verbatim. Accepted forms:

    • working-tree — staged + unstaged changes vs HEAD.
    • last-commit — HEAD~1..HEAD.
    • since-push — local commits ahead of the upstream branch (@{u}..HEAD if upstream is configured; otherwise fall back to origin/<default-branch>..HEAD).
    • full — the entire repo (use only when explicitly requested; reviews are time-boxed and partitioned in this case).
    • A commit range (<sha>..<sha>), a single SHA, a branch name, or a list of file paths. Used verbatim.
    • plan-slot — the commits produced by the sibling plan.md in the same slot directory (see Scope Resolution below).
  3. Optional focus — free-form text. Examples: "focus on the ingestion path", "I'm worried about the new transaction handling", "skip the test files". Use this to weight the review, not to limit it; still surface anything load-bearing you find outside the focus.

  4. max_subagents (optional, default 3) — maximum number of sub-agents to run in parallel at any given time. 1 disables parallel fan-out entirely (the Engineering and QA passes still happen, but sequentially in-process or one-at-a-time). Hard upper bound: 8. The cap is a concurrency ceiling, not a total ceiling — you may launch more than max_subagents sub-agents over the life of the task (e.g., when partitioning a large full scope) as long as no more than max_subagents are running at the same time.

Scope Resolution (when Scope is not supplied)

This is the order of operations:

  1. Detect a sibling plan.md. If the resolved analysis path is scratch/<MMDD>-<##>/analysis.md and a plan.md exists in the same directory, attempt plan-slot scope:

    • Read plan.md's ## Progress Log and collect the SHA from every COMMIT entry. Ignore PENDING and NOTE entries — a PENDING entry is unfinished work, not a reviewable commit.
    • The review scope is exactly that set of commits. Do not collapse it into an oldest-parent..newest range unless you have verified the commits are contiguous (each one's parent is the previous), because an unverified range silently pulls in unrelated intervening commits. Otherwise inspect each SHA individually with git show <sha> and union the results.
    • Echo the resolved commit list and file set to the user.
    • If the plan exists but no COMMIT entries are recorded yet (e.g. the plan is Draft or Ready-to-execute), fall through to step 2.
  2. No plan, or plan with no commits: stop and ask the user to choose. Offer these options exactly:

    • full — review all code in the repo.
    • since-push — local commits not yet on the upstream branch.
    • last-commit — just HEAD.
    • working-tree — uncommitted changes only.

    Do not guess. Wait for the user's choice before starting either review pass.

Always echo the final resolved scope (a concrete set of files and commit SHAs, not just a label) to the user before fanning out the review passes. This is the contract that lets the user catch a mis-scoping before any expensive work happens.

Show full SKILL.md (1,007 more words)Show less

Workflow

  1. Resolve the analysis path. Echo it.
  2. Resolve the review scope as described above. Echo the concrete file list and (where applicable) commit list. If analysis.md already exists, note that you'll overwrite it.
  3. Pre-flight.
    • Confirm the working tree state with git status so you know whether working-tree scope would actually contain anything.
    • Read AGENTS.md at the repository root for the canonical build and test commands, code style, and architectural invariants. If it is absent, fall back to README.md / CONTRIBUTING.md and note in the report which source you used. You will not run these commands, but you will reference them in the QA review, so they must be real. Never invent one.
    • Identify the affected project(s) so the commands you cite are correctly scoped.
  4. Run the two review passes. Prefer running them in parallel as sub-agents (one general-purpose or code-review agent per role) so they can't anchor on each other. Each sub-agent:
    • Receives the same resolved scope and focus text.
    • Receives an explicit role brief (Engineering Lead or QA Lead, with the bullet list from "Roles" above).
    • Returns a structured list of findings with file paths, line ranges, severity, and a recommendation per finding.
    • Is read-only — explicitly forbidden from editing source or running mutating commands.
  5. Synthesize. Put on the synthesizer hat. Merge duplicates, re-rank by severity, drop noise, write the final report using the format below.
  6. Sanity-check a report containing any Blocker, High, or architecture-level recommendation with a registered review specialist when available. Otherwise use a fresh general-purpose sub-agent explicitly prompted to act as an adversarial/rubber-duck reviewer. Adopt critique findings that prevent miscommunication; set aside findings that bloat the report. Briefly note in your reply what (if anything) changed.
  7. Write analysis.md. Overwrite if present.
  8. Report back with: the resolved analysis path, the resolved scope, finding counts by severity, and the top 3 findings (one line each).

Report Format

markdown
# Code & QA Review: {short title — what was reviewed}

| | |
|-|-|
| Slot | `scratch/<MMDD>-<##>/` (or full path) |
| Issue | [#N](<url>) — or `not published` |
| Scope | {label + concrete description, e.g., `plan-slot` (3 commits, 14 files)} |
| Status | Draft / Ready-for-team |
| Created | {YYYY-MM-DD} |
| Reviewers | Engineering Lead + QA Lead (synthesized) |

## TL;DR

{3–5 sentences. What was reviewed, the overall health verdict
(Ship / Ship-with-fixes / Do-not-ship), and the single most important
thing the team should do next.}

## Scope

- **Commits:** {list of SHAs + subjects, oldest → newest, or "n/a"}
- **Files:** {bulleted list of files reviewed, grouped by project}
- **Excluded:** {anything intentionally not reviewed, with reason}
- **Focus:** {echo of the user's focus text, or "general review"}

## Findings

Findings are **synthesized** from both reviews and ranked by severity.
Each finding is independently actionable.

### Blocker

#### B1. {Short title}

- **Where:** `<path/to/source-file>:120-138` (or symbol name)
- **Source:** Engineering / QA / Both
- **What:** {1–3 sentences. The problem, in observable terms.}
- **Why it matters:** {1–2 sentences. Concrete risk if shipped as-is.}
- **Recommendation:** {Concrete next step. "Add test for X.",
  "Hoist allocation out of the loop.", "Open follow-up issue and
  document the limitation in `ABC.md`."}

### High

#### H1. {…}

{Same shape.}

### Medium

#### M1. {…}

### Low

#### L1. {…}

### Nit

#### N1. {…} (optional — drop the entire Nit section if empty)

## Test Coverage Summary

- **Covered well:** {areas of the change with strong test coverage}
- **Thin coverage:** {areas with weak coverage; what's missing}
- **Suggested new tests:** {bullet list, each naming the test name,
  the project it belongs in, and the behavior it pins down}

## Verification Steps the Team Should Run

- {Specific commands, taken verbatim from `AGENTS.md`. Prefer the
  scoped command for the affected project, or the focused filter for a
  single test class/method.}
- {Any sanctioned verification that could **not** be cited as runnable
  without setup `AGENTS.md` documents as a prerequisite, and why.}
- {Manual steps if applicable}

## Out of Scope / Deferred

- {Things the reviewers noticed but consciously did not chase, with
  why. Useful follow-ups go here.}

## Next Steps

How these findings re-enter the loop:

- **Blocker / High** — when this review has a sibling slot containing a
  `plan.md` (and its source request), re-invoke `dev-plan` on that slot
  with this analysis as input; it folds them in as new remediation
  phases and `dev-do` executes them. For an ad-hoc review with no such
  slot, say so and recommend the user open one with
  `dev-request` / `dev-report` first. Do not hand-patch them outside
  the loop.
- **Medium** — fix now if the change is still in flight, otherwise
  record as a follow-up.
- **Low / Nit** — record and move on. Do not block on these.
- **Never to GitHub.** This analysis is an internal artifact and is
  never published as an issue, a comment, or a quotation. Findings
  re-enter the loop as a new `dev-request` / `dev-report`, which get
  their own issue.
- **After a clean analysis**, `dev-pr-open` is the recommended next
  step — a recommendation, not a gate.
- {Name the concrete next action here, e.g., "Run `dev-plan` on
  `scratch/0423-02/` to add remediation phases for B1 and H2."}

## Notes

{Free-form. Links to related plans, prior reviews, design docs.}

Sub-Agent Use

  • The two role passes (Engineering Lead, QA Lead) should run in parallel sub-agents. They must not see each other's findings until the synthesizer step. This is the whole point of doing two passes — if they collapse into one, you get one set of findings with the illusion of two reviewers.
  • Both sub-agents must be told explicitly that they are read-only: no edits, no commits, no mutating commands. They may run git diff, git log, git show, view, grep, glob, lsp, and similar read-only inspections.
  • The synthesizer step is always done in-process, not delegated. You own the final ranking and recommendations.
  • For very large scopes (full or a multi-hundred-file diff), you may partition the file set across multiple Engineering or QA sub-agents. If you do, give each sub-agent a non-overlapping slice and aggregate before synthesizing.
  • Honor max_subagents. Never run more than max_subagents sub-agents concurrently. If max_subagents is 1, run the Engineering and QA passes one after the other rather than in parallel; they must still be independent invocations that do not see each other's output until synthesis.

Iteration Mode

analysis.md is a snapshot, not a living document. When invoked against a slot whose analysis.md already exists:

  • Treat it as a re-review. Read the prior analysis for context (especially "Out of Scope / Deferred"), then re-run the two passes against the current scope.
  • Overwrite analysis.md with the fresh report. Mention in your reply that you replaced it and call out any findings that have been closed since the prior analysis (with one-line evidence, e.g., "B1 from prior analysis is now resolved by commit abc1234").
  • Do not edit plan.md, featurerequest.md, or bugreport.md in the same slot — those are owned by their respective skills.

Important Rules

  • Read-only. This skill never modifies source, never stages, never commits, never pushes. The only file it writes is analysis.md (and the parent directory if missing).
  • analysis.md is never published to GitHub. Not as an issue, not as a comment, not as a quotation in a PR body. It is an internal artifact. Findings re-enter the loop as a new dev-request / dev-report, which get their own issue via dev-issue.
  • Populate the Issue row, never invent it. Read it from the sibling plan.md, or from the source artifact when no plan exists, under the same no-downgrade ratchet the other skills use: never replace an existing #N with not published. Report a disagreement rather than resolving it — that belongs to dev-issue under its § The Issue Binding. This skill never calls a writing gh command.
  • Two independent passes, then synthesize. Do not skip a pass because "the other one will catch it". Do not let one pass see the other's draft before synthesis.
  • Today's date governs slot expansion. Never reuse a previous day's <MMDD> for a numeric slot. For an earlier slot, the user must give a full path.
  • Cite every finding. File path + line range or symbol. No "somewhere in the auth module". If a finding can't be cited, it isn't ready to ship in the report — either pin it down or drop it.
  • Drop noise. Anything a formatter, linter, or trivial rename would catch does not deserve a finding number. Mention it once in a single Nit line at most, or omit it entirely.
  • Honor repo conventions. Use AGENTS.md at the repository root as the baseline for "consistency" findings, falling back to README.md / CONTRIBUTING.md if it is absent. Verify any applicable stored memory against the repository before using it. A change that violates a documented convention or architectural invariant is at least a Medium finding unless explicitly justified. A change that merely differs from your personal preference is not a finding at all — do not import conventions from other repositories.
  • Severity is the synthesizer's call. Do not pass through the reviewers' severities verbatim if you disagree. The team reads your synthesized ranking.
  • Stay in scope. If you spot a serious issue outside the reviewed scope, record it under "Out of Scope / Deferred" with a one-line description — do not promote it into the main findings list.
  • Concurrency cap is a hard ceiling. Do not spin up more than max_subagents sub-agents in parallel.
  • Do not commit. Files under scratch/ are gitignored on purpose.

© FHIR, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/dev-review of FHIR/fhir-codegen.

Open the folder on GitHubat commit b5f97c7

Compare with similar skills

Dev Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dev Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dev Review this skillFHIR/fhir-codegen154—~5kAutomated safety check: PassMIT
Quality CImanagedcode/dotnet-skills486—~2.1kAutomated safety check: PassMIT
Code Quality Crapmacalbert/envilder138—~468Automated safety check: PassMIT
Constraint-Driven Developmentaddyosmani/agent-skills103k2 repos~5.2kAutomated safety check: PassMIT
Sonarffroliva/gflow-cli264—~1.1kAutomated safety check: NotesMIT
Reviewing Changesbitwarden/ios695—~1.1kAutomated safety check: PassGPL-3.0

Similar skills

  • Quality CI

    managedcode/dotnet-skills

    Set up or refine open-source .NET code-quality gates for CI: formatting, .editorconfig, SDK analyzers, third-party analyzers, coverage, mutation testing, architecture tests, and security scanning.

    486 GitHub stars~2.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Code Quality Crap

    macalbert/envilder

    CRAP score quality gate for code complexity and test coverage.

    138 GitHub stars~468 tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Constraint-Driven Development

    addyosmani/agent-skills

    Records a project's quality bar in CONSTRAINTS.md and watches diffs for signs an agent quietly weakened it, such as suppressions, skipped tests or lowered thresholds.

    103k GitHub starsUsed in 2 repos~5.2k tokens
    DevelopmentAuto-check passed
  • Sonar

    ffroliva/gflow-cli

    Check the SonarCloud quality gate for a PR (or the current branch) and drive it to zero.

    264 GitHub stars~1.1k tokensUpdated today
    Testing & QAAuto-check: notes
  • Reviewing Changes

    bitwarden/ios

    Official

    Performs comprehensive code reviews for Bitwarden iOS projects, verifying architecture compliance, style guidelines, compilation safety, test coverage, and security requirements.

    695 GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Mcaf Dotnet Quality CI

    managedcode/Storage

    Set up or refine open-source .NET code-quality gates for CI: formatting, .editorconfig, SDK analyzers, third-party analyzers, coverage, mutation testing, architecture tests, and security scanning.

    138 GitHub stars~1.7k tokensUpdated yesterday
    Testing & QAAuto-check passed

More from FHIR/fhir-codegen

All 9 skills in this repo
  • Dev Issue

    FHIR/fhir-codegen

    Publishes a slot's feature request or bug report to GitHub as an issue, and keeps that issue in sync, in the role of a release-minded engineer.

    154 GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Dev Report

    FHIR/fhir-codegen

    Drafts and iterates on local-development bug reports in the role of a staff-level Tech Lead.

    154 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Dev Request

    FHIR/fhir-codegen

    Drafts and iterates on local-development feature requests in the role of a staff-level Product Manager.

    154 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Dev Approach

    FHIR/fhir-codegen

    Explores three competing solution shapes for one request in the roles of three isolated staff-level Engineering Leads, then has a fourth skeptical judge sub-agent select one on the record.

    154 GitHub stars~6.4k tokensUpdated today
    Auto-check passed
  • Dev Complete

    FHIR/fhir-codegen

    Drives the entire local inner loop in one invocation, as a conductor over the skills that own each role.

    154 GitHub stars~9.6k tokensUpdated today
    Auto-check passed
  • Dev Plan

    FHIR/fhir-codegen

    Builds and iterates on a detailed implementation plan in the role of a staff-level Engineering Lead, working from either a featurerequest.md (from dev-request) or a bugreport.md (from dev-report).

    154 GitHub stars~6.1k tokensUpdated today
    Auto-check passed

Works with

Questions about Dev Review

What does Dev Review do?

Performs a two-track code-quality and QA review in the roles of a staff-level Engineering Lead and QA Lead, then synthesizes both critiques into a single analysis.md. Dev Review is an agent skill from FHIR/fhir-codegen.md.

When should I use Dev Review?

Dev Review fits situations like: : pre-PR self-review; post-dev-do quality gates; ad-hoc deep reviews of a change set.

How do I install Dev Review in Claude Code?

Run `npx skills add FHIR/fhir-codegen --skill dev-review -a claude-code`. Or copy the skill folder (.github/skills/dev-review in FHIR/fhir-codegen) into .claude/skills/dev-review in your project. Claude Code loads it when a task matches its description.

How do I install Dev Review in Codex?

Run `npx skills add FHIR/fhir-codegen --skill dev-review -a codex`. Or copy the skill folder (.github/skills/dev-review in FHIR/fhir-codegen) into .agents/skills/dev-review in your project. Codex loads it when a task matches its description.

Can I use Dev Review in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FHIR/fhir-codegen --skill dev-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dev-review, .gemini/skills/dev-review, .github/skills/dev-review and .opencode/skills/dev-review in your project.

What does Dev Review need to run?

Going by SKILL.md and its folder, Dev Review needs the command-line tools its instructions call (git).

Does Dev Review access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Dev Review safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dev Review use?

Dev Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dev Review use?

About 5k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dev Review?

Skills that share tags, products or a category with Dev Review: Quality CI (managedcode/dotnet-skills, 486 stars), Code Quality Crap (macalbert/envilder, 138 stars), Constraint-Driven Development (addyosmani/agent-skills, 103k stars) and Sonar (ffroliva/gflow-cli, 264 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dev Review?

FHIR (a GitHub organization) maintains it in FHIR/fhir-codegen, which has 154 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.

Source: FHIR/fhir-codegen on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.