Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b6a8233
chore: renaming the package to @makerx/verify
robdmoore Jul 8, 2026
6075410
feat: orchestrate multiple checks with a convention-based verify CLI
robdmoore Jul 8, 2026
513d595
ci: run the non-editing verify in CI and refresh dependencies
robdmoore Jul 8, 2026
c8e8b51
docs: rewrite README and CLAUDE.md for @makerx/verify
robdmoore Jul 8, 2026
327f2ee
fix: auto-fix locally and check-only in CI; call built-ins from verif…
robdmoore Jul 8, 2026
c2a2911
test: cover fix-vs-check mode resolution and command selection
robdmoore Jul 8, 2026
10c4b7a
docs: slimming down superfluous stuff in claude.md
robdmoore Jul 8, 2026
28ca3ee
fix: rename CLI binary to verifyx and deny the native watcher install…
robdmoore Jul 8, 2026
8d16593
feat: run only defined verify:* scripts by default; add `verifyx all`
robdmoore Jul 8, 2026
c958bcd
feat: support verify:<name>:fix override variants
robdmoore Jul 8, 2026
cfdeccd
feat: ship a verify skill + CLAUDE.md/AGENTS.md pointer instead of a …
robdmoore Jul 8, 2026
512c8ea
feat: name the tool + command + docs when an external check fails
robdmoore Jul 8, 2026
89b2c3b
feat: silent on success — gate orchestrator chatter behind --verbose/…
robdmoore Jul 8, 2026
aa212a0
refactor: drop the diff-filter feature (unused assist port)
robdmoore Jul 8, 2026
347404e
chore: drop redundant lint/format/check-types scripts — verifyx owns …
robdmoore Jul 8, 2026
5618ad9
feat: init teaches knip to ignore the tools verifyx runs (no consumer…
robdmoore Jul 8, 2026
e52b697
feat: init offers "run everything with defaults" as an up-front choice
robdmoore Jul 8, 2026
7dae650
feat: merge comment-block + block-comments into one `comments` check
robdmoore Jul 8, 2026
be38a14
docs: clarify "how verifyx decides what to run" + expand complexity f…
robdmoore Jul 8, 2026
a81ed9b
docs: define verify:* scripts before the run-modes table
robdmoore Jul 8, 2026
cfafa6c
docs: describe bare verifyx by what it does, not "what you run"
robdmoore Jul 8, 2026
97e551f
docs: explain built-in vs custom checks in the run-modes section
robdmoore Jul 8, 2026
34a09cc
docs: lead with selling points, fix verifyx all + install framing
robdmoore Jul 8, 2026
e86fbee
docs: reorder intro, drop stale line, make verifyx callout a NOTE box
robdmoore Jul 8, 2026
dc40558
docs: remove em-dashes, clarify comments row, fix verifyx all + API
robdmoore Jul 8, 2026
8d66245
docs: rewrite the comments section with real explanation
robdmoore Jul 8, 2026
413bdbb
feat: verifyx all is silent on success and runs custom verify:* scripts
robdmoore Jul 8, 2026
488a126
docs: per-check config inline, external config files, richer CI/CD + API
robdmoore Jul 8, 2026
a2b5d3a
feat: verifyx runs tests by convention, with --no-tests to opt out
robdmoore Jul 8, 2026
770a81f
docs: slim CLAUDE.md and fold in the dogfood verify pointer
robdmoore Jul 8, 2026
4545177
fix: verifyx all now honours run flags passed after the subcommand
robdmoore Jul 9, 2026
87ae112
feat: run verifyx all in parallel; --measure prints only its table
robdmoore Jul 9, 2026
1341a57
fix: address PR review — CI diff base for new-comments + config ignores
robdmoore Jul 9, 2026
f4c9d9a
chore: verbose CI verify output + accurate CLAUDE.md verify description
robdmoore Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .claude/skills/verify/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
name: verify
description: Run this project's code verifications and fix what they report. Use after making code changes, or when asked to "verify", "run checks", or "run verify".
---

Run `npm run verify` (or `npx verifyx` — the CLI binary is `verifyx`, since `verify` is a Windows builtin). If it fails, fix every error and run again until it passes. Don't silence checks or game the metrics.
3 changes: 3 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,8 @@ jobs:
node-version: 24.x
run-build: true
build-script: npm run build
# Runs the non-editing verifications (lint/format checks, complexity, comments, types). Tests run
# separately via test-script, so --no-tests stops verify from running them a second time.
lint-script: npm run verify -- --no-tests --verbose
test-script: npm run test:ci
audit-script: npm run audit
3 changes: 3 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
with:
working-directory: .
node-version: 24.x
# Runs the non-editing verifications (lint/format checks, complexity, comments, types). Tests run
# separately via test-script, so --no-tests stops verify from running them a second time.
lint-script: npm run verify -- --no-tests --verbose
audit-script: npm run audit
test-script: npm run test:ci
output-test-results: true
Expand Down
2 changes: 1 addition & 1 deletion .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"overrides": [
{
// The CLI and its reporting surface legitimately write to stdout/stderr.
"files": ["src/cli.ts", "src/cli-core.ts", "src/report.ts"],
"files": ["src/cli.ts", "src/report.ts", "src/commands/**", "src/orchestrator/**", "src/checks/**", "src/shared/output.ts"],
"rules": {
"no-console": "off"
}
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.0.0"
".": "0.0.0"
}
5 changes: 2 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

## 1.0.0 (2026-07-08)


### Features

* initial complexity-verifier CLI ([eeccd7c](https://github.com/MakerXStudio/complexity-verifier/commit/eeccd7c2238f07b02511574b5d7012b973ba07f1))
* strengthen maintainability failure guidance ([0cb0193](https://github.com/MakerXStudio/complexity-verifier/commit/0cb01934bbd199142ca23d2927df472d0ef70737))
- initial complexity-verifier CLI ([eeccd7c](https://github.com/MakerXStudio/complexity-verifier/commit/eeccd7c2238f07b02511574b5d7012b973ba07f1))
- strengthen maintainability failure guidance ([0cb0193](https://github.com/MakerXStudio/complexity-verifier/commit/0cb01934bbd199142ca23d2927df472d0ef70737))
16 changes: 7 additions & 9 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
# @makerx/complexity-verifier
# @makerx/verify

A maintainability-index + comment-block checker that gives AI agents back-pressure against writing hard-to-maintain code. Node >= 24; run the CLI from source with `node src/cli.ts`.
A `verifyx` CLI that orchestrates native + external code checks by convention, plus a scaffolder (`verifyx init` / `upgrade-docs`) that drops the checks, a `verify` skill (`.claude/skills` + `.agent-skills`), and a `CLAUDE.md`/`AGENTS.md` pointer into a project. See [README.md](./README.md) for the full design and check reference.

## After making changes, run `npm run verify`
## Verification

`npm run verify` runs (via `run-p`) `lint:fix`, `format`, and `verify:complexity` — the tool checking its own source. Fix anything it reports before finishing.
After making code changes, run `npm run verify` and fix everything it reports before finishing. Don't silence checks or game the metrics.

`verify:complexity` runs with `--comment-block-pushback`, so a flagged comment block prints a warning that keeping it pages a human. Take that seriously: delete the comment, or make the code self-explanatory, before reaching for the `context:` escape hatch.
`npm run verify` runs `verifyx all` — every built-in check (plus any `verify:*` overrides and the test suite) in parallel — and stays silent unless something fails. It auto-fixes lint/format locally and is check-only under CI.

## Conventions
## Working in this repo

- Comments explain _why_, not _what_. No comment block longer than 2 lines unless it is JSDoc (`/**`) or prefixed `context:`.
- Keep functions small so files stay above the MI threshold; the fix for a failing file is to split it, never to game the metric.
- Tests are co-located `*.test.ts` (vitest).
- **The CLI binary is `verifyx`, not `verify`** — `verify` is a Windows `cmd` builtin that shadows it under `npm run`/`npx`. The npm _script_ stays named `verify` (so `npm run verify` works) and the package stays `@makerx/verify`. In dev, the `prepare` script (`scripts/dev-verifyx-bin.mjs`) writes a `node_modules/.bin/verifyx` shim pointing at `node src/cli.ts`, so the repo dogfoods `verifyx <check>` from source; run the CLI directly with `node src/cli.ts <check>`.
330 changes: 263 additions & 67 deletions README.md

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions knip.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"$schema": "https://unpkg.com/knip@6/schema.json",
"project": ["src/**/*.ts"],
"ignoreBinaries": ["verifyx"],
"ignoreDependencies": ["oxlint", "oxfmt", "jscpd", "skott"]
}
Loading