codeql
Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis.
Skill by idchain-world
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/idchain-world-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: not checked yet.
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
- Instructions
- 260 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- allowed-tools: must be a space-separated string
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 idchain-world/id-agents, MIT.
More from idchain-world/id-agents
- 0.639score
task-discipline
idchain-world
Required lifecycle for non-trivial work.
SkillAFreshness: A★ 18Claude Code +9 - 0.598score
idagents-team-builder
idchain-world
Build an id-agents team correctly from scratch.
SkillBFreshness: B★ 18Claude Code +9 - 0.589score
idagents-admin-control
idchain-world
Programmatically manage an ID Agents team — add/remove agents, export/import team configs, rebuild and restart the manager, dispatch work to agents and poll…
SkillBFreshness: B★ 18Claude Code +9 - 0.552score
inter-agent
idchain-world
Communicate with other agents in your team — send messages, delegate tasks, list agents, check news.
SkillCFreshness: C★ 18Claude Code +9 - 0.552score
sound-symbolism
idchain-world
Analyze and choose names based on the perceptual qualities that letters and sounds carry.
SkillCFreshness: C★ 18Claude Code +9 - 0.542score
catalog
idchain-world
Update your REST-AP catalog to describe your role, expertise, and status to other agents and the manager.
SkillCFreshness: C★ 18Claude Code +9 - 0.541score
identity
idchain-world
Your agent identity — name and team.
SkillCFreshness: C★ 18Claude Code +9 - 0.492score
x-ray
idchain-world
Generates an x-ray.md pre-audit report covering overview, enhanced threat model (protocol-type profiling, git-weighted attack surfaces, temporal risk…
SkillDFreshness: D★ 18Claude Code +9 - 0.492score
k8s-troubleshooter
idchain-world
Systematic Kubernetes troubleshooting and incident response.
SkillDFreshness: D★ 18Claude Code +9 - 0.492score
solidity-auditor
idchain-world
Security audit of Solidity code while you develop.
SkillDFreshness: D★ 18Claude Code +9 - 0.488score
ci-cd
idchain-world
CI/CD pipeline design, optimization, DevSecOps security scanning, and troubleshooting.
SkillDFreshness: D★ 18Claude Code +9 - 0.488score
iac-terraform
idchain-world
Infrastructure as Code with Terraform and Terragrunt.
SkillDFreshness: D★ 18Claude Code +9
Signals
- Stars
- 18
- Forks
- 4
- Open issues
- 0
- Last commit (this folder)
- Apr 25, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/idchain-world/id-agents
- 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 idchain-world
- 0.639score
task-discipline
idchain-world
Required lifecycle for non-trivial work.
SkillAFreshness: A★ 18Claude Code +9 - 0.598score
idagents-team-builder
idchain-world
Build an id-agents team correctly from scratch.
SkillBFreshness: B★ 18Claude Code +9 - 0.589score
idagents-admin-control
idchain-world
Programmatically manage an ID Agents team — add/remove agents, export/import team configs, rebuild and restart the manager, dispatch work to agents and poll…
SkillBFreshness: B★ 18Claude Code +9 - 0.552score
inter-agent
idchain-world
Communicate with other agents in your team — send messages, delegate tasks, list agents, check news.
SkillCFreshness: C★ 18Claude Code +9 - 0.552score
sound-symbolism
idchain-world
Analyze and choose names based on the perceptual qualities that letters and sounds carry.
SkillCFreshness: C★ 18Claude Code +9 - 0.542score
catalog
idchain-world
Update your REST-AP catalog to describe your role, expertise, and status to other agents and the manager.
SkillCFreshness: C★ 18Claude Code +9
Cite this page
codeql skill. Agent Mart. https://agentmart.dev/skills/idchain-world-codeql (last updated 2026-10-24)