@verekia/warden
v0.0.5
Published
Linter that checks repositories share consistent configs and tool versions.
Readme
@verekia/warden
Linter that checks repositories share consistent configs and tool versions.
Two modes:
- Cross-project — one warden checkout sits next to several sibling repos and lints them all in one pass.
- Library — a repo installs
@verekia/wardenas a devDep and lints itself.
Library mode
bun add -D @verekia/wardenAdd a warden script and wire it into your all script:
{
"scripts": {
"warden": "warden",
"all": "bun run format:check && bun run lint && bun run typecheck && bun run warden",
},
"devDependencies": {
"@verekia/warden": "0.0.0",
},
"warden": {
"checks": {
"configFilesPresent": {
"enabled": true,
"files": [".oxfmtrc.json", ".oxlintrc.json"],
},
},
},
}Omit projects — warden defaults to checking the cwd.
Cross-project mode
Layout: warden lives next to the repos it checks.
<parent>/
warden/
vct7/
verekia.com/package.json (in the warden checkout) declares projects and check
options under the "warden" key:
{
"warden": {
"projects": ["../vct7", "../verekia.com"],
"checks": {
/* … */
},
},
}Run:
bun install
bun run warden # check every project in the list
bun run warden vct7 verekia.com # check only the named subsetPositional arguments scope the run — useful in cloud environments where only some sibling repos are attached.
Available checks
See CLAUDE.md for the full list and the failure → fix
mapping. Each check has its own block under "warden".checks in
package.json and toggles independently.
Adding a check
- Create
src/checks/<name>.tsexporting a function that takes(projects, options)and returns aCheckResult. - Add its options shape to
WardenConfig['checks']insrc/types.ts. - Wire it into
src/index.ts.
