Research Finance
alirezarezvani/claude-skills
A skill your agent uses when managing the money for an internal R&D program or portfolio — building a multi-period program budget with the F&A (indirect) split, tracking burn rate and runway against…
A skill your agent uses when metering and capping AI or cloud app spend — tokens read from the response usage object, priced off a dated rate table, ledgered per user/tenant/feature, with alerts and…
$ npx skills add ericrisco/rsc-harness --skill cost-tracking -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness cost-tracking --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/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cost-tracking .claude/skills/cost-tracking && 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 "cost-tracking" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cost-tracking into .claude/skills/cost-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cost-tracking", 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/ericrisco/rsc-harness/tree/main/skills/cost-trackingType 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 ericrisco/rsc-harness --skill cost-tracking -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness cost-tracking --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cost-tracking .agents/skills/cost-tracking && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cost-tracking" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cost-tracking into .agents/skills/cost-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cost-tracking", 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 ericrisco/rsc-harness --skill cost-tracking -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness cost-tracking --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cost-tracking .cursor/skills/cost-tracking && 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 "cost-tracking" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cost-tracking into .cursor/skills/cost-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cost-tracking", 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/ericrisco/rsc-harness.git --path skills/cost-tracking--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 ericrisco/rsc-harness --skill cost-tracking -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness cost-tracking --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cost-tracking .gemini/skills/cost-tracking && 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 "cost-tracking" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cost-tracking into .gemini/skills/cost-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cost-tracking", 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 ericrisco/rsc-harness cost-trackingInstalls 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 ericrisco/rsc-harness --skill cost-tracking -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cost-tracking .github/skills/cost-tracking && 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 "cost-tracking" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cost-tracking into .github/skills/cost-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cost-tracking", 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 ericrisco/rsc-harness --skill cost-tracking -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness cost-tracking --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cost-tracking .opencode/skills/cost-tracking && 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 "cost-tracking" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cost-tracking into .opencode/skills/cost-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cost-tracking", 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.
cost-trackingA skill your agent uses when metering and capping AI or cloud app spend — tokens read from the response usage object, priced off a dated rate table, ledgered per user/tenant/feature, with alerts and…
Cost Tracking is an agent skill from ericrisco/rsc-harness. Use when metering and capping AI or cloud app spend — tokens read from the response usage object, priced off a dated rate table, ledgered per user/tenant/feature, with alerts and a hard cap before the bill. NOT cash runway (that is finance-ops), NOT cost-per-unit margin (that is unit-economics), NOT booking the spend (that is bookkeeping).
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/cloud-caps.md`).
It sits in Business, Finance & HR, covering LLM cost and token optimization, Financial modeling and Payments and billing. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
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.
Cost Tracking loads about 3.2k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 91 tokens; SKILL.md has 1,445 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 found no risky patterns in SKILL.md.
Automated 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); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,445 words, ~3,163 tokens.
.claude/skills/cost-tracking/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.You are building the money meter for an AI or cloud app: every model call gets a token count, a price, a ledger row, and a budget check — so a cap fires before the invoice, not when finance forwards it in a panic. Model-API spend roughly doubled from $3.5B to $8.4B between late 2024 and mid 2025 (firecrawl.dev best-llm-observability-tools, accessed 2026-06-02); the bill is now big enough to need a guardrail, not a spreadsheet at month-end.
The chain you build, in order — each step feeds the next:
The one rule that organizes everything: bill against the response usage object. Anything you compute before the call is an estimate — good only for the pre-flight cap check, never for the ledger.
A checkable cost setup: a pricing table (each model row carries effective_date + source), an append-only ledger schema (idempotency key + attribution keys), and a budget with both a soft and a hard threshold. scripts/verify.sh lints those artifacts (last section). Prose alone is not a deliverable — emit the config.
usage, do not estimatePre-send token counts (tiktoken, Anthropic client.messages.count_tokens()) are estimates. They exist for the pre-flight cap check — "will this request likely breach the budget?" — and nothing else. The truth lands in the response: input, output, cached, and reasoning tokens, plus audio/image tokens where the modality applies. Bill the ledger off that object.
Two provider facts that bite if you assume otherwise:
count_tokens() returns input tokens only, is free, has its own rate limit, and is still an estimate. Anthropic is not tiktoken-compatible — do not reuse an OpenAI tokenizer to price Claude (platform.claude.com token-counting; github.com/anthropics/anthropic-tokenizer-typescript, accessed 2026-06-02).# Bad: pricing off a pre-send character/word guess. Wrong, and ignores output.
est_tokens = len(prompt) // 4
cost = est_tokens * rate_in # output + reasoning never counted
# Good: capture every field the response actually reports, then price that.
resp = client.messages.create(model=model, messages=msgs, max_tokens=1024)
u = resp.usage
record = {
"input_tokens": u.input_tokens,
"output_tokens": u.output_tokens,
"cache_read_tokens": getattr(u, "cache_read_input_tokens", 0),
"cache_write_tokens": getattr(u, "cache_creation_input_tokens", 0),
# OpenAI exposes cached as usage.prompt_tokens_details.cached_tokens
}
cost = price(model, record) # see "pricing is data" belowWrap the SDK call once so capture cannot be skipped. A meter you have to remember to call is a meter that's already missing rows (langfuse.com token-and-cost-tracking, accessed 2026-06-02).
Rates drift fast and silently mis-bill when stale. Keep prices in a versioned table — one row per model, each with effective_date and source — loaded as data. Never write a rate as a literal in business logic. Look up by model and fail loud on an unknown model; never default to $0, or a new model silently bills as free and the leak is invisible.
# pricing.yaml — perishable. Verify against source before trusting. Dated 2026-06-02.
models:
- model: claude-haiku-4.5
effective_date: 2026-06-02
source: cloudzero.com/blog/claude-api-pricing
input_per_mtok: 1.00
output_per_mtok: 5.00
cache_read_per_mtok: 0.10
- model: claude-sonnet-4.6
effective_date: 2026-06-02
source: cloudzero.com/blog/claude-api-pricing
input_per_mtok: 3.00
output_per_mtok: 15.00
cache_read_per_mtok: 0.30
- model: claude-opus-4.7
effective_date: 2026-06-02
source: cloudzero.com/blog/claude-api-pricing
input_per_mtok: 5.00
output_per_mtok: 25.00
cache_read_per_mtok: 0.50
- model: gpt-5.5
effective_date: 2026-06-02
source: openai.com/api/pricing
input_per_mtok: 5.00
output_per_mtok: 40.00
cache_read_per_mtok: 0.50 # OpenAI cached input = 90% off standard inputThese numbers are a snapshot, not a constant — model names and rates move month to month. Dated 2026-06-02 from the sources above. The dated per-provider snapshots, the usage-field map per provider, and refresh instructions live in references/pricing-tables.md; read it before you trust a rate.
One row per request, append-only. Two things must be on every row or the ledger lies:
-- append-only; (request_id) is the idempotency key — upsert, never plain insert
CREATE TABLE llm_cost_ledger (
request_id TEXT PRIMARY KEY, -- idempotency: retries collapse to one row
ts TIMESTAMPTZ NOT NULL,
model TEXT NOT NULL,
input_tokens INTEGER NOT NULL,
output_tokens INTEGER NOT NULL,
cached_tokens INTEGER NOT NULL DEFAULT 0,
cost_usd NUMERIC(12,6) NOT NULL, -- priced from the table above
user_id TEXT, -- attribution keys
tenant_id TEXT,
feature TEXT
);This is an operational ledger, not the accounting record — categorizing the spend into the books is bookkeeping, and the same rows feed the cost numerator in unit-economics and one input line in finance-ops. "Cost per active user" on the behavior side is analytics; charging customers for metered usage is stripe.
A budget needs a soft state (alert + degrade) and a hard state (refuse). Roll the ledger up per window (day/month) and per attribution key, then branch:
| Spend vs budget | State | Action |
|---|---|---|
| < 50% | normal | log only |
| 50% / 80% | warn | fire alert to the same pipe as cloud alerts; no behavior change |
| 100% | soft cap | degrade — downshift to a cheaper model, drop optional/enrichment calls, shrink context |
| over hard cap | hard cap | refuse the request with a typed error (BudgetExceededError), not a silent failure |
Two distinct checks, do not conflate them:
usage) against the budget. When someone asks "why is the bill 3x the estimate," you compare provider-billed usage to your ledgered usage — the gap is almost always uncounted output/reasoning/cache-write tokens or missing rows from un-wrapped call sites.Don't assert savings — show the break-even. Pricing per fact-checked sources accessed 2026-06-02 (platform.claude.com prompt-caching; finout.io anthropic-api-pricing).
1.25 + 0.1·h (cached) beats 1·(1+h) (uncached) once h ≥ 1. Caching a stable system prompt across a session is almost always net cheaper."We'll add caching later" without measuring the hit rate is a guess, not a lever. Instrument cache_read_tokens in the ledger first, then you know.
App-level metering is your real-time guard. Cloud billing alerts are a delayed backstop — useful, but never the thing standing between you and a runaway loop.
Route every cloud alert into the same alert pipe as your app-level budget alerts so there's one place to look. The 24h delay is exactly why the in-app cap exists: by the time AWS notices the anomaly, the loop already spent the money. Recipes and the alert-routing pattern are in references/cloud-caps.md; the cap plumbing in depth is aws-essentials / gcp-essentials.
| You want | Use | Trade-off |
|---|---|---|
| Zero code change, fastest setup | Helicone (proxy, ~2-min) | adds a network hop / latency |
| SDK-level capture + a ready cost table | Langfuse (MIT, ships model+tokenizer cost table) | you wire the SDK, but no proxy hop |
| Full control / custom attribution / typed caps | DIY ledger (this skill) | you own pricing-table freshness and capture coverage |
(firecrawl.dev best-llm-observability-tools; guptadeepak.com top-5-llm-observability-platforms-2026, accessed 2026-06-02.) Buy the proxy/platform when you want spend visibility fast; build the ledger when caps and per-feature attribution must live inside your own logic.
| Anti-pattern | Why it's wrong | Do instead |
|---|---|---|
| Pricing literals in business logic | a rate change silently mis-bills everything | versioned table, each row dated + sourced |
| Billing off the pre-send estimate | estimates ignore output/reasoning/cache; off by most of the bill | price the response usage object |
| No idempotency key on ledger rows | retries double-count spend | request_id PRIMARY KEY, upsert not insert |
| Unknown model defaults to $0 | a new model bills as free; leak is invisible | fail loud on a model absent from the table |
| Only a soft alert, no hard cap | alert fires, loop keeps spending | a hard cap that refuses with a typed error |
| Org-total budget, no attribution | "spend is up" — but you can't find the leak | tag every row by user/tenant/feature |
| Counting input tokens only | output+reasoning are 4-5x the cost — the expensive half | capture all token fields from usage |
| Trusting cloud alerts for real-time control | ~24h delay; the loop already spent it | app-level cap is the guard; cloud is the backstop |
| "Add caching later" with no measurement | savings unproven; may not even hit | instrument cache_read_tokens, compute break-even |
scripts/verify.sh [path] lints a candidate cost config/ledger (yaml/json/ts) and fails if: a pricing entry lacks effective_date or source; a model referenced in logic is missing from the table; the ledger schema lacks an idempotency/request key or any attribution key; the budget declares no soft+hard pair; or cost looks derived from a len()/char estimate instead of a usage field. It is read-only and exits 0 on a clean config and on no config found — no false failure.
© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts, references) in skills/cost-tracking of ericrisco/rsc-harness.
Open the folder on GitHubat commit 92fde8f
Cost Tracking 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 |
|---|---|---|---|---|---|---|
| Cost Tracking this skillericrisco/rsc-harness | 156 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Research Financealirezarezvani/claude-skills | 28k | — | ~2.7k | Automated safety check: Pass | MIT | |
| Financial Comparison Glossary Ignacio Adrian Lererlawve-ai/awesome-legal-skills | 826 | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| SaaS Churn AnalysisLeoYeAI/openclaw-master-skills | 2.2k | — | ~5k | Automated safety check: Pass | MIT | |
| Subscription Revenue TrackerLeoYeAI/openclaw-master-skills | 2.2k | — | ~5k | Automated safety check: Pass | MIT | |
| Fractional Cfo PlaybookLeoYeAI/openclaw-master-skills | 2.2k | — | ~3.9k | Automated safety check: Pass | MIT |
alirezarezvani/claude-skills
A skill your agent uses when managing the money for an internal R&D program or portfolio — building a multi-period program budget with the F&A (indirect) split, tracking burn rate and runway against…
lawve-ai/awesome-legal-skills
A skill your agent uses when a calculator, financial model, investor memo, due diligence report, risk review, dashboard, or client-facing explanation needs clear distinctions between accounting and…
LeoYeAI/openclaw-master-skills
SaaS churn and retention analysis: cohort-based churn rates, retention curves, revenue churn vs logo churn, at-risk customer identification, expansion vs contraction MRR, churn recovery playbooks…
LeoYeAI/openclaw-master-skills
SaaS and subscription business revenue intelligence. An agent skill from LeoYeAI/openclaw-master-skills.
LeoYeAI/openclaw-master-skills
Complete operational playbook for Fractional CFO engagements.
FerroxLabs/wayland
Becomes a senior financial analyst who builds analysis frameworks, forecasting models, and budget reviews with explicit assumptions and scenario comparisons.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Categories
A skill your agent uses when metering and capping AI or cloud app spend — tokens read from the response usage object, priced off a dated rate table, ledgered per user/tenant/feature, with alerts and…. Cost Tracking is an agent skill from ericrisco/rsc-harness. Use when metering and capping AI or cloud app spend — tokens read from the response usage object, priced off a dated rate table, ledgered per user/tenant/feature, with alerts and a hard cap before the bill.
Cost Tracking fits situations like: metering and capping AI; cloud app spend — tokens read from the response usage object; priced off a dated rate table; ledgered per user/tenant/feature.
Run `npx skills add ericrisco/rsc-harness --skill cost-tracking -a claude-code`. Or copy the skill folder (skills/cost-tracking in ericrisco/rsc-harness) into .claude/skills/cost-tracking in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill cost-tracking -a codex`. Or copy the skill folder (skills/cost-tracking in ericrisco/rsc-harness) into .agents/skills/cost-tracking 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 ericrisco/rsc-harness --skill cost-tracking -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cost-tracking, .gemini/skills/cost-tracking, .github/skills/cost-tracking and .opencode/skills/cost-tracking in your project.
Going by SKILL.md and its folder, Cost Tracking needs a shell for the scripts in its folder. Our summary lists: Python 3; A Bash shell.
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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Cost Tracking is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Cost Tracking: Research Finance (alirezarezvani/claude-skills, 28k stars), Financial Comparison Glossary Ignacio Adrian Lerer (lawve-ai/awesome-legal-skills, 826 stars), SaaS Churn Analysis (LeoYeAI/openclaw-master-skills, 2.2k stars) and Subscription Revenue Tracker (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.