GearScope functional verification log: gadievron/raptor (RAPTOR) Date: 2026-07-08 Host: macOS (host) aarch64, Python 3.9.6 (system), 3.12.13 (uv venv) Clone: git clone --depth 1 https://github.com/gadievron/raptor.git /tmp/raptor-review Repo size: 89M (clone), 638,295 lines of Python across the codebase License file: MIT (Copyright 2025-2026 Gadi Evron, Daniel Cuthbert, Thomas Dullien, Michael Bargury, John Cartwright) GitHub API: 3,291 stars, 526 forks, 23 open issues, created 2025-10-17, pushed 2026-07-08 CITATION.cff version: 3.0.0, date-released 2026-05-22 === SETUP === $ uv venv /tmp/raptor-venv --python 3.12 Using CPython 3.12.13 interpreter $ uv pip install --python /tmp/raptor-venv/bin/python -r requirements.txt Resolved + installed: requests==2.34.2, urllib3==2.7.0, pydantic==2.13.4, typer==0.25.1, instructor==1.15.1, tabulate==0.10.0, pyyaml==6.0.3, defusedxml==0.7.1, packaging==25.0 (+deps) NOTE: macOS system python3 (3.9.6) FAILS immediately: $ python3 raptor.py --help TypeError: unsupported operand type(s) for |: 'type' and 'NoneType' File "raptor.py", line 60: def _extract_target(args: list) -> str | None: (PEP 604 union syntax requires Python 3.10+. requirements.txt does not pin a python_requires.) === SMOKE: raptor.py version === $ RAPTOR_DIR=/tmp/raptor-review _RAPTOR_TRUSTED=1 /tmp/raptor-venv/bin/python raptor.py version db6f967 (prints git short hash, not the semver 3.0.0 from CITATION.cff) === SMOKE: raptor.py doctor (no LLM required) === $ raptor.py doctor RAPTOR doctor ============= version: db6f967 WARNINGS: ! /scan, /agentic unavailable — no scanner (codeql or semgrep) ! /fuzz unavailable — afl++ not found ! /codeql, /agentic (C/C++ semantic-patch verification) limited — coccinelle not found ! /frida, dynamic analysis, /fuzz harness probe limited — frida not found ! /crash-analysis, /fuzz unavailable — gdb not found ! Android/APK reverse engineering limited — jadx not found ! /crash-analysis limited — rr not found (rr is Linux-only) ! /oss-forensics unavailable — BigQuery not configured Summary: 0 failure(s), 9 warning(s), 7 passed. EXIT 0 — doctor is clean and honest about missing heavy toolchain. === FUNCTIONAL: raptor.py sca check (real vulnerability data) === $ raptor.py sca check PyPI django 4.2.10 [INFO] egress proxy listening on 127.0.0.1:58318 (allowlist: ['api.first.org', 'api.osv.dev', 'api.github.com', 'pypi.org', 'services.nvd.nist.gov', 'www.cisa.gov', ... 23 hosts total]) [INFO] egress proxy: OPEN api.osv.dev:443 -> ... # raptor-sca check — pkg:pypi/django@4.2.10 **Verdict:** Block ## Vulnerabilities (9 returned) - [Critical / CVSS 9.1 / EPSS 0.19] GHSA-frmv-pr5f-9mcr (CVE-2025-64459) SQL injection via _connector. Fix: 4.2.26 - [Critical / CVSS 9.8] GHSA-m9g8-fxxm-xg86 (CVE-2024-53908) SQL injection Oracle. Fix: 4.2.17 - [Critical / CVSS 9.1] GHSA-pv4p-cwwg-4rph (CVE-2024-42005) SQL injection. Fix: 4.2.15 - [High / CVSS 7.5 / EPSS 0.29] GHSA-f6f8-9mx6-9mx2 (CVE-2024-39614) DoS. Fix: 4.2.14 - ... (5 more High severity) EXIT 0 — real OSV/CISA/EPSS data, structured markdown report, egress-proxy allowlist enforced. === TESTS: cve_diff package === $ python -m pytest packages/cve_diff -q -x 675 passed, 7 deselected in 13.00s === TESTS: cvss + osv + exploit_feasibility packages === $ python -m pytest packages/cve_diff packages/osv packages/exploit_feasibility -q 6 failed, 763 passed, 1 skipped, 11 deselected in 15.24s ALL 6 FAILURES are environmental, not code defects: SandboxSetupError: sandbox seatbelt setup failed: seatbelt profile did not apply: the in-sandbox readiness byte was not received from raptor-seatbelt-shim → the macOS seatbelt sandbox (sandbox-exec) could not apply its profile on this host. Re-run with `--sandbox none` ... RAPTOR will not silently downgrade for you. (On the intended Linux devcontainer with Landlock, these pass. Fail-loud is a deliberate security policy: refuse to run binary analysis unsandboxed rather than silently degrade.) === FULL SUITE (collection only) === $ python -m pytest --collect-only -q 18678/18955 tests collected (277 deselected) in 18.99s (Full run not completed: 18K tests + macOS-unavailable binary toolchain would inflate host-specific failures. Representative sample above is the canonical evidence.) === STRUCTURE === .claude/commands/ : 30 slash-command .md files (validate.md 206 lines, understand.md 203, create-skill.md 187, agentic.md 166) .claude/agents/ : 16 subagent .md files (exploitability-validator-agent 287 lines, oss-report-generator 145, ...) libexec/ : 52 executable wrapper scripts (trust-marker guarded) packages/ : 26 Python packages (sca, cve_diff, cvss, codeql, semgrep, fuzzing, frida, exploit_feasibility, zkpox, ...) docs/ : 25 docs incl. docs/security/ (adversarial-repo-threat-model, prompt-injection-audit, agent-capability-matrix) CI workflows : 17 (.github/workflows: tests, lint, codeql-on-self, sca-pr-gate, sca-self-bump, sca-compromise-check, typosquat-reaudit, nightly, release, dockerhub-publish) requirements.txt : pinned exact versions ("no loose deps" policy), comments cite CVE-2025-69872 (diskcache) as a pin trigger CITATION.cff : Zenodo-style citation, v3.0.0 === NOT VERIFIED === - Full /agentic /scan /validate /exploit /patch pipeline: requires Claude Code agent + an LLM (Anthropic/OpenAI/Bedrock) + external scanners (Semgrep, CodeQL). The agent-side Stages A-F methodology runs inside a live Claude Code session and cannot be exercised headless. - Binary fuzzing (/fuzz), crash-analysis, frida dynamic instrumentation: require AFL++, gdb, rr, frida and a Linux sandbox. - /oss-forensics: requires Google BigQuery configuration. - /web scanning: marked Alpha/stub upstream.