Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Assess and, when necessary, author a Rigor sub-plugin for an FFI-binding gem.
$ npx skills add rigortype/rigor --skill rigor-ffi-plugin-author -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rigortype/rigor rigor-ffi-plugin-author --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/rigortype/rigor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/rigor-ffi-plugin-author .claude/skills/rigor-ffi-plugin-author && 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 "rigor-ffi-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/.claude/skills/rigor-ffi-plugin-author into .claude/skills/rigor-ffi-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ffi-plugin-author", 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/rigortype/rigor/tree/master/.claude/skills/rigor-ffi-plugin-authorType 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 rigortype/rigor --skill rigor-ffi-plugin-author -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rigortype/rigor rigor-ffi-plugin-author --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rigortype/rigor.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/rigor-ffi-plugin-author .agents/skills/rigor-ffi-plugin-author && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "rigor-ffi-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/.claude/skills/rigor-ffi-plugin-author into .agents/skills/rigor-ffi-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ffi-plugin-author", 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 rigortype/rigor --skill rigor-ffi-plugin-author -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rigortype/rigor rigor-ffi-plugin-author --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rigortype/rigor.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/rigor-ffi-plugin-author .cursor/skills/rigor-ffi-plugin-author && 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 "rigor-ffi-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/.claude/skills/rigor-ffi-plugin-author into .cursor/skills/rigor-ffi-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ffi-plugin-author", 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/rigortype/rigor.git --path .claude/skills/rigor-ffi-plugin-author--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 rigortype/rigor --skill rigor-ffi-plugin-author -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rigortype/rigor rigor-ffi-plugin-author --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rigortype/rigor.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/rigor-ffi-plugin-author .gemini/skills/rigor-ffi-plugin-author && 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 "rigor-ffi-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/.claude/skills/rigor-ffi-plugin-author into .gemini/skills/rigor-ffi-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ffi-plugin-author", 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 rigortype/rigor rigor-ffi-plugin-authorInstalls 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 rigortype/rigor --skill rigor-ffi-plugin-author -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rigortype/rigor.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/rigor-ffi-plugin-author .github/skills/rigor-ffi-plugin-author && 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 "rigor-ffi-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/.claude/skills/rigor-ffi-plugin-author into .github/skills/rigor-ffi-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ffi-plugin-author", 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 rigortype/rigor --skill rigor-ffi-plugin-author -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rigortype/rigor rigor-ffi-plugin-author --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rigortype/rigor.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/rigor-ffi-plugin-author .opencode/skills/rigor-ffi-plugin-author && 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 "rigor-ffi-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/.claude/skills/rigor-ffi-plugin-author into .opencode/skills/rigor-ffi-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ffi-plugin-author", 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.
rigor-ffi-plugin-authorAssess and, when necessary, author a Rigor sub-plugin for an FFI-binding gem.
Rigor Ffi Plugin Author is an agent skill from rigortype/rigor. Assess and, when necessary, author a Rigor sub-plugin for an FFI-binding gem. Use when FFI wrappers remain Dynamic beyond core rigor-ffi; not for bundled FFI plugin edits, which use rigor-plugin-author.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development. The repository describes itself as: Inference-first static analysis for Ruby. The licence is MPL-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 57a67cf. 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.
Shell commands in SKILL.md call:
gemgitFrom 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.
Rigor Ffi Plugin Author loads about 3.9k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 1,792 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); files beside SKILL.md are not scanned.
The full file from rigortype/rigor at commit 57a67cf, republished under its MPL-2.0 licence (© rigortype). 1,792 words, ~3,889 tokens.
.claude/skills/rigor-ffi-plugin-author/SKILL.md (or your agent's skills folder).Sub-plugin for FFI-binding gems. Starts with an assessment phase that
will talk you out of authoring a plugin if core rigor-ffi already
covers the gem — that's the point. Plugins only exist where the four
binding-recovery hazards documented in ADR-30
appear.
Trigger when the user wants to type FFI bindings on a gem that isn't
already one of the four bundled consumers (rigor-rbnacl,
rigor-ethon, rigor-ffi-rzmq, rigor-sassc). Typical asks:
libacme Ruby gem wraps libacme via FFI; the wrapper
class methods all type as Dynamic[Top]."ffi gem."ffx translator complains about our binding file — can Rigor
catch this statically?"Do NOT trigger for:
rigor-rbnacl / rigor-ethon /
rigor-ffi-rzmq / rigor-sassc — use the general
rigor-plugin-author SKILL or
treat as ordinary edit work.rigor-ffi engine changes (the BindingRecognizer
extension point, the typedef-nominal heuristic, the ffx.unsupported-*
diagnostic family) — those are core development under
lib/rigor/, not plugin authoring.rb_define_method in ext/*.c) — no
Ruby-side static handle; out of scope per ADR-30 WD8.rigor-fiddle SKILL / plugin
family (sibling, not in scope here).Check the gem against this table. If every row is "core suffices", the SKILL terminates with "declare the dependency and stop — no plugin needed." This is the most common outcome; resist the pull to author a plugin pre-emptively.
| Question about the wrapped gem's source | Answer | Verdict |
|---|---|---|
Does the binding file use literal attach_function :name, [args], ret calls (no wrapping DSL like sodium_function)? | yes | core suffices |
| no (custom DSL) | needs plugin — BindingRecognizer registration (ADR-30 WD2) | |
Are the bindings in this gem's lib/, or in a sibling gem (like ffi-rzmq-core for ffi-rzmq)? | this gem | core suffices |
| sibling gem | needs plugin — either ADR-25 bundled RBS or wait on ADR-10 progress | |
Are method names generated dynamically from an option catalog (define_method over iterate option_table)? | no | core suffices |
| yes (ethon-style) | needs plugin — ADR-16 Tier B/C | |
Does the high-level wrapper class layer add semantics richer than what the FFI primitive return type captures (e.g. "this :pointer is always a 32-byte signing-key buffer")? | no — wrapper is a thin pass-through | core suffices |
| yes — wrapper carries domain invariants the FFI types don't | plugin recommended for RBS refinement (the wrapper still types correctly without the plugin, just less precisely) | |
Does the gem use typedef :pointer, :handle_name aliases for opaque pointers? | yes — names follow _ptr / _handle / Ptr / Handle | core suffices (heuristic per ADR-30 WD4) |
yes — a name matches the pattern but should stay a plain :pointer | core suffices; add the alias to the rigor-ffi plugin's exceptions: config in .rigor.yml |
Vanilla case (most common). The gem just declares
attach_function :acme_open, [:string], :pointer plus a thin
MyCorp::Acme#initialize(path) that stores the result. The user-
facing class methods type correctly via ordinary inference. No
plugin needed — just list the gem under dependencies: in
.rigor.yml so the binding file is in ADR-10 scope.
Stop here if Phase 1 says core suffices. Don't author.
Per ADR-31
(project-wide plugin contribution policy), the default for all
new plugins — private, public, anyone — is the same: author the
plugin as a third-party rigor-<gem> gem in your own repo,
depending on gem "rigortype" (ADR-31 WD4).
There is no path to land a new plugin via a pull request to this
monorepo.
Three options depending on your context:
rigor-<gem> in its own repo. The clean choice
for OSS gems and for internal gems consumed by multiple projects.gem "rigor-<acme>" from
your company's internal gem index). Same shape as standalone but
not published to rubygems.org.lib/rigor/plugins/rigor-<gem>/.
Simplest for single-project use; no separate gem to maintain.This SKILL is procedural — it doesn't care which of the three you pick. Continue to Phase 3+ inside whichever tree you chose.
If the wrapped gem reaches significant community adoption (ADR-31 WD3), you can file an issue at rigortype/rigor proposing the plugin for bundling. The issue should include:
If accepted, the Rigor team re-implements the plugin in
plugins/rigor-<gem>/ from scratch (ADR-31 WD2).
Your contribution is credited via Co-authored-by: in the
implementation commit(s) (GitHub renders the co-author on the commit
and counts it toward your profile). The supply-chain rationale —
maintainers must author every line of code that ships in the
rigortype gem — is the reason this isn't a PR-merge.
In rare cases where re-implementation would be strictly redundant
with a well-shaped third-party plugin (significant adoption,
maintenance-transfer willingness, code-style match, MPL-2.0
license or relicensable), git subtree merge is available as an
option (ADR-31 WD5)
to absorb your plugin while preserving its git history. This is
not a path to plan around — default expectation is "your plugin
stays in your repo, indefinitely."
The procedural shape is gem-type-agnostic. Use the existing
rigor-plugin-author SKILL for:
lib/ / demo/ / README.md / CHANGELOG.md).Plugin::Base subclass skeleton.spec/integration/ for an in-repo plugin or
under your gem's own spec/ tree for the standalone case.watch: for directory globs).tmp/-anchored cache + per-demo .gitignore.Gemspec note — wrapped-gem version pinning. Pin the wrapped FFI gem's version range in your plugin's gemspec:
spec.add_dependency "acme", "~> 1.4" # match the version your bindings targetWhen the wrapped gem releases a new version that changes its
attach_function declarations, RBS surface, or DSL shape, the
plugin author tracks the change by updating the plugin in their
own repo (ADR-31 WD4).
Orphan-plugin risk (the wrapped gem evolves, the plugin doesn't)
is the plugin author's responsibility, not Rigor's. The version
pin makes the supported-wrapped-version boundary explicit so
downstream users get a clean resolution failure rather than a
silently wrong recognition.
The FFI-specific divergences are documented in Phase 4 below.
The extension points live in
plugins/rigor-ffi/lib/rigor/plugin/ffi/;plugins/rigor-rbnaclis the reference DSL recognizer. Read them for current signatures before relying on the sketches below.
attach_function)If Phase 1 row 1 said "needs plugin — custom DSL", register a
Plugin::FFI::BindingRecognizer. The recognizer takes an AST node
(Prism::CallNode-shaped) and returns zero or more synthesized
attach_function facts:
class Rigor::Plugin::Acme < Rigor::Plugin::Base
ffi_binding_recognizer :acme_function do |node, module_name|
# node: Prism::CallNode for `acme_function :foo, :c_foo, [:int]`
# module_name: the enclosing module's name, or nil
# Return Array<AttachFunctionFact> or [] if not a match.
next [] unless node.name == :acme_function
args = node.arguments&.arguments || []
next [] if args.size != 3
Rigor::Plugin::FFI::AttachFunctionFact.new(
ruby_name: args[0].unescaped.to_sym,
c_name: args[1].unescaped.to_sym,
arg_types: args[2].elements.map(&:unescaped).map(&:to_sym),
return_type: :int,
)
end
endThe core processes the synthesized facts through the same pipeline as
literal attach_function calls.
For domain-invariant returns the FFI primitive type can't express,
ship hand-authored RBS via signature_paths: (ADR-25):
class Rigor::Plugin::Acme < Rigor::Plugin::Base
manifest(id: "acme", version: "0.1.0", description: "Rigor support for acme",
signature_paths: ["sig"])
endThe RBS lives at sig/rigor-acme.rbs inside the plugin and refines
the wrapper class:
module MyCorp
class Acme
def initialize: (String path) -> void
def signing_key: () -> String # always 32-byte binary
end
endffx target awareness (optional)If the wrapped gem is authored for ffx (or dual-target), Phase 1's
assessment is identical — ffx is a strict subset of the ffi gem
(ADR-30 addendum).
The plugin doesn't need ffx-specific logic; the core's
ffx.unsupported-* diagnostic family handles ffx-incompatible
declarations automatically when an extconf.rb / Gemfile.lock
signal is detected (WD5+WD6).
The demo project should:
require the wrapped FFI gem.lib/ example exercising every binding shape the
recognizer matches..rigor.yml activating the plugin.call.wrong-arity instead of Dynamic[Top]-silenced).Integration spec covers:
attach_function (i.e. a synthesised binding and a
literal binding produce identical downstream behaviour).Mirror the bundled-four spec patterns as a reference — copy the
structure from whichever of rigor-rbnacl (DSL recognizer) /
rigor-ethon (option catalog) / rigor-sassc (literal + nominal
typedef) is closest to your gem's shape.
The plugin lives in your repo (per Phase 2). Verify via
rigor check against real code that depends on the wrapped gem —
the success criterion is "wrapper class methods that previously
typed Dynamic[Top] now type concretely."
For a published standalone gem: cut a release per your own
release process. For an inline (lib/rigor/plugins/) layout: no
release process — the plugin is consumed in-tree.
If the wrapped gem reaches significant community adoption later
(ADR-31 WD3),
file an issue per Phase 2's "propose for bundling" template. The
Rigor team evaluates the request; if accepted, they re-implement
the plugin from scratch in plugins/rigor-<gem>/, crediting your
work via Co-authored-by: in the implementation commit(s)
(ADR-31 WD2).
You don't open a PR for a new bundled plugin — new bundled
plugins are classified as sweeping changes under
ADR-31 WD1
and go through the issue-first route. The re-implementation is
by Rigor team only; the rationale is the supply-chain + review-
capacity argument in ADR-31 WD1. (Bug fixes to your own
third-party plugin land in your own repo; bug fixes to existing
bundled plugins/rigor-* from the rigor monorepo are welcome as
minor direct PRs per ADR-31's direct-PR path.)
dependencies: in .rigor.yml. Done.rigor check shows concrete types
where it previously showed Dynamic[Top], wrapped-gem version
pin in place. Done.Co-authored-by: attribution lands in the implementation
commit(s).© rigortype, MPL-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 .claude/skills/rigor-ffi-plugin-author of rigortype/rigor.
Open the folder on GitHubat commit 57a67cf
Rigor Ffi Plugin Author 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 |
|---|---|---|---|---|---|---|
| Rigor Ffi Plugin Author this skillrigortype/rigor | 106 | — | ~3.9k | Automated safety check: Pass | MPL-2.0 | |
| Vercel Composition Patternssupabase/supabase | 111k | 59 repos | ~726 | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Typescript Advanced Typesrolling-scopes/rsschool-app | 10k | 25 repos | ~4.2k | Automated safety check: Pass | MPL-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT |
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
rolling-scopes/rsschool-app
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
rigortype/rigor
Measure Rigor's baseline drift across the tagged history of a real OSS Ruby project.
rigortype/rigor
Adjudicate a rigor unused report safely before proposing dead-code removal.
rigortype/rigor
Reduce an existing .rigor-baseline.yml rule by rule by triaging sites, fixing or intentionally suppressing them, and regenerating the baseline.
rigortype/rigor
Validate that a project's Rigor configuration, plugins, paths, and baseline are actually healthy.
rigortype/rigor
Author a new Rigor plugin, choosing plugins/ for production support or examples/ for a contract walkthrough.
rigortype/rigor
Author a Rigor plugin in an adopting project or standalone rigor- gem for a DSL, framework, or metaprogramming pattern.
Categories
Assess and, when necessary, author a Rigor sub-plugin for an FFI-binding gem. Rigor Ffi Plugin Author is an agent skill from rigortype/rigor. Assess and, when necessary, author a Rigor sub-plugin for an FFI-binding gem.
Rigor Ffi Plugin Author fits situations like: FFI wrappers remain Dynamic beyond core rigor-ffi; not for bundled FFI plugin edits; which use rigor-plugin-author.
Run `npx skills add rigortype/rigor --skill rigor-ffi-plugin-author -a claude-code`. Or copy the skill folder (.claude/skills/rigor-ffi-plugin-author in rigortype/rigor) into .claude/skills/rigor-ffi-plugin-author in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rigortype/rigor --skill rigor-ffi-plugin-author -a codex`. Or copy the skill folder (.claude/skills/rigor-ffi-plugin-author in rigortype/rigor) into .agents/skills/rigor-ffi-plugin-author 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 rigortype/rigor --skill rigor-ffi-plugin-author -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rigor-ffi-plugin-author, .gemini/skills/rigor-ffi-plugin-author, .github/skills/rigor-ffi-plugin-author and .opencode/skills/rigor-ffi-plugin-author in your project.
Going by SKILL.md and its folder, Rigor Ffi Plugin Author needs the command-line tools its instructions call (gem and git).
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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Rigor Ffi Plugin Author is published under the MPL-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 16k 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 Rigor Ffi Plugin Author: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 296k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rigortype (a GitHub organization) maintains it in rigortype/rigor, which has 106 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 8, 2026.
Source: rigortype/rigor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.