By zernie
Validate and enforce rules in Claude Code instruction files (CLAUDE.md/AGENTS.md) by converting them to typed .spec files, scanning for enforce()-ready linter rules, and running tests on harness components. Also provides pre/post-edit hooks for custom automation.
Edit a vigiles .spec.ts to change a compiled instruction file (CLAUDE.md / AGENTS.md) — add, modify, or remove a rule, section, command, or key file. Use whenever you need to change a CLAUDE.md/AGENTS.md that carries a vigiles hash (edit the spec, never the artifact), including adding a new enforce()/check()/guidance() rule.
Deep linter reference for authoring or debugging a vigiles enforce() rule — plugin tables, AST selectors, type-aware rules, auto-fix, and edge cases for ESLint, Ruff, Pylint, RuboCop, and Stylelint. Use when you need the exact rule name or config for a specific linter, not for running a linter.
Convert an existing hand-written CLAUDE.md into a typed .spec.ts file for incremental adoption
Upgrade a vigiles spec's guidance() rules to enforce() — scan the guidance rules in a CLAUDE.md/AGENTS.md spec and find existing linter rules (ESLint, Ruff, Clippy, Pylint, RuboCop, Stylelint) that back them. Use when asked to strengthen, harden, or make vigiles rules enforceable; NOT for general linting or fixing lint errors.
Install vigiles and test a Claude Code harness — hooks, skills, settings, CLAUDE.md — by picking the right tier (unit / deterministic / eval) and writing a test that passes. Use when the user wants to check that a hook fires or blocks, that a skill triggers, that injected context lands, or that a harness change moves what the agent does.
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Lint & test the harness your AI agent runs on.
Your CLAUDE.md, hooks, and skills steer the agent — but nothing checks they're true, and nothing tests they work. vigiles does both.
Agent = Model + Harness. You'd never ship an app without a linter and a test
suite — yet the harness steering your agent runs on vibes. vigiles[^name] is the
deterministic layer for it, and does two independent things — adopt either, or both:
| 🔎 Lint | Every file path, script, code symbol, and linter rule your CLAUDE.md cites is checked against reality — so a renamed file or a disabled rule can't silently mislead the agent. → |
| 🧪 Test | Hooks, skills, and subagents are code. vigiles tests they do their job — and almost all of it is deterministic, no API key; the real-model evals run on your Claude subscription, not metered tokens. → |
Pick the one that hurts today. Works with Claude Code and Codex
(vigiles/codex), and you can
teach it your own harness.
Paste into Claude Code or Codex:
Set up vigiles in this repo with good defaults (lint + test, non-interactive).
Verify my CLAUDE.md / AGENTS.md references and show me what's stale, then write
and run a harness test for one of my hooks or skills. Ask me first before gating
it in CI, adding a real-model eval, or enforcing strictly (--strict).
Or do it yourself:
npx vigiles init # sets up lint + test: spec + harness test + CI + plugin
It's interactive in a terminal and non-interactive for agents/CI (or with
--yes), so "set up vigiles" from a Claude Code / Codex prompt Just Works — and
it installs a model-invocable test-harness skill, so afterward you can just
tell your agent "test my skills" and it picks the tier and writes the test.
init sets upBoth lint and test by default; scope with --lint / --test (one or both).
Adds vigiles to your devDependencies.
Installs the Claude Code plugin (skills + hooks) via the marketplace — globally, never vendored into your repo.
Wires CI as a zernie/vigiles@v1 workflow (a composite over the same CLI):
- uses: actions/checkout@v4
- uses: zernie/vigiles@v1 # lints by default; posts a sticky PR comment + a `valid` output
Prefer to write tests yourself? They can be JS or TS
(*.harness.{mjs,ts}) — run them with npx vigiles test.
Your CLAUDE.md points the agent at src/auth/login.ts and tells it to run
npm run check. But the file moved to src/auth/session.ts six commits ago, and
the script was renamed. The agent trusts the stale claim and acts on fiction.
npx vigiles lint resolves every reference against reality:
CLAUDE.md:
✗ src/auth/login.ts — no such file (renamed or moved?)
✗ npm run check — not in package.json. Did you mean: "check:types"?
✓ @typescript-eslint/no-floating-promises — exists and enabled in eslint config
File paths, scripts, and code symbols — plus linter rules across 7 catalogs
(the rule exists and is enabled). Start with one inline comment, no new files;
step up to a typed .spec.ts (compiled to CLAUDE.md, compiler-grade) when you want
it. Full guide →
A hook can be wired wrong. A skill's description can fail to trigger — or hijack unrelated prompts. Injected context can never reach the model. All of it passes a naive "did it run?" check. vigiles tests the assembled harness for real:
npx claudepluginhub zernie/vigilesComprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Complete creative writing suite with 10 specialized agents covering the full writing process: research gathering, character development, story architecture, world-building, dialogue coaching, editing/review, outlining, content strategy, believability auditing, and prose style/voice analysis. Includes genre-specific guides, templates, and quality checklists.
Complete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
Feature development with code-architect/explorer/reviewer agents, CLAUDE.md audit and session learnings, and Agent Skills creation with eval benchmarking from Anthropic.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses