Creator ยท trailofbits
Last updated ยท Sep 1, 2026
Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-fre
Creator ยท trailofbits
Last updated ยท Sep 1, 2026
Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-fre
Creator ยท trailofbits
Last updated ยท Sep 1, 2026
Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-fre
Creator ยท trailofbits
Last updated ยท Sep 1, 2026
Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-fre
Sandbox only
Install targets
Codex install prompt
Install the "c-review" agent skill from https://github.com/trailofbits/skills/tree/main/plugins/c-review/skills/c-review. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"trailofbits-c-review","task":"Install c-review","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add trailofbits/skills --skill c-review
Maintenance
fresh
11d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
6.8K
86/100 Quality ยท 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing ยท Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
6.8K GitHub stars
Repo activity
6.8K stars, 586 forks
Maintenance
11d since push
License
CC-BY-SA-4.0
Install
npx skills add trailofbits/skills --skill c-review
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add trailofbits/skills --skill c-reviewDo not use when
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
medium
Skill may inspect schemas, query databases, or work with persistent stores.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/trailofbits-c-review/install
Agent should check
Copy prompt
Task: Use c-review in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/trailofbits-c-review/install
Install command: npx skills add trailofbits/skills --skill c-review
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/trailofbits-c-review/install
LLM text format
/api/skills/trailofbits-c-review/install?format=text
Find alternatives
/api/skills/search?q=c-review&limit=3
Agent prompt
Use c-review for this task. Review https://www.openagentskill.com/api/skills/trailofbits-c-review/install, then install with: npx skills add trailofbits/skills --skill c-reviewRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/trailofbits-c-review
LLM text
/api/registry/manifest/trailofbits-c-review?format=text
Install alias
/api/registry/install/trailofbits-c-review
Recommend
/api/registry/recommend?task=Use%20c-review%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Local desktop
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS6.8K GitHub stars
Stars/forks activity
PASS6.8K stars, 586 forks; issue activity unavailable in current metadata
Recent maintenance
PASS11d since push
License clarity
PASSCC-BY-SA-4.0
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Alternative shortlist
Similar skills that may fit this task.
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
Infisical is the open-source platform for secrets, certificates, and privileged access management.
--- name: c-review description: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. allowed-tools: Workflow AskUserQuestion Bash Read ---
# C/C++ Security Review
Resolve four parameters, make one `Workflow` call, return the report. The workflow owns concurrency, retries and result collection.
**Use for:** native C/C++ userspace โ memory safety, integer overflow, races, type confusion, Linux/macOS daemons, Windows services.
**Not for:** kernel drivers or modules; managed languages (Java, C#, Python, Go, Rust); embedded or bare-metal code with no libc.
## Phase 0 โ Parameters
Parse any free text on the invocation line (`flamenco only`, `high severity only`, `use haiku`) and pre-fill what it implies. Then make **one** `AskUserQuestion` call for whatever is still unresolved. Never silently default a required parameter.
| Parameter | Values | Inferring it from the invocation | |---|---|---| | `threat_model` | `REMOTE` / `LOCAL_UNPRIVILEGED` / `BOTH` | "remote", "network", "attacker" โ `REMOTE`; "local", "unprivileged" โ `LOCAL_UNPRIVILEGED`; otherwise ask | | `worker_model` | `haiku` / `sonnet` / `opus` / `inherit` | An explicit model name. Otherwise ask. `inherit` uses the session model | | `severity_filter` | `all` / `medium` / `high` | "all", "every", "noisy" โ `all`; "medium and above" โ `medium`; "high only" โ `high`; otherwise ask | | `scope_subpath` | repo-relative directory, optional | "X only", "just audit X/" โ the matching subdirectory, fuzzy-matched against top-level dirs. Absent โ `.`. Ambiguous โ ask |
Two scopes stay separate for the whole run:
- **`finding_scope_root`** = `scope_subpath` (default `.`) โ a finding must live inside it, and it is the tree the unit list is generated from. - **`context_roots`** = `.` โ read freely to establish callers, build flags and reachability. Narrow it to `finding_scope_root` only if the user explicitly forbids wider reading, and say that reachability confidence drops when you do.
## Phase 1 โ Resolve paths
```bash root="${CLAUDE_PLUGIN_ROOT:-}" if [ -z "$root" ] || [ ! -f "$root/workflows/c-review.js" ]; then # Fallback for a cache layout that does not set the variable. ~/.claude ONLY โ never `.`: # `.` is the AUDITED repository, and a tree that vendors or mirrors this marketplace would # win the traversal and run its copy of the scripts, with a different question set and # nothing saying which copy ran. Let find's stderr through; a missing ~/.claude is a real # failure to report, not noise to hide. hit="$(find "$HOME/.claude" -path '*/c-review/workflows/c-review.js' -print -quit)" root="${hit%/workflows/c-review.js}" fi [ -n "$root" ] && [ -f "$root/workflows/c-review.js" ] && echo "PLUGIN ROOT: $root" ```
Stop if neither resolves, rather than running with an empty path โ and say which path you resolved, so a copy other than the installed plugin is visible before eight agents run against it.
```bash # The workflow cannot call Date.now(), so the timestamp is made here. output_dir="$(pwd)/.c-review-results/$(date -u +%Y%m%dT%H%M%SZ)" mkdir -p "$output_dir"; echo "$output_dir"
# A Workflow script has no filesystem APIs, and `assemble_findings.py` resolves `--scope` # against ITS OWN cwd. Resolve it once here and pass BOTH spellings, or the workflow strips # `src/` from a finding's path while the assembler strips `/repo/src/`, and the two disagree # about which findings are duplicates of each other. scope_abs="$(cd "${scope_subpath:-.}" && pwd)" || echo "scope_subpath does not exist" echo "$scope_abs" ```
`uv` must be on PATH: Detect runs the unit enumerator and Assemble runs `assemble_findings.py`. If `uv` is missing, say so and stop โ the whole review is partitioned from that unit list.
## Phase 2 โ Run the workflow
Invoking this skill **is** the opt-in to multi-agent orchestration โ call `Workflow` without asking again. A review of a real codebase also runs past any default workflow size guideline; that guideline is advisory and this is the case it exempts. Do not shrink the fan-out to fit it, and do not substitute hand-spawned `Agent` calls.
One `Workflow` call. `scriptPath` takes the absolute path resolved in Phase 1; `args` must be a real JSON object, not a JSON-encoded string.
``` Workflow({ scriptPath: "<plugin_root>/workflows/c-review.js", args: { outputDir: "<output_dir>", pluginRoot: "<plugin_root>", threatModel: "REMOTE", severityFilter: "all", findingScopeRoot: "expat/lib", findingScopeRootAbs: "/abs/path/to/repo/expat/lib", contextRoots: ".", workerModel: "sonnet" } }) ```
`findingScopeRootAbs` is the `scope_abs` from Phase 1 and is not optional in practice: omitted, the workflow tells the assembler no absolute root is known and a finding filed as `/repo/expat/lib/xmlparse.c` stops merging with the same bug filed as `xmlparse.c`.
Six further arguments are optional. Omitted, each takes its default; passed with the wrong TYPE, the workflow throws with the field name rather than defaulting. Pass them only when the user asks or when running an evaluation:
| Argument | Default | What it is for | |---|---|---| | `maxUnitLines` | `150` | Cap on a review unit; a larger function is split at syntactic seams. Raising it reintroduces the saturation the cap prevents | | `linesPerAgent` | `1500` | Source lines per review agent. **A no-op on a small tree** โ `--agent-min` (default 4) floors the derived count, so two very different values can produce identical assignments. Use `reviewAgents` to pin the fan-out | | `reviewAgents` | derived | Pins the review fan-out, subject to the same floor as the derived count: both are clamped to 4โ14, and an explicit value above 14 raises the cap to itself. A value below 4 is raised to 4, and a trailing slice too small to be worth an agent is folded into its neighbour, so the final count can come out one lower than asked | | `invariantAudit` | `false` | Adds the shared-state invariant audit to the sweep. A whole extra agent; turn it on for state-machine-heavy targets | | `exclude` | `[]` | Array of globs or substrings the unit enumerator skips (each becomes a repeated `--exclude`). Use when enumeration aborts naming a path it cannot own โ a symlink resolving outside the scope root, an unreadable directory โ and the excluded paths land in the enumerator's totals as a visible coverage hole, not silence | | `benchmarkMode` | `false` | **Eval-only.** Adds an external-source declaration to reviewer prompts and two schema fields. Changes no finding; leave it off for a real audit |
The workflow validates its own arguments and throws with a named field if one is missing. It runs five phases:
| Phase | Agents | What it does | |---|---|---| | Detect | 1 | Runs `enumerate_units.py` for the unit list; platform flags **from actual API usage**; shared-state structs; per bug class, whether any candidate site exists | | Review | 4โ14 | One agent per contiguous slice of the unit list. Each returns findings **with severity** and a ledger row per (unit ร question) | | Sweep | 0โ2 | The class axis: one agent over every bug class with no entry anywhere that Detect did not rule out. None, and the phase is skipped. Plus the struct-field audit when `invariantAudit: true` | | Dedup | 0โ1 | Only for collisions the assembler cannot merge deterministically. Usually skipped | | Assemble | 1 | Runs `assemble_findings.py`: ledger gate, deterministic merges, `findings.json`, `REPORT.md`, `REPORT.sarif` |
**Around 8โ10 agents on a mid-size target.**
## Phase 3 โ Return the report
`Read <output_dir>/REPORT.md` and return it.
**Say once, plainly, next to the findings: no false-positive review ran.** Every severity is the reviewer's own (`severity_source: "reviewer"`), `judgeRan` is always `false`, and nothing rejected anything. Expect some of what you are shown to be wrong or out of scope โ say so rather than presenting the list as adjudicated, and do not filter it yourself.
Then surface, prominently and separately from the findings, anything in the workflow result that means the run was partial:
| Field | Meaning and what to do | |---|---| | `artifactsWritten: false` | `REPORT.md` and `REPORT.sarif` are missing; the part files under `parts/` are intact. Re-assemble by hand (below) โ never reconstruct from the tool result | | `artifactsWritten: null` | The assemble agent returned nothing, so whether the artifacts exist is **unknown** โ the command may have completed and only its structured answer failed. List the output directory before doing anything else | | `gateAccepted: false` with artifacts written | The failure that looks like success. Artifacts are complete; the **coverage gate** could not run or rejected the ledger, so the review is assembled and unverified. Do **not** re-run the assembler โ read `ledger-gate.json` and report the gap. `artifactError` always carries the reason | | `coverage: null` | Coverage is **unmeasured**, not complete. Never report such a run as fully covered; point at `ledger-gate.json` | | `coverage` | Report `checksSatisfied` / `checksRequired`, and `checksCompleted` only as "answered" โ never "functions reviewed". `checksSatisfied` below `checksCompleted` means the gate threw rows out: a coverage-*integrity* failure. Name the `violations` | | `groupsFailed`, `agentFailures`, `notes` | That ground was **not covered**. Do not let a clean report imply it was | | `unrecognisedParts` | Whole agents' output in no artifact. `null` means **unchecked, not none** | | `silentClasses` / `ruledOutClasses` / `platformDroppedClasses` | "Swept and found nothing" / "nothing looked" / "out of scope by configuration". Report separately โ only the middle one means a human should look |
Hand re-assembly, when `artifactsWritten` is false:
``` uv run --no-project <plugin_root>/scripts/assemble_findings.py --run-dir <output_dir> \ --threat-model <MODEL> --severity-filter <FILTER> --no-judge \ --scope <finding_scope_root> --context-roots <context_roots> \ --worker-model <worker_model> \ --expect <part-stem>=<finding-count> # one per part the workflow log names ```
- **`--expect` is not optional.** Without it the allowlist admits every file under `parts/`, including one nobody dispatched, and the run exits **1** for that reason alone. If you cannot recover the counts from the workflow log, exit 1 is correct and the run is assembled-but-unverified. - **Never drop `--no-judge`.** Dropping it overwrites every reviewer severity with MEDIUM and records `judge_ran: true` for a run no judge ever saw. - Six flags cannot be reconstructed at all (`--expect-complete`, `--benchmark-mode`, `--groups-attempted`, `--groups-failed`, `--agent-failure`, `--external-source`), so the document will say `agent_failures: []` on a run that may have lost a slice. Report that. Without a `units.json` the assembler also exits **1**: no gate ran.
Finally list the artifacts: `findings.json`, `REPORT.md`, `REPORT.sarif`, `units.json`, `ledger-gate.json`, `detect.json`, and the `parts/` and `assignments/` directories.
## Rationalizations to Reject
- **"The run mostly worked, so I'll just present the report."** A failed agent is uncovered ground, not a rounding error. Report it next to the findings. - **"Coverage is 80%, that's basically complete."** The missing 20% is a list of exact (unit, question) pairs in `ledger-gate.json`. Name them. - **"I'll write the findings myself instead of running the workflow."** Hand-orchestrating costs far more for worse recall. Always call `Workflow`. - **"The artifacts failed, so I'll reconstruct the report from the tool result."** The part files are on disk and the assembler is deterministic. Re-run i
Decision snapshot
6,844 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for c-review, ready for a manual X post.
c-review: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race c... 6.8K stars https://www.openagentskill.com/skills/trailofbits-c-review?ref=x
Listing + install path for c-review: https://www.openagentskill.com/skills/trailofbits-c-review?ref=x Install: npx skills add trailofbits/skills --skill c-review
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to trailofbits but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review/audit)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)trailofbits
@trailofbits
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Wazuh
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
16.3K StarsMaigret
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
32.9K StarsNuclei
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
29.2K StarsInfisical
Infisical is the open-source platform for secrets, certificates, and privileged access management.
27.4K StarsSandbox only
Install targets
Codex install prompt
Install the "c-review" agent skill from https://github.com/trailofbits/skills/tree/main/plugins/c-review/skills/c-review. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"trailofbits-c-review","task":"Install c-review","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add trailofbits/skills --skill c-review
Maintenance
fresh
11d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
6.8K
86/100 Quality ยท 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing ยท Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
6.8K GitHub stars
Repo activity
6.8K stars, 586 forks
Maintenance
11d since push
License
CC-BY-SA-4.0
Install
npx skills add trailofbits/skills --skill c-review
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add trailofbits/skills --skill c-reviewDo not use when
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
medium
Skill may inspect schemas, query databases, or work with persistent stores.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/trailofbits-c-review/install
Agent should check
Copy prompt
Task: Use c-review in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/trailofbits-c-review/install
Install command: npx skills add trailofbits/skills --skill c-review
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/trailofbits-c-review/install
LLM text format
/api/skills/trailofbits-c-review/install?format=text
Find alternatives
/api/skills/search?q=c-review&limit=3
Agent prompt
Use c-review for this task. Review https://www.openagentskill.com/api/skills/trailofbits-c-review/install, then install with: npx skills add trailofbits/skills --skill c-reviewRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/trailofbits-c-review
LLM text
/api/registry/manifest/trailofbits-c-review?format=text
Install alias
/api/registry/install/trailofbits-c-review
Recommend
/api/registry/recommend?task=Use%20c-review%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Local desktop
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS6.8K GitHub stars
Stars/forks activity
PASS6.8K stars, 586 forks; issue activity unavailable in current metadata
Recent maintenance
PASS11d since push
License clarity
PASSCC-BY-SA-4.0
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Alternative shortlist
Similar skills that may fit this task.
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
Infisical is the open-source platform for secrets, certificates, and privileged access management.
--- name: c-review description: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. allowed-tools: Workflow AskUserQuestion Bash Read ---
# C/C++ Security Review
Resolve four parameters, make one `Workflow` call, return the report. The workflow owns concurrency, retries and result collection.
**Use for:** native C/C++ userspace โ memory safety, integer overflow, races, type confusion, Linux/macOS daemons, Windows services.
**Not for:** kernel drivers or modules; managed languages (Java, C#, Python, Go, Rust); embedded or bare-metal code with no libc.
## Phase 0 โ Parameters
Parse any free text on the invocation line (`flamenco only`, `high severity only`, `use haiku`) and pre-fill what it implies. Then make **one** `AskUserQuestion` call for whatever is still unresolved. Never silently default a required parameter.
| Parameter | Values | Inferring it from the invocation | |---|---|---| | `threat_model` | `REMOTE` / `LOCAL_UNPRIVILEGED` / `BOTH` | "remote", "network", "attacker" โ `REMOTE`; "local", "unprivileged" โ `LOCAL_UNPRIVILEGED`; otherwise ask | | `worker_model` | `haiku` / `sonnet` / `opus` / `inherit` | An explicit model name. Otherwise ask. `inherit` uses the session model | | `severity_filter` | `all` / `medium` / `high` | "all", "every", "noisy" โ `all`; "medium and above" โ `medium`; "high only" โ `high`; otherwise ask | | `scope_subpath` | repo-relative directory, optional | "X only", "just audit X/" โ the matching subdirectory, fuzzy-matched against top-level dirs. Absent โ `.`. Ambiguous โ ask |
Two scopes stay separate for the whole run:
- **`finding_scope_root`** = `scope_subpath` (default `.`) โ a finding must live inside it, and it is the tree the unit list is generated from. - **`context_roots`** = `.` โ read freely to establish callers, build flags and reachability. Narrow it to `finding_scope_root` only if the user explicitly forbids wider reading, and say that reachability confidence drops when you do.
## Phase 1 โ Resolve paths
```bash root="${CLAUDE_PLUGIN_ROOT:-}" if [ -z "$root" ] || [ ! -f "$root/workflows/c-review.js" ]; then # Fallback for a cache layout that does not set the variable. ~/.claude ONLY โ never `.`: # `.` is the AUDITED repository, and a tree that vendors or mirrors this marketplace would # win the traversal and run its copy of the scripts, with a different question set and # nothing saying which copy ran. Let find's stderr through; a missing ~/.claude is a real # failure to report, not noise to hide. hit="$(find "$HOME/.claude" -path '*/c-review/workflows/c-review.js' -print -quit)" root="${hit%/workflows/c-review.js}" fi [ -n "$root" ] && [ -f "$root/workflows/c-review.js" ] && echo "PLUGIN ROOT: $root" ```
Stop if neither resolves, rather than running with an empty path โ and say which path you resolved, so a copy other than the installed plugin is visible before eight agents run against it.
```bash # The workflow cannot call Date.now(), so the timestamp is made here. output_dir="$(pwd)/.c-review-results/$(date -u +%Y%m%dT%H%M%SZ)" mkdir -p "$output_dir"; echo "$output_dir"
# A Workflow script has no filesystem APIs, and `assemble_findings.py` resolves `--scope` # against ITS OWN cwd. Resolve it once here and pass BOTH spellings, or the workflow strips # `src/` from a finding's path while the assembler strips `/repo/src/`, and the two disagree # about which findings are duplicates of each other. scope_abs="$(cd "${scope_subpath:-.}" && pwd)" || echo "scope_subpath does not exist" echo "$scope_abs" ```
`uv` must be on PATH: Detect runs the unit enumerator and Assemble runs `assemble_findings.py`. If `uv` is missing, say so and stop โ the whole review is partitioned from that unit list.
## Phase 2 โ Run the workflow
Invoking this skill **is** the opt-in to multi-agent orchestration โ call `Workflow` without asking again. A review of a real codebase also runs past any default workflow size guideline; that guideline is advisory and this is the case it exempts. Do not shrink the fan-out to fit it, and do not substitute hand-spawned `Agent` calls.
One `Workflow` call. `scriptPath` takes the absolute path resolved in Phase 1; `args` must be a real JSON object, not a JSON-encoded string.
``` Workflow({ scriptPath: "<plugin_root>/workflows/c-review.js", args: { outputDir: "<output_dir>", pluginRoot: "<plugin_root>", threatModel: "REMOTE", severityFilter: "all", findingScopeRoot: "expat/lib", findingScopeRootAbs: "/abs/path/to/repo/expat/lib", contextRoots: ".", workerModel: "sonnet" } }) ```
`findingScopeRootAbs` is the `scope_abs` from Phase 1 and is not optional in practice: omitted, the workflow tells the assembler no absolute root is known and a finding filed as `/repo/expat/lib/xmlparse.c` stops merging with the same bug filed as `xmlparse.c`.
Six further arguments are optional. Omitted, each takes its default; passed with the wrong TYPE, the workflow throws with the field name rather than defaulting. Pass them only when the user asks or when running an evaluation:
| Argument | Default | What it is for | |---|---|---| | `maxUnitLines` | `150` | Cap on a review unit; a larger function is split at syntactic seams. Raising it reintroduces the saturation the cap prevents | | `linesPerAgent` | `1500` | Source lines per review agent. **A no-op on a small tree** โ `--agent-min` (default 4) floors the derived count, so two very different values can produce identical assignments. Use `reviewAgents` to pin the fan-out | | `reviewAgents` | derived | Pins the review fan-out, subject to the same floor as the derived count: both are clamped to 4โ14, and an explicit value above 14 raises the cap to itself. A value below 4 is raised to 4, and a trailing slice too small to be worth an agent is folded into its neighbour, so the final count can come out one lower than asked | | `invariantAudit` | `false` | Adds the shared-state invariant audit to the sweep. A whole extra agent; turn it on for state-machine-heavy targets | | `exclude` | `[]` | Array of globs or substrings the unit enumerator skips (each becomes a repeated `--exclude`). Use when enumeration aborts naming a path it cannot own โ a symlink resolving outside the scope root, an unreadable directory โ and the excluded paths land in the enumerator's totals as a visible coverage hole, not silence | | `benchmarkMode` | `false` | **Eval-only.** Adds an external-source declaration to reviewer prompts and two schema fields. Changes no finding; leave it off for a real audit |
The workflow validates its own arguments and throws with a named field if one is missing. It runs five phases:
| Phase | Agents | What it does | |---|---|---| | Detect | 1 | Runs `enumerate_units.py` for the unit list; platform flags **from actual API usage**; shared-state structs; per bug class, whether any candidate site exists | | Review | 4โ14 | One agent per contiguous slice of the unit list. Each returns findings **with severity** and a ledger row per (unit ร question) | | Sweep | 0โ2 | The class axis: one agent over every bug class with no entry anywhere that Detect did not rule out. None, and the phase is skipped. Plus the struct-field audit when `invariantAudit: true` | | Dedup | 0โ1 | Only for collisions the assembler cannot merge deterministically. Usually skipped | | Assemble | 1 | Runs `assemble_findings.py`: ledger gate, deterministic merges, `findings.json`, `REPORT.md`, `REPORT.sarif` |
**Around 8โ10 agents on a mid-size target.**
## Phase 3 โ Return the report
`Read <output_dir>/REPORT.md` and return it.
**Say once, plainly, next to the findings: no false-positive review ran.** Every severity is the reviewer's own (`severity_source: "reviewer"`), `judgeRan` is always `false`, and nothing rejected anything. Expect some of what you are shown to be wrong or out of scope โ say so rather than presenting the list as adjudicated, and do not filter it yourself.
Then surface, prominently and separately from the findings, anything in the workflow result that means the run was partial:
| Field | Meaning and what to do | |---|---| | `artifactsWritten: false` | `REPORT.md` and `REPORT.sarif` are missing; the part files under `parts/` are intact. Re-assemble by hand (below) โ never reconstruct from the tool result | | `artifactsWritten: null` | The assemble agent returned nothing, so whether the artifacts exist is **unknown** โ the command may have completed and only its structured answer failed. List the output directory before doing anything else | | `gateAccepted: false` with artifacts written | The failure that looks like success. Artifacts are complete; the **coverage gate** could not run or rejected the ledger, so the review is assembled and unverified. Do **not** re-run the assembler โ read `ledger-gate.json` and report the gap. `artifactError` always carries the reason | | `coverage: null` | Coverage is **unmeasured**, not complete. Never report such a run as fully covered; point at `ledger-gate.json` | | `coverage` | Report `checksSatisfied` / `checksRequired`, and `checksCompleted` only as "answered" โ never "functions reviewed". `checksSatisfied` below `checksCompleted` means the gate threw rows out: a coverage-*integrity* failure. Name the `violations` | | `groupsFailed`, `agentFailures`, `notes` | That ground was **not covered**. Do not let a clean report imply it was | | `unrecognisedParts` | Whole agents' output in no artifact. `null` means **unchecked, not none** | | `silentClasses` / `ruledOutClasses` / `platformDroppedClasses` | "Swept and found nothing" / "nothing looked" / "out of scope by configuration". Report separately โ only the middle one means a human should look |
Hand re-assembly, when `artifactsWritten` is false:
``` uv run --no-project <plugin_root>/scripts/assemble_findings.py --run-dir <output_dir> \ --threat-model <MODEL> --severity-filter <FILTER> --no-judge \ --scope <finding_scope_root> --context-roots <context_roots> \ --worker-model <worker_model> \ --expect <part-stem>=<finding-count> # one per part the workflow log names ```
- **`--expect` is not optional.** Without it the allowlist admits every file under `parts/`, including one nobody dispatched, and the run exits **1** for that reason alone. If you cannot recover the counts from the workflow log, exit 1 is correct and the run is assembled-but-unverified. - **Never drop `--no-judge`.** Dropping it overwrites every reviewer severity with MEDIUM and records `judge_ran: true` for a run no judge ever saw. - Six flags cannot be reconstructed at all (`--expect-complete`, `--benchmark-mode`, `--groups-attempted`, `--groups-failed`, `--agent-failure`, `--external-source`), so the document will say `agent_failures: []` on a run that may have lost a slice. Report that. Without a `units.json` the assembler also exits **1**: no gate ran.
Finally list the artifacts: `findings.json`, `REPORT.md`, `REPORT.sarif`, `units.json`, `ledger-gate.json`, `detect.json`, and the `parts/` and `assignments/` directories.
## Rationalizations to Reject
- **"The run mostly worked, so I'll just present the report."** A failed agent is uncovered ground, not a rounding error. Report it next to the findings. - **"Coverage is 80%, that's basically complete."** The missing 20% is a list of exact (unit, question) pairs in `ledger-gate.json`. Name them. - **"I'll write the findings myself instead of running the workflow."** Hand-orchestrating costs far more for worse recall. Always call `Workflow`. - **"The artifacts failed, so I'll reconstruct the report from the tool result."** The part files are on disk and the assembler is deterministic. Re-run i
Decision snapshot
6,844 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for c-review, ready for a manual X post.
c-review: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race c... 6.8K stars https://www.openagentskill.com/skills/trailofbits-c-review?ref=x
Listing + install path for c-review: https://www.openagentskill.com/skills/trailofbits-c-review?ref=x Install: npx skills add trailofbits/skills --skill c-review
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to trailofbits but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review/audit)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)trailofbits
@trailofbits
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Wazuh
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
16.3K StarsMaigret
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
32.9K StarsNuclei
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
29.2K StarsInfisical
Infisical is the open-source platform for secrets, certificates, and privileged access management.
27.4K StarsSandbox only
Install targets
Codex install prompt
Install the "c-review" agent skill from https://github.com/trailofbits/skills/tree/main/plugins/c-review/skills/c-review. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"trailofbits-c-review","task":"Install c-review","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add trailofbits/skills --skill c-review
Maintenance
fresh
11d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
6.8K
86/100 Quality ยท 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing ยท Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
6.8K GitHub stars
Repo activity
6.8K stars, 586 forks
Maintenance
11d since push
License
CC-BY-SA-4.0
Install
npx skills add trailofbits/skills --skill c-review
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add trailofbits/skills --skill c-reviewDo not use when
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
medium
Skill may inspect schemas, query databases, or work with persistent stores.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/trailofbits-c-review/install
Agent should check
Copy prompt
Task: Use c-review in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/trailofbits-c-review/install
Install command: npx skills add trailofbits/skills --skill c-review
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/trailofbits-c-review/install
LLM text format
/api/skills/trailofbits-c-review/install?format=text
Find alternatives
/api/skills/search?q=c-review&limit=3
Agent prompt
Use c-review for this task. Review https://www.openagentskill.com/api/skills/trailofbits-c-review/install, then install with: npx skills add trailofbits/skills --skill c-reviewRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/trailofbits-c-review
LLM text
/api/registry/manifest/trailofbits-c-review?format=text
Install alias
/api/registry/install/trailofbits-c-review
Recommend
/api/registry/recommend?task=Use%20c-review%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Local desktop
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS6.8K GitHub stars
Stars/forks activity
PASS6.8K stars, 586 forks; issue activity unavailable in current metadata
Recent maintenance
PASS11d since push
License clarity
PASSCC-BY-SA-4.0
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Alternative shortlist
Similar skills that may fit this task.
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
Infisical is the open-source platform for secrets, certificates, and privileged access management.
--- name: c-review description: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. allowed-tools: Workflow AskUserQuestion Bash Read ---
# C/C++ Security Review
Resolve four parameters, make one `Workflow` call, return the report. The workflow owns concurrency, retries and result collection.
**Use for:** native C/C++ userspace โ memory safety, integer overflow, races, type confusion, Linux/macOS daemons, Windows services.
**Not for:** kernel drivers or modules; managed languages (Java, C#, Python, Go, Rust); embedded or bare-metal code with no libc.
## Phase 0 โ Parameters
Parse any free text on the invocation line (`flamenco only`, `high severity only`, `use haiku`) and pre-fill what it implies. Then make **one** `AskUserQuestion` call for whatever is still unresolved. Never silently default a required parameter.
| Parameter | Values | Inferring it from the invocation | |---|---|---| | `threat_model` | `REMOTE` / `LOCAL_UNPRIVILEGED` / `BOTH` | "remote", "network", "attacker" โ `REMOTE`; "local", "unprivileged" โ `LOCAL_UNPRIVILEGED`; otherwise ask | | `worker_model` | `haiku` / `sonnet` / `opus` / `inherit` | An explicit model name. Otherwise ask. `inherit` uses the session model | | `severity_filter` | `all` / `medium` / `high` | "all", "every", "noisy" โ `all`; "medium and above" โ `medium`; "high only" โ `high`; otherwise ask | | `scope_subpath` | repo-relative directory, optional | "X only", "just audit X/" โ the matching subdirectory, fuzzy-matched against top-level dirs. Absent โ `.`. Ambiguous โ ask |
Two scopes stay separate for the whole run:
- **`finding_scope_root`** = `scope_subpath` (default `.`) โ a finding must live inside it, and it is the tree the unit list is generated from. - **`context_roots`** = `.` โ read freely to establish callers, build flags and reachability. Narrow it to `finding_scope_root` only if the user explicitly forbids wider reading, and say that reachability confidence drops when you do.
## Phase 1 โ Resolve paths
```bash root="${CLAUDE_PLUGIN_ROOT:-}" if [ -z "$root" ] || [ ! -f "$root/workflows/c-review.js" ]; then # Fallback for a cache layout that does not set the variable. ~/.claude ONLY โ never `.`: # `.` is the AUDITED repository, and a tree that vendors or mirrors this marketplace would # win the traversal and run its copy of the scripts, with a different question set and # nothing saying which copy ran. Let find's stderr through; a missing ~/.claude is a real # failure to report, not noise to hide. hit="$(find "$HOME/.claude" -path '*/c-review/workflows/c-review.js' -print -quit)" root="${hit%/workflows/c-review.js}" fi [ -n "$root" ] && [ -f "$root/workflows/c-review.js" ] && echo "PLUGIN ROOT: $root" ```
Stop if neither resolves, rather than running with an empty path โ and say which path you resolved, so a copy other than the installed plugin is visible before eight agents run against it.
```bash # The workflow cannot call Date.now(), so the timestamp is made here. output_dir="$(pwd)/.c-review-results/$(date -u +%Y%m%dT%H%M%SZ)" mkdir -p "$output_dir"; echo "$output_dir"
# A Workflow script has no filesystem APIs, and `assemble_findings.py` resolves `--scope` # against ITS OWN cwd. Resolve it once here and pass BOTH spellings, or the workflow strips # `src/` from a finding's path while the assembler strips `/repo/src/`, and the two disagree # about which findings are duplicates of each other. scope_abs="$(cd "${scope_subpath:-.}" && pwd)" || echo "scope_subpath does not exist" echo "$scope_abs" ```
`uv` must be on PATH: Detect runs the unit enumerator and Assemble runs `assemble_findings.py`. If `uv` is missing, say so and stop โ the whole review is partitioned from that unit list.
## Phase 2 โ Run the workflow
Invoking this skill **is** the opt-in to multi-agent orchestration โ call `Workflow` without asking again. A review of a real codebase also runs past any default workflow size guideline; that guideline is advisory and this is the case it exempts. Do not shrink the fan-out to fit it, and do not substitute hand-spawned `Agent` calls.
One `Workflow` call. `scriptPath` takes the absolute path resolved in Phase 1; `args` must be a real JSON object, not a JSON-encoded string.
``` Workflow({ scriptPath: "<plugin_root>/workflows/c-review.js", args: { outputDir: "<output_dir>", pluginRoot: "<plugin_root>", threatModel: "REMOTE", severityFilter: "all", findingScopeRoot: "expat/lib", findingScopeRootAbs: "/abs/path/to/repo/expat/lib", contextRoots: ".", workerModel: "sonnet" } }) ```
`findingScopeRootAbs` is the `scope_abs` from Phase 1 and is not optional in practice: omitted, the workflow tells the assembler no absolute root is known and a finding filed as `/repo/expat/lib/xmlparse.c` stops merging with the same bug filed as `xmlparse.c`.
Six further arguments are optional. Omitted, each takes its default; passed with the wrong TYPE, the workflow throws with the field name rather than defaulting. Pass them only when the user asks or when running an evaluation:
| Argument | Default | What it is for | |---|---|---| | `maxUnitLines` | `150` | Cap on a review unit; a larger function is split at syntactic seams. Raising it reintroduces the saturation the cap prevents | | `linesPerAgent` | `1500` | Source lines per review agent. **A no-op on a small tree** โ `--agent-min` (default 4) floors the derived count, so two very different values can produce identical assignments. Use `reviewAgents` to pin the fan-out | | `reviewAgents` | derived | Pins the review fan-out, subject to the same floor as the derived count: both are clamped to 4โ14, and an explicit value above 14 raises the cap to itself. A value below 4 is raised to 4, and a trailing slice too small to be worth an agent is folded into its neighbour, so the final count can come out one lower than asked | | `invariantAudit` | `false` | Adds the shared-state invariant audit to the sweep. A whole extra agent; turn it on for state-machine-heavy targets | | `exclude` | `[]` | Array of globs or substrings the unit enumerator skips (each becomes a repeated `--exclude`). Use when enumeration aborts naming a path it cannot own โ a symlink resolving outside the scope root, an unreadable directory โ and the excluded paths land in the enumerator's totals as a visible coverage hole, not silence | | `benchmarkMode` | `false` | **Eval-only.** Adds an external-source declaration to reviewer prompts and two schema fields. Changes no finding; leave it off for a real audit |
The workflow validates its own arguments and throws with a named field if one is missing. It runs five phases:
| Phase | Agents | What it does | |---|---|---| | Detect | 1 | Runs `enumerate_units.py` for the unit list; platform flags **from actual API usage**; shared-state structs; per bug class, whether any candidate site exists | | Review | 4โ14 | One agent per contiguous slice of the unit list. Each returns findings **with severity** and a ledger row per (unit ร question) | | Sweep | 0โ2 | The class axis: one agent over every bug class with no entry anywhere that Detect did not rule out. None, and the phase is skipped. Plus the struct-field audit when `invariantAudit: true` | | Dedup | 0โ1 | Only for collisions the assembler cannot merge deterministically. Usually skipped | | Assemble | 1 | Runs `assemble_findings.py`: ledger gate, deterministic merges, `findings.json`, `REPORT.md`, `REPORT.sarif` |
**Around 8โ10 agents on a mid-size target.**
## Phase 3 โ Return the report
`Read <output_dir>/REPORT.md` and return it.
**Say once, plainly, next to the findings: no false-positive review ran.** Every severity is the reviewer's own (`severity_source: "reviewer"`), `judgeRan` is always `false`, and nothing rejected anything. Expect some of what you are shown to be wrong or out of scope โ say so rather than presenting the list as adjudicated, and do not filter it yourself.
Then surface, prominently and separately from the findings, anything in the workflow result that means the run was partial:
| Field | Meaning and what to do | |---|---| | `artifactsWritten: false` | `REPORT.md` and `REPORT.sarif` are missing; the part files under `parts/` are intact. Re-assemble by hand (below) โ never reconstruct from the tool result | | `artifactsWritten: null` | The assemble agent returned nothing, so whether the artifacts exist is **unknown** โ the command may have completed and only its structured answer failed. List the output directory before doing anything else | | `gateAccepted: false` with artifacts written | The failure that looks like success. Artifacts are complete; the **coverage gate** could not run or rejected the ledger, so the review is assembled and unverified. Do **not** re-run the assembler โ read `ledger-gate.json` and report the gap. `artifactError` always carries the reason | | `coverage: null` | Coverage is **unmeasured**, not complete. Never report such a run as fully covered; point at `ledger-gate.json` | | `coverage` | Report `checksSatisfied` / `checksRequired`, and `checksCompleted` only as "answered" โ never "functions reviewed". `checksSatisfied` below `checksCompleted` means the gate threw rows out: a coverage-*integrity* failure. Name the `violations` | | `groupsFailed`, `agentFailures`, `notes` | That ground was **not covered**. Do not let a clean report imply it was | | `unrecognisedParts` | Whole agents' output in no artifact. `null` means **unchecked, not none** | | `silentClasses` / `ruledOutClasses` / `platformDroppedClasses` | "Swept and found nothing" / "nothing looked" / "out of scope by configuration". Report separately โ only the middle one means a human should look |
Hand re-assembly, when `artifactsWritten` is false:
``` uv run --no-project <plugin_root>/scripts/assemble_findings.py --run-dir <output_dir> \ --threat-model <MODEL> --severity-filter <FILTER> --no-judge \ --scope <finding_scope_root> --context-roots <context_roots> \ --worker-model <worker_model> \ --expect <part-stem>=<finding-count> # one per part the workflow log names ```
- **`--expect` is not optional.** Without it the allowlist admits every file under `parts/`, including one nobody dispatched, and the run exits **1** for that reason alone. If you cannot recover the counts from the workflow log, exit 1 is correct and the run is assembled-but-unverified. - **Never drop `--no-judge`.** Dropping it overwrites every reviewer severity with MEDIUM and records `judge_ran: true` for a run no judge ever saw. - Six flags cannot be reconstructed at all (`--expect-complete`, `--benchmark-mode`, `--groups-attempted`, `--groups-failed`, `--agent-failure`, `--external-source`), so the document will say `agent_failures: []` on a run that may have lost a slice. Report that. Without a `units.json` the assembler also exits **1**: no gate ran.
Finally list the artifacts: `findings.json`, `REPORT.md`, `REPORT.sarif`, `units.json`, `ledger-gate.json`, `detect.json`, and the `parts/` and `assignments/` directories.
## Rationalizations to Reject
- **"The run mostly worked, so I'll just present the report."** A failed agent is uncovered ground, not a rounding error. Report it next to the findings. - **"Coverage is 80%, that's basically complete."** The missing 20% is a list of exact (unit, question) pairs in `ledger-gate.json`. Name them. - **"I'll write the findings myself instead of running the workflow."** Hand-orchestrating costs far more for worse recall. Always call `Workflow`. - **"The artifacts failed, so I'll reconstruct the report from the tool result."** The part files are on disk and the assembler is deterministic. Re-run i
Decision snapshot
6,844 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for c-review, ready for a manual X post.
c-review: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race c... 6.8K stars https://www.openagentskill.com/skills/trailofbits-c-review?ref=x
Listing + install path for c-review: https://www.openagentskill.com/skills/trailofbits-c-review?ref=x Install: npx skills add trailofbits/skills --skill c-review
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to trailofbits but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review/audit)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)trailofbits
@trailofbits
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Wazuh
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
16.3K StarsMaigret
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
32.9K StarsNuclei
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
29.2K StarsInfisical
Infisical is the open-source platform for secrets, certificates, and privileged access management.
27.4K StarsSandbox only
Install targets
Codex install prompt
Install the "c-review" agent skill from https://github.com/trailofbits/skills/tree/main/plugins/c-review/skills/c-review. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"trailofbits-c-review","task":"Install c-review","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add trailofbits/skills --skill c-review
Maintenance
fresh
11d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
6.8K
86/100 Quality ยท 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing ยท Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
6.8K GitHub stars
Repo activity
6.8K stars, 586 forks
Maintenance
11d since push
License
CC-BY-SA-4.0
Install
npx skills add trailofbits/skills --skill c-review
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add trailofbits/skills --skill c-reviewDo not use when
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
medium
Skill may inspect schemas, query databases, or work with persistent stores.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/trailofbits-c-review/install
Agent should check
Copy prompt
Task: Use c-review in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20c-review%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/trailofbits-c-review/install
Install command: npx skills add trailofbits/skills --skill c-review
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/trailofbits-c-review/install
LLM text format
/api/skills/trailofbits-c-review/install?format=text
Find alternatives
/api/skills/search?q=c-review&limit=3
Agent prompt
Use c-review for this task. Review https://www.openagentskill.com/api/skills/trailofbits-c-review/install, then install with: npx skills add trailofbits/skills --skill c-reviewRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/trailofbits-c-review
LLM text
/api/registry/manifest/trailofbits-c-review?format=text
Install alias
/api/registry/install/trailofbits-c-review
Recommend
/api/registry/recommend?task=Use%20c-review%20in%20an%20agent%20workflow&limit=3
Agent fit
Local desktop
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Local desktop
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS6.8K GitHub stars
Stars/forks activity
PASS6.8K stars, 586 forks; issue activity unavailable in current metadata
Recent maintenance
PASS11d since push
License clarity
PASSCC-BY-SA-4.0
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Alternative shortlist
Similar skills that may fit this task.
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
Infisical is the open-source platform for secrets, certificates, and privileged access management.
--- name: c-review description: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code. allowed-tools: Workflow AskUserQuestion Bash Read ---
# C/C++ Security Review
Resolve four parameters, make one `Workflow` call, return the report. The workflow owns concurrency, retries and result collection.
**Use for:** native C/C++ userspace โ memory safety, integer overflow, races, type confusion, Linux/macOS daemons, Windows services.
**Not for:** kernel drivers or modules; managed languages (Java, C#, Python, Go, Rust); embedded or bare-metal code with no libc.
## Phase 0 โ Parameters
Parse any free text on the invocation line (`flamenco only`, `high severity only`, `use haiku`) and pre-fill what it implies. Then make **one** `AskUserQuestion` call for whatever is still unresolved. Never silently default a required parameter.
| Parameter | Values | Inferring it from the invocation | |---|---|---| | `threat_model` | `REMOTE` / `LOCAL_UNPRIVILEGED` / `BOTH` | "remote", "network", "attacker" โ `REMOTE`; "local", "unprivileged" โ `LOCAL_UNPRIVILEGED`; otherwise ask | | `worker_model` | `haiku` / `sonnet` / `opus` / `inherit` | An explicit model name. Otherwise ask. `inherit` uses the session model | | `severity_filter` | `all` / `medium` / `high` | "all", "every", "noisy" โ `all`; "medium and above" โ `medium`; "high only" โ `high`; otherwise ask | | `scope_subpath` | repo-relative directory, optional | "X only", "just audit X/" โ the matching subdirectory, fuzzy-matched against top-level dirs. Absent โ `.`. Ambiguous โ ask |
Two scopes stay separate for the whole run:
- **`finding_scope_root`** = `scope_subpath` (default `.`) โ a finding must live inside it, and it is the tree the unit list is generated from. - **`context_roots`** = `.` โ read freely to establish callers, build flags and reachability. Narrow it to `finding_scope_root` only if the user explicitly forbids wider reading, and say that reachability confidence drops when you do.
## Phase 1 โ Resolve paths
```bash root="${CLAUDE_PLUGIN_ROOT:-}" if [ -z "$root" ] || [ ! -f "$root/workflows/c-review.js" ]; then # Fallback for a cache layout that does not set the variable. ~/.claude ONLY โ never `.`: # `.` is the AUDITED repository, and a tree that vendors or mirrors this marketplace would # win the traversal and run its copy of the scripts, with a different question set and # nothing saying which copy ran. Let find's stderr through; a missing ~/.claude is a real # failure to report, not noise to hide. hit="$(find "$HOME/.claude" -path '*/c-review/workflows/c-review.js' -print -quit)" root="${hit%/workflows/c-review.js}" fi [ -n "$root" ] && [ -f "$root/workflows/c-review.js" ] && echo "PLUGIN ROOT: $root" ```
Stop if neither resolves, rather than running with an empty path โ and say which path you resolved, so a copy other than the installed plugin is visible before eight agents run against it.
```bash # The workflow cannot call Date.now(), so the timestamp is made here. output_dir="$(pwd)/.c-review-results/$(date -u +%Y%m%dT%H%M%SZ)" mkdir -p "$output_dir"; echo "$output_dir"
# A Workflow script has no filesystem APIs, and `assemble_findings.py` resolves `--scope` # against ITS OWN cwd. Resolve it once here and pass BOTH spellings, or the workflow strips # `src/` from a finding's path while the assembler strips `/repo/src/`, and the two disagree # about which findings are duplicates of each other. scope_abs="$(cd "${scope_subpath:-.}" && pwd)" || echo "scope_subpath does not exist" echo "$scope_abs" ```
`uv` must be on PATH: Detect runs the unit enumerator and Assemble runs `assemble_findings.py`. If `uv` is missing, say so and stop โ the whole review is partitioned from that unit list.
## Phase 2 โ Run the workflow
Invoking this skill **is** the opt-in to multi-agent orchestration โ call `Workflow` without asking again. A review of a real codebase also runs past any default workflow size guideline; that guideline is advisory and this is the case it exempts. Do not shrink the fan-out to fit it, and do not substitute hand-spawned `Agent` calls.
One `Workflow` call. `scriptPath` takes the absolute path resolved in Phase 1; `args` must be a real JSON object, not a JSON-encoded string.
``` Workflow({ scriptPath: "<plugin_root>/workflows/c-review.js", args: { outputDir: "<output_dir>", pluginRoot: "<plugin_root>", threatModel: "REMOTE", severityFilter: "all", findingScopeRoot: "expat/lib", findingScopeRootAbs: "/abs/path/to/repo/expat/lib", contextRoots: ".", workerModel: "sonnet" } }) ```
`findingScopeRootAbs` is the `scope_abs` from Phase 1 and is not optional in practice: omitted, the workflow tells the assembler no absolute root is known and a finding filed as `/repo/expat/lib/xmlparse.c` stops merging with the same bug filed as `xmlparse.c`.
Six further arguments are optional. Omitted, each takes its default; passed with the wrong TYPE, the workflow throws with the field name rather than defaulting. Pass them only when the user asks or when running an evaluation:
| Argument | Default | What it is for | |---|---|---| | `maxUnitLines` | `150` | Cap on a review unit; a larger function is split at syntactic seams. Raising it reintroduces the saturation the cap prevents | | `linesPerAgent` | `1500` | Source lines per review agent. **A no-op on a small tree** โ `--agent-min` (default 4) floors the derived count, so two very different values can produce identical assignments. Use `reviewAgents` to pin the fan-out | | `reviewAgents` | derived | Pins the review fan-out, subject to the same floor as the derived count: both are clamped to 4โ14, and an explicit value above 14 raises the cap to itself. A value below 4 is raised to 4, and a trailing slice too small to be worth an agent is folded into its neighbour, so the final count can come out one lower than asked | | `invariantAudit` | `false` | Adds the shared-state invariant audit to the sweep. A whole extra agent; turn it on for state-machine-heavy targets | | `exclude` | `[]` | Array of globs or substrings the unit enumerator skips (each becomes a repeated `--exclude`). Use when enumeration aborts naming a path it cannot own โ a symlink resolving outside the scope root, an unreadable directory โ and the excluded paths land in the enumerator's totals as a visible coverage hole, not silence | | `benchmarkMode` | `false` | **Eval-only.** Adds an external-source declaration to reviewer prompts and two schema fields. Changes no finding; leave it off for a real audit |
The workflow validates its own arguments and throws with a named field if one is missing. It runs five phases:
| Phase | Agents | What it does | |---|---|---| | Detect | 1 | Runs `enumerate_units.py` for the unit list; platform flags **from actual API usage**; shared-state structs; per bug class, whether any candidate site exists | | Review | 4โ14 | One agent per contiguous slice of the unit list. Each returns findings **with severity** and a ledger row per (unit ร question) | | Sweep | 0โ2 | The class axis: one agent over every bug class with no entry anywhere that Detect did not rule out. None, and the phase is skipped. Plus the struct-field audit when `invariantAudit: true` | | Dedup | 0โ1 | Only for collisions the assembler cannot merge deterministically. Usually skipped | | Assemble | 1 | Runs `assemble_findings.py`: ledger gate, deterministic merges, `findings.json`, `REPORT.md`, `REPORT.sarif` |
**Around 8โ10 agents on a mid-size target.**
## Phase 3 โ Return the report
`Read <output_dir>/REPORT.md` and return it.
**Say once, plainly, next to the findings: no false-positive review ran.** Every severity is the reviewer's own (`severity_source: "reviewer"`), `judgeRan` is always `false`, and nothing rejected anything. Expect some of what you are shown to be wrong or out of scope โ say so rather than presenting the list as adjudicated, and do not filter it yourself.
Then surface, prominently and separately from the findings, anything in the workflow result that means the run was partial:
| Field | Meaning and what to do | |---|---| | `artifactsWritten: false` | `REPORT.md` and `REPORT.sarif` are missing; the part files under `parts/` are intact. Re-assemble by hand (below) โ never reconstruct from the tool result | | `artifactsWritten: null` | The assemble agent returned nothing, so whether the artifacts exist is **unknown** โ the command may have completed and only its structured answer failed. List the output directory before doing anything else | | `gateAccepted: false` with artifacts written | The failure that looks like success. Artifacts are complete; the **coverage gate** could not run or rejected the ledger, so the review is assembled and unverified. Do **not** re-run the assembler โ read `ledger-gate.json` and report the gap. `artifactError` always carries the reason | | `coverage: null` | Coverage is **unmeasured**, not complete. Never report such a run as fully covered; point at `ledger-gate.json` | | `coverage` | Report `checksSatisfied` / `checksRequired`, and `checksCompleted` only as "answered" โ never "functions reviewed". `checksSatisfied` below `checksCompleted` means the gate threw rows out: a coverage-*integrity* failure. Name the `violations` | | `groupsFailed`, `agentFailures`, `notes` | That ground was **not covered**. Do not let a clean report imply it was | | `unrecognisedParts` | Whole agents' output in no artifact. `null` means **unchecked, not none** | | `silentClasses` / `ruledOutClasses` / `platformDroppedClasses` | "Swept and found nothing" / "nothing looked" / "out of scope by configuration". Report separately โ only the middle one means a human should look |
Hand re-assembly, when `artifactsWritten` is false:
``` uv run --no-project <plugin_root>/scripts/assemble_findings.py --run-dir <output_dir> \ --threat-model <MODEL> --severity-filter <FILTER> --no-judge \ --scope <finding_scope_root> --context-roots <context_roots> \ --worker-model <worker_model> \ --expect <part-stem>=<finding-count> # one per part the workflow log names ```
- **`--expect` is not optional.** Without it the allowlist admits every file under `parts/`, including one nobody dispatched, and the run exits **1** for that reason alone. If you cannot recover the counts from the workflow log, exit 1 is correct and the run is assembled-but-unverified. - **Never drop `--no-judge`.** Dropping it overwrites every reviewer severity with MEDIUM and records `judge_ran: true` for a run no judge ever saw. - Six flags cannot be reconstructed at all (`--expect-complete`, `--benchmark-mode`, `--groups-attempted`, `--groups-failed`, `--agent-failure`, `--external-source`), so the document will say `agent_failures: []` on a run that may have lost a slice. Report that. Without a `units.json` the assembler also exits **1**: no gate ran.
Finally list the artifacts: `findings.json`, `REPORT.md`, `REPORT.sarif`, `units.json`, `ledger-gate.json`, `detect.json`, and the `parts/` and `assignments/` directories.
## Rationalizations to Reject
- **"The run mostly worked, so I'll just present the report."** A failed agent is uncovered ground, not a rounding error. Report it next to the findings. - **"Coverage is 80%, that's basically complete."** The missing 20% is a list of exact (unit, question) pairs in `ledger-gate.json`. Name them. - **"I'll write the findings myself instead of running the workflow."** Hand-orchestrating costs far more for worse recall. Always call `Workflow`. - **"The artifacts failed, so I'll reconstruct the report from the tool result."** The part files are on disk and the assembler is deterministic. Re-run i
Decision snapshot
6,844 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for c-review, ready for a manual X post.
c-review: Performs comprehensive C/C++ security review for memory corruption, integer overflows, race c... 6.8K stars https://www.openagentskill.com/skills/trailofbits-c-review?ref=x
Listing + install path for c-review: https://www.openagentskill.com/skills/trailofbits-c-review?ref=x Install: npx skills add trailofbits/skills --skill c-review
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to trailofbits but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/trailofbits-c-review/audit)
[](https://www.openagentskill.com/skills/trailofbits-c-review?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)trailofbits
@trailofbits
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Wazuh
Wazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.
16.3K StarsMaigret
๐ต๏ธโโ๏ธ Collect a dossier on a person by username from 3000+ sites
32.9K StarsNuclei
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
29.2K StarsInfisical
Infisical is the open-source platform for secrets, certificates, and privileged access management.
27.4K StarsPermission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness