Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Author a Rigor plugin in an adopting project or standalone rigor- gem for a DSL, framework, or metaprogramming pattern.
$ npx skills add rigortype/rigor --skill rigor-plugin-author -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rigortype/rigor rigor-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/skills/rigor-plugin-author .claude/skills/rigor-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-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-plugin-author into .claude/skills/rigor-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-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/skills/rigor-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-plugin-author -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rigortype/rigor rigor-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/skills/rigor-plugin-author .agents/skills/rigor-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-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-plugin-author into .agents/skills/rigor-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-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-plugin-author -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rigortype/rigor rigor-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/skills/rigor-plugin-author .cursor/skills/rigor-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-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-plugin-author into .cursor/skills/rigor-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-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 skills/rigor-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-plugin-author -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rigortype/rigor rigor-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/skills/rigor-plugin-author .gemini/skills/rigor-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-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-plugin-author into .gemini/skills/rigor-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-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-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-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/skills/rigor-plugin-author .github/skills/rigor-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-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-plugin-author into .github/skills/rigor-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-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-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-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/skills/rigor-plugin-author .opencode/skills/rigor-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-plugin-author" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-plugin-author into .opencode/skills/rigor-plugin-author/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-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-plugin-authorAuthor a Rigor plugin in an adopting project or standalone rigor- gem for a DSL, framework, or metaprogramming pattern.
Rigor Plugin Author is an agent skill from rigortype/rigor. Author a Rigor plugin in an adopting project or standalone rigor- gem for a DSL, framework, or metaprogramming pattern. Use when Rigor needs project-specific extension support; not for onboarding a project, reducing a baseline, or editing Rigor's bundled plugins.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/01-plan-and-scaffold.md`, `references/02-walker-and-types.md` and `references/03-test-and-ship.md`).
It sits in Development. The repository describes itself as: Inference-first static analysis for Ruby. The licence is MPL-2.0.
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:
bundlemakeFrom 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.
Rigor Plugin Author loads about 1.9k tokens when it runs, and up to ~8.6k if it reads all its reference files. Until then it costs about 72 tokens; SKILL.md has 876 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). 876 words, ~1,930 tokens.
.claude/skills/rigor-plugin-author/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Author a Rigor plugin in your own repository — to teach Rigor a
DSL, framework convention, or metaprogramming pattern its core
analyzer cannot follow. The result is either a standalone
rigor-<id> gem or a project-private plugin.
This skill targets external authors: you depend on the published
rigortype gem (bundle add rigortype) and use the public plugin
API surface — Rigor::Plugin::Base and friends. It does not assume
the rigor monorepo's Makefile, spec/integration/ helpers, or Nix
environment.
Authoring inside the rigor monorepo instead? If you are adding a plugin to rigor's own
plugins/orexamples/tree, use the contributorrigor-plugin-authorskill bundled in that repo — it covers the in-repo layout,plugin_helpers.rb, andmake verify. This skill is for plugins that live in your project.
The plugin contract is pre-1.0 and moving (see the next section), so this
skill's step detail — in its references/ files — is exactly the kind that
drifts between releases. Follow the copy that ships with the installed
Rigor rather than any vendored or frozen copy of this file. Get the complete
current procedure (body + all references, inline) in one call:
rigor skill --full rigor-plugin-authorIf you already loaded this skill via rigor skill you have the current
copy — just proceed. If the rigor command is not available, run
rigor-next-steps to install Rigor first, then come back.
Rigor's plugin contract (ADR-2) freezes at rigortype v1.0.0. Until
then, treat each rigortype minor release as potentially
contract-changing:
rigortype to the minor you built against — "~> X.Y.0"
in your gemspec or Gemfile, where X.Y comes from rigor --version.Diagnostic shape, and the type
carriers may shift.Tell the user this up front: a plugin written today is valuable but not yet on a frozen foundation.
rigor pluginYou do not have to learn the Rigor::Plugin::Base surface from this
prose alone. Because Rigor is installed on disk (mise / gem install), every plugin bundled in the toolchain is readable source.
Use it as a worked-example library throughout this skill:
rigor plugin list # all bundled + example plugins, with paths
rigor plugin print rigor-activesupport-core-ext # a plugin's main source, inline
rigor plugin path rigor-units # the dir, to browse with your file tool
rigor plugin root # gem root + public API (lib/rigor/plugin.rb)rigor plugin (singular) browses the toolchain's plugins; rigor plugins (plural) reports your own .rigor.yml activation — different
commands. When a step below is thinner than you need, read a shipped
plugin that does the same thing. (Paths are local to where rigor
runs — see the command's own note about containers.)
Decide where the plugin lives before scaffolding anything.
| Signal | Build it as |
|---|---|
| The DSL/library is reusable across projects, or you want to publish it | Standalone rigor-<id> gem — own repo, own gemspec, RubyGems-publishable |
| The pattern is specific to one application's own code / in-house DSL | Project-private plugin — lives inside the app repo, never published |
Both produce the same plugin class and walker; they differ only in packaging and activation (Phase 1). When unsure, default to project-private — it is less ceremony, and a plugin can always be extracted into a gem later.
Do NOT use this skill for:
.rigor.yml, choosing
plugins) → rigor-project-init.rigor-baseline-reduce.A Rigor plugin is a Ruby class that subclasses Rigor::Plugin::Base,
declares a manifest(id:, version:, …), and calls
Rigor::Plugin.register(self) at load time. When .rigor.yml lists
the plugin under plugins:, Rigor requires it and runs its
node rules: the plugin declares node_rule(Prism::CallNode) { |node, scope, path, _fc, context| … }, and the engine — which owns the single
AST walk per file — hands every matching node to the block along with a
scope it can query for inferred types. The block returns an array of
Rigor::Analysis::Diagnostic (built via the diagnostic helper).
Optionally the plugin also declares dynamic_return(receivers:) /
narrowing_facts(methods:) to supply a return type or narrowing facts
for call sites the core analyzer types as Dynamic.
#diagnostics_for_file is the file-rule surface for whole-file
diagnostics a per-node walk can't express. See Phase 2.
| Phase | What | Reference |
|---|---|---|
| 1 | Package and scaffold — gem vs project-private layout, gemspec / Gemfile, the plugin class skeleton, .rigor.yml activation. | references/01-plan-and-scaffold.md |
| 2 | Node rules — node_rule (engine-owned walk), building Diagnostics via Base#diagnostic, querying scope.type_of, calling the target library directly instead of reimplementing it (ADR-39: Plugin::Inflector, Base.suggest), optional dynamic_return / narrowing_facts, RBS for the DSL. | references/02-walker-and-types.md |
| 3 | Test and ship — fixture-based tests (RSpec / Minitest, no rigor internals), version pinning, README, publish or keep private. | references/03-test-and-ship.md |
| Module | Read | Covers |
|---|---|---|
| 1 | references/01-plan-and-scaffold.md | Phase 1. The gem vs project-private packaging split, directory trees for both, gemspec template, project-private path-gem / RUBYLIB activation, the Rigor::Plugin::Base skeleton, .rigor.yml plugins: wiring. |
| 2 | references/02-walker-and-types.md | Phase 2. The node_rule engine-owned AST walk over Prism nodes, the Base#diagnostic helper, asking the analyzer for inferred types via scope.type_of, two-pass / lexical context (node_file_context / NodeContext), the optional dynamic_return / narrowing_facts return-type hooks, calling the target library's pure methods directly rather than reimplementing them (ADR-39: Plugin::Inflector over the real ActiveSupport::Inflector; Base.suggest for did-you-mean), and shipping sig/*.rbs so the DSL's types are visible. |
| 3 | references/03-test-and-ship.md | Phase 3. Testing a plugin from outside the monorepo — fixture projects driven through rigor check --format json, plus pure unit tests of dispatch tables — with RSpec or Minitest. Version pinning against the pre-1.0 contract. README. Publishing to RubyGems or keeping the plugin private. |
© 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
SKILL.md and 3 other files (references) in skills/rigor-plugin-author of rigortype/rigor.
Open the folder on GitHubat commit 57a67cf
Rigor 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 Plugin Author this skillrigortype/rigor | 106 | — | ~1.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
Audit an existing Rigor plugin against the current authoring contract and produce a prioritized upgrade path.
Categories
Author a Rigor plugin in an adopting project or standalone rigor- gem for a DSL, framework, or metaprogramming pattern. Rigor Plugin Author is an agent skill from rigortype/rigor. Author a Rigor plugin in an adopting project or standalone rigor- gem for a DSL, framework, or metaprogramming pattern.
Rigor Plugin Author fits situations like: rigor needs project-specific extension support; not for onboarding a project; reducing a baseline; editing Rigors bundled plugins.
Run `npx skills add rigortype/rigor --skill rigor-plugin-author -a claude-code`. Or copy the skill folder (skills/rigor-plugin-author in rigortype/rigor) into .claude/skills/rigor-plugin-author in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rigortype/rigor --skill rigor-plugin-author -a codex`. Or copy the skill folder (skills/rigor-plugin-author in rigortype/rigor) into .agents/skills/rigor-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-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-plugin-author, .gemini/skills/rigor-plugin-author, .github/skills/rigor-plugin-author and .opencode/skills/rigor-plugin-author in your project.
Going by SKILL.md and its folder, Rigor Plugin Author needs the command-line tools its instructions call (bundle and make).
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. Review the folder before installing.
Rigor 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 1.9k tokens (SKILL.md is roughly 7.7k 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 6.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Rigor 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.