Fix allowed-tools to use spec-compliant space-delimited strings (#139)

* Fix `allowed-tools` to use spec-compliant space-delimited strings

Per the agentskills.io specification, `allowed-tools` must be a single
string of space-delimited patterns, not a YAML list. Converted all 23
SKILL.md files from the `- Item` list format to the correct
`"Item1 Item2"` string format. Also updated the frontmatter examples in
CLAUDE.md and the workflow-skill-design skill template to match.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix remaining allowed-tools format in firebase-apk-scanner and workflow-skill-design docs

- Convert firebase-apk-scanner from comma-separated to space-delimited
- Update anti-patterns.md and tool-assignment-guide.md examples from YAML lists to space-delimited strings
- Remove unnecessary quotes from SKILL.md template placeholder

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Cover commands, new SKILL.md files, and fix template placeholder

Extends the previous spec-compliance fixes:

* Convert command frontmatter (commands/*.md) — per Claude Code
  docs, command files use the same frontmatter as skills, so the
  same space-delimited rule applies.
* Convert three SKILL.md files added since the original PR:
  mutation-testing, trailmark-structural, trailmark-summary.
* Fix the placeholder in the workflow-skill-design template.
  The previous "[minimum tools needed, space-delimited]" was YAML
  flow-sequence syntax, which parses as a list — the opposite of
  what the placeholder claims. Replaced with a concrete-looking
  space-delimited example plus a comment.

Zeroize-audit agent files still use `allowed-tools:` in YAML list
form. They are intentionally excluded: per the project's own docs
(workflow-skill-design references), agents declare tools with
`tools:` (not `allowed-tools:`). Fixing those requires changing
the field name as well as the format and is out of scope for this
PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* zeroize-audit agents: switch allowed-tools to tools

Subagents declare their tool allowlist via `tools:` (comma-separated),
not `allowed-tools:` — see Claude Code's subagent docs and this
repo's own designing-workflow-skills/SKILL.md:47:

> Skills use `allowed-tools:` in frontmatter. Agents use `tools:`
> in frontmatter.

Before this change, the zeroize-audit agents declared their tool list
under `allowed-tools:`, which Claude Code does not read for subagents.
The field was effectively a no-op; the spawned agents had no tool
restriction enforced.

Renames the field on all 11 agents to `tools:` and reformats the YAML
list as comma-separated to match the documented format and existing
agents elsewhere in the repo (e.g. function-analyzer.md,
spec-compliance-checker.md). Tool sets are unchanged.

Behavior change: tools now actually constrain what each spawned agent
can call. The lists are the ones the original author intended.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* skill-improver: convert command allowed-tools to space-delimited

The two command files in plugins/skill-improver/commands/ still used
the JSON flow-array format (`allowed-tools: ["..."]`), which the rest
of this PR converted everywhere else. Convert them to the spec-compliant
space-delimited string form for consistency.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Dan Guido <dan@trailofbits.com>
This commit is contained in:
Jonathan Hefner
2026-04-28 18:50:30 -05:00
committed by GitHub
parent 38793f6757
commit debfb29c8e
52 changed files with 59 additions and 354 deletions
+1 -3
View File
@@ -75,9 +75,7 @@ plugins/
---
name: skill-name # kebab-case, max 64 chars
description: "Third-person description of what it does and when to use it"
allowed-tools: # Optional: restrict to needed tools only
- Read
- Grep
allowed-tools: Read Grep # Optional: restrict to needed tools only
---
```
@@ -1,11 +1,7 @@
---
name: agentic-actions-auditor
description: "Audits GitHub Actions workflows for security vulnerabilities in AI agent integrations including Claude Code Action, Gemini CLI, OpenAI Codex, and GitHub AI Inference. Detects attack vectors where attacker-controlled input reaches AI agents running in CI/CD pipelines, including env var intermediary patterns, direct expression injection, dangerous sandbox configurations, and wildcard user allowlists. Use when reviewing workflow files that invoke AI coding agents, auditing CI/CD pipeline security for prompt injection risks, or evaluating agentic action configurations."
allowed-tools:
- Read
- Grep
- Glob
- Bash
allowed-tools: Read Grep Glob Bash
---
# Agentic Actions Auditor
@@ -2,12 +2,7 @@
name: trailofbits:audit-context
description: Builds deep architectural context before vulnerability hunting
argument-hint: "<codebase-path> [--focus <module>]"
allowed-tools:
- Read
- Grep
- Glob
- Bash
- Task
allowed-tools: Read Grep Glob Bash Task
---
# Build Audit Context
@@ -2,9 +2,7 @@
name: trailofbits:burp-search
description: Searches Burp Suite project files for security analysis
argument-hint: "<burp-file> [operation]"
allowed-tools:
- Bash
- Read
allowed-tools: Bash Read
---
# Search Burp Suite Project Files
@@ -1,9 +1,7 @@
---
name: burpsuite-project-parser
description: Searches and explores Burp Suite project files (.burp) from the command line. Use when searching response headers or bodies with regex patterns, extracting security audit findings, dumping proxy history or site map data, or analyzing HTTP traffic captured in a Burp project.
allowed-tools:
- Bash
- Read
allowed-tools: Bash Read
---
# Burp Project Parser
@@ -2,11 +2,7 @@
name: trailofbits:ct-check
description: Detects timing side-channels in cryptographic code
argument-hint: "<source-file> [--warnings] [--json] [--arch <arch>]"
allowed-tools:
- Bash
- Read
- Grep
- Glob
allowed-tools: Bash Read Grep Glob
---
# Check Constant-Time Properties
@@ -1,12 +1,7 @@
---
name: interpreting-culture-index
description: Interprets Culture Index (CI) surveys, behavioral profiles, and personality assessment data. Supports individual profile interpretation, team composition analysis (gas/brake/glue), burnout detection, profile comparison, hiring profiles, manager coaching, interview transcript analysis for trait prediction, candidate debrief, onboarding planning, and conflict mediation. Accepts extracted JSON or PDF input via OpenCV extraction script.
allowed-tools:
- Bash
- Read
- Grep
- Glob
- Write
allowed-tools: Bash Read Grep Glob Write
---
<essential_principles>
@@ -2,12 +2,7 @@
name: trailofbits:diff-review
description: Performs security-focused differential review of code changes
argument-hint: "<pr-url|commit-sha|diff-path> [--baseline <ref>]"
allowed-tools:
- Read
- Write
- Grep
- Glob
- Bash
allowed-tools: Read Write Grep Glob Bash
---
# Differential Security Review
@@ -5,12 +5,7 @@ description: >
Adapts analysis depth to codebase size, uses git history for context, calculates
blast radius, checks test coverage, and generates comprehensive markdown reports.
Automatically detects and prevents security regressions.
allowed-tools:
- Read
- Write
- Grep
- Glob
- Bash
allowed-tools: Read Write Grep Glob Bash
---
# Differential Security Review
@@ -1,15 +1,7 @@
---
name: dimensional-analysis
description: "Annotates codebases with dimensional analysis comments documenting units, dimensions, and decimal scaling. Use when someone asks to annotate units in a codebase, perform a dimensional analysis, or find vulnerabilities in a DeFi protocol, offchain code, or other blockchain-related codebase with arithmetic. Prevents dimensional mismatches and catches formula bugs early."
allowed-tools:
- Read
- Write
- Grep
- List
- Glob
- Task
- TodoRead
- TodoWrite
allowed-tools: Read Write Grep List Glob Task TodoRead TodoWrite
---
# Dimensional Analysis Skill
@@ -1,12 +1,7 @@
---
name: dwarf-expert
description: Provides expertise for analyzing DWARF debug files and understanding the DWARF debug format/standard (v3-v5). Triggers when understanding DWARF information, interacting with DWARF files, answering DWARF-related questions, or working with code that parses DWARF data.
allowed-tools:
- Read
- Bash
- Grep
- Glob
- WebSearch
allowed-tools: Read Bash Grep Glob WebSearch
---
# Overview
This skill provides technical knowledge and expertise about the DWARF standard and how to interact with DWARF files. Tasks include answering questions about the DWARF standard, providing examples of various DWARF features, parsing and/or creating DWARF files, and writing/modifying/analyzing code that interacts with DWARF data.
@@ -2,11 +2,7 @@
name: trailofbits:entry-points
description: Identifies state-changing entry points in smart contracts
argument-hint: "[directory-path]"
allowed-tools:
- Read
- Grep
- Glob
- Bash
allowed-tools: Read Grep Glob Bash
---
# Analyze Smart Contract Entry Points
@@ -1,11 +1,7 @@
---
name: entry-point-analyzer
description: Analyzes smart contract codebases to identify state-changing entry points for security auditing. Detects externally callable functions that modify state, categorizes them by access level (public, admin, role-restricted, contract-only), and generates structured audit reports. Excludes view/pure/read-only functions. Use when auditing smart contracts (Solidity, Vyper, Solana/Rust, Move, TON, CosmWasm) or when asked to find entry points, audit flows, external functions, access control patterns, or privileged operations.
allowed-tools:
- Read
- Grep
- Glob
- Bash
allowed-tools: Read Grep Glob Bash
---
# Entry Point Analyzer
@@ -2,11 +2,7 @@
name: trailofbits:scan-apk
description: Scans Android APKs for Firebase security misconfigurations
argument-hint: "<apk-file-or-directory>"
allowed-tools:
- Bash
- Read
- Grep
- Glob
allowed-tools: Bash Read Grep Glob
---
# Scan APK for Firebase Misconfigurations
@@ -2,7 +2,7 @@
name: firebase-apk-scanner
description: Scans Android APKs for Firebase security misconfigurations including open databases, storage buckets, authentication issues, and exposed cloud functions. Use when analyzing APK files for Firebase vulnerabilities, performing mobile app security audits, or testing Firebase endpoint security. For authorized security research only.
argument-hint: [apk-file-or-directory]
allowed-tools: Bash({baseDir}/scanner.sh:*), Bash(apktool:*), Bash(curl:*), Read, Grep, Glob
allowed-tools: Bash({baseDir}/scanner.sh:*) Bash(apktool:*) Bash(curl:*) Read Grep Glob
disable-model-invocation: true
---
+1 -14
View File
@@ -1,20 +1,7 @@
---
name: fp-check
description: "Systematically verifies suspected security bugs to eliminate false positives. Produces TRUE POSITIVE or FALSE POSITIVE verdicts with documented evidence for each bug."
allowed-tools:
- Read
- Grep
- Glob
- LSP
- Bash
- Task
- Write
- Edit
- AskUserQuestion
- TaskCreate
- TaskUpdate
- TaskList
- TaskGet
allowed-tools: Read Grep Glob LSP Bash Task Write Edit AskUserQuestion TaskCreate TaskUpdate TaskList TaskGet
---
# False Positive Check
@@ -2,11 +2,7 @@
name: git-cleanup
description: "Safely analyzes and cleans up local git branches and worktrees by categorizing them as merged, squash-merged, superseded, or active work."
disable-model-invocation: true
allowed-tools:
- Bash
- Read
- Grep
- AskUserQuestion
allowed-tools: Bash Read Grep AskUserQuestion
---
# Git Cleanup
@@ -1,11 +1,7 @@
---
name: insecure-defaults
description: "Detects fail-open insecure defaults (hardcoded secrets, weak auth, permissive security) that allow apps to run insecurely in production. Use when auditing security, reviewing config management, or analyzing environment variable handling."
allowed-tools:
- Read
- Grep
- Glob
- Bash
allowed-tools: Read Grep Glob Bash
---
# Insecure Defaults Detection
@@ -1,11 +1,7 @@
---
name: let-fate-decide
description: "Draws 4 Tarot cards to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking."
allowed-tools:
- Bash
- Read
- Grep
- Glob
allowed-tools: Bash Read Grep Glob
---
# Let Fate Decide
@@ -1,11 +1,7 @@
---
name: mutation-testing
description: "Configures mewt or muton mutation testing campaigns — scopes targets, tunes timeouts, and optimizes long-running runs. Use when the user mentions mewt, muton, mutation testing, or wants to configure or optimize a mutation testing campaign."
allowed-tools:
- Read
- Write
- Bash
- Grep
allowed-tools: Read Write Bash Grep
---
# Mutation Testing — Campaign Configuration (mewt/muton)
@@ -1,12 +1,7 @@
---
name: seatbelt-sandboxer
description: "Generates minimal macOS Seatbelt sandbox configurations. Use when sandboxing, isolating, or restricting macOS applications with allowlist-based profiles."
allowed-tools:
- Read
- Write
- Bash
- Glob
- Grep
allowed-tools: Read Write Bash Glob Grep
---
# macOS Seatbelt Sandbox Profiling
@@ -1,12 +1,7 @@
---
name: second-opinion
description: "Runs external LLM code reviews (OpenAI Codex or Google Gemini CLI) on uncommitted changes, branch diffs, or specific commits. Use when the user asks for a second opinion, external review, codex review, gemini review, or mentions /second-opinion."
allowed-tools:
- Bash
- Read
- Glob
- Grep
- AskUserQuestion
allowed-tools: Bash Read Glob Grep AskUserQuestion
---
# Second Opinion
@@ -2,14 +2,7 @@
name: trailofbits:semgrep-rule
description: Creates Semgrep rules with test-first methodology
argument-hint: "(uses conversation context for detection pattern)"
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
- WebFetch
allowed-tools: Bash Read Write Edit Glob Grep WebFetch
---
# Create Semgrep Rule
@@ -1,14 +1,7 @@
---
name: semgrep-rule-creator
description: Creates custom Semgrep rules for detecting security vulnerabilities, bug patterns, and code patterns. Use when writing Semgrep rules or building custom static analysis detections.
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
- WebFetch
allowed-tools: Bash Read Write Edit Glob Grep WebFetch
---
# Semgrep Rule Creator
@@ -1,14 +1,7 @@
---
name: semgrep-rule-variant-creator
description: Creates language variants of existing Semgrep rules. Use when porting a Semgrep rule to specified target languages. Takes an existing rule and target languages as input, produces independent rule+test directories for each language.
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
- WebFetch
allowed-tools: Bash Read Write Edit Glob Grep WebFetch
---
# Semgrep Rule Variant Creator
@@ -1,10 +1,7 @@
---
name: sharp-edges
description: "Identifies error-prone APIs, dangerous configurations, and footgun designs that enable security mistakes. Use when reviewing API designs, configuration schemas, cryptographic library ergonomics, or evaluating whether code follows 'secure by default' and 'pit of success' principles. Triggers: footgun, misuse-resistant, secure defaults, API usability, dangerous configuration."
allowed-tools:
- Read
- Grep
- Glob
allowed-tools: Read Grep Glob
---
# Sharp Edges Analysis
@@ -1,7 +1,7 @@
---
description: "Stops, cancels, or aborts the active skill improvement loop while preserving all changes made to skill files. Use to manually stop, cancel, abort, or kill the iteration process early."
argument-hint: "[SESSION_ID]"
allowed-tools: ["Bash(${CLAUDE_PLUGIN_ROOT}/scripts/cancel-skill-improver.sh:*)"]
allowed-tools: Bash(${CLAUDE_PLUGIN_ROOT}/scripts/cancel-skill-improver.sh:*)
---
# Cancel Skill Improver
@@ -1,7 +1,7 @@
---
description: "Iteratively reviews and fixes a Claude Code skill until it meets quality standards. Triggers on 'fix my skill', 'improve skill quality', 'skill improvement loop'."
argument-hint: "<SKILL_NAME_OR_PATH> [--max-iterations N]"
allowed-tools: ["Bash(${CLAUDE_PLUGIN_ROOT}/scripts/setup-skill-improver.sh:*)", "Task", "Read", "Edit", "Write", "Glob", "Grep"]
allowed-tools: Bash(${CLAUDE_PLUGIN_ROOT}/scripts/setup-skill-improver.sh:*) Task Read Edit Write Glob Grep
---
# Skill Improver
@@ -1,13 +1,7 @@
---
name: skill-improver
description: "Iteratively reviews and fixes Claude Code skill quality issues until they meet standards. Runs automated fix-review cycles using the skill-reviewer agent. Use to fix skill quality issues, improve skill descriptions, run automated skill review loops, or iteratively refine a skill. Triggers on 'fix my skill', 'improve skill quality', 'skill improvement loop'. NOT for one-time reviews—use /skill-reviewer directly."
allowed-tools:
- Task
- Read
- Edit
- Write
- Glob
- Grep
allowed-tools: Task Read Edit Write Glob Grep
---
# Skill Improvement Methodology
@@ -2,13 +2,7 @@
name: trailofbits:spec-compliance
description: Verifies code implements specification requirements
argument-hint: "<spec-document> <codebase-path>"
allowed-tools:
- Read
- Write
- Grep
- Glob
- Bash
- WebFetch
allowed-tools: Read Write Grep Glob Bash WebFetch
---
# Verify Spec-to-Code Compliance
+1 -14
View File
@@ -6,20 +6,7 @@ description: >-
codeql database", or "find vulnerabilities with codeql". Supports "run all" (security-and-quality
+ security-experimental suites) and "important only" (high-precision security findings) scan
modes. Also handles creating data extension models and processing CodeQL SARIF output.
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
- AskUserQuestion
- TaskCreate
- TaskList
- TaskUpdate
- TaskGet
- TodoRead
- TodoWrite
allowed-tools: Bash Read Write Edit Glob Grep AskUserQuestion TaskCreate TaskList TaskUpdate TaskGet TodoRead TodoWrite
---
# CodeQL Analysis
@@ -5,11 +5,7 @@ description: >-
scanners. Triggers on "parse sarif", "read scan results", "aggregate findings", "deduplicate
alerts", or "process sarif output". Handles filtering, deduplication, format conversion, and
CI/CD integration of SARIF data. Does NOT run scans — use the Semgrep or CodeQL skills for that.
allowed-tools:
- Bash
- Read
- Glob
- Grep
allowed-tools: Bash Read Glob Grep
---
# SARIF Parsing Best Practices
@@ -8,15 +8,7 @@ description: >-
to scan code for vulnerabilities, run a security audit with Semgrep, find
bugs, or perform static analysis. Spawns parallel workers for multi-language
codebases.
allowed-tools:
- Bash
- Read
- Glob
- Task
- AskUserQuestion
- TaskCreate
- TaskList
- TaskUpdate
allowed-tools: Bash Read Glob Task AskUserQuestion TaskCreate TaskList TaskUpdate
---
# Semgrep Security Scan
@@ -1,12 +1,7 @@
---
name: supply-chain-risk-auditor
description: "Identifies dependencies at heightened risk of exploitation or takeover. Use when assessing supply chain attack surface, evaluating dependency health, or scoping security engagements."
allowed-tools:
- Read
- Write
- Bash
- Glob
- Grep
allowed-tools: Read Write Bash Glob Grep
---
# Supply Chain Risk Auditor
@@ -1,11 +1,7 @@
---
name: trailmark-structural
description: "Runs full trailmark structural analysis with all pre-analysis passes (blast radius, taint propagation, privilege boundaries, complexity hotspots). Use when vivisect needs detailed structural data for a target. Triggers: structural analysis, blast radius, taint analysis, complexity hotspots."
allowed-tools:
- Bash
- Read
- Grep
- Glob
allowed-tools: Bash Read Grep Glob
---
# Trailmark Structural Analysis
@@ -1,11 +1,7 @@
---
name: trailmark-summary
description: "Runs a trailmark summary analysis on a codebase. Returns language detection, entry point count, and dependency graph shape. Use when vivisect or galvanize needs a quick structural overview. Triggers: trailmark summary, code summary, structural overview."
allowed-tools:
- Bash
- Read
- Grep
- Glob
allowed-tools: Bash Read Grep Glob
---
# Trailmark Summary
@@ -2,12 +2,7 @@
name: trailofbits:variants
description: Finds similar vulnerabilities using pattern-based analysis
argument-hint: "(uses conversation context for bug pattern)"
allowed-tools:
- Read
- Grep
- Glob
- Bash
- Task
allowed-tools: Read Grep Glob Bash Task
---
# Find Vulnerability Variants
@@ -7,12 +7,7 @@ description: >-
sequential pipelines, routing patterns, safety gates, task tracking,
phased execution, or any multi-step workflow. Also applies when
reviewing or refactoring existing workflow skills for quality.
allowed-tools:
- Read
- Glob
- Grep
- TodoRead
- TodoWrite
allowed-tools: Read Glob Grep TodoRead TodoWrite
---
# Designing Workflow Skills
@@ -129,8 +124,7 @@ Every workflow skill needs this skeleton, regardless of pattern:
---
name: kebab-case-name
description: "Third-person description with trigger keywords — this is how Claude decides to activate the skill"
allowed-tools:
- [minimum tools needed]
allowed-tools: Tool1 Tool2 Tool3 # space-delimited list of tool names
# Optional fields — see tool-assignment-guide.md for full reference:
# disable-model-invocation: true # Only user can invoke (not Claude)
# user-invocable: false # Only Claude can invoke (hidden from / menu)
@@ -258,8 +258,7 @@ Use distinctive keywords per workflow. If two workflows genuinely overlap, add a
**Before:**
```markdown
allowed-tools:
- Bash
allowed-tools: Bash
```
```markdown
Find all Python files:
@@ -270,10 +269,7 @@ find . -name "*.py" -type f
**After:**
```markdown
allowed-tools:
- Glob
- Grep
- Read
allowed-tools: Glob Grep Read
```
```markdown
Find all Python files using Glob with pattern `**/*.py`.
@@ -289,22 +285,12 @@ Find all Python files using Glob with pattern `**/*.py`.
**Before:**
```yaml
allowed-tools:
- Bash
- Read
- Write
- Glob
- Grep
- Task
- AskUserQuestion
allowed-tools: Bash Read Write Glob Grep Task AskUserQuestion
```
**After (for a read-only analysis skill):**
```yaml
allowed-tools:
- Read
- Glob
- Grep
allowed-tools: Read Glob Grep
```
Only list tools the skill actually needs. Audit by checking which tools appear in instructions.
@@ -111,12 +111,7 @@ Map the operation you need to the correct tool:
Skills that examine code without modifying it:
```yaml
allowed-tools:
- Read
- Glob
- Grep
- TodoRead
- TodoWrite
allowed-tools: Read Glob Grep TodoRead TodoWrite
```
### Interactive Analysis Skills
@@ -124,13 +119,7 @@ allowed-tools:
Skills that need user input during execution:
```yaml
allowed-tools:
- Read
- Glob
- Grep
- AskUserQuestion
- TodoRead
- TodoWrite
allowed-tools: Read Glob Grep AskUserQuestion TodoRead TodoWrite
```
### Code Generation Skills
@@ -138,14 +127,7 @@ allowed-tools:
Skills that produce output files:
```yaml
allowed-tools:
- Read
- Glob
- Grep
- Write
- Bash
- TodoRead
- TodoWrite
allowed-tools: Read Glob Grep Write Bash TodoRead TodoWrite
```
### Pipeline Skills (Multi-Step)
@@ -153,19 +135,7 @@ allowed-tools:
Skills that orchestrate complex workflows:
```yaml
allowed-tools:
- Bash
- Read
- Write
- Glob
- Grep
- AskUserQuestion
- Task
- TaskCreate
- TaskList
- TaskUpdate
- TodoRead
- TodoWrite
allowed-tools: Bash Read Write Glob Grep AskUserQuestion Task TaskCreate TaskList TaskUpdate TodoRead TodoWrite
```
### Agents
+1 -6
View File
@@ -2,12 +2,7 @@
name: 0-preflight
description: "Performs preflight validation, config merging, TU enumeration, and work directory setup for zeroize-audit. Produces merged-config.yaml, preflight.json, and orchestrator-state.json."
model: inherit
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash
tools: Read, Grep, Glob, Write, Bash
---
# 0-preflight
+1 -10
View File
@@ -2,16 +2,7 @@
name: 1-mcp-resolver
description: "Resolves symbol definitions, types, and cross-file references using Serena MCP for zeroize-audit. Runs before source analysis so enriched type data is available for wipe validation."
model: inherit
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash
- mcp__serena__activate_project
- mcp__serena__find_symbol
- mcp__serena__find_referencing_symbols
- mcp__serena__get_symbols_overview
tools: Read, Grep, Glob, Write, Bash, mcp__serena__activate_project, mcp__serena__find_symbol, mcp__serena__find_referencing_symbols, mcp__serena__get_symbols_overview
---
# 1-mcp-resolver
@@ -2,12 +2,7 @@
name: 2-source-analyzer
description: "Identifies sensitive objects, detects wipe calls, validates correctness, and performs data-flow/heap analysis for zeroize-audit. Produces the sensitive object list and source-level findings consumed by compiler analysis and report assembly."
model: inherit
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash
tools: Read, Grep, Glob, Write, Bash
---
# 2-source-analyzer
@@ -2,12 +2,7 @@
name: 2b-rust-source-analyzer
description: "Performs source-level zeroization analysis for Rust crates in zeroize-audit. Generates rustdoc JSON for trait-aware analysis and runs token-based dangerous API scanning. Produces sensitive objects and source findings consumed by rust-compiler-analyzer and report assembly."
model: inherit
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash
tools: Read, Grep, Glob, Write, Bash
---
# 2b-rust-source-analyzer
@@ -2,12 +2,7 @@
name: 3-tu-compiler-analyzer
description: "Performs per-TU compiler-level analysis (IR diff, assembly, semantic IR, CFG) for zeroize-audit. One instance runs per translation unit, enabling parallel execution across TUs."
model: inherit
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash
tools: Read, Grep, Glob, Write, Bash
---
# 3-tu-compiler-analyzer
@@ -2,12 +2,7 @@
name: 3b-rust-compiler-analyzer
description: "Performs crate-level MIR and LLVM IR analysis for Rust in zeroize-audit. A single instance runs per crate (unlike 3-tu-compiler-analyzer which runs one per C/C++ TU). Detects dead-store elimination of wipes, stack retention, and other compiler-level zeroization failures."
model: inherit
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash
tools: Read, Grep, Glob, Write, Bash
---
# 3b-rust-compiler-analyzer
@@ -2,12 +2,7 @@
name: 4-report-assembler
description: "Collects all findings from source and compiler analysis, applies supersessions and confidence gates, normalizes IDs, and produces a comprehensive markdown report with structured JSON for downstream tools. Supports dual-mode invocation: interim (findings.json only) and final (merge PoC results, produce final-report.md)."
model: inherit
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash
tools: Read, Grep, Glob, Write, Bash
---
# 4-report-assembler
@@ -2,12 +2,7 @@
name: 5-poc-generator
description: "Crafts bespoke proof-of-concept programs demonstrating that zeroize-audit findings are exploitable. Reads source code and finding details to generate tailored PoCs — each PoC is individually written, not templated. Each PoC exits 0 if the secret persists or 1 if wiped. Mandatory for every finding."
model: inherit
allowed-tools:
- Read
- Write
- Bash
- Grep
- Glob
tools: Read, Write, Bash, Grep, Glob
---
# 5-poc-generator
@@ -2,11 +2,7 @@
name: 5b-poc-validator
description: "Compiles and runs all PoCs for zeroize-audit findings. Produces poc_validation_results.json consumed by the verification agent and the orchestrator."
model: inherit
allowed-tools:
- Read
- Write
- Bash
- Grep
tools: Read, Write, Bash, Grep
---
# 5b-poc-validator
@@ -2,11 +2,7 @@
name: 5c-poc-verifier
description: "Verifies that each zeroize-audit PoC actually proves the vulnerability it claims to demonstrate. Reads PoC source code, finding details, and original source to check alignment between the PoC and the finding. Produces poc_verification.json consumed by the orchestrator."
model: inherit
allowed-tools:
- Read
- Write
- Grep
- Glob
tools: Read, Write, Grep, Glob
---
# 5c-poc-verifier
@@ -2,12 +2,7 @@
name: 6-test-generator
description: "Generates runtime validation test harnesses (C tests, MSAN, Valgrind targets) for confirmed zeroize-audit findings. Produces a Makefile for automated test execution."
model: inherit
allowed-tools:
- Read
- Write
- Bash
- Grep
- Glob
tools: Read, Write, Bash, Grep, Glob
---
# 6-test-generator
@@ -1,18 +1,7 @@
---
name: zeroize-audit
description: "Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C/C++/Rust code handling secrets, keys, passwords, or other sensitive data."
allowed-tools:
- Read
- Grep
- Glob
- Bash
- Write
- Task
- AskUserQuestion
- mcp__serena__activate_project
- mcp__serena__find_symbol
- mcp__serena__find_referencing_symbols
- mcp__serena__get_symbols_overview
allowed-tools: Read Grep Glob Bash Write Task AskUserQuestion mcp__serena__activate_project mcp__serena__find_symbol mcp__serena__find_referencing_symbols mcp__serena__get_symbols_overview
---
# zeroize-audit — Claude Skill