DetectorOracle is an agent skill that turns fixed OSS issues into reusable bug-detection patterns, then reviews local code with concrete file/line evidence.
DetectorOracle is not a generic linter and not a generic AI reviewer. It is a local-first bug-pattern review toolchain built around scan → mine → review.
This repository was renamed from IssueOracle to DetectorOracle. Public documentation, install commands, the skill name, generated bundle, and public Python entrypoint now use DetectorOracle. The legacy skills/detectoracle/scripts/issueoracle.py entrypoint remains for compatibility while the migration settles.
Global install:
npx skills add bzcsk2/detectoracle-skill -gProject-scoped install:
npx skills add bzcsk2/detectoracle-skillUpdate:
npx skills update detectoraclePlanned. Until DetectorOracle is accepted into a marketplace, use npx skills add.
git clone https://github.com/bzcsk2/detectoracle-skill.git
mkdir -p ~/.claude/skills
ln -s "$(pwd)/detectoracle-skill/skills/detectoracle" ~/.claude/skills/detectoraclegit clone https://github.com/bzcsk2/detectoracle-skill.git
mkdir -p ~/.codex/skills
ln -s "$(pwd)/detectoracle-skill/skills/detectoracle" ~/.codex/skills/detectoracleuv sync --all-groups
uv run python skills/detectoracle/scripts/build_skill.pyGenerated artifact:
dist/detectoracle.skill
# Scan a project → get profile + similar OSS recommendations
/detectoracle scan .
# Review current repo with built-in seed patterns
/detectoracle review .
# Mine bug patterns from GitHub repos (comma-separated)
/detectoracle mine fastapi/fastapi,encode/starlette
# Review with the generated experience JSON
/detectoracle review . --experience ~/.detectoracle/bugplay/experience.json
# Validate pattern packs
/detectoracle validate packsgit clone https://github.com/bzcsk2/detectoracle-skill
cd detectoracle-skill
uv sync --all-groups
uv run python skills/detectoracle/scripts/detectoracle.py review skills/detectoracle/evals/fixtures/py-fastapi-cors-wildcard/bad --emit markdownExpected output includes a finding with:
- file/line evidence
- matched pattern id
- confidence score
- local trigger condition
- suggested fix
- false-positive boundary
scan ./my-project → project profile + recommended repos
mine owner1/repo1,owner2/repo2,... → ~/.detectoracle/bugplay/experience.json + bug-experience.md
review ./my-project --experience ... → findings driven by seed patterns + mined experience
/detectoracle scan . --emit markdown
/detectoracle scan src/ --emit json --max-repos 3Output includes language/framework detection, risk surface analysis, project type classification (web_api / cli / library / frontend), and similar OSS projects ranked by stars.
# Full review
/detectoracle review .
# Diff review (changed vs base)
/detectoracle review . --changed --base main
# JSON output
/detectoracle review src/ --emit json
# Experience-driven review. Prefer JSON as the machine-readable contract.
/detectoracle review . --experience ~/.detectoracle/bugplay/experience.jsonA finding is only reported when DetectorOracle has a matched bug pattern, concrete local file/line evidence, a trigger condition, a confidence score, and a false-positive boundary.
# Single repo
/detectoracle mine fastapi/fastapi
# Batch mine
/detectoracle mine fastapi/fastapi,encode/starlette,sqlalchemy/sqlalchemy --max-issues 30Mined experiences are saved to ~/.detectoracle/bugplay/experience.json for the review engine and ~/.detectoracle/bugplay/bug-experience.md as a narrative document organized by bug type.
Resume an interrupted mining session:
/detectoracle mine fastapi/fastapi,encode/starlette --resume --max-issues 30# List all bug experiences (candidate + approved + rejected)
/detectoracle experience list
# Show details of a specific experience
/detectoracle experience show exp-missing-finally-1
# Approve a candidate experience for use in review
/detectoracle experience approve exp-missing-finally-1
# Reject a false-positive experience
/detectoracle experience reject exp-missing-finally-1
# Export only approved experiences for shared use
/detectoracle experience export-approved/detectoracle validate packs
/detectoracle validate packs --emit json/detectoracle diagnose/detectoracle doctoruv sync --all-groups
uv run ruff format --check .
uv run ruff check .
uv run pytest tests/ -q
uv run python skills/detectoracle/scripts/detectoracle.py diagnose
uv run python skills/detectoracle/evals/run_eval.py
uv run python skills/detectoracle/scripts/detectoracle.py validate skills/detectoracle/packs
uv run python skills/detectoracle/scripts/build_skill.py- Scan: Profile local project, classify project type, infer GitHub search topics, and recommend similar OSS projects.
- Mine: Batch-search closed bug issues on GitHub, filter for real bugs, link to fixing PRs, extract candidate bug patterns, and aggregate into a bug-experience report.
- Review: Load seed patterns plus optional experience JSON, index local code, match signals, and generate findings with evidence.
- Local code stays local by default.
- GitHub issue and PR text is treated as untrusted input.
- DetectorOracle does not auto-fix code, create commits, or open PRs.
- Pattern packs store structured evidence links and summaries, not bulk source material.
DETECTORACLE_ALLOW_REMOTE_LLM=1is required before any remote LLM usage is permitted.
- Python 3.12+
GITHUB_TOKENoptional, for higher GitHub API rate limits
MIT