Install any skill in seconds. Free to start, no credit card required.
Get Started Free →trailofbits/codeql
Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis.
Passed 16 of 20 test cases with the skill, and 5 of 20 without it.
and 15 more in the full report
13 fixed5 passed either way3 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
In what exact subdirectories within `$OUTPUT_DIR` should unfiltered initial SARIF analysis results and final filtered SARIF results be placed?
| Checked | Without skill | With skill |
|---|---|---|
| Saves unfiltered initial findings to raw/results.sarif. | Missed | Passed |
| Saves final findings to results/results.sarif. | Missed | Passed |
The instructions your model reads when the skill loads.
Supported languages: Python, JavaScript/TypeScript, Go, Java/Kotlin, C/C++, C#, Ruby, Swift.
Skill resources: Reference files and templates are located at {baseDir}/references/ and {baseDir}/workflows/.
Database quality is non-negotiable. A database that builds is not automatically good — a cached build extracts nothing while reporting success.
Data extensions catch what CodeQL misses. Django, Spring, and Express projects still wrap database calls, request parsing, and shell execution in project-specific APIs that no shipped model covers.
Explicit suite references prevent silent query dropping. Never pass pack names to codeql database analyze — each pack's defaultSuiteFile applies hidden filters that can produce zero results. Always generate a .qls.
Zero findings needs investigation, not celebration. It can mean poor extraction, missing models, the wrong packs, or suite filtering. Run {baseDir}/scripts/check_db_quality.py after the build, confirm {baseDir}/scripts/verify_query_suite.py exited zero for the suite in use — the generation scripts run it, so invoke it by hand only for a reused or hand-edited suite — and say in the report that both passed.
macOS Apple Silicon requires workarounds for compiled languages. Exit code 137 is an arm64e/arm64 mismatch, not a build failure. Try Homebrew arm64 tools or Rosetta before falling back to build-mode=none.
Follow workflows step by step. Each phase gates the next; skipping quality assessment or data extensions leaves the gap invisible in the results.
Nothing carries across a Bash call: not variables, not arrays, not functions sourced from
build_log.sh. Every block below that uses a value must re-establish it in the same block.
The workflows point back here rather than repeating it; what they do state is the specific
damage at that site, because each one fails differently and silently:
run_logged exit 127, which the build ladder reads as a failed
method and walks down to --build-mode=none, never having invoked CodeQL--threat-model and --model-packs the user
chose is dropped while the final report still lists them as usedset -u aborts the block with unbound variableAll generated files (database, build logs, diagnostics, extensions, results) are stored in a single output directory.
OUTPUT_DIR../static_analysis_codeql_1. If that already exists, increment to _2, _3, etc.test cases passed, vs 5 / 20 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.