Loading...
Loading...
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.
npx skill4agent add zernie/vigiles edit-spec.spec.tsCLAUDE.md.spec.tsAGENTS.md.spec.ts*.spec.tsCLAUDE.mdmigrate-to-specnpx vigiles initclaude()import { claude, enforce, guidance, check, every } from "vigiles/spec";
export default claude({
// Optional: output target (defaults to "CLAUDE.md")
target: "CLAUDE.md",
// or multi-target:
// target: ["CLAUDE.md", "AGENTS.md"],
// Prose sections — become ## headings in compiled output
sections: {
positioning: "What this project does...",
architecture: "How the codebase is structured...",
},
// File paths verified to exist at compile time
keyFiles: {
"src/index.ts": "Main entry point",
},
// Commands verified against package.json
commands: {
"npm run build": "Compile the project",
"npm test": "Run all tests",
},
// Rules — three types
rules: {
// enforce() — backed by a linter rule, verified to exist AND be enabled
"no-any": enforce(
"@typescript-eslint/no-explicit-any",
"Use unknown and narrow with type guards.",
),
// check() — filesystem assertion run by vigiles
"test-pairing": check(
every("src/**/*.service.ts").has("{name}.test.ts"),
"Every service must have tests.",
),
// guidance() — prose only, no enforcement
"research-first": guidance("Google unfamiliar APIs before implementing."),
},
});generate-ruleenforce()check()guidance()enforce()eslint/no-console@typescript-eslint/no-explicit-anyruff/T201rulescheckeverycheck()sectionsfile()cmd()ref()###keyFilescommandspackage.jsonnpx vigiles compilestale-filestale-commandinvalid-rulesection-has-header#npx vigiles lint/plugin marketplace add zernie/vigiles/plugin install vigiles@vigilesnpx vigiles initenforce()###