- Skill ID
- google/mantis/mantis-meta-agent
- Publisher
- Repository
- mantis
- Installs
- 0
- Files
- 1
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
google/mantis/mantis-meta-agentInstalls these files- SKILL.md
What this skill tells the agent
Meta-Agent Orchestrator (/mantis-meta-agent)
System Goal
Autonomous Campaign Manager. Supervises the continuous review loop, ensures resilience, and monitors long-running security pipelines.
Command Definition
- Command:
/mantis-meta-agent - Description: Acts as the persistent supervisor, launching and monitoring the automated review campaign.
- Parameters:
--sync: OPT-IN boundary sync + snapshot pinning. When present (or when the user explicitly instructs a sync for this pass), synchronize the target with its upstream at the START of the pass (Block C) and pin an immutable per-pass snapshot (Block D). When ABSENT (the default), do NOT sync and do NOT pin: leaveactive_snapshot/snapshot_historyunwritten, leavesnapshot_pinnedunset, and run the pass against the live tree exactly as today (single static snapshot;--target_rootsemantics unchanged).--snapshot_keep=<N>: retention for pinned snapshots under<state_root>/.mantis_snapshots/(Block D step 6 GC). DEFAULT 2 (this pass \+ previous), safe because correctness never re-reads an older snapshot; raise it for patch/PoC rebasing against a finding's discovery snapshot.--state_root=<absolute path>: directory that containsworkspace/and.mantis_snapshots/. DEFAULT: the absolute path of the current working directory at meta-agent launch (i.e., the parent ofworkspace/). Ifstate_rootresolves insideCODE_ROOT(the colocated case — the default when launching from inside the target repo), Step 3 (PIN) MUST (a) HALT and yield to the user with a message to pass--state_rootoutsideCODE_ROOT— this is the DEFAULT and the only safe behavior without explicit opt-in. Auto-relocate (option b) is opt-in ONLY via an explicit--auto_relocate_stateflag (or an equivalent user instruction to auto-relocate for this pass); without it, never move user state. When the user has explicitly opted in, auto-relocate by movingworkspace/and.mantis_snapshots/to a sibling directory outsideCODE_ROOTand updatingstate_rootfor the remainder of the pass. This is the "colocated state" transition thatmantis-pipeline-adapterScenario 1 requires. The relocation is a MOVE (not copy-then-delete) and is skipped ifworkspace/.workspace_edit.lockis held (INV-5: no user data loss). The MOVE MUST be atomic on the same filesystem: move into a fresh temp dir under the sibling's parent, thenrename(2)to the final sibling path; refuse and HALT if the sibling already exists or the temp dir cannot be created (never clobber an existing directory). Ifrename(2)fails, leave the source untouched and HALT — do NOT fall back to copy-then-delete.--auto_relocate_state: OPT-IN flag. Whenstate_rootresolves insideCODE_ROOT(colocated state — the default when launching from inside the target repo), the default behavior is to HALT and yield to the user. Passing this flag (or giving an equivalent user instruction) authorizes the atomic-MOVE auto-relocate path described under--state_rootabove. Without it, never move user state.
Input/Output Contract
- Reads:
workspace/.mantis_state.json(to track current loop pass; and to readactive_snapshot/snapshot_historyfor snapshot provenance and Block E PREV-reference).- Individual JSON findings in
workspace/findings/(to verify states between subagent transitions, including each finding'spatch_statusfor the pre-sync backup-hygiene gate). workspace/.workspace_edit.lock(GATE A of the pre-sync backup-hygiene step: must be FREE before deleting stale*.bak-*files).CODE_ROOT/.mantis_snapshot_idsentinel (the snapshot reuse/STOP check in Block D step 0).- Writes:
- Creates archive directory
workspace/archive/findings_pass_N/and moves finding JSON files and.trash/to it; and (Stage 15) COPIESworkspace/.mantis_state.jsonandworkspace/kb/(incl.THREAT_MODEL.md) into it as the pass boundary reference. - Updates
workspace/.mantis_state.json: incrementspass_number, updateslast_updated, and (always) refreshesvcs_info. When--syncwas requested this pass, also writesactive_snapshot({root, snapshot_id, snapshot_pinned, pass, vcs_type}) withsnapshot_pinnedreflecting reality (truewhen pinned,falsein HALT);snapshot_historyis appended by Block D step 5 (one entry per pass:{pass, snapshot_id, snapshot_pinned, timestamp}) — Step 4 RECORD below does NOT re-append. These new keys are defined inschema.json#/$defs/state; they are optional and absent in MODE-OFF (no--sync). - When
--syncpins a snapshot (Block D): materializes an immutable snapshot copy under<state_root>/.mantis_snapshots/pass_<N>/(deliberately OUTSIDE any/workspace/path segment, so mantis-patch's existing state-vs-code path guard still treats it as CODE, not state), writes theCODE_ROOT/.mantis_snapshot_idsentinel, andchmod -R a-wthe copy. - Preconditions:
- Target project must be identified. Campaign orchestration tools/subagents must be ready.
- Idempotency Guarantee:
- Skips the finding move if
workspace/findings/is empty or missing (the state/KB boundary copy still runs). Determines pass number dynamically once from disk if the state file is missing to avoid overwriting existing archives during new runs. - Snapshot pinning is crash-safe: Block D reuses an already-materialized snapshot whose sentinel matches the recomputed
SNAPSHOT_ID, else STOPs (reuse-or-STOP); keep-N GC (configurable--snapshot_keep, default 2) prunes older snapshots with matching teardown.
Instructions
Act as a persistent, long-lived supervisor that drives the Mantis defensive security reviewing pipeline continuously.
Target Agnosticism Directive: The target you are evaluating may be raw source code, a compiled binary, a firmware blob, or a live staging/dev endpoint. Ground your analysis in whatever format the target is currently in. You are authorized and encouraged to use whatever suitable tools are at your disposal (e.g., standard Unix tools,unblob,radare2,angr,objdump,Ghidra,qemu,unicorn, emulator harnesses) to extract, analyze, reproduce, and test the findings. If source code is not available, do not attempt to force a source-code workflow; adapt and 'do what works' for the artifact at hand. Ensure your subagents are aware of the tools available to them.
Do not perform the auditing or patching tasks yourself. Instead, delegate them to specialized subagents to maintain context efficiency and isolate tasks.
Execute your orchestration duties in a continuous loop:
- Sub-Agent Orchestration Loop: For each iteration of the review loop, maintain a loop pass counter
N.
- Initialization / Startup: Read
Nfrom"pass_number"inworkspace/.mantis_state.json. If missing or invalid, scanworkspace/archive/for folders matchingfindings_pass_NorloopN_findingsand resolveNtomax_found + 1(defaulting to 1 if no archives exist).
Boundary Sync & Snapshot Pinning — Pass Lifecycle CONTRACT (STRICT ORDER). At the start of every pass perform the following four steps in EXACTLY this order. The Pass Lifecycle Contract (schema.json → "Non-JSON Contracts") requires you to SYNC FIRST and to NEVER record a snapshot id or pin a copy before syncing. Do not reorder these steps and do not skip Step 1 ahead of any snapshot write.
Sync is OPT-IN. Perform Step 1 (SYNC) and Step 3 (PIN) ONLY when --sync was passed OR the user explicitly instructed a sync for this pass. Otherwise (the default): SKIP Steps 1 and 3 entirely, do NOT write
More from google
Use this skill in a project
Open any RiverX project, search the Skills panel for google/mantis/mantis-meta-agent, and install it in one click.
