Codemap
JordanCoin/codemap
Gives an agent a quick map of a codebase's structure, dependencies, changes and handoffs, and tunes per-project config so the output stays code-first.
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.
$ npx skills add redhat-et/ripwire --skill ripwire-handoff -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install redhat-et/ripwire ripwire-handoff --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-handoff .claude/skills/ripwire-handoff && 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-handoff" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-handoff into .claude/skills/ripwire-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-handoff", 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-handoffType 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-handoff -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install redhat-et/ripwire ripwire-handoff --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-handoff .agents/skills/ripwire-handoff && 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-handoff" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-handoff into .agents/skills/ripwire-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-handoff", 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-handoff -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install redhat-et/ripwire ripwire-handoff --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-handoff .cursor/skills/ripwire-handoff && 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-handoff" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-handoff into .cursor/skills/ripwire-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-handoff", 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-handoff--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-handoff -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install redhat-et/ripwire ripwire-handoff --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-handoff .gemini/skills/ripwire-handoff && 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-handoff" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-handoff into .gemini/skills/ripwire-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-handoff", 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-handoffInstalls 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-handoff -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-handoff .github/skills/ripwire-handoff && 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-handoff" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-handoff into .github/skills/ripwire-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-handoff", 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-handoff -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-handoff --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-handoff .opencode/skills/ripwire-handoff && 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-handoff" agent skill from https://github.com/redhat-et/ripwire/tree/main/skills/ripwire-handoff into .opencode/skills/ripwire-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ripwire-handoff", 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-handoffProduces 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.
Handing a subsystem to a teammate, a successor or a fresh session takes four steps with the ripwire CLI and produces a compact brief that can be pasted, rather than a pile of source. First it ranks the symbols most relevant to the subsystem with --for and --top-k, noting file paths, complexity and reuse counts; the top ten are what the recipient most needs.
Next it expands the top three symbols with --expand to get full bodies and callee signatures, which go into the brief verbatim. Bodies are redacted by default, so credentials such as API keys and tokens are masked unless you deliberately pass --no-redact. Then --recall pulls the relevant design and planning docs so the brief can say why the design is what it is, and --notes surfaces gotchas earlier agents pinned, with --note-add for leaving new ones.
A fourth step points --hotspots at the subsystem to describe maintenance and bus-factor risk; the supplied text stops before those details. Neighboring skills cover other needs: ripwire-orient for understanding the area yourself, ripwire-navigate for one symbol's contract and ripwire-layers for an architecture read.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 60dd3b3. 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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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 Subsystem Handoff loads about 1.8k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 947 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 60dd3b3, republished under its Apache-2.0 licence (© redhat-et). 947 words, ~1,773 tokens.
.claude/skills/ripwire-handoff/SKILL.md (or your agent's skills folder).Nearest neighbours: • You need to UNDERSTAND the subsystem yourself first (not brief someone else) → ripwire-orient. • You need ONE symbol's full contract, not a whole-subsystem brief → ripwire-navigate (
--expand). • The recipient needs an architecture/layering read specifically → ripwire-layers.
Trigger: you're handing a subsystem to another agent or developer and want to give them a fast, accurate brief — not a wall of source code.
<dir> = repo root. SUBSYSTEM = the area in plain words (e.g. "ingest pipeline",
"graph ranking", "MCP server loop").
Task-relevant symbols — ripwire <dir> --for="SUBSYSTEM" --top-k=20
Output: <sigs> ranked by relevance. The top 10 are the symbols the recipient most needs
to know. Note their file paths, complexity (cx=), and reuse count (in=).
Expand the key symbols — ripwire <dir> --expand=SYM1,SYM2,SYM3 --legend=compact
(Pick the top 3 by rank from step 1.)
Output: full bodies + callee signatures. This is the actual contract — paste it into the
handoff verbatim rather than paraphrasing. Bodies are redacted by default — high-confidence
credentials (API keys, tokens, connection strings) are masked before you see them, so pasting this
straight into a handoff doc is safe as-is; pass --no-redact only if you deliberately need the
verbatim secret (e.g. auditing the credential-handling code itself).
Design rationale — ripwire <dir> --recall="SUBSYSTEM"
Output: most relevant markdown docs (planning/design notes, READMEs) in full. Read and
summarize the key decisions — why this design, not another. That's what the recipient most
needs and least gets from reading code.
Also check ripwire <dir> --notes --legend=compact for this subsystem's symbols/files — any gotcha a prior agent already
pinned (<note d="date">…</note>) surfaces automatically on the symbols step 1/2 emit; fold it into the
brief instead of letting the recipient rediscover it. Before you hand off, --note-add="SYM_or_path: text" any trap you found yourself that isn't already written down — the cheapest thing you can leave
the successor. If the same symbol has collected several notes across handoffs, that's a signal to
graduate it out of prose entirely, into a --quality-ack reason or a standing --arch deny rule.
Maintenance risk, scoped to the subsystem — point --hotspots straight at the subsystem instead of
filtering the whole-repo list: ripwire <subdir> --hotspots (verified: subdir scoping works, same as
--dead-code=DIR). If the subsystem isn't a clean subdirectory, keep the repo root and --exclude the
rest (repeatable flag) to fence the scan to just the area you're briefing on.
Also worth a look: ripwire <dir> --hotspots --legend=compact (whole-repo, no scoping) to see whether any subsystem file
also lands in the global top-10 — a file can be locally worst-in-subsystem and still unremarkable
repo-wide, or vice versa; that distinction matters to the recipient. Tell them: "this file is gnarly —
high churn, high complexity — be careful and run tests after any change here."
amb= in --expand's <calls> block
means some of ITS calls were ambiguous — don't present those as certain in the brief, flag them).
--recall returns doc text, not a verified fact — summarize what the docs claim, not what's provably
still true; a stale design doc will still get picked up.churn × cognitive complexity — a maintenance-pain signal, not a defect count.
Frame it to the recipient as "developers keep touching this, tread carefully," not "this file has bugs."at="<sha>[+dirty]"A brief is read hours or days later, against a HEAD that has moved. Every number you quote must carry the commit it was measured at, or the recipient cannot tell a stale finding from a live one.
Several repo-reading verbs now do this for you: the header carries at="<sha>", and at="<sha>+dirty"
when the working tree had uncommitted changes at measure time. Real output from this repo:
<quality-delta baseline="git-HEAD" regressions="0" … gating="0" at="f0a45e43d">+dirty is the important half. A stamp ending in +dirty means the numbers describe a working tree
that exists on exactly one machine and is not recoverable from the sha — it is not reproducible by the
recipient. Either commit first and re-measure, or say so explicitly in the brief.
What actually carries a stamp today (verified by running each verb — do not assume it is universal):
| verb | stamp |
|---|---|
--quality-delta · --pr-context · --test-gate · --map-diff · --doc-drift | at="<sha>[+dirty]" |
--stray-content | head="<sha>" — different attribute name, and no +dirty suffix |
--situ · --cochange · --owners | none — record the sha yourself (git rev-parse --short HEAD) |
Two traps: the attribute is head= rather than at= on --stray-content, so a script grepping only for
at= silently gets nothing; and in --doc-drift the name at= is overloaded — the header at= is a
git sha, but each drift ROW's at= is a file path (at="src/mcp.h"). Anchor on the header, not the
first match.
Handoff brief: (1) what the subsystem does in 2 sentences, (2) the 3 key entry-point symbols
with file:line and their signatures (from --expand), (3) the design decisions the recipient
must know (from --recall), (4) any hotspot files to be careful with, flagged if churn/complexity data
looks stale (no git history, non-git root). Aim for under 600 tokens.
--handoffHanding off an INTERRUPTED WORKING SESSION (not a subsystem summary)? ripwire <dir> --handoff --legend=compact emits
the whole continuation packet in one deterministic call: a <verified> section (branch, HEAD sha with
+dirty marker, changed files + their symbols, transitive blast-radius size, tests-to-run) that is pure
disk truth, and a <heuristic> section (co-change partners not in the diff, committed --note-add
notes on the touched files, plan/design doc pointers ranked by a branch+commit-subject query) that is
labeled suggestion, never presented as fact. Composes with --token-budget=N — heuristic rows drop
tail-first and the header discloses withheld=; verified rows never drop. Single-root only; paste the
packet to the next agent as-is.
© 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-handoff of redhat-et/ripwire.
Open the folder on GitHubat commit 60dd3b3
Ripwire Subsystem Handoff 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 Subsystem Handoff this skillredhat-et/ripwire | 2.4k | — | ~1.8k | Automated safety check: Notes | Apache-2.0 | |
| CodemapJordanCoin/codemap | 704 | — | ~1.8k | Automated safety check: Pass | MIT | |
| ccc Semantic Code Searchcocoindex-io/cocoindex-code | 2.8k | — | ~938 | Automated safety check: Pass | Apache-2.0 | |
| Repomix Codebase Packeryamadashy/repomix | 29k | — | ~1.3k | Automated safety check: Notes | MIT | |
| Codebase Handbook BuilderRuhan-Wang/Harness_Handbook | 333 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Codebase SearchHelweg/open-codebase-index | 216 | — | ~1.3k | Automated safety check: Pass | MIT |
JordanCoin/codemap
Gives an agent a quick map of a codebase's structure, dependencies, changes and handoffs, and tunes per-project config so the output stays code-first.
cocoindex-io/cocoindex-code
Semantic code search and index management with the ccc CLI: the agent initializes, indexes and queries the project by concept, filtering by language or path.
yamadashy/repomix
Packs a local directory or remote GitHub repository into one AI-friendly file with Repomix, then searches it to explore structure, find patterns and count tokens.
Ruhan-Wang/Harness_Handbook
Generates, refreshes, validates and uses a compact handbook that maps where a change touches in a repository, using the active Codex session and no external LLM API.
Helweg/open-codebase-index
Chooses the right retrieval tool for code questions: compact context for unfamiliar repos, direct lookup for known symbols, call graphs for relationships and grep for exhaustive matches.
Helweg/open-codebase-index
Directs an agent to use a local codebase index for repository orientation, definition lookups, call graphs and semantic search before turning to web lookups.
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
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.
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
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. Handing a subsystem to a teammate, a successor or a fresh session takes four steps with the ripwire CLI and produces a compact brief that can be pasted, rather than a pile of source. First it ranks the symbols most relevant to the subsystem with --for and --top-k, noting file paths, complexity and reuse counts; the top ten are what the recipient most needs.
Ripwire Subsystem Handoff fits situations like: handing an area of the codebase to a new teammate or successor; preparing a brief for a fresh agent session that continues the work; writing up why a subsystem was designed the way it was.
Run `npx skills add redhat-et/ripwire --skill ripwire-handoff -a claude-code`. Or copy the skill folder (skills/ripwire-handoff in redhat-et/ripwire) into .claude/skills/ripwire-handoff in your project. Claude Code loads it when a task matches its description.
Run `npx skills add redhat-et/ripwire --skill ripwire-handoff -a codex`. Or copy the skill folder (skills/ripwire-handoff in redhat-et/ripwire) into .agents/skills/ripwire-handoff 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-handoff -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-handoff, .gemini/skills/ripwire-handoff, .github/skills/ripwire-handoff and .opencode/skills/ripwire-handoff in your project.
Going by SKILL.md and its folder, Ripwire Subsystem Handoff needs the command-line tools its instructions call (git). Our summary lists: The ripwire command-line tool; Shell access to run it from the repository root. Its frontmatter pre-approves these tools: Bash, Read.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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 Subsystem Handoff 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.8k tokens (SKILL.md is roughly 7.1k 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 Subsystem Handoff: Codemap (JordanCoin/codemap, 704 stars), ccc Semantic Code Search (cocoindex-io/cocoindex-code, 2.8k stars), Repomix Codebase Packer (yamadashy/repomix, 29k stars) and Codebase Handbook Builder (Ruhan-Wang/Harness_Handbook, 333 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,428 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 9, 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.