Gograph Go Repository Intelligence
ozgurcd/gograph
Gives an agent working in a Go codebase a structural view through a local MCP server: call graphs, blast-radius and impact analysis, and bounded first-call exploration.
Answers call-graph questions that combine several conditions, such as complex functions that reach a target or untested symbols near main, using ripwire's graph-query mode.
$ npx skills add redhat-et/ripwire --skill ripwire-graph-query -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install redhat-et/ripwire ripwire-graph-query --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/redhat-et/ripwire.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ripwire-graph-query .claude/skills/ripwire-graph-query && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ripwire-graph-query" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-graph-query into .claude/skills/ripwire-graph-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-graph-query", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-graph-queryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add redhat-et/ripwire --skill ripwire-graph-query -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install redhat-et/ripwire ripwire-graph-query --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/redhat-et/ripwire.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ripwire-graph-query .agents/skills/ripwire-graph-query && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ripwire-graph-query" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-graph-query into .agents/skills/ripwire-graph-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-graph-query", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add redhat-et/ripwire --skill ripwire-graph-query -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install redhat-et/ripwire ripwire-graph-query --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/redhat-et/ripwire.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ripwire-graph-query .cursor/skills/ripwire-graph-query && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ripwire-graph-query" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-graph-query into .cursor/skills/ripwire-graph-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-graph-query", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/redhat-et/ripwire.git --path skills/ripwire-graph-query--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add redhat-et/ripwire --skill ripwire-graph-query -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install redhat-et/ripwire ripwire-graph-query --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/redhat-et/ripwire.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ripwire-graph-query .gemini/skills/ripwire-graph-query && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ripwire-graph-query" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-graph-query into .gemini/skills/ripwire-graph-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-graph-query", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install redhat-et/ripwire ripwire-graph-queryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add redhat-et/ripwire --skill ripwire-graph-query -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/redhat-et/ripwire.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ripwire-graph-query .github/skills/ripwire-graph-query && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ripwire-graph-query" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-graph-query into .github/skills/ripwire-graph-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-graph-query", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add redhat-et/ripwire --skill ripwire-graph-query -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install redhat-et/ripwire ripwire-graph-query --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/redhat-et/ripwire.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ripwire-graph-query .opencode/skills/ripwire-graph-query && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ripwire-graph-query" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-graph-query into .opencode/skills/ripwire-graph-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-graph-query", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ripwire-graph-queryAnswers call-graph questions that combine several conditions, such as complex functions that reach a target or untested symbols near main, using ripwire's graph-query mode.
Ripwire's fixed verbs (callers, callees, uses, path, impact) handle one-hop questions, and this skill is for the cases that need several conditions at once. The command ripwire with --graph-query evaluates a small functional expression to a ranked set of symbols, capped by --top-k at 200 by default. The operator set is closed, with no user rules and no unbounded recursion: sources are name and all, filters cover kind, cyclomatic complexity, caller count and file path regex, closures follow callers or callees up to a depth, and and, or and not combine them.
The main use is planning a refactor. One query sizes the cluster of high-complexity functions in a target directory, and a second sizes the callers that touching it would affect. A small cluster with a very large caller closure points to a compatibility shim or staged rollout rather than an in-place rewrite. Counts change with every commit, so you read the header on your own run. Repo-wide architecture health belongs to ripwire-layers.
Read from SKILL.md and the folder at commit 255dc19. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ripwire Graph Query loads about 1.1k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 407 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, ReadAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from redhat-et/ripwire at commit 255dc19, republished under its Apache-2.0 licence (© redhat-et). 407 words, ~1,118 tokens.
.claude/skills/ripwire-graph-query/SKILL.md (or your agent's skills folder).One-hop questions have cheaper verbs — ripwire-navigate (
--callers,--callees,--uses,--path,--impact). Reach for--graph-queryonly when you need to COMBINE conditions. Repo-wide architecture health (not one query) → ripwire-layers.
The refactor-planning question is always two conditions at once — "what's messy" AND "what would touching it affect" — which is exactly what a single fixed verb can't phrase:
# the refactor short-list: high-complexity functions in the target area
ripwire <dir> --graph-query='and(cx(all,15),file(all,"src/"))' --legend=compact
# now the blast radius: everyone who transitively calls into that cluster (≤3 hops)
ripwire <dir> --graph-query='callers(and(cx(all,15),file(all,"src/")),3)' --legend=compact(Verified on this repo's shape, not its exact numbers — count= drifts every commit: the first query returns
the high-cx symbols under src/, each <s t= n= p=> (kind/name/path); the second returns the transitive
caller set, typically smaller than the cluster itself because many hits are leaf-ish or call each other. Read
the header's own count=/shown= on your run, don't trust a number pasted here. Narrow file(...) to your
actual target directory before trusting the numbers.)
Run the first to size the cluster, the second to size the risk — a small high-cx cluster with a huge
callers() closure is a refactor that needs a compatibility shim or a staged rollout, not a rewrite in
place; a small cluster with a small closure is safe to just rewrite.
ripwire <dir> --graph-query='EXPR' --legend=compact evaluates a small functional expression to a deterministic,
ranked node set (capped at --top-k, default 200). It is a fixed, closed operator set — not
Datalog: no user rules, no unbounded recursion.
| Kind | Form | Meaning |
|---|---|---|
| source | name("X") | symbols named X (unions same-name defs) |
| source | all | every INDEXED symbol |
| filter | kind(EXPR, K) | keep kind K: fn method cls struct iface var sec |
| filter | cx(EXPR, N) | keep cyclomatic complexity ≥ N |
| filter | fanin(EXPR, N) | keep in-degree (caller count) ≥ N |
| filter | file(EXPR, "RE") | keep symbols whose file path matches the ECMAScript regex RE |
| closure | callers(EXPR [, D=1]) | nodes that transitively (≤ D hops) CALL anything in EXPR |
| closure | callees(EXPR [, D=1]) | nodes transitively (≤ D hops) CALLED BY anything in EXPR |
| join | and(A, B) / or(A, B) | intersection / union |
| join | not(A, B) | difference (A minus B) |
# the functions that transitively (≤2 hops) call buildGraph
ripwire <dir> --graph-query='and(callers(name("buildGraph"),2),kind(all,fn))' --legend=compact
# high-complexity symbols in src/ (the refactor short-list)
ripwire <dir> --graph-query='and(cx(all,15),file(all,"src/"))' --legend=compact
# heavily-depended-on symbols (10+ callers) — the de-facto API surface
ripwire <dir> --graph-query='fanin(all,10)' --legend=compact
# everything main can reach within 2 hops
ripwire <dir> --graph-query='callees(name("main"),2)' --legend=compact
# functions NOT reachable from main's callers (difference)
ripwire <dir> --graph-query='not(kind(all,fn),callers(name("main")))' --legend=compact
# a two-symbol watchlist
ripwire <dir> --graph-query='or(name("buildGraph"),name("rankGraph"))' --legend=compactcount= vs shown= in the header
tells you if the cap bit; narrow the query or raise --top-k.--callers — dynamic dispatch / callbacks / macros
can be missing, and amb edges were guessed. Verify in source when which-target matters.file() regex) reports the parse error and yields
nothing — it never half-answers.© redhat-et, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/ripwire-graph-query of redhat-et/ripwire.
Open the folder on GitHubat commit 255dc19
Ripwire Graph Query next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ripwire Graph Query this skillredhat-et/ripwire | 2.4k | — | ~1.1k | Automated safety check: Notes | Apache-2.0 | |
| Gograph Go Repository Intelligenceozgurcd/gograph | 227 | — | ~4.8k | Automated safety check: Notes | MIT | |
| ast-grep Structural Searchcode-yeongyu/oh-my-openagent | 70k | — | ~3.3k | Automated safety check: Pass | MIT | |
| Ast GrepBiFangKNT/mtga | 1.2k | — | ~802 | Automated safety check: Pass | AGPL-3.0 | |
| Lsp Code Analysislsp-client/lsp-skill | 119 | — | ~3k | Automated safety check: Pass | MIT | |
| jscpd Duplicate Code Detectorkucherenko/jscpd | 6.3k | — | ~4.6k | Automated safety check: Pass | MIT |
ozgurcd/gograph
Gives an agent working in a Go codebase a structural view through a local MCP server: call graphs, blast-radius and impact analysis, and bounded first-call exploration.
code-yeongyu/oh-my-openagent
Searches and rewrites code by syntax-tree shape across 25 languages with ast-grep, for codemods, structural queries and YAML lint rules, using a Python wrapper script.
BiFangKNT/mtga
Write and debug ast-grep rules for structural code search and rewrite.
lsp-client/lsp-skill
Semantic code analysis via LSP. An agent skill from lsp-client/lsp-skill.
kucherenko/jscpd
Finds duplicated code in 220+ languages with jscpd, reports exact, renamed and near-miss clones in a compact agent-friendly format and measures duplication.
opensage-agent/opensage-adk
Get a path in the call graph from a source function to a specified destination function in the codebase.
redhat-et/ripwire
Rules for writing and converting formatted output in ripwire's C++ source with its emit helpers, keeping every printed byte identical to the old printf output.
redhat-et/ripwire
Checks whether a working-tree diff or a pull request is safe to merge: blast radius, tests to run, contract breaks, branch conflicts and stranded work.
redhat-et/ripwire
Produces a short brief for handing a code subsystem to a teammate or fresh session, using ripwire to rank symbols, expand bodies and surface design docs.
redhat-et/ripwire
Answers questions about a named symbol, such as its callers, what it calls, the path between two symbols or the downstream impact of changing it, using the ripwire CLI.
redhat-et/ripwire
Contributor guide for reading clang optimization remarks while editing ripwire's own C++, deciding between a source change and a build change such as LTO or PGO.
redhat-et/ripwire
Maps an unfamiliar repo or subsystem with the ripwire CLI before reading files, climbing an escalation ladder only until you are oriented.
Categories
Answers call-graph questions that combine several conditions, such as complex functions that reach a target or untested symbols near main, using ripwire's graph-query mode. Ripwire's fixed verbs (callers, callees, uses, path, impact) handle one-hop questions, and this skill is for the cases that need several conditions at once. The command ripwire with --graph-query evaluates a small functional expression to a ranked set of symbols, capped by --top-k at 200 by default.
Ripwire Graph Query fits situations like: listing high-complexity functions in one directory before planning a refactor; finding which functions with many callers sit within a few hops of an entry point; spotting untested symbols close to main; estimating how many callers a change to a hotspot could affect.
Run `npx skills add redhat-et/ripwire --skill ripwire-graph-query -a claude-code`. Or copy the skill folder (skills/ripwire-graph-query in redhat-et/ripwire) into .claude/skills/ripwire-graph-query in your project. Claude Code loads it when a task matches its description.
Run `npx skills add redhat-et/ripwire --skill ripwire-graph-query -a codex`. Or copy the skill folder (skills/ripwire-graph-query in redhat-et/ripwire) into .agents/skills/ripwire-graph-query in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add redhat-et/ripwire --skill ripwire-graph-query -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ripwire-graph-query, .gemini/skills/ripwire-graph-query, .github/skills/ripwire-graph-query and .opencode/skills/ripwire-graph-query in your project.
SKILL.md names no scripts, command-line tools or credentials: Ripwire Graph Query is instructions for the agent only. Our summary lists: The ripwire CLI. Its frontmatter pre-approves these tools: Bash, Read.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Ripwire Graph Query is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ripwire Graph Query: Gograph Go Repository Intelligence (ozgurcd/gograph, 227 stars), ast-grep Structural Search (code-yeongyu/oh-my-openagent, 70k stars), Ast Grep (BiFangKNT/mtga, 1.2k stars) and Lsp Code Analysis (lsp-client/lsp-skill, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
redhat-et (a GitHub organization) maintains it in redhat-et/ripwire, which has 2,412 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 4, 2026.
Source: redhat-et/ripwire on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.