Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Answer a question about Rigor from version-matched bundled docs and tool output.
$ npx skills add rigortype/rigor --skill rigor-ask -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rigortype/rigor rigor-ask --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-ask .claude/skills/rigor-ask && 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-ask" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-ask into .claude/skills/rigor-ask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ask", 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-askType 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-ask -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rigortype/rigor rigor-ask --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-ask .agents/skills/rigor-ask && 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-ask" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-ask into .agents/skills/rigor-ask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ask", 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-ask -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rigortype/rigor rigor-ask --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-ask .cursor/skills/rigor-ask && 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-ask" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-ask into .cursor/skills/rigor-ask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ask", 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-ask--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-ask -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rigortype/rigor rigor-ask --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-ask .gemini/skills/rigor-ask && 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-ask" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-ask into .gemini/skills/rigor-ask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ask", 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-askInstalls 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-ask -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-ask .github/skills/rigor-ask && 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-ask" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-ask into .github/skills/rigor-ask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ask", 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-ask -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-ask --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-ask .opencode/skills/rigor-ask && 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-ask" agent skill from https://github.com/rigortype/rigor/tree/master/skills/rigor-ask into .opencode/skills/rigor-ask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rigor-ask", 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-askAnswer a question about Rigor from version-matched bundled docs and tool output.
Rigor Ask is an agent skill from rigortype/rigor. Answer a question about Rigor from version-matched bundled docs and tool output. Use when the user asks why a diagnostic fired, how a type/config/flag works, or how Rigor compares with another tool; not when they ask you to set up, fix, or reduce something.
Its SKILL.md is about 2.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.
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:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
rigor.typedduck.failFrom 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 Ask loads about 2.9k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,496 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,496 words, ~2,880 tokens.
.claude/skills/rigor-ask/SKILL.md (or your agent's skills folder).Someone has a question about Rigor. It might be about a diagnostic, the type model, a flag, how Rigor stacks up against another type checker, whether Rigor can handle their framework, how to type a method — or just "what is this, and should I use it?" Whatever it is, answer from the source, not from memory.
Two things make that easy, and you have both offline:
rigor docs serves the full
handbook and manual, always matching the user's installed version, no
network. This is the authoritative copy: a rule's exact firing
condition, a flag's spelling, a config default — all drift release to
release, and rigor docs is the copy that shipped with this install,
so an answer drawn from it cannot disagree with the binary they run.rigor check / annotate /
type-of / triage / coverage answer from what Rigor inferred. A
concrete inferred type beats any abstract explanation.This is the user's shortcut: they only ever need to remember three
skills — rigor-next-steps ("what should we do next?"),
rigor-ask ("answer this about Rigor"), and rigor-type-oracle
("before you write a type, ask Rigor"). They ask in plain language; you
turn it into the right lookup or analysis so they never have to remember
the command.
The doc-page names and command flags below are a snapshot; Rigor's pages
and CLI move release to release, and a vendored copy of this skill (e.g.
added via npx skills) lags further still. Treat the tables as
orientation, then confirm against the installed Rigor, which is always
current:
rigor docs --list # the live doc map — what pages exist in THIS version
rigor --help # the live command + flag list
rigor skill --full rigor-ask # the current version of this skill itselfCite a page, flag, or rule id only after you have seen it in this
install — rigor docs, rigor --help, rigor explain, or the gem's own
files (see "If the docs don't cover it"). If rigor is not installed, you
can still answer high-level "what is Rigor?" questions from the web
https://rigor.typedduck.fail/llms.txt, but for anything version-specific
install it first (see rigor-next-steps).
Everything here is read-only and needs no network.
| Command | Use |
|---|---|
rigor docs | The offline doc index (llms.txt) — the map. Start here when you don't know which page. |
rigor docs --list [manual|handbook] | List every bundled page with its path (optionally one category). |
rigor docs <name> | Print a page. <name> is a category-qualified path (handbook/03-narrowing), a prefixed basename (03-narrowing), or a unique short name (narrowing). Pages that exist in both trees (e.g. plugins) must be qualified — manual/07-plugins vs handbook/09-plugins. |
rigor explain <rule> | The catalogue entry for a diagnostic id (rigor explain call.undefined-method) — what it means, why it fires, how to address it. |
| Command | Use |
|---|---|
rigor check <path> | Run the analysis. Scope it to a file or directory for a quick answer — don't analyse the whole project just to settle one question. --format json exposes structured fields (receiver_type, method_name, evidence_tier, …). |
rigor annotate <file> | Reprint the file with the inferred type of each line in the margin — what Rigor actually sees. |
rigor type-of <file>:<line>:<col> | The inferred type at one position. |
rigor triage | Cluster the project's diagnostics by rule / receiver / method — for "what's the shape of my errors?". |
rigor coverage [--protection] | Type / type-protection coverage — for "how well-typed is this?" and "where are the holes?". |
rigor plugins | Which plugins are installed and enabled here — the honest answer to "does Rigor support <gem/framework>?". |
rigor sig-gen <path> | Generate RBS for code — for "how do I type this?". Offer it and show the result — generated RBS is derived; hand-written RBS is a guess until rigor check agrees (see rigor-type-oracle). |
Classify the question, then go to the page(s) — and, for anything about
their code, the command(s) — that own it. When unsure where a page is,
rigor docs (the index) or rigor docs --list handbook routes you.
| The question is about… | Go to |
|---|---|
| A specific diagnostic — "why is this flagged?", "what does this error mean?", "is this a false positive?" | rigor explain <rule>, then rigor docs diagnostics. If it's their code, also rigor annotate <file> / rigor type-of to see the inferred types the rule fired on. |
The type model / a concept — narrowing, refinements, tuple & hash shapes, Dynamic, RBS interop, lightweight HKT | The handbook: rigor docs --list handbook, then the chapter — handbook/03-narrowing, 04-tuples-and-shapes, 07-rbs-and-extended, 12-lightweight-hkt, … |
| Operating Rigor — a config key, CLI flag, baseline, plugins, CI, caching | The manual: rigor docs configuration, cli-reference, baseline, manual/07-plugins, ci, caching, troubleshooting. |
| How Rigor compares to another tool — Sorbet, Steep, RBS, TypeScript, mypy, PHPStan, TypeProf, Go, Rust, Java/C# | The chapter/appendix written for exactly that: handbook/10-sorbet, appendix-steep, appendix-typescript, appendix-mypy, appendix-phpstan, appendix-typeprof, appendix-rust, appendix-go, appendix-java-csharp (rigor docs --list handbook shows them all). |
| Whether Rigor can do X — generics, Rails, RSpec, a specific gem, concurrency | The handbook for the language feature; for framework/gem support, rigor plugins (what's actually available in this install) plus the per-plugin page rigor docs rigor-<gem> (e.g. rigor docs rigor-sidekiq) and the catalogue rigor docs --list manual. |
| Writing a type / RBS — "how do I type this?", an annotation, a signature | Handbook 07-rbs-and-extended + 11-sig-gen; manual rbs-extended-annotations. Then offer rigor sig-gen <path> to generate it (preferred over hand-RBS) and show the output. |
| What Rigor is / why use it / is it right for me | Handbook 01-getting-started for the pitch, handbook/02-everyday-types for a quick mental model of the type zoo. Ground "is it right for my project" in a scoped rigor check / rigor coverage so they see Rigor on their real code. |
Quote or paraphrase the relevant passage and say which page you drew
from (e.g. "per rigor docs handbook/03-narrowing …"), so the user can
re-read it with the same command. Prefer the doc's own wording over a
remembered approximation. When you ran a command against their code, show
the relevant line of output — a concrete inferred type is more convincing
than prose, and it proves the answer rather than asserting it.
Some questions are a task in disguise: "how do I get Rigor into CI?", "how do I shrink this baseline?", "how do I set Rigor up here?" The useful reply is short: orient the user — what the thing is, the one decision that actually matters, the rough shape of it — then hand the doing to the skill built for it. Resist pasting the full procedure inline (the entire CI workflow YAML, the whole baseline-reduction loop): that skill owns the steps, keeps them correct, and updates as the tool moves, so duplicating them here only bloats the answer and drifts out of date. The line is explaining the thing (yours) versus wiring it in (the setup skill's).
A good hand-off is two or three sentences of orientation plus the pointer:
rigor-next-steps (it probes the project and routes)rigor-ci-setup · editor → rigor-editor-setup · MCP agent → rigor-mcp-setuprigor-baseline-reduce · coverage holes → rigor-protection-upliftrigor-plugin-author · monkey-patch clusters → rigor-monkeypatch-resolve#:, a Sorbet sig, a YARD tag, a doc sentence) → rigor-type-oracleWhen in doubt, give less and point — it respects the user's "three skills
to remember" promise and keeps each answer to the part only rigor-ask
can give.
The bundled set is the drive-Rigor corpus (manual + handbook). The
normative type specification, the internal spec, and the ADRs are
contributor-facing and stay web-only — they are not in rigor docs; if
a question genuinely needs them, say so and point at
https://rigor.typedduck.fail/llms.txt rather than guessing.
But before you defer, remember Rigor installs from RubyGems with its
full source — the per-plugin pages under the gem's docs/manual/plugins/,
the analyzer and plugin code under lib/. For a detail no doc page spells
out (a plugin's exact rule, a default baked into the code), reading the
bundled file directly is a perfectly good way to ground the answer, and
beats a guess. The rule that never bends: never invent a flag, rule id,
config key, behaviour, or command output — read the page, read the
source, or run the command, and quote only output you actually saw. A
confident wrong answer about a type checker is worse than "let me check."
A diagnostic on their code — "Why is Rigor flagging s.lenght?"
rigor explain call.undefined-method # what the rule means and why it fires
rigor annotate demo.rb # the inferred type of `s` on that lineAnswer from both: Rigor inferred a concrete String receiver for s,
and String has no lenght (a typo for length) — grounded in what
annotate showed, not in a guess.
A comparison — "How is Rigor different from Sorbet?"
rigor docs handbook/10-sorbet # the chapter written for thisAnswer from the chapter's framing (RBS-superset, gradual Dynamic,
inference-first) rather than a remembered summary, and name it so they
can read on.
A capability — "Does Rigor understand our Sidekiq workers?"
rigor plugins # is rigor-sidekiq enabled in THIS project?
rigor docs rigor-sidekiq # the per-plugin page: what it teaches RigorAnswer from what's actually installed, plus — if useful — a scoped
rigor check app/workers so they see Rigor on their real workers.
Authoring — "How do I type this method?"
rigor sig-gen path/to/file.rb # generate the RBS, show it
rigor docs handbook/07-rbs-and-extendedGenerate it, show the signature, and explain it from the handbook — preferring sig-gen's output over hand-written RBS.
© 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 skills/rigor-ask of rigortype/rigor.
Open the folder on GitHubat commit 57a67cf
Rigor Ask 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 Ask this skillrigortype/rigor | 106 | — | ~2.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
Answer a question about Rigor from version-matched bundled docs and tool output. Rigor Ask is an agent skill from rigortype/rigor. Answer a question about Rigor from version-matched bundled docs and tool output.
Rigor Ask fits situations like: the user asks why a diagnostic fired; how a type/config/flag works; how Rigor compares with another tool; not when they ask you to set up.
Run `npx skills add rigortype/rigor --skill rigor-ask -a claude-code`. Or copy the skill folder (skills/rigor-ask in rigortype/rigor) into .claude/skills/rigor-ask in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rigortype/rigor --skill rigor-ask -a codex`. Or copy the skill folder (skills/rigor-ask in rigortype/rigor) into .agents/skills/rigor-ask 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-ask -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-ask, .gemini/skills/rigor-ask, .github/skills/rigor-ask and .opencode/skills/rigor-ask in your project.
Going by SKILL.md and its folder, Rigor Ask needs the command-line tools its instructions call (npx). Our summary lists: Node.js.
SKILL.md names 1 domain. As links in the text: rigor.typedduck.fail. 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 Ask 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 2.9k tokens (SKILL.md is roughly 12k 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 Ask: 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.