pr-to-lint-rule

pr-to-lint-rule is a skill for Claude Code from zernie/vigiles. It costs 25 tokens per session (427 once invoked), scanned A, original, MIT.

A coding workflow that turns a repeated pull-request review comment into a tested lint rule, which automatically checks code for that pattern.

In plain words
What is it for?
Use it to inspect a project's language, linter, and test setup, create a matching rule with tests, and record the rule in CLAUDE.md.
Why use it?
It removes the need to repeat the same review advice manually and helps prevent the mistake before code reaches review.

Skill for Claude Code

Written for Claude Code: disable-model-invocation in frontmatter. Also seen: mentions CLAUDE.md.

Part of the vigiles plugin — 28 skills, 4 hooks, 2 plugins shipped together

Good fit Use it to inspect a project's language, linter, and test setup, create a matching rule with tests, and record the rule in CLAUDE.md.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/zernie/vigiles/examples
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add zernie/vigiles --skill examples
Clone the repo
git clone --depth 1 https://github.com/zernie/vigiles

Made for: Claude Code.

Or install vigiles, the plugin that ships this one along with the rest of its 28 skills, 4 hooks, 2 plugins.

Wrote 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.

agentmods badge for pr-to-lint-rule

README.md
[![agentmods](https://agentmods.dev/badge/skills/zernie/vigiles/examples/github.svg)](https://agentmods.dev/skills/zernie/vigiles/examples)
Your own site
<a href="https://agentmods.dev/skills/zernie/vigiles/examples"><img src="https://agentmods.dev/badge/skills/zernie/vigiles/examples/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.

agentmods 80×15 button for pr-to-lint-rule

Your own site · 80×15
<a href="https://agentmods.dev/skills/zernie/vigiles/examples"><img src="https://agentmods.dev/badge/skills/zernie/vigiles/examples.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 25 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 427 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00025 $0.00427
Opus 5.5 $0.00010 $0.00171
Sonnet 5.5 $0.00005 $0.00085
Haiku 4.5 $0.00003 $0.00043

Measured 1mo ago against content hash 8711faa254b4, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

pr-to-lint-rule 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 1mo ago.

The scan reads SKILL.md. This mod also ships 41 executable files (CLAUDE.md.spec.ts, experimental-emit/emit-server.mjs, experimental-emit/run-emit.mjs, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

examples/SKILL.md · 49 lines

What it actually says

Convert a recurring PR review comment into an automated lint rule.

Arguments

$ARGUMENTS — A natural language description of the pattern to enforce. Examples:

  • "we keep telling people not to import directly from antd, use our design system barrel file instead"
  • "people forget to use our custom logger instead of console.log"
  • "don't use unwrap() in production code, use expect() or proper error handling"
  • "API route handlers must use the withAuth wrapper"

Instructions

You are generating an automated lint rule from a recurring code review pattern. Follow these steps:

Step 1: Detect the Project Language and Toolchain

Look at the repository to determine:

  • Primary language (JS/TS, Python, Rust, Go, Ruby, etc.)
  • Linter in use (ESLint, Ruff, Clippy, golangci-lint, RuboCop, etc.)
  • Testing framework (Vitest, Jest, pytest, cargo test, etc.)
  • Existing custom rules (to match conventions)

If the language or linter cannot be confidently detected, ask the user which language and linter to target before generating anything.

Step 2: Generate the Lint Rule

Based on the detected (or user-specified) language, generate the appropriate rule type.

For JavaScript/TypeScript, generate an ESLint rule using the AST visitor pattern with meta and create(context).

Step 3: Update CLAUDE.md

Add the annotation block. See docs/spec-format.md for the correct format.

Step 4: Verify

Run npm test to ensure the new rule and tests pass.

Files

What ships with it

60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

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.

  1. 1mo ago Changed · -2 lines · +25 tokens per session 8711faa254b4
  2. 1mo ago First seen · 51 lines · 0 tokens per session scan A c92b85b7bfd0

Subscribe to this mod's changes

pr-to-lint-rule is a skill published in the GitHub repository zernie/vigiles (15 stars, last pushed 11d ago), licensed MIT. It adds 25 tokens to every session and 427 once invoked, about $0.0001 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-08-30.

Related

Other skills, from other repositories

pr-test-analyzer

Reviews pull-request test coverage for critical gaps, edge cases, and brittle implementation-coupled tests. Prioritises behavioral coverage over line coverage and rates each finding 1-10 by criticality. Use when reviewing PRs that add or modify functionality and you want to assess whether the accompanying tests are…

jasmedia/cc-pr-reviewer · 67 tokens

verification-before-completion

Use when about to claim work is complete, fixed, or passing, before committing or opening PRs — evidence before assertions. Doctrine skill (preloaded into orc-implementer), not a command — the bundled /verify covers interactive one-off behavioral checks.

HigorAlves/orc · 57 tokens

review-work

Post-implementation gate review: run manual QA on the real surface yourself, then launch ONE gate reviewer (never a panel) to audit goal, constraints, code quality, security, missed context, and QA evidence. Use before a PR handoff or when the user explicitly asks to review completed work.

code-yeongyu/lazycodex · 63 tokens

crit-story

Author a crit story and continue the interactive review loop only when the user explicitly invokes crit-story or directly asks you to generate a crit story. Do not infer this skill from generic review, PR, or diff-review requests.

tomasz-tomczyk/crit · 47 tokens

tdd

Build this test-first, one behavior at a time: $ARGUMENTS.

wesammustafa/Claude-Code-Everything-You-Need-to-Know · 4 tokens

semgrep-rule-variant-creator

Creates language variants of existing Semgrep rules. Use when porting a Semgrep rule to specified target languages. Takes an existing rule and target languages as input, produces independent rule+test directories for each language.

waybarrios/opencode-power-pack · 50 tokens