forensify
Cross-agent self-inspection of your AI-agent stack. Audits skills, MCP servers, hooks, plugins, commands, credentials, and memory…
Security forensics for git repos, AI skills, and MCP servers. Audits dependencies, detects prompt injection, credential theft, runtime dynamism, manifest drift, known CVEs, CISA KEV (actively exploited) vulns, and 2026 attack patterns. Not for fixing vulnerabilities or
Claude Code
$ npx -y skills add alexgreensh/repo-forensics --skill repo-forensics --agent claude-code
Codex
$ npx skills add alexgreensh/repo-forensics --skill repo-forensics -a codex -y
Cursor
$ npx skills add alexgreensh/repo-forensics --skill repo-forensics -a cursor -y
Gemini CLI
$ npx skills add alexgreensh/repo-forensics --skill repo-forensics -a gemini-cli -y
GitHub Copilot
$ npx skills add alexgreensh/repo-forensics --skill repo-forensics -a github-copilot -y
OpenCode
$ npx skills add alexgreensh/repo-forensics --skill repo-forensics -a opencode -y
Windsurf
$ npx skills add alexgreensh/repo-forensics --skill repo-forensics -a windsurf -y
name: repo-forensics description: Security forensics for git repos, AI skills, and MCP servers. Audits dependencies, detects prompt injection, credential theft, runtime dynamism, manifest drift, known CVEs, CISA KEV (actively exploited) vulns, and 2026 attack patterns. Not for fixing vulnerabilities or pentesting. metadata: author: Alex Greenshpun allowed-tools: Bash Read Glob Grep user-invocable: true argument-hint: <repo_path> [--skill-scan] [--format text|json|summary|sarif] [--update-iocs] [--update-vulns] [--no-vulns] [--offline] [--watch] [--verify-install]
<!-- repo-forensics v2 | built by Alex Greenshpun | https://linkedin.com/in/alexgreensh -->
Deep security auditing for repositories, AI agent skills, and MCP servers.
JSON rule packs (`data/rulepacks/*.json`), not compiled into source. Each rule carries a stable id, severity, confidence score, explanation, and embedded self-tests. Pack-driven scanners: secrets, SAST, skill threats, MCP security, runtime dynamism, and shared patterns. Algorithmic scanners (entropy, AST, DAST, git forensics, integrity, manifest drift, binary, lifecycle, dependencies, infra, devcontainer, post-incident, dataflow, entrypoint) remain code-driven; they do not receive feed updates.
without a code release. An Ed25519-signed bundle is fetched by the daily `refresh_threat_dbs.py` pipeline. Shipped packs always work offline; the feed only overlays when verified, schema-valid, and strictly newer than the last accepted version. The same signing now covers the IOC feed for symmetric trust.
Four verdict tiers shape output and agent routing: BLOCK (>= 0.92), WARN (>= 0.60), INFO (>= 0.30), SUPPRESSED (< 0.30 or user-suppressed). Severity still drives exit codes (0/1/2/99) unchanged.
`coverage_status`, and `enrichment_status`. `core_verdict` is the deterministic install gate. Coverage and enrichment report what could not be checked and may add warnings or context, but they cannot remove findings, reduce severity, or lower the deterministic exit code.
as benign can be recorded as a rejected-claim fingerprint (rule id + file + content hash) in the local history DB (`scripts/suppressions.py add`). Exact re-matches are suppressed on later scans - non-critical WARN tier only (a critical finding, BLOCK or pre-scan block can never be persisted away), any content edit re-fires the finding, reports list the suppressions that apply to the scanned repo with a one-command revoke, and the auto-scan hook names any suppression it applied.
a private local SQLite database. Storage and deferred retries stay off the verdict path; storage failure does not change scan output or exit behavior.
content (emoji-rich markdown, legitimate postinstall scripts, `.env.example`, OAuth docs, clean SKILL.md) runs in pytest. Any rule change that raises new false positives on the corpus fails the test before it can ship.
adjudication block. Snippets are prefixed with `> SNIPPET: ` (not in code fences), metadata appears before content, the block is capped at 5 findings sorted by confidence descending. Verdict choices: confirm / downgrade / escalate. See "Adjudication Protocol" section for the full protocol. Confirm and refute responses are annotations only. Disagreement, invalid output, containment failure, or unavailable service remains unresolved and never gates the verdict.
Offline security scanner for AI-agent repos, skills, plugins, and MCP servers.
Cross-agent self-inspection of your AI-agent stack. Audits skills, MCP servers, hooks, plugins, commands, credentials, and memory…
A Claude Code skill that performs automated code review on the current working repository.
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…