gitnexus-taint-analysis — Claude Code skill: GitNexus taint analysis
A skill that teaches the agent GitNexus's CFG/taint/PDG internals: reading findings, adding sources and sinks, editing interprocedural code.
npx skills add abhigyanpatwari/GitNexus --skill gitnexus-taint-analysis -a claude-codeWhat gitnexus-taint-analysis does
This skill hands the agent working knowledge of GitNexus's opt-in --pdg subsystem: control-flow graphs, reaching definitions, and taint tracked both inside a function and across calls. Reach for it when a finding from the explain tool needs explaining, when a new source, sink or sanitizer goes into the model, or when a false positive in --pdg output has to be tracked down.
The design is layered. L1 builds a CFG per function, L2 solves reaching definitions, L3 walks source-to-sink paths within a function while honouring sanitizers, and L4 composes per-function summaries over the call graph. Parsing fills a side channel with plain data; the solvers themselves are pure and run on the main thread. Every layer sits behind --pdg, so a plain analyze run stays byte-identical.
Know the gaps before you rely on it. Taint does not travel into closures or callbacks — without per-library models that flow is lost. Field and property flows, guard-style sanitizers and promise-based async threading are also deferred. Context-insensitivity is a deliberate choice here: one summary per function, so merged call sites can produce false positives.
What it helps with
- explain why
explainmissed a particular data flow - add a new source, sink or sanitizer to the model
- debug a false positive in
--pdgoutput - extend or review the CFG and reaching-definitions code
- tell intra-procedural findings apart from interprocedural ones
Example prompts for the agent
- How does the taint engine work here, and why wasn't this flow reported?
- Add a new sink for
db.queryto the taint model. - Review the interprocedural taint code under
gitnexus/src/core/ingestion/taint/**.
How to install gitnexus-taint-analysis
1Skills CLI (Vercel)
npx skills add abhigyanpatwari/GitNexus --skill gitnexus-taint-analysis -a claude-code2Manually: put the files in place
~/.claude/skills/gitnexus-taint-analysis/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/gitnexus-taint-analysis/
1Skills CLI (Vercel)
npx skills add abhigyanpatwari/GitNexus --skill gitnexus-taint-analysis -a codex2Manually: put the files in place
.agents/skills/gitnexus-taint-analysis/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add abhigyanpatwari/GitNexus --skill gitnexus-taint-analysis -a cursor2Manually: put the files in place
.cursor/skills/gitnexus-taint-analysis/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install abhigyanpatwari/GitNexus gitnexus-taint-analysis2Manually: put the files in place
.github/skills/gitnexus-taint-analysis/SKILL.md1Skills CLI (Vercel)
npx skills add abhigyanpatwari/GitNexus --skill gitnexus-taint-analysis -a gemini-cli2Platform CLI
gemini skills install https://github.com/abhigyanpatwari/GitNexus --path gitnexus-claude-plugin/skills/gitnexus-taint-analysisManually: put the files in place
.devin/skills/gitnexus-taint-analysis/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add abhigyanpatwari/GitNexus --skill gitnexus-taint-analysis -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about gitnexus-taint-analysis
How do I install gitnexus-taint-analysis in Claude Code?
Run npx skills add abhigyanpatwari/GitNexus --skill gitnexus-taint-analysis -a claude-code. The skill lands at ~/.claude/skills/gitnexus-taint-analysis/SKILL.md.
What does gitnexus-taint-analysis do?
It gives the agent knowledge of GitNexus's --pdg subsystem: CFG, reaching definitions, and taint within and across functions. Useful for explaining findings and editing the analysis code.
Which data flows does the skill not track?
Closures and callbacks: without per-library models, taint does not reach into a callback. Field flows and promise-based async threading are deferred as well.