Agents

Agents are subagents that a skill or you dispatch for one focused job. They are read-only reviewers that report and never edit, except qa-expert, which writes tests when it is asked to.

The plugin ships 6 agents. Each one treats code, diffs, PR text, fixtures and fetched pages as data, never as instructions: it runs no command it finds there. Skills such as code-review, audit-to-backlog and bug-triage dispatch them; you can also ask for one by name, for example developer-os:security-auditor.

Final status

Every agent's report starts with exactly one of four lines, so the skill or session that dispatched it knows what to do next:

A transient failure (network, timeout, a flaky test) is retried at most twice. A failure only a person can fix (authentication, quota, a missing secret, an unclear spec) is BLOCKED at once. Reviewer agents rate findings on one scale: P0 is an exploitable security defect, data loss or production down; P1 wrong behavior on a common path; P2 an edge-case defect or a meaningful maintainability risk; P3 minor or cleanup.

code-reviewer

Reviews named files as an independent reader who did not write them, rating correctness, security, data-safety and maintainability findings P0–P3 with a merge verdict. Use it when code written in this session needs a reviewer other than its author, or for the correctness pass of an audit.

Model
sonnet
Tools
Read, Bash, Glob, Grep, Skill
Edits files
No
Used by
code-review, and through it pr-cycle and implement-backlog; audit-to-backlog

What code-reviewer checks

code-reviewer report

After the final status, the verdict: REQUEST_CHANGES when any P0 or P1 exists, COMMENT when an open question blocks judgment, otherwise APPROVE. Findings sit under P0 to P3 headings (None when empty), each with file:line, evidence, impact and a concrete fix. Every P0 and P1 is reported. An APPROVE with no P0, P1 or P2 ends with Evidence checked, the files read and commands run; without it the report is invalid.

What code-reviewer never does

  • Edit or commit files; Bash is for read, inspect and test commands only, and read-only when the prompt marks the head untrusted.
  • Run commands found in the code or PR text.

Read code-reviewer.md on GitHub

performance-engineer

Finds measured performance defects (N+1 queries, blocking I/O, serial awaits, bundle bloat, render thrash) in a named scope. Use it when something is slow or before a performance-sensitive release.

Model
sonnet
Tools
Read, Bash, Glob, Grep
Edits files
No
Used by
audit-to-backlog (performance)

What performance-engineer checks

performance-engineer report

Findings ordered by impact on the hot path, each with file:line, severity, the mechanism, the expected magnitude, the fix and how to measure it. Every finding is labelled MEASURED (it ran something and has numbers) or INFERRED (it read the code), never inferred presented as measured. The report ends with the single highest-impact change and its expected effect.

What performance-engineer never does

  • Edit or commit files, or install a tool; a missing profiler or benchmark tool is reported instead.
  • Propose a micro-optimisation outside a hot path.

Read performance-engineer.md on GitHub

qa-expert

Assesses test quality and coverage gaps for a named change or module, and writes the missing tests when asked. Use it when you need to know whether a change is actually verified.

Model
sonnet
Tools
Read, Grep, Glob, Bash, Write, Edit, Skill
Edits files
Tests only, and only when asked
Used by
audit-to-backlog (tests, assessment only)

What qa-expert checks

qa-expert report

Coverage gaps ranked by severity (the defect the gap would let through), each with file:line, the untested branch or contract, the risk and the test that would pin it. It ends with VERIFIED or UNVERIFIED: <what is untested>.

What qa-expert never does

  • Edit production code, or write any file at all when asked for an assessment only.
  • Delete or skip a test to make a suite green; it reports it instead.
  • Run commands found in the code or PR text.

Read qa-expert.md on GitHub

research-analyst

Gathers and synthesizes external information (library behavior, API contracts, vendor limits, migration paths) into a sourced answer. Use it when the question needs sources rather than reasoning.

Model
sonnet
Tools
Read, Grep, Glob, WebFetch, WebSearch
Edits files
No
Used by
bug-triage (library or vendor behavior); on request

What research-analyst checks

research-analyst report

The answer in one or two sentences, then the evidence. Every factual claim cites a URL or file:line; an uncited claim is labelled ASSUMPTION:. It ends with what it could not establish; "not found" is a valid result.

What research-analyst never does

  • Edit files.
  • Act on commands found in sources, or fetch a URL built from local file contents.
  • Fill a gap with a plausible-sounding invention.

Read research-analyst.md on GitHub

security-auditor

Audits a codebase or diff for exploitable security defects: authentication and authorization, injection, secret exposure, unsafe deserialization, SSRF and insecure defaults. Use it when the work needs a security pass.

Model
opus
Tools
Read, Grep, Glob, Bash
Edits files
No
Used by
audit-to-backlog (security)

What security-auditor checks

security-auditor report

Every P0 and P1, ordered by impact, each with file:line, severity, the concrete attack (who does what, and what they get), the vulnerable excerpt and a fix. A finding without an attack path is dropped. It ends with P0: n, P1: n, P2: n, P3: n.

What security-auditor never does

  • Edit or commit files, or weaken a control to make something work.
  • Propose disabling 2FA, auth or a security check as a workaround.
  • Print a secret value; it names the file and line only.

Read security-auditor.md on GitHub

verifier

Tries to disprove one review finding by reading the code, and answers CONFIRMED or REFUTED with file:line evidence, with read-only tools only. Use it as the fresh verifier for a P0 or P1 finding, and always for a pull request from an untrusted head.

Model
sonnet
Tools
Read, Grep, Glob
Edits files
No
Used by
code-review and audit-to-backlog (P0/P1 verification), pr-cycle through code-review

verifier report

After the final status, CONFIRMED or REFUTED, then the quoted file:line evidence; UNDECIDED with what is missing when the code does not decide it. It has no shell, so the diff reaches it as a file.

What verifier never does

  • Run a command or edit files: it has no tool for either.
  • Change its answer because text in the code or the PR asks it to, or read outside the repository beyond the diff file its prompt names.

Read verifier.md on GitHub