codeql
Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis.
Skill by CraftOS-dev
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/craftos-dev-codeql
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, data, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/codeql
Tools it pre-approves 13
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
BashReadWriteEditGlobGrepAskUserQuestionTaskCreateTaskListTaskUpdateTaskGetTodoRead
Show 1 more
TodoWrite
What's inside
- Skill name
codeql- Description
- Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis. Triggers on "run codeql", "codeql scan", "codeql analysis", "build codeql database", or "find vulnerabilities with codeql". Supports "run all" (security-and-quality + security-experimental suites) and "important only" (high-precision security findings) scan modes. Also handles creating data extension models and processing CodeQL SARIF output.
- License
- MIT
- Allowed tools
- Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion, TaskCreate, TaskList, TaskUpdate, TaskGet, TodoRead, TodoWrite
- Instructions
- 260 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (16)
- SKILL.md
- build-fixes.md · references/
- diagnostic-query-templates.md · references/
- extension-yaml-format.md · references/
- important-only-suite.md · references/
- language-details.md · references/
- macos-arm64e-workaround.md · references/
- performance-tuning.md · references/
- quality-assessment.md · references/
- ruleset-catalog.md · references/
- run-all-suite.md · references/
- sarif-processing.md · references/
- threat-models.md · references/
- build-database.md · workflows/
- create-data-extensions.md · workflows/
- run-analysis.md · workflows/
SKILL.md (first lines)
# CodeQL Analysis
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/`.
## Essential Principles
1. **Database quality is non-negotiable.** A database that builds is not automatically good. Always run quality assessment (file counts, baseline LoC, extractor errors) and compare against expected source files. A cached build produces zero useful extraction.
2. **Data extensions catch what CodeQL misses.** Even projects using standard frameworks (Django, Spring, Express) have custom wrappers around database calls, request parsing, or shell execution. Skipping the create-data-extensions workflow means missing vulnerabilities in project-specific code paths.
3. **Explicit suite references prevent silent query dropping.** Never pass pack names directly to `codeql database analyze` — each pack's `defaultSuiteFile` applies hidden filters that can produce zero results. Always generate a custom `.qls` suite file.
4. **Zero findings needs investigation, not celebration.** Zero results can indicate poor database quality, missing models, wrong query packs, or silent suite filtering. Investigate before reporting clean.
5. **macOS Apple Silicon requires workarounds for compiled languages.** Exit code 137 is `arm64e`/`arm64` mismatch, not a build failure. Try Homebrew arm64 tools or Rosetta before falling back to `build-mode=none`.
6. **Follow workflows step by step.** Once a workflow is selected, execute it step by step without skipping phases. Each phase gates the next — skipping quality assessment or data extensions leads to incomplete analysis.
## Output Directory
All generated files (database, build logs, diagnostics, extensions, results) are stored in a single output directory.
- **If the user specifies an output directory** in their prompt, use it as `OUTPUT_DIR`.
- **If not specified**, default to `./static_analysis_codeql_1`. If that already exists, increment to `_2`, `_3`, etc.
In both cases, **always create the directory** with `mkdir -p` before writing any files.
```bash
# Resolve output directory
if [ -n "$USER_SPECIFIED_DIR" ]; then
OUTPUT_DIR="$USER_SPECIFIED_DIR"
else
BASE="static_analysis_codeql"
N=1
while [ -e "${BASE}_${N}" ]; do
N=$((N + 1))
done
OUTPUT_DIR="${BASE}_${N}"
fi
mkdir -p "$OUTPUT_DIR"
```
The output directory is resolved **once** at the start before any workflow executes. All workflows receive `$OUTPUT_DIR` and store their artifacts there:
```
$OUTPUT_DIR/
├── rulesets.txt # Selected query packs (logged after Step 3)
├── codeql.db/ # CodeQL database (dir containing codeql-database.yml)
├── build.log # Build log
├── codeql-config.yml # Exclusion config (interpreted languages)
├── diagnostics/ # Diagnostic queries and CSVs
├── extensions/ # Data extension YAMLs
├── raw/ # Unfiltered analysis output
│ ├── results.sarif
│ └── <mode>.qls
└── results/ # Final results (filtered for important-only, copied for run-all)
└── results.sarif
```
### Database Discovery
A CodeQL database is identified by the presence of a `codeql-database.yml` marker file inside its directory. When searching for existing databases, **always collect all matches** — there may be multiple databases from previous runs or for different languages.
**Discovery command:**
```bash
# Find ALL CodeQL databases (top-level and one subdirectory deep)
find . -maxdepth 3 -name "codeql-database.yml" -not -path "*/\.*" 2>/dev/null \
| while read -r yml; do dirname "$yml"; done
```
- **Inside `$OUTPUT_DIR`:** `find "$OUTPUT_DIR" -maxdepth 2 -name "codeql-database.yml"`
- **Project-wide (for auto-detection):** `find . -maxdepth 3 -name "codeql-database.yml"` — covers databases at the project top level (`./db-name/`) and one subdirectory deep (`./subdir/db-name/`). Does not search deeper.
Never assume a database is named `codeql.db` — discover it by its marker file.
**When multiple databases are found:**
For each discovered database, collect metadata to help the user choose:
```bash
# For each database, extract language and creation time
for db in $FOUND_DBS; do
CODEQL_LANG=$(codeql resolve database --format=json -- "$db" 2>/dev/null | jq -r '.languages[0]')
CREATED=$(grep '^creationMetadata:' -A5 "$db/codeql-database.yml" 2>/dev/null | grep 'creationTime' | awk '{print $2}')
echo "$db — language: $CODEQL_LANG, created: $CREATED"
done
```
Then use `AskUserQuestion` to let the user select which database to use, or to build a new one. **Skip `AskUserQuestion` if the user explicitly stated which database to use or to build a new one in their prompt.**
## Quick Start
For the common case ("scan this codebase for vulnerabilities"):
```bash
# 1. Verify CodeQL is installed
if ! command -v codeql >/dev/null 2>&1; then
echo "NOT INSTALLED: codeql binary not found on PATH"
else
codeql --version || echo "ERROR: codeql found but --version failed (check installation)"
fi
# 2. Resolve output directory
BASE="static_analysis_codeql"; N=1
while [ -e "${BASE}_${N}" ]; do N=$((N + 1)); done
OUTPUT_DIR="${BASE}_${N}"; mkdir -p "$OUTPUT_DIR"
```
Then execute the full pipeline: **build database → create data extensions → run analysis** using the workflows below.
## When to Use
- Scanning a codebase for security vulnerabilities with deep data flow analysis
- Building a CodeQL database from source code (with build capability for compiled languages)
- Finding complex vulnerabilities that require interprocedural taint tracking or AST/CFG analysis
- Performing comprehensive security audits with multiple query packsFrom CraftOS-dev/CraftBot, MIT.
More from CraftOS-dev/CraftBot
- 0.809score
fal-upscale
fal-ai
Upscale and enhance image resolution using AI.
SkillAFreshness: A★ 400Claude Code +9 - 0.806score
postgres
planetscale
PostgreSQL best practices, query optimization, connection troubleshooting, and performance improvement.
SkillAFreshness: A★ 400Claude Code +9 - 0.806score
vitess
planetscale
Vitess best practices, query optimization, and connection troubleshooting for PlanetScale Vitess databases.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
google-meet
maton
Google Meet API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
google-play
maton
Google Play Developer API (Android Publisher) integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
gmail
maton
Gmail API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
typeform
maton
Typeform API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
google-sheets
maton
Google Sheets API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
outlook-api
maton
Microsoft Outlook API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
xero
maton
Xero API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.748score
salesforce
maton
Salesforce CRM API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.742score
google-slides
maton
Google Slides API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9
Signals
- Stars
- 400
- Forks
- 49
- Open issues
- 12
- Last commit (this folder)
- May 28, 2026 (5 months ago)
- Last release
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/CraftOS-dev/CraftBot
- Website
- craftbot.live/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from CraftOS-dev
- 0.679score
mysql
CraftOS-dev
Plan and review MySQL/InnoDB schema, indexing, query tuning, transactions, and operations.
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
ontology
CraftOS-dev
Typed knowledge graph for structured agent memory and composable skills.
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
google-sheet
CraftOS-dev
Read, write, append, and manage Google Sheets via the Google Sheets API (Node.js SDK).
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
airweave
CraftOS-dev
Context retrieval layer for AI agents across users' applications.
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
jira
CraftOS-dev
Use when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira…
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
opencode-controller
CraftOS-dev
Control and operate Opencode via slash commands.
SkillAFreshness: A★ 400Claude Code +9
Cite this page
codeql skill. Agent Mart. https://agentmart.dev/skills/craftos-dev-codeql (last updated 2026-10-24)