Borrowing it
Nothing to install: this file belongs to rigortype/rigor. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/rigortype/rigor/master/.claude/skills/rigor-lane/SKILL.mdgit clone --depth 1 https://github.com/rigortype/rigorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rigortype/rigor/rigor-lane)<a href="https://agentmods.dev/skills/rigortype/rigor/rigor-lane"><img src="https://agentmods.dev/badge/skills/rigortype/rigor/rigor-lane/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rigortype/rigor/rigor-lane"><img src="https://agentmods.dev/badge/skills/rigortype/rigor/rigor-lane.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00065 | $0.01946 |
| Opus 5.5 | $0.00026 | $0.00778 |
| Sonnet 5.5 | $0.00013 | $0.00389 |
| Haiku 4.5 | $0.00006 | $0.00195 |
Grade A, and why
rigor-lane scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 115 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Implement one issue as a lane
You are a lane: one issue, one worktree, one Draft PR. The coordinator plans the batch, reviews your
PR and lands it (docs/agents/parallel-lanes.md). The brief gives you the issue, the worktree
branch, any decision already settled and anything withdrawn; this skill gives you everything else. A
brief that contradicts this skill wins for that lane.
Before you write code
- Create the worktree the brief names with
nix develop --command bin/rigor-worktree <branch> origin/master(add--with-referenceswhen a gate you run readsreferences/) and work only there. - Reproduce the issue on the fresh
origin/master. When the premise is already fixed, or the work needs a decision on contribution-flow.md's serious list, stop and report; open no PR.
While you work
- Scope. Change only what the issue asks. Report anything wider for the coordinator to file. Leave
the review,
gh pr ready, the merge,bin/land-prand other PRs to the coordinator, whateverAGENTS.mdsays about landing. - Environment. Every command through
nix develop --command; stdin from/dev/nullfor rspec andrigor; this worktree'sbundle exec exe/rigoras the oracle;references/read-only; scratch files under the worktree'stmp/. Nogit stash, nogit submodule deinit, nopkill/killall; stop only processes you started, and leave none running when you report. No version bump, no edit toCHANGELOG.md, neverrake release. Leave# rigor:and# rubocop:lines alone; in fixtures they are suppression directives. A survey target gets a private copy (docs/agents/measurement.md); run one heavy job at a time. - Commits. Use the configured identity: never
--author=orGIT_AUTHOR_*/GIT_COMMITTER_*. Add no tool attribution trailers. A fix of an external report carries the reporter'sCo-Authored-Bytrailer from the brief on every fix commit, the fragment included, and the fragment ends withthank you @handle!(docs/agents/contribution-flow.md§ "Branches and pull requests"). - Gate.
make verify-changed </dev/nullin the foreground, re-run after the last edit. Nevermake verify,make checkor the whole suite. A change to dispatch, scope resolution or the discovery tables also runsspec/rigor/scope/ancestry_walker_detection_spec.rbandspec/rigor/declaration_facts/producers_spec.rb. - Mutation table. For every new or changed example, remove the line of the fix it pins and show it
fails: commit first, mutate with
perl -pi -e(the Flake'ssed -i ''edits nothing), prove the edit withgit diff --stat, restore withgit checkout HEAD -- <path>. An example that survives every removal is a labelled guard or is rewritten. The shapes that survive are indocs/agents/measurement.md§ "Specs and gates that pass without checking". - Honest gates. When a provenance pin, residue count or other gate moves, stop and report the row
and what
rigor sig-gen --printproposes. A# sig-gen gap:or# authored:marker, agap_issues.ymlrow or a moved pin needs the brief's authorisation; the rules are ADR-107 anddocs/agents/type-authoring.md. Copy no type into a declaration without checking it against every write site. Code keeps the shape it would have without the gate. Keep each rewritten spec's original assertion. - Engine cost. For an engine change, run
tool/engine_alloc_ab.rbagainst the merge base. A rise abovepr_allocations_pctinbench/thresholds.ymlis reported with where it comes from; the coordinator decides whether it lands (docs/agents/parallel-lanes.mdstep 6). - Reach. After deleting or renaming a method,
git grep --untracked -nw <name> -- ':!references'. - Claims. The PR body, doc edits and changelog fragment say what the specs pin and no more. A
binding doc under
docs/type-specification/ordocs/internal-spec/changes with the behaviour. Every user-facing change gets achangelog.d/fragment, in a second push once the PR exists. Afixedfragment needs the broken behaviour to have shipped: find the commit that introduced it (git log -S, blame or bisect), andgit merge-base --is-ancestor <commit> "$(git describe --tags --abbrev=0 origin/master)"must exit 0; an unshipped regression gets none. A new CLI output form is run as a user would: against the command's documented contract (1-based columns, argument order), combined with its other input forms, and past any cap it adds.cli.rb's help anddocs/manual/change in the same PR;make docs-checkcovers neither. - Decisions. Make only the decisions the brief delegates, and record each in an
approval-queue.d/entry (its README has the format). Stop and report every other open choice for the coordinator to rule on. - Known limits. When the PR deliberately gives up soundness or precision that a later change
could win back (a floor that drops a fact, a decline to
Dynamic, a cap, a rule or guard that withholds findings), add a "Known limits" section to the PR body with, per limit, its Kind, Why, Cost (a minimal example) and Revisit when (docs/agents/triage-labels.md§ "Known limitations"), and name each in a few words on the report'sKnown limitsline, not again under "for the coordinator to file". Re-send the line with a fix-round reply whenever it changes. An ordinary fallback for a shape the issue never asked about is not a known limit, and neither is one nobody will lift: say that in the spec instead. - Closing keywords.
Fixes #Nonly when the PR closes all of #N, on its own line, in the PR body and commit messages alike; otherwiseRefs #N. Start every GitHub body with a one-line note that it was AI-generated.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · -4 tokens per session 8fcced1b6289
- 5d ago Changed · +9 lines 2224822a8bb8
- 11d ago First seen · 106 lines · 69 tokens per session scan A 9116ed073945
rigor-lane is a skill published in the GitHub repository rigortype/rigor (107 stars, last pushed today), licensed MPL-2.0. It adds 65 tokens to every session and 1,946 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-26.
rigor-lane compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| rigor-lanerigortype/rigor | Skill | 107 | today | MPL-2.0 | A | 65 | Claude Code |
| merge-batchdiegosouzapw/OmniRoute | Skill | 83k | 5d ago | MIT | A | 46 | Claude Code |
| prowler-commitprowler-cloud/prowler | Skill | 15k | yesterday | Apache-2.0 | A | 44 | Claude Code, Codex |
| gh-auth-isolationgithub/gh-aw | Skill | 5.6k | today | MIT | A | 20 | Claude Code, Codex |
| github-skillzeenie-ai/OpenCompany | Skill | 1.1k | yesterday | MIT | A | 51 | Claude Code |
| comet-githubrpamis/comet | Skill | 3.3k | today | MIT | A | 72 | Claude Code, Codex |
| re0-mergeLilMGenius/paperthin | Skill | 1.4k | 4d ago | MIT | A | 70 | Claude Code |