Install
$ agentstack add skill-franklywatson-claude-rig-savings ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
savings — Session Savings Report
Report token savings from rtk and jcodemunch usage during this session.
Procedure
- Run
rtk gain --format jsonto get current savings data. If rtk is not
available, skip rtk reporting.
- Gather the session cache files (aggregate, do not pick one):
- Use
Bash(ls /tmp/rig-session-*.json)to list candidates (or the Glob tool
with pattern /tmp/rig-session-*.json).
- For each candidate path, use the Read tool (not
catorgrep) to load
the JSON and check the cwd field. Collect ALL files whose cwd matches the current project directory ($CLAUDE_PROJECT_DIR or pwd) — hooks running from subagent contexts or under different session ids write separate cache files keyed by (cwd, session id), and each holds part of this session's tool-call counters.
- Anchor staleness to session start: session-start recaptures the metrics
baseline every session, so the most recent matching file with a non-null metricsBaseline (highest updatedAt among those) provides the session-start anchor via its metricsBaseline.capturedAt — subagent-context fragments never run session-start and carry a null baseline, so they cannot anchor. Discard matching files whose updatedAt predates the anchor, and as an outer bound discard any file older than 24 hours — files from earlier sessions today (same cwd, different session ids) hold a previous session's work and would inflate "this session" counts.
- Sum
metricCounters(rtkCalls, jmCalls, efficientCalls, graphifyCalls)
across the remaining matching files. These summed values are the session call counts used in the report.
- Take
metricsBaselineandenvironment(rtkAvailable,
jcodemunchAvailable) from the most recent matching file (highest updatedAt) — baselines and environment snapshots must not be summed.
- If no file has a matching
cwd, fall back to the single most recent
file by modification time.
rig initauto-allowsBash(ls /tmp/rig-session-*)and
Read(/tmp/rig-session-*.json), so this flow should not prompt for permission. If it does, .claude/settings.json is out of date — re-run rig init --force.
- Compute the rtk session delta:
current total_saved - baseline totalSaved. - For jcodemunch: call
mcp__jcodemunch__get_session_statsand read
session_tokens_saved, session_calls, total_tokens_saved, and tool_breakdown directly. These are reliable per-session counters maintained by the MCP server process. If jcodemunch MCP is not available, skip jcodemunch reporting.
- For graphify: check the most recent matching cache file for
graphifyStatsin the
metricsBaseline field. This is a per-directory record mapping absolute paths to GraphifyProjectStats objects. If present, include the graphify section in the report (see Output Format below). Alternatively, if graphify MCP is available, call mcp__graphify__graph_stats to get live stats. If graphify is not available, skip graphify reporting.
- For headroom (context-compression proxy): check the most recent matching
cache file's environment.headroomInitialized field. If true, run headroom perf --format json --hours 24 and read tokens_saved, savings_pct, total_requests, and cache_hit_pct. Include the headroom line only when total_requests > 0. These are context-layer savings — they overlap tool-layer (rtk/jcodemunch) savings at the boundary, so report them on their own line and NEVER add them to the rtk/jcodemunch numbers. If headroomInitialized is false/absent or the command fails, skip headroom reporting.
- Format and print the report (see Output Format below). Do NOT write any
explanatory text before or after the report — output ONLY the report lines.
Output Format
With session data (baseline + delta available), single project:
[rig] Session Savings
rtk: X.XM saved (N calls, +XK this session)
jcodemunch: XK saved (N queries, 150M total all-time)
headroom: XK saved (context layer — N requests, X% compression, X% cache hits; not summed with tool-layer savings)
graphify: N nodes, M edges, K communities (X% EXTRACTED, X% INFERRED, X% AMBIGUOUS)
The headroom line appears only when the proxy is initialized for this project and had requests in the window — omit it otherwise.
With session data, multi-project (scouted external repos):
[rig] Session Savings
rtk: X.XM saved (N calls, +XK this session)
jcodemunch: XK saved (N queries, 150M total all-time)
graphify:
project-a: N nodes, M edges, K communities (X% EXTRACTED, X% INFERRED, X% AMBIGUOUS)
project-b: N nodes, M edges, K communities (X% EXTRACTED, X% INFERRED, X% AMBIGUOUS)
Without session data (no cache file or baseline is null):
[rig] Session Savings (all-time)
rtk: X.XM saved (N commands, XX.X% avg savings)
jcodemunch: XM saved all-time (N queries)
graphify: N nodes, M edges, K communities (X% EXTRACTED, X% INFERRED, X% AMBIGUOUS)
When baseline is missing, still call mcp__jcodemunch__get_session_stats for all-time totals and mcp__graphify__graph_stats for live graph stats. Only skip a line if the tool is genuinely unavailable.
If rtk is not installed:
[rig] Session Savings
rtk: not installed
Formatting Rules
- Format token counts: >=1M as
X.XM, >=1K asXK, else raw number. - Round percentages to 1 decimal.
- jcodemunch
session_tokens_savedandsession_callscome directly from
get_session_stats. total_tokens_saved is the all-time cumulative.
- graphify
graphifyStatsis aRecord—
keys are absolute directory paths, values are stats objects with nodes, edges, communities, extractedPct, inferredPct, ambiguousPct. Single-entry records render as one line; multi-entry records render as indented per-project lines with directory basename as label.
- Output the report and nothing else.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: franklywatson
- Source: franklywatson/claude-rig
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.