Raze has 10 well-named tools with explicit schemas and descriptions. All tools follow verb_noun naming (raze_inspect, raze_attack, raze_analyze). Descriptions are present and contextual (avg ~120 chars), explaining WHAT and WHEN. However, parameter descriptions are minimal, most lack detail on format, constraints, or dependencies. The 'attackPlan' object parameter appears in 4 tools but is never documented (no schema visibility for its internal structure). Output schemas are not documented in the tool definitions. Error handling is absent, no recovery guidance, categorization, or actionable messages. Security: tools accept projectRoot as string with no path validation, risking directory traversal. No permission gates on destructive tools (raze_attack, raze_generate_proof_scaffold, raze_write_report). Overall: solid naming and basic structure, but parameter rigor and error handling lag production standards.
Deep-analyze a single contract with attack agents and return heuristic findings per vulnerability class. Use this after you know which contract to target.
Execute a single AI-authored attack plan over a contract.
Generate broad deterministic per-function Foundry fuzz tests for normal contract development work.
Generate deterministic Foundry proof scaffolds from a validated or AI-authored attack plan.
Scan all contracts in a Foundry project and return the full inventory, dependency graph, and cross-contract risk signals. Use this first when you don't know which contract to target.
Run an AI-authored multi-plan attack suite across the target contract.
Suggest security-focused hardening and follow-up tests after analyzing a contract.
attackPlan parameter (used in 4 tools) has no documented schema or internal structure. LLMs cannot infer valid shape, leading to malformed payloads.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what does raze_inspect_project return? What fields enable chaining to raze_analyze_contract?).
Parameter descriptions lack format/constraint details. 'projectRoot' has no validation rules (absolute vs relative? must exist?). 'contractSelector' is vague (name or path?). 'goal' in raze_generate_developer_fuzz_tests has no guidance on valid inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Validate an AI-authored attack or proof plan against real project symbols and normalize it into a scaffold-ready shape.
Run proof and regression tests to verify a developer's fix is effective. Returns per-contract verdict: fix-verified, fix-incomplete, or error.
Persist a structured Raze report from validated plans, generated proof scaffolds, and optional forge results.
No error handling or recovery guidance. Tools that execute forge tests or write files can fail silently. No distinction between retryable errors (network timeout) and user-fixable errors (invalid contract selector).
Destructive tools (raze_attack, raze_write_report) lack permission gates or confirmation steps. No dry-run mode. An agent could execute arbitrary attack plans or overwrite reports without safeguards.