Changelog
All notable changes to this project are documented here. The format follows Keep a Changelog, and the project uses Semantic Versioning. The CLI flags, exit codes, configuration format (version: 1) and JSON output (schemaVersion: 1) are the public API.
0.0.3 - 2026-10-13
Added
- Live status block in
humanmode on an interactive terminal: progress and elapsed time, each running check with a spinner, its elapsed time and latest output line, and what queued checks wait on. Finished checks print above it as in line mode. Line output remains the fallback in CI, when piped, withTERM=dumb, and with the new--no-liveflag orVERIFIKA_LIVE=0. humanoutput: averifika · <selection> · <n> checks · <j> parallelheader, aligned durations, the command and a rerun hint (vfk -c <check>) on failure lines, a○ not run: build failedmarker for checks blocked by a failed dependency, and an estimate of the time saved by skipped checks from their last recorded durations.- In
humanmode, the first interrupt printsstopping… (Ctrl-C again to force). vfk logson a terminal: local and relative start time (today 01:12, 3m ago), clickable OSC 8 log paths (opt out withVERIFIKA_HYPERLINKS=0), and paging through$PAGERorless -R -F -X(--no-pagerto opt out; never with--tail, when piped, or inagentmode).vfk planinhumanmode coloursrunand dims skipped checks.vfk initadds"verify": "vfk"and"verify:ci": "vfk --all"topackage.jsonwhen they are absent, keeping its indentation, line endings, key order and trailing newline; existing scripts are never overwritten.- JSON (additive,
schemaVersion: 1):checks[].blockedByon blocked checks in run results, naming the dependency that did not pass;checks[].requiredByin plan output on checks selected only as dependencies.
Changed
npm run verifyis now selective. The recommended scripts are"verify": "vfk"for local work and"verify:ci": "vfk --all"for the full gate; usenpm run verify:ci(orvfk --all) in CI and before delivery. The README setup prompt, docs and agent skill say so, and the prompt only replaces an existingverifyscript when the configured checks cover what it ran. If you followed the 0.0.2 setup, your"verify": "vfk --all"script still runs the full gate; to adopt the split, rename it toverify:ciand add"verify": "vfk"by hand (vfk initonly adds scripts when it creates the config).- A check pulled in by several dependents now names all of them (
required by test, pack), in plan output and reasons. - Failure previews leave out package-manager script banners (
> app@1.0.0 lint,> eslint ., yarn's$ …).
Fixed
- ESLint failure previews showed only the
✖ N problemssummary; they now keep eachline:col errorline under its file heading, plus the summary. - A failed check whose preview was hidden by the three-preview limit looked as if nothing was found; its line now says
(preview omitted: vfk logs <check>), inhumanandagentoutput.
0.0.2 - 2026-10-12
Changed
vfkis now the advertised command:--help, run hints (Run: vfk logs <check>), error hints, the README, the docs and the agent skill use it.verifikakeeps working and is identical.
Added
- README: a copy-paste prompt that has a coding agent install Verifika, write and validate a config, and install the skill.
0.0.1 - 2026-10-12
First public release.
Added
vfk: a shorthand executable forverifika, installed by the same package.verifika/verifika run: runs configured checks concurrently with dependency ordering, per-check timeouts, optional fail-fast, process-tree cleanup and signal handling.- Safety defaults: checks run sequentially unless
defaults.concurrencyor-jopts into parallelism; CI always runs the full suite unless--changed/--changed-sinceis passed explicitly (environment variables cannot switch CI mode off); a check passes only if its process tree was confirmed cleaned up; concurrent Verifika invocations in one directory keep their run records and logs apart. - Hybrid selection: selective runs from git changes locally (
changes.base,--changed,--changed-since <ref>with merge-base semantics), full runs in CI and with--all, explicit--check. Global invalidation (invalidateAll),paths/excludeglobs,alwayschecks anddependsOn. - Conservative fallbacks: full runs when git cannot determine changes implicitly; exit 2 when an explicit comparison is impossible.
- Output modes:
human(live progress),agent(one line on success, bounded failure preview),json(versioned result,schemaVersion: 1) andquiet. verifika planto show selection decisions and reasons without running checks.verifika logswith--failed,--tailand--run; logs stored in a self-ignoring.verifika/directory with retention (defaults.keepRuns).verifika initto create a starter config frompackage.jsonscripts.- JSON schema for
verifika.config.jsonwith editor autocomplete. - Agent skill (
skills/verifika/SKILL.md) for Claude Code, Codex, OpenCode and other agents. - Published to npm as
verifika; the package tarball is also attached to the GitHub release.
Known limitations
- No per-check lock: checks that write shared outputs need
dependsOnorconcurrency: 1(see the configuration reference). - A process that deliberately detaches from the check (on Linux and macOS: leaves the process group, for example via
setsid; on Windows: breaks away from the job with an exited intermediate parent) is not tracked unless it keeps the check's output open, in which case the check is reported aserror. - On Windows, confirming cleanup queries the process table with PowerShell after each check, which costs roughly 0.5–3 s per check.