mantis-report

mantis-report is a skill for Claude Code, Codex from google/mantis. It costs 44 tokens per session (6,175 once invoked), scanned A, original, Apache-2.0.

A reporting tool that turns confirmed security findings and attack paths into a document that developers and other stakeholders can read.

In plain words
What is it for?
Use it at the end of a security review to create stakeholder-facing documentation from current and archived finding files. It is not for auditing code or checking patches.
Why use it?
It removes the need to turn technical finding files into a review document by hand and keeps findings from earlier review passes included.

Skill for Claude CodeCodex ✓ vendor

Written for no agent in particular: nothing here depends on one.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is --state_root if passed, else ./workspace/... relative to the current dir).

Good fit Use it at the end of a security review to create stakeholder-facing documentation from current and archived finding files. It is not for auditing code or checking patches.

Compare 6 skills from other repositories ↓
About the project

google/mantis is a modular set of security-review skills that coding agents use to find, reproduce, and patch software vulnerabilities. It is for adapting automated security testing to application, infrastructure, machine-learning, hardware, and firmware projects, with expert review required for results. The catalogue skills and instruction provide the workflow for using Mantis with coding agents.

google/mantis · 2,474 stars · on GitHub · cloud.google.com

Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/google/mantis
agentmods
npx agentmods add skills/google/mantis/mantis-report

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mantis-report

README.md
[![agentmods](https://agentmods.dev/badge/skills/google/mantis/mantis-report/github.svg)](https://agentmods.dev/skills/google/mantis/mantis-report)
Your own site
<a href="https://agentmods.dev/skills/google/mantis/mantis-report"><img src="https://agentmods.dev/badge/skills/google/mantis/mantis-report/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for mantis-report

Your own site · 80×15
<a href="https://agentmods.dev/skills/google/mantis/mantis-report"><img src="https://agentmods.dev/badge/skills/google/mantis/mantis-report.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 44 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,175 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • Socket pass 14 Sept 2026
  • Snyk pass 14 Sept 2026
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00044 $0.06175
Opus 5.5 $0.00018 $0.02470
Sonnet 5.5 $0.00009 $0.01235
Haiku 4.5 $0.00004 $0.00617

Measured 1mo ago against content hash c80192b51c35, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

mantis-report scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/mantis-report/SKILL.md · 418 lines

How it starts

The opening of the file, as written. The whole thing — 418 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Reporter (/mantis-report)

System Goal

Security Reporting Expert. Synthesizes complex, technical finding logs into a high-quality, human-readable review packet for developers and stakeholders.

Command Definition

  • Command: /mantis-report
  • Description: Generates a human-readable security review packet containing confirmed findings and exploit chains.

Input/Output Contract

  • Reads:
    • workspace/findings/*.json (all active finding files for this pass).
    • workspace/archive/findings_pass_*/*.json (archived findings from prior passes) and legacy workspace/archive/loop*_findings/*.json. The report is a campaign-wide view: this pass's full findings plus carried-forward findings that prior passes stopped retrying (e.g. hit the retry cap) so they do not vanish from the report.
    • workspace/.mantis_state.json (to track current loop pass, and to read vcs_info and active_snapshot {root, snapshot_id, snapshot_pinned} for provenance).
    • Per-finding snapshot provenance fields, all OPTIONAL: discovery_commit, repro_snapshot_id, patch_base_snapshot. When any is absent/empty it is rendered as "(not recorded)" — never a reason to drop a finding.
  • Writes:
    • workspace/report/review_packet_pass_<N>_<snapshot_tag>.md (pass- and snapshot-tagged markdown report). Falls back to the unsuffixed review_packet_pass_<N>.md on a legacy pass with no recorded snapshot.
    • Updates copy/symlink at workspace/report/review_packet-latest.md.
  • Preconditions:
    • Calibrated and reproduced findings exist in workspace/findings/ or workspace/archive/. The report is a campaign-wide view: it reports the current state of every unresolved finding discovered in this or any prior pass, de-duplicated to each finding's latest state. A confirmed-but-unfixed finding that plan stopped carrying back (e.g. it hit the 2-attempt retry cap) does NOT vanish — it appears here at its most recent archived state.
  • Idempotency Guarantee:
    • Writes to pass-and-snapshot-tagged files. In-place overwrite of review_packet-latest.md. Re-running the SAME pass on the SAME snapshot updates the same tagged file. Re-running the same pass number on a DIFFERENT snapshot writes a DISTINCT file (the <snapshot_tag> suffix prevents cross-snapshot overwrite). Legacy passes with no recorded snapshot keep the unsuffixed review_packet_pass_<N>.md name and overwrite in place, exactly as before.

Read the full file on GitHub · 418 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 418 lines · 44 tokens per session scan A c80192b51c35

Subscribe to this mod's changes

mantis-report is a skill published in the GitHub repository google/mantis (2,474 stars, last pushed today), licensed Apache-2.0. It adds 44 tokens to every session and 6,175 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.