Senior Fullstack
alirezarezvani/claude-skills
Fullstack development toolkit with project scaffolding for Next.js, FastAPI, MERN, and Django stacks, code quality analysis with security and complexity scoring, and stack selection guidance.
A skill your agent uses when adding interactivity to a server-rendered app (FastAPI/Jinja, Django, Rails, Laravel, Go templates, Express) without adopting a JS framework — hx-get/post/put/delete…
$ npx skills add ericrisco/rsc-harness --skill htmx -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness htmx --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/htmx .claude/skills/htmx && 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 "htmx" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/htmx into .claude/skills/htmx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "htmx", 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/htmxType 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 htmx -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness htmx --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/htmx .agents/skills/htmx && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "htmx" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/htmx into .agents/skills/htmx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "htmx", 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 htmx -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness htmx --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/htmx .cursor/skills/htmx && 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 "htmx" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/htmx into .cursor/skills/htmx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "htmx", 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/htmx--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 htmx -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness htmx --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/htmx .gemini/skills/htmx && 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 "htmx" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/htmx into .gemini/skills/htmx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "htmx", 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 htmxInstalls 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 htmx -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/htmx .github/skills/htmx && 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 "htmx" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/htmx into .github/skills/htmx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "htmx", 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 htmx -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 htmx --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/htmx .opencode/skills/htmx && 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 "htmx" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/htmx into .opencode/skills/htmx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "htmx", 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.
htmxA skill your agent uses when adding interactivity to a server-rendered app (FastAPI/Jinja, Django, Rails, Laravel, Go templates, Express) without adopting a JS framework — hx-get/post/put/delete…
Htmx is an agent skill from ericrisco/rsc-harness. Use when adding interactivity to a server-rendered app (FastAPI/Jinja, Django, Rails, Laravel, Go templates, Express) without adopting a JS framework — hx-get/post/put/delete with hx-target, hx-swap and hx-trigger, returning HTML fragments instead of JSON, out-of-band swaps, active search, infinite scroll, inline edit and polling. NOT a client-state SPA with routing and a store (that is react or nextjs).
Its SKILL.md is about 3.4k 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/patterns.md`).
It sits in Backend & APIs, covering Backend development. It works with Django, FastAPI, Next.js and React. 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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3d5b33. 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.
Hosts in commands or code, which the agent is likely to contact:
unpkg.comFrom 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.
Htmx loads about 3.4k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 104 tokens; SKILL.md has 1,423 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 e3d5b33, republished under its MIT licence (© ericrisco). 1,423 words, ~3,388 tokens.
.claude/skills/htmx/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.The server owns all application state and renders HTML. The client is dumb: it swaps server-rendered fragments into the DOM. There is no JSON API for the UI, no client store, no virtual DOM, no client router. If you find yourself returning JSON and rendering it with JavaScript, you have stopped doing htmx and started building an SPA — use a different tool.
The unit of work is one request, described by four attributes on one element:
hx-get / hx-post / hx-put / hx-patch / hx-delete (the URL)hx-target — which DOM node receives the response (CSS selector or this)hx-swap — how the response is placed (default innerHTML)hx-trigger — on what event (default: natural — click for buttons, submit for forms,
change for inputs)Versions (verify before pinning). htmx 2.0.x is current stable (2.0.10 latest 2.x line); v1 (1.9.x) is legacy, kept only for IE/old-browser support. htmx v4 is in beta targeting Summer 2026 and changes some defaults (default swap behavior, config) — do not write to v4 yet. Pin to 2.x:
<script src="https://unpkg.com/htmx.org@2.0.10" crossorigin="anonymous"></script>hx-target + hx-swap + hx-trigger to update a page region.HX-Request header).hx-swap-oob) when one response must refresh several regions.revealed, intersect, debounced input.HX-Trigger, HX-Redirect, …).react, vue-nuxt, svelte, solid-js, angular, or ../nextjs/SKILL.md. htmx is the
anti-SPA; do not fight it.django, rails, laravel. This skill owns the htmx contract (which fragment, which
header, which swap), not framework internals. Cross-link, do not duplicate.accessibility.testing-web / e2e-testing.HX-Request: fragment for htmx, full page otherwise. A bookmarked URL or hard
refresh must still render a whole page; the htmx call gets just the partial.hx-target and hx-swap explicitly when the default is wrong. Default target is the
element itself; default swap is innerHTML. Be explicit the moment you need otherwise.hx-trigger, not JavaScript. Debounce, polling, reveal, intersect are all
trigger modifiers — reaching for addEventListener usually means you missed a modifier.HX-* response headers instead of branching logic in the browser.hx-headers or a hidden field.<!-- Bad: JSON endpoint + hand-written DOM patching = a tiny SPA -->
<button id="like">Like</button>
<script>
document.getElementById('like').addEventListener('click', async () => {
const r = await fetch('/posts/42/like', { method: 'POST' });
const data = await r.json(); // JSON contract
document.getElementById('count').textContent = data.count; // manual render
});
</script><!-- Good: the server returns the new HTML; the element declares the swap -->
<button hx-post="/posts/42/like"
hx-target="#likes"
hx-swap="outerHTML">Like</button>
<span id="likes">42 likes</span>
<!-- POST /posts/42/like responds with: <span id="likes">43 likes</span> -->The Good version has no JS, no JSON, no client state. The server computed the count and rendered the truth; the client placed it.
Framework-agnostic rule: if HX-Request: true, render the partial; otherwise render the page
that embeds that same partial. Concrete FastAPI + Jinja2:
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/contacts")
def contacts(request: Request, q: str = ""):
rows = search_contacts(q)
# htmx asked for just the table body; a browser nav gets the whole page.
template = "contacts/_rows.html" if request.headers.get("HX-Request") else "contacts/index.html"
return templates.TemplateResponse(template, {"request": request, "rows": rows, "q": q}){# templates/contacts/index.html — the page wraps the SAME partial #}
{% extends "base.html" %}
{% block content %}
<input type="search" name="q" value="{{ q }}"
hx-get="/contacts" hx-target="#rows" hx-swap="innerHTML"
hx-trigger="keyup changed delay:500ms">
<table><tbody id="rows">{% include "contacts/_rows.html" %}</tbody></table>
{% endblock %}{# templates/contacts/_rows.html — auto-escaped; reused by page AND fragment #}
{% for c in rows %}<tr><td>{{ c.name }}</td><td>{{ c.email }}</td></tr>{% endfor %}Full per-framework wiring (Django django-htmx middleware, Express, CSRF per stack) is in
references/server-contract.md.
hx-swap | Where the response goes |
|---|---|
innerHTML | inside the target, replacing contents (default) |
outerHTML | replaces the target element itself |
beforebegin / afterbegin | before the target / as its first child |
beforeend / afterend | as its last child / after the target |
delete | deletes the target (response ignored) |
none | does not swap (use with OOB or HX-Trigger) |
Swap modifiers: transition:true, swap:<time> (delay before swap), settle:<time>,
scroll:top|bottom, show:top|bottom, focus-scroll:false.
hx-target accepts a CSS selector, this, or an extended selector: closest <sel>,
find <sel>, next <sel>, previous <sel>. Prefer a stable id over a fragile structural
selector — a deep div > div:nth-child(3) breaks the first time markup shifts.
When one action must refresh more than the target, mark extra elements in the response with
hx-swap-oob. They are swapped into the matching live element by id, bypassing the target.
<!-- Response to POST /cart/add: swap the row in normally... -->
<tr id="row-42">2 × Widget</tr>
<!-- ...and update the cart badge out of band (default OOB swap is outerHTML) -->
<span id="cart-count" hx-swap-oob="true">3 items</span>hx-swap-oob="true" defaults to outerHTML; you can specify a strategy
(hx-swap-oob="beforeend:#log"). Use OOB instead of firing two requests for two regions.
The server can steer htmx without any client code:
| Response header | Effect |
|---|---|
HX-Trigger | fire client event(s); JSON value {"event": detail} passes detail |
HX-Retarget | override hx-target with a CSS selector |
HX-Reswap | override hx-swap for this response |
HX-Redirect | full-page client redirect to the given URL |
HX-Location | client-side navigation with an htmx request (no full reload) |
HX-Push-Url | push a URL into history |
HX-Refresh | true forces a full page reload |
Request headers htmx sends (read these server-side): HX-Request, HX-Target, HX-Trigger,
HX-Current-URL, HX-Boosted. Full tables in
references/server-contract.md.
hx-boost is the cheapest "SPA feel": it upgrades normal <a>/<form> to AJAX that swaps
<body> with pushState history — no SPA, no JSON.
htmx makes HTML more expressive, so injected HTML is an XSS surface. The htmx-specific rules (generic theory lives in ../secure-coding/SKILL.md):
| safe / |safe user-controlled
content. Manually rendering raw user HTML re-introduces XSS that escaping had closed.hx-*/data-hx-*
attributes and inline scripts. An injected hx-get would issue requests you never intended.hx-disable halts htmx processing for a subtree as defense-in-depth — but it is bypassable
by closing the tag, so it is not a primary control. Sanitize at the source.htmx.config.selfRequestsOnly defaults to true in 2.x — keep it. It blocks htmx requests
to other origins.<body hx-headers='{"X-CSRF-Token": "…"}'> or a hidden form field.HX-Redirect / HX-Location — never build them from attacker-controlled values;
a javascript: URL there is an injection.Worked, copy-ready recipes — server fragment + client markup for each — live in references/patterns.md:
keyup changed delay:500ms filtering a results table.hx-trigger="revealed" or a "load more" button.every 600ms polling closed by an HX-Trigger event.hx-trigger value | Use |
|---|---|
keyup changed delay:500ms | active search (debounced, only on real change) |
every 2s | polling a progress/status region |
revealed | infinite scroll — load when the sentinel scrolls into view |
intersect once | lazy-load a region once it enters the viewport |
load delay:1s | deferred load after the page paints |
click[ctrlKey] | event filter — only ctrl-click |
submit / change | natural defaults for forms / inputs |
customEvent from:body | react to an HX-Trigger-fired event from elsewhere |
Modifiers worth knowing: throttle:<time>, queue:first|last|all|none, from:<sel>, once,
changed, delay:<time>.
| Anti-pattern | Why it is wrong | Do instead |
|---|---|---|
| Endpoint returns JSON, JS renders it | that is an SPA; you lose htmx's whole point | return the HTML fragment; the server renders |
No HX-Request branch | the fragment leaks the full layout (nested <html>) on htmx calls, or a bookmark renders a bare partial | branch: partial vs page wrapping the same partial |
| Two copies of the fragment (page + ajax) | they drift; bug fixed in one, not the other | one partial template, {% include %}d by the page |
Polling every 1s for a one-off event | wasteful traffic; hammers the server | poll only while pending, end it with HX-Trigger/hx-swap-oob; or use SSE |
hx-target="div > div:nth-child(3)" | structural selectors shatter when markup shifts | target a stable id |
| `{{ user_html | safe }}` | unescaped user content → XSS |
Rebuilding client state in hx-on/JS | re-creates the SPA state you came here to avoid | let the server hold state; re-render from it |
| Multiple requests to update related regions | extra round-trips, races | one response + hx-swap-oob |
django, rails, laravel — other server frameworks (the htmx contract is identical).accessibility — focus and ARIA after a DOM swap.© 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/htmx of ericrisco/rsc-harness.
Open the folder on GitHubat commit e3d5b33
Htmx 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 |
|---|---|---|---|---|---|---|
| Htmx this skillericrisco/rsc-harness | 167 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Senior Fullstackalirezarezvani/claude-skills | 28k | 1 repos | ~3.7k | Automated safety check: Notes | MIT | |
| Senior Fullstackborghei/Claude-Skills | 881 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Arch Wikiahmedemad3/arch-wiki | 249 | — | ~5.1k | Automated safety check: Pass | None | |
| PayRam Checkout IntegrationPayRam/payram-mcp | 158 | — | ~3.4k | Automated safety check: Notes | None | |
| Ag2 Ag UIag2ai/build-with-ag2 | 252 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 |
alirezarezvani/claude-skills
Fullstack development toolkit with project scaffolding for Next.js, FastAPI, MERN, and Django stacks, code quality analysis with security and complexity scoring, and stack selection guidance.
borghei/Claude-Skills
Fullstack development toolkit with project scaffolding for Next.js/FastAPI/MERN/Django stacks and code quality analysis.
ahmedemad3/arch-wiki
Scans any project codebase for new/changed modules, endpoints, middleware, infrastructure, Docker topologies, SQL queries, or permissions and updates docs/architecture/architecture.json.
PayRam/payram-mcp
Adds crypto checkout to a web app with PayRam: create a payment from your backend, send the customer to the payment page, then confirm the result.
ag2ai/build-with-ag2
Expose an AG2 beta Agent over the AG-UI protocol so a frontend (CopilotKit, custom React/Next.js, or any AG-UI client) can stream responses, render tool calls, sync shared state, and surface…
fivetaku/gptaku-plugins-codex
Fetch and explain official documentation for any library, framework, API, or service using an llms.txt-first strategy — triggers on "How do I…", "What is…", "How does X work", "Best practice for…"…
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 adding interactivity to a server-rendered app (FastAPI/Jinja, Django, Rails, Laravel, Go templates, Express) without adopting a JS framework — hx-get/post/put/delete…. Htmx is an agent skill from ericrisco/rsc-harness. Use when adding interactivity to a server-rendered app (FastAPI/Jinja, Django, Rails, Laravel, Go templates, Express) without adopting a JS framework — hx-get/post/put/delete with hx-target, hx-swap and hx-trigger, returning HTML fragments instead of JSON, out-of-band swaps, active search, infinite scroll, inline edit and polling.
Htmx fits situations like: adding interactivity to a server-rendered app (FastAPI/Jinja; express) without adopting a JS framework — hx-get/post/put/delete with hx-target; hx-swap and hx-trigger; returning HTML fragments instead of JSON.
Run `npx skills add ericrisco/rsc-harness --skill htmx -a claude-code`. Or copy the skill folder (skills/htmx in ericrisco/rsc-harness) into .claude/skills/htmx in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill htmx -a codex`. Or copy the skill folder (skills/htmx in ericrisco/rsc-harness) into .agents/skills/htmx 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 htmx -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/htmx, .gemini/skills/htmx, .github/skills/htmx and .opencode/skills/htmx in your project.
Going by SKILL.md and its folder, Htmx needs a shell for the scripts in its folder. Our summary lists: Python 3; A Bash shell.
SKILL.md names 1 domain. In commands or code: unpkg.com; the agent is likely to contact it when it follows the instructions. 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.
Htmx 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.4k tokens (SKILL.md is roughly 14k 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.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Htmx: Senior Fullstack (alirezarezvani/claude-skills, 28k stars), Senior Fullstack (borghei/Claude-Skills, 881 stars), Arch Wiki (ahmedemad3/arch-wiki, 249 stars) and PayRam Checkout Integration (PayRam/payram-mcp, 158 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 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 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.