AI-powered bug bounty hunter using Claude Agent SDK with 6 specialist agents for reconnaissance, vulnerability testing, source code analysis, and report generation
19 tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. All tools have names and descriptions (10-100+ chars), and input schemas are visible with type definitions. However, 14 of 19 tools lack parameter descriptions, only domain/url/host/targets are documented. No output schemas documented. Error handling is generic (wrapped in safe_handler with truncation). Tool naming follows verb_noun pattern (enumerate, probe, crawl, check, run, search, validate, expand, store, list, generate) but lacks clarity on when to use similar tools (e.g., http_request vs http_request_raw). No enum constraints on severity/category/method parameters. No pagination support documented. Composition is reasonable (6 logical tool groups), but tools like store_finding + list_findings + generate_report lack chaining IDs in documented output.
Make an HTTP request to a target URL with custom headers and parameters
Make a raw HTTP request with full control over the request format
Crawl a URL to discover endpoints, forms, and JavaScript files
Perform DNS lookups to check for CNAME records and subdomain takeover opportunities
Enumerate subdomains for a given domain via passive sources
Probe HTTP endpoints to determine if they are live and responsive
Generate a final submission-ready markdown report from all stored findings
14 of 19 tools have undocumented parameters. Only domain/url/host/targets/content/code/title/description/severity/category/target/evidence/program_name are described; method/headers/body/port/request/platform/program/package_file/language lack descriptions. LLMs cannot infer parameter meaning from names alone.
No output schemas documented for any tool. Agents cannot plan downstream calls or extract chaining IDs (e.g., finding_id from store_finding, or scope structure from load_scope_from_platform). Violates pattern:response-shaper.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
List all findings that have been stored in the current report
Store a vulnerability finding in the report database
Check HTTP security headers on a target URL
Check SSL/TLS configuration and certificate validity on a target
Run Nuclei vulnerability scanner on targets to detect known CVEs and misconfigurations
Expand wildcard domains to discover actual subdomains in scope
Get the current program scope that has been loaded
Load bug bounty program scope from HackerOne or Bugcrowd platform
Validate if a URL or domain is within the program scope
Analyze source code for dangerous patterns and security issues
Check for vulnerable dependencies in package files
Search for exposed secrets and API keys in source code or JavaScript files
Enum constraints missing for severity (critical|high|medium|low|informational), category (xss|sql_injection|idor|...), method (GET|POST|PUT|DELETE|...), and platform (hackerone|bugcrowd). Free-form strings invite hallucinated values.
No pagination support documented for list_findings or any discovery tools. Large result sets will blow context window. Missing limit/offset/page_size parameters and total_count/next_cursor in responses.
Error handling is generic (safe_handler wraps exceptions and truncates responses). No recovery guidance, error classification (retryable vs user-fixable vs fatal), or actionable error messages. LLM receives 'Tool encountered an error' with no next steps.