
gitnexus-pdg-query
Use when querying or extending GitNexus's PDG control/data-dependence surface (the pdgquery MCP tool, CDG/REACHINGDEF edges), or reasoning about "what controls X" / "where does Y flow" / guard clauses. Examples: "what guards this statement?", "trace this variable within the function", "why is the pdgquery result empty?", "add a CDG query".
- Installs
- 325
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/abhigyanpatwari/gitnexus --skill gitnexus-pdg-query- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads gitnexus-pdg-query automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
PDG query surface with GitNexus
Expert knowledge for the pdg_query MCP tool and the control/data-dependence
edges it reads — the opt-in --pdg program-dependence layers. Read this before
touching gitnexus/src/mcp/local/local-backend.ts (_pdgQueryImpl) or the
pdg_query tool def, or when explaining a pdg_query result.
When to Use
- "Under what condition does this statement run?" (guarding predicates).
- "Where does this variable flow inside the function?" (def→use).
- Guard-clause discovery (early-return guards — subsumes the #559 heuristic).
- Extending or reviewing
pdg_query/ the CDG / REACHING_DEF read path. - Debugging an empty or surprising
pdg_queryresult.
The layered substrate (build order)
pdg_query runs on the same graph taint runs on. Each layer is opt-in
behind --pdg; a default analyze run records none of them (byte-identical).
L1 CFG per-function basic blocks + control-flow edges (M1 #2081)
L2 REACHING_DEF GEN/KILL def→use data dependence (pure solver) (M2 #2082)
L5 CDG Ferrante control dependence (post-dominators) (M5 #2085)
All three are BasicBlock → BasicBlock edges in the single CodeRelation table
(keyed by the type property). There is no Function → BasicBlock edge.
The two modes
pdg_query({ mode: 'controls', target })— CDG. For the anchored function, each edge: controlling predicate block → dependent block + branch sense inlabel('T'= predicate's true/taken arm,'F'= false/fall-through). An edge into an early-return/throw block is flaggedguard: true.pdg_query({ mode: 'flows', target, variable? })— REACHING_DEF def→use edges;variablefilters to one binding.
target is required — a file path or a symbol/function name (resolved like
context()). There is no anchorless mode (see below).
The corrected guard-clause Cypher
The RFC #567 §2 form ([:CDG {label:'F'}]) does not run as written. Edges
are values of the single CodeRelation table's type property, and the branch
sense is in reason, NOT a label column:
MATCH (pred:BasicBlock)-[r:CodeRelation {type: 'CDG'}]->(dep:BasicBlock)
WHERE dep.text STARTS WITH 'return' OR dep.text STARTS WITH 'throw'
RETURN pred.startLine, r.reason AS branch, dep.startLine, dep.text
r.reason is the sense the predicate took to reach the early exit. For
if (!ok) return; the return rides the predicate's true arm ('T') and the
protected body rides the false arm ('F') — polarity depends on the guard,
so don't hard-code one sense.
Gotchas (the load-bearing ones)
- Always anchored + LIMIT-bounded. LadybugDB has no rel-property index, so
an unanchored
[:CDG*]/[:REACHING_DEF*]path scan is unbounded.pdg_queryrequirestargetand bounds the page; rawcyphercallers must anchor on a file id-prefix or symbol span themselves. - BasicBlock↔symbol join is reconstructed. No
Function→BasicBlockedge: the block is matched by its id-prefix (BasicBlock:<file>:<fnStartLine>:…) plusstartLinewithin the symbol's span. BasicBlockstartLineis 1-based while the symbol node'sstartLine/endLineare 0-based, so both bounds are shifted+1([symStart+1, symEnd+1]): the upper+1keeps a guard/def/use on the function's final line, the lower+1excludes an adjacent function's block on the line directly above. Same-line / nested functions anchor coarsely. - No PDG layer ⇒ a note, not an error. If the repo wasn't indexed with
--pdgthe tool returns{ results: [], note: "no PDG layer …" }(cheap meta probe onRepoMeta.pdg.maxCdgEdgesPerFunction/maxReachingDefEdgesPerFunction). - CDG labels are binary in M5/M6. Every
switch-case arm is'T'; per-case conditions are not yet distinguished. - Intra-procedural only. Cross-function flow is taint's domain (
explain).
Mirror, don't fork
_pdgQueryImpl is the front half of _explainImpl (WAL wrapper, meta no-layer
probe, limit validation, resolveSymbolCandidates anchoring) with CDG/
REACHING_DEF instead of TAINTED — and none of taint's path-codec / interproc
TAINT_PATH machinery. Reuse those shared helpers; do not re-implement them.
FAQ
What does the gitnexus-pdg-query skill do?
Use when querying or extending GitNexus's PDG control/data-dependence surface (the pdgquery MCP tool, CDG/REACHINGDEF edges), or reasoning about "what controls X" / "where does Y flow" / guard clauses. Examples: "what guards this statement?", "trace this variable within the function", "why is the pdgquery result empty?", "add a CDG query".
How do I install gitnexus-pdg-query?
Run npx skills add https://github.com/abhigyanpatwari/gitnexus --skill gitnexus-pdg-query in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/gitnexus-pdg-query/ (personal) or .claude/skills/gitnexus-pdg-query/ (project).
Which AI agents can use gitnexus-pdg-query?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is gitnexus-pdg-query safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains gitnexus-pdg-query?
It is published by abhigyanpatwari in abhigyanpatwari/gitnexus. It has 325 recorded installs.
More from abhigyanpatwari/gitnexus
gitnexus-impact-analysis
abhigyanpatwari/gitnexus
Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples: "Is it safe to change X?", "What depends on this?", "What will break?"
gitnexus-exploring
abhigyanpatwari/gitnexus
Use when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of the codebase. Examples: "How does X work?", "What calls this function?", "Show me the auth flow"
gitnexus-refactoring
abhigyanpatwari/gitnexus
Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: "Rename this function", "Extract this into a module", "Refactor this class", "Move this to a separate file"
gitnexus-debugging
abhigyanpatwari/gitnexus
Use when the user is debugging a bug, tracing an error, or asking why something fails. Examples: "Why is X failing?", "Where does this error come from?", "Trace this bug"
gitnexus-cli
abhigyanpatwari/gitnexus
Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki, or list indexed repos. Examples: "Index this repo", "Reanalyze the codebase", "Generate a wiki"
gitnexus-guide
abhigyanpatwari/gitnexus
Use when the user asks about GitNexus itself — available tools, how to query the knowledge graph, MCP resources, graph schema, or workflow reference. Examples: "What GitNexus tools are available?", "How do I use GitNexus?"
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available