mantis-advise — скилл для Claude Code: что делает и как установить
Скилл даёт агенту свериться с базой знаний по безопасности проекта до правок в коде: модели угроз, история уязвимостей файла, проверенные патчи.
npx skills add google/mantis --skill mantis-advise -a claude-codeЧто делает mantis-advise
Скилл подсовывает агенту базу знаний по безопасности и просит смотреть в неё перед правками. Внутри — вызов reference/scripts/advise.py, который читает SQLite-базу knowledge.db: модели угроз, историю прошлых уязвимостей с их lineage_id, уже проверенные патчи, размеченные ложные срабатывания и выученные инварианты. По файлу или модулю скрипт печатает совет в markdown: где проходят границы доверия, что уже ломалось в этом месте, какие приёмы признаны безопасными.
Работает из bash: python3 "$MANTIS_HOME/reference/scripts/advise.py" --file src/auth.py. Флаг --json выдаёт структуру вместо текста, --remediate <finding_id> собирает план архитектурного исправления с проверкой. Внутри Python-пайплайна есть второй вход — query_security_guidance из core.database.
Скрипт вызывается только по абсолютному пути через $MANTIS_HOME, потому что относительный путь в проверяемом репозитории можно подменить своим файлом. Переменную и Python 3 готовьте заранее, база knowledge.db тоже должна лежать на диске. Это советчик, а не сканер: многошаговый red-team и фаззинг в его задачи не входят.
Правило про абсолютный путь важнее, чем кажется. Если запустить advise.py из корня чужого репозитория, совет будет собран по чужому коду, и это повод проверить настройку до первого прогона.
Какие задачи решает
- проверить границы доверия модуля перед рефакторингом
- найти, какие уязвимости уже подтверждались в этом файле
- собрать план архитектурного исправления по ID находки
- отличить размеченное ложное срабатывание от настоящей дыры
- получить машинно-читаемый отчёт для пайплайна через
--json
Примеры запросов агенту
- Прогони
advise.py --file src/auth.pyи покажи, что известно про границы доверия в этом файле. - Есть находка
<finding_id>: нужен план архитектурного исправления и проверки. - Прежде чем править
api/app.py, вытащи историю его уязвимостей и проверенные патчи.
Как установить mantis-advise
1Через Skills CLI (Vercel)
npx skills add google/mantis --skill mantis-advise -a claude-code2Вручную: положить файлы
~/.claude/skills/mantis-advise/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/mantis-advise/
1Через Skills CLI (Vercel)
npx skills add google/mantis --skill mantis-advise -a codex2Вручную: положить файлы
.agents/skills/mantis-advise/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add google/mantis --skill mantis-advise -a cursor2Вручную: положить файлы
.cursor/skills/mantis-advise/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install google/mantis mantis-advise2Вручную: положить файлы
.github/skills/mantis-advise/SKILL.md1Через Skills CLI (Vercel)
npx skills add google/mantis --skill mantis-advise -a gemini-cli2Командой платформы
gemini skills install https://github.com/google/mantis --path skills/mantis-adviseВручную: положить файлы
.devin/skills/mantis-advise/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add google/mantis --skill mantis-advise -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о mantis-advise
Как установить mantis-advise в Claude Code?
Выполните npx skills add google/mantis --skill mantis-advise -a claude-code. Скилл появится по пути ~/.claude/skills/mantis-advise/SKILL.md.
Что делает mantis-advise?
Отвечает на вопросы по безопасности конкретного файла из базы knowledge.db: модели угроз, прошлые уязвимости, проверенные патчи, ложные срабатывания. По подтверждённой находке собирает план исправления с проверкой.
Что нужно, чтобы скилл заработал?
Python 3, выставленная переменная $MANTIS_HOME и файл knowledge.db с данными Mantis. Скрипт вызывается по абсолютному пути от $MANTIS_HOME.
Исходный текст
SKILL.md · Apache-2.0
---
name: mantis-advise
description: >-
Proactive security advisor and architectural remediation assistant for secure code development.
Use to query threat models, historical vulnerability lineages, verified patch patterns, triaged false positives, and learned trajectory invariants before code edits or to generate architectural remediation plans for confirmed findings.
Don't use for automated multi-pass red-team exploitation or fuzzing.
---
# Security Advisor & Remediation Engine (/mantis-advise)
## System Goal
Proactive Secure Development & Architectural Remediation Engine. Functions as a
security guardrail, advisory assistant, and architectural remediator for
developers and coding agents. Queries Mantis threat models, historical
vulnerability lineages, verified remediation patterns, triaged false positives,
and learned trajectory invariants to ensure that new code and refactors are
implemented securely from the start, and to synthesize robust architectural
remediations for confirmed vulnerabilities.
## Command Definition
- **Command:** `/mantis-advise`
- **Description:** Queries security knowledge for a given target file or module,
evaluates proposed changes against known threat boundaries, and provides
verified secure implementation guidance or architectural remediation plans.
- **Execution Command:**
```bash
python3 "${MANTIS_HOME:-/path/to/mantis}/reference/scripts/advise.py" --file <target_file> [--db knowledge.db]
```
- **Arguments (optional):**
- `--file` / `-f` (or `--target` / `-t`): Target source file or component path
(e.g. `src/auth.py` or `api/app.py`). Defaults to repo-wide scope if
omitted.
- `--remediate` / `-r`: Finding ID, lineage UUID, or file to generate an
architectural remediation dossier and verification plan for.
- `--db` / `-d`: Path to Mantis SQLite database (default: auto-discovers
`knowledge.db` or `workspace/knowledge.db`).
- `--lineage` / `-l`: Query lifecycle and recurrence for a specific lineage
UUID.
- `--signature` / `-s`: Query lifecycle for a specific content signature hash.
- `--json`: Emit structured JSON output instead of formatted markdown.
- `--full`: Emit unabridged OKF markdown bodies and un-truncated diffs.
## How to Fetch Guidance
All Mantis knowledge (threat models, historical findings, verified patches,
triaged false positives, and learned invariants) lives in the SQLite database
(`knowledge.db`). Do not look for flat files on disk (like `learnings.jsonl` or
`workspace/findings/*.json`). Use one of the two execution doors below:
### Mechanism 1: CLI Execution (Recommended for Coding Agents)
Coding agents with standard bash access should run `advise.py` using its
installation-anchored absolute path.
**Path Anchoring Requirement (CRITICAL)**: The advisor script resides within the
Mantis installation directory at `reference/scripts/advise.py`. **You MUST
invoke this script via an absolute path or via `$MANTIS_HOME`**. NEVER execute
`python3 reference/scripts/advise.py` using a relative path inside the audited
target repository, as untrusted repositories could spoof scripts or cause
command failures.
1. **Query Security Guidance for Target File**:
```bash
python3 "$MANTIS_HOME/reference/scripts/advise.py" --file src/auth.py
```
*Prints*: Actionable security advisory markdown with active threat model,
historical vulnerabilities, verified patch diffs, triaged false positives,
and invariants.
2. **Query Specific Bug Lineage & Recurrence**:
```bash
python3 "$MANTIS_HOME/reference/scripts/advise.py" --lineage c3a5e982-1234-5678-9abc-def012345678
```
3. **Machine-Readable JSON**:
```bash
python3 "$MANTIS_HOME/reference/scripts/advise.py" --file src/auth.py --json
```
4. **Architectural Remediation Dossier for a Finding**:
```bash
python3 "$MANTIS_HOME/reference/scripts/advise.py" --remediate <finding_id>
```
### Mechanism 2: Python Tool Invocation (Inside Pipeline / Harness)
When running inside an agent harness or Python environment:
```python
from core.database import query_security_guidance
guidance = query_security_guidance(db_path="knowledge.db", filepath="src/auth.py")
print(guidance["guidance_summary"])
```
Or via tool helper:
```python
get_security_guidance(filepath="src/auth.py")
```
## Input/Output Contract
- **Reads**:
- `knowledge.db` (`findings`, `campaign_artifacts`, `learnings`, and
`risk_scores` tables).
- Target source code files (under repository root).
- **Writes**:
- Structured Security Advisory & Guardrail recommendations formatted for the
active developer or coding agent.
## Core Advisory Protocols
### Protocol 1: Pre-Implementation Security Context Check
Before authoring code or refactoring an existing module:
1. **Run the Advisor**: Execute
`python3 "$MANTIS_HOME/reference/scripts/advise.py" --file <target_file>`.
2. **Review Advisory Context**:
- **Trust Boundaries**: Identify who interacts with this module (untrusted
public internet, authenticated users, internal microservices).
- **Historical Pitfalls**: Review all vulnerabilities previously confirmed or
reproduced on this file. Pay specific attention to recurring `lineage_id`
chains.
- **Verified Safe Idioms**: Review verified patch diffs from prior passes
marked `VERIFIED_SECURE`.
- **Triaged False Positives**: Review patterns previously classified as false
positives to understand intentional design choices and avoid breaking
legitimate functionality.
### Protocol 2: Trust Boundary Verification
When introducing new endpoints, parameters, data parsing, or subprocess
execution:
1. **Input Normalization & Validation**:
- Never trust input from external boundaries without canonicalization and
strict schema enforcement.
- For file paths: resolve against jail boundaries using strict
`os.path.abspath` or `Path.resolve()` checks (`startswith(jail_dir)`).
- For OS command execution: strictly use `shlex.quote` or array-based
`subprocess.run(["cmd", arg])` without `shell=True`.
2. **Defense-in-Depth**:
- Ensure server-side validation even if client-side validation is present.
- Ensure zero-privilege assumptions (e.g. no unnecessary IAM permissions,
bounded execution timeouts).
### Protocol 3: Lineage & Recurrence Defense
1. When fixing a reported vulnerability or refactoring a vulnerable component,
check the bug's `lineage_id` via
`python3 "$MANTIS_HOME/reference/scripts/advise.py" --file <target_file>`.
2. Ensure the new implementation completely closes all attack vectors
demonstrated in prior re-attack verification test suites.
### Protocol 4: Architectural Vulnerability Remediation & Sandbox Verification
When resolving a confirmed security flaw (in pipeline or standalone):
1. **Grounding Context**:
- Query
`python3 "$MANTIS_HOME/reference/scripts/advise.py" --remediate <finding_id>`
(or `get_security_guidance(filepath=...)`).
- Extract active OKF Threat Boundaries and Security Invariants.
- Inspect prior verified safe patterns from matching lineage history.
2. **Architectural Synthesis**:
- Do NOT produce superficial point-hacks (e.g. `return None`, hardcoded
`False`, or commenting out endpoints) that lobotomize functionality.
- Refactor root-cause sinks using safe idioms (parameterization, strict
bounds, array argv, canonicalized paths).
3. **Sandbox Verification (INV-1 & INV-2)**:
- Apply the unified diff patch to the guest workspace (`apply_patch`).
- Run the finding reproducer (`run_sandbox_with_evidence`).
- Verify that the attack fails to reach the sink
(`reattack_status == "failed_to_bypass"`).
- Verify that existing functional test suites pass without regression.
## Output Format
The Advisor outputs clean, actionable recommendations:
````markdown
# Security Advisory: <target_file>
### 1. Threat Model & Trust Boundaries
- **Entry Points**: <untrusted network / RPC / CLI>
- **Sensitive Assets**: <credentials, filesystem, tenant data>
### 2. Known Pitfalls & Historical Lineages
- **[CWE-XX] <Title>** (Lineage: `<uuid>`): <How it occurred and how it was resolved>
- **Verified Safe Pattern**:
```python
# Safe implementation idiom
````
### 3. False Positive Context (Intentional Behavior)
- **<Pattern>**:
<Why this pattern is considered safe in this specific architecture>
### 4. Implementation Checklist
- [ ] Validated against path traversal / injection / deserialization.
- [ ] Adheres to verified patch patterns.
- [ ] Respects trust boundary isolation.
```
```
© google · Apache-2.0 · google/mantis