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.
npx skills add zernie/vigiles --skill examplesgit clone --depth 1 https://github.com/zernie/vigilesWrote 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/zernie/vigiles/examples)<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.
<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>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.00025 | $0.00427 |
| Opus 5.5 | $0.00010 | $0.00171 |
| Sonnet 5.5 | $0.00005 | $0.00085 |
| Haiku 4.5 | $0.00003 | $0.00043 |
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.
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.
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.
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.
- CLAUDE.md 2.5 KB
- CLAUDE.md.spec.ts 3.5 KB runs code
- experimental-emit/emit-server.mjs 2.3 KB runs code
- experimental-emit/README.md 4.3 KB
- experimental-emit/records/emit-tool.json 1.1 KB
- experimental-emit/records/emits-2026-08-13.jsonl 3.1 KB
- experimental-emit/records/prose-baseline-2026-08-13.json 1.7 KB
- experimental-emit/records/rate-limit-event.json 366 B
- experimental-emit/records/trials-2026-08-13.jsonl 900 B
- experimental-emit/run-emit.mjs 11 KB runs code
- experimental-emit/score-emits.mjs 2.8 KB runs code
- frontmatter-CLAUDE.md 1.7 KB
- harness/agent-loop.harness.mjs 4.2 KB runs code
- harness/checks-dogfood.harness.mjs 2.1 KB runs code
- harness/compiled-hook-inprocess.harness.mjs 2.4 KB runs code
- harness/dogfood/adversarial-gate.eval.mjs 5.0 KB runs code
- harness/dogfood/code-quality.trigger.eval.mjs 4.1 KB runs code
- harness/dogfood/debug-my-harness.trigger.eval.mjs 3.0 KB runs code
- harness/dogfood/edit-spec.trigger.eval.mjs 3.0 KB runs code
- harness/dogfood/generate-logo.trigger.eval.mjs 3.1 KB runs code
- harness/dogfood/landing-site.trigger.eval.mjs 4.0 KB runs code
- harness/dogfood/review-docs.trigger.eval.mjs 3.8 KB runs code
- harness/dogfood/reviewer-ab.eval.mjs 6.2 KB runs code
- harness/dogfood/reviewer-ab/prose/.claude-plugin/plugin.json 147 B
- harness/dogfood/reviewer-ab/prose/agents/code-reviewer.md 405 B
- harness/dogfood/reviewer-ab/spec/.claude-plugin/plugin.json 161 B
- harness/dogfood/reviewer-ab/spec/agents/code-reviewer.md 754 B
- harness/dogfood/reviewer-ab/spec/agents/code-reviewer.md.spec.ts 1.5 KB runs code
- harness/dogfood/screenshot.trigger.eval.mjs 3.8 KB runs code
- harness/dogfood/ship-a-feature.trigger.eval.mjs 3.2 KB runs code
- harness/dogfood/skill-firing-cheap.eval.mjs 2.3 KB runs code
- harness/dogfood/skill-quality.eval.mjs 2.1 KB runs code
- harness/dogfood/strengthen.trigger.eval.mjs 3.1 KB runs code
- harness/dogfood/superpowers-collision.prompts.json 609 B
- harness/dogfood/test-harness.gaps.trigger.eval.mjs 5.7 KB runs code
- harness/dogfood/test-harness.trigger.eval.mjs 3.9 KB runs code
- harness/dogfood/vigiles-collision.prompts.json 868 B
- harness/effect-boundary.harness.mjs 3.3 KB runs code
- harness/fixture-mcp-server.mjs 1.6 KB runs code
- harness/fixture-plugin/.claude-plugin/plugin.json 653 B
- harness/fixture-plugin/CLAUDE.md 189 B
- harness/fixture-plugin/hooks/guard.sh 427 B runs code
- harness/fixture-plugin/hooks/setup.sh 197 B runs code
- harness/fixture-skill-plugin/.claude-plugin/plugin.json 134 B
- harness/fixture-skill-plugin/skills/greet/SKILL.md 187 B
- harness/from-promptfoo.eval.mjs 2.4 KB runs code
- harness/hook-unit.harness.mjs 2.0 KB runs code
- harness/injectable-events-delivery.harness.mjs 10.0 KB runs code
- harness/intercept-tools.eval.mjs 3.9 KB runs code
- harness/measure-with-service.mjs 3.6 KB runs code
- harness/oh-my-claudecode-deterministic.harness.mjs 3.0 KB runs code
- harness/oh-my-claudecode-egress.harness.mjs 4.1 KB runs code
- harness/oh-my-claudecode-eval.eval.mjs 2.2 KB runs code
- harness/oh-my-claudecode-unit.harness.mjs 2.9 KB runs code
- harness/plugin-cohesion.harness.mjs 2.6 KB runs code
- harness/policy-gate.harness.mjs 3.7 KB runs code
- harness/protect-main.hook.mjs 726 B runs code
- harness/railway-result.harness.mjs 4.3 KB runs code
- harness/README.md 455 B
- harness/real-superpowers.harness.mjs 3.0 KB runs code
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.
- 1mo ago Changed · -2 lines · +25 tokens per session 8711faa254b4
- 1mo ago First seen · 51 lines · 0 tokens per session scan A c92b85b7bfd0
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.
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…
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.
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.
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.
tdd
Build this test-first, one behavior at a time: $ARGUMENTS.
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.