mantis-summarize

Pre-processes the repository by generating security-focused summaries (mantis-summary.md) for each directory to make planning and research more efficient. Use when starting a review campaign to map the codebase before threat modeling and planning. Don't use for executing code reviews, writing test s

By google · 1,024 installs

npx skills add google/mantis --skill mantis-summarize

Source repository · Upstream listing

Summarizer (/mantis summarize) System Goal Repository Mapper. Automates the generation of security focused, deterministic summaries of directory contents to reduce token overhead for downstream planning and research stages. Command Definition Command: /mantis summarize Description: Pre processes the repository by generating security focused summaries ( mantis summary.md ) for each directory to make planning and research more efficient. Arguments (optional; supplied by the orchestrator, consumed by Block A): snapshot root / snapshot id / state root . In PINNED mode, source is read under CODE ROOT but summaries are skipped (see Output location). All absent → MODE OFF (in tree summaries, as today). Input/Output Contract Reads : workspace/.mantis state.json (to track current loop pass). Codebase directories and source files (excluding node modules , vendor , .git , build outputs, and tests/ ). Child directory summaries ( mantis summary.md files from subdirectories). workspace/historical learnings.jsonl (optional, to enrich summaries). Writes : Traversal script to workspace. MODE OFF: mantis summary.md in each source directory (as today). PINNED: skipped (see Output location). Preconditions : Source files and directory structure must be present. Idempotency Guarantee : Deterministically overwrites existing mantis summary.md files in place with updated rollups. Instructions Step 0: Locator Resolution + output location (run first) Output location (MANDATORY): PINNED mode (snapshot pinned true): summaries are skipped this pass. In PINNED mode, CODE ROOT is read only (Block A step 4), and consumers (plan, history, researcher) read mantis summary.md from the source directory in the code tree — not from a state relative mirror. Writing to a mirror that no consumer reads would silently waste the work. Do NOT write any mantis summary.md files in PINNED mode. (If a future change wires consumers to the mirror + re maps via a provenance marker, this can be revisited; for now, PINNED mode summaries are inert.) HALT mode (active snapshot present + snapshot pinned=false): behave as MODE OFF (write mantis summary.md into each source directory). The snapshot is not read only (no immutable copy was pinned), so writing into the tree is safe. MODE OFF (no active snapshot — today's default): behave exactly as today — write mantis summary.md into each source directory. In all modes except PINNED, mantis summary.md files must remain invisible to every VCS dirty check and be deleted from the target tree before any sync (the meta agent enforces this in Block C STEP 0). Never let a summary make the tree look dirty. Your task is to write and execute a script that will traverse the repository directory tree and create a mantis summary.md file in each directory containing source code. This is an optional pre processing phase designed to drastically reduce the context window size required for the strategist ( /mantis plan ), and provide a quick reference map for researchers ( /mantis researcher ). Execute the summarize stage as follows: 1. Write the Traversal Script (Bottom Up Hierarchical): Write a script (e.g., Python or bash) in your workspace that walks the repository directory tree using a bottom up (post order) traversal . The script must ignore non source code directories such as node modules , vendor , .git , build outputs, and tests/ . By traversing bottom up, the script ensures that subdirectories are summarized before their parent directories. When analyzing a directory, the script should pass the LLM the local source files in that directory PLUS the mantis summary.md files of its immediate subdirectories. Do not pass the raw source files of subdirectories to the parent. When analyzing very large directories, context window size might become a problem. Instead of passing files and directory summaries in bulk, generate per file summaries or operate in more efficient chunks to avoid passing too many tokens for the LLM to handle. 2. Generate the Security Summary (Map Reduce): The script should read workspace/historical learnings.jsonl (if it exists) to check for past vulnerabilities and security fixes associated with files in the current directory, and pass them in context. The script should instruct the LLM or agent tool to generate a concise, security focused summary of the directory. To keep token lengths reasonable at higher levels of the directory tree, the LLM should abstract away lower level details, focusing on the rolled up architecture. The prompt used by your script should ask for: Core Components: What are the primary files and subdirectories, and what do they do? API Endpoints & Exports: What functions or classes are exposed to other modules? Trust Boundaries & External Inputs: Does this directory handle untrusted data, network requests, or user input? Sensitive Operations: Are there parsers, cryptographic functions, or memory management operations? Historical Vulnerabilities & Fixes: What files or components in this directory have historical vulnerabilities or security related fixes recorded in workspace/historical learnings.jsonl ? Summarize the past fixes, components affected, and vulnerability classes to highlight past regressions or recurring weaknesses. The summary must be a reasonable size to incorporate into work on larger problems, so aim for several thousand words or fewer. 3. Output to mantis summary.md : In MODE OFF (or HALT), write mantis summary.md into the corresponding source directory (overwrite if present). In PINNED mode, do NOT write — summaries are skipped this pass (see Output location above). Never write into the read only snapshot. 4. Execute the Script: Run the script you just wrote to generate all the summaries across the repository. Wait for it to finish successfully. 5. Complete: Summaries are now generated. Notify the user. When complete, notify the user.