Harness integrationavailable
Wrap verification results into an agent harness's hook contract via --harness.
built by aktagon.com
Every commit passes your project's own build, lint, type check and tests. Every agent turn ends with a type check and lint that take seconds.
wrkgrd is a CLI that detects the stacks in your repo and runs the right build, test, and lint tools for each — cargo, go test, eslint, pytest. A commit runs all of them. An agent's end of turn runs only the type check and lint.
Same tree, same verdict, same exit code.
$ wrkgrd init Created wrkgrd.toml $ wrkgrd hooks install Installed pre-commit hook — commits now run 'wrkgrd verify'. $ wrkgrd rust · cargo test error[cargo-test]: 1 test failed parser::tests::rejects_empty ... FAILED × 1 tool failed · exit 1
Gate your build. · Run the tools you already have.
01 For the agent wrangler
wrkgrd runs the real build and tests before the commit — and fails the gate like a red CI.
# agent: "done — added the parser." $ wrkgrd verify rust · cargo build error[cargo-check]: cannot find type `Token` in this scope --> src/parser.rs:42:18 × build failed · exit 1 — the commit is blocked
02 One contract, two readers
Every command emits --format json, keeps stdout a clean parseable stream, and returns documented exit codes. --harness wraps the verdict into an agent's hook contract — so an agent can't declare done while the build is red.
$ wrkgrd verify --format json | jq '.diagnostics[0]' { "tool": "cargo-test", "stack": "rust", "severity": "error", "message": "parser::tests::rejects_empty failed" } $ echo $? 1 # branch on it, no text parsing
03 Every capability
Run every detected stack's build and tests. Human output, or --format json for agents.
Write a starter wrkgrd.toml for the repo in one command.
List the verification-tool catalog — every tool, its stack, and the command it runs.
Browse the capability catalog, including agent-harness integration.
Wire wrkgrd into pre-commit, CI, or a Claude stop-hook.
Print the end-user guide bundled with the binary.
Wrap verification results into an agent harness's hook contract via --harness.
Ontology-driven catalog of build/test/lint tools, per stack, listed by `wrkgrd rules`.
Warn-only checks on weak config and missing hygiene files: lint/compiler strictness, formatter-hook presence, .gitignore/.dockerignore presence (never block).
Audit a project's MCP server tool definitions for context bloat.
Block a commit that stages a hardcoded secret — native scanner plus opt-in gitleaks, at the pre-commit hook.
Block when a tier=code checklist anchor has no test titled for it — the code-tier brick of the family's provable-done gate.
Warn when a stack's manifest declares a third-party runtime dependency — opt-in stdlib-only policy across rust/go/node/python/ruby (never blocks).
Block a built site whose internal link points at a missing file, and warn on a `#fragment` no id matches — over generated HTML, offline.
Declare the holdout directory and read-only tests in `[holdout]`; `wrkgrd holdout --format json` prints them for an agent-harness hook, and a `pin` fails verify when a read-only test changes.
Link each BUG and VULN record to tests named for its id: block a fixed record with no running test, and in CI require an open record's test to fail.
Skip the stack build/test/lint commands when the code is unchanged since the last green run; the other checks still run.
Link each Implemented requirement to a test named after its four-part key, the document id plus the requirement id, such as `fn adr_033_wrk_150_…` or `TestAdr033Wrk150…`: warn per turn when it has none, and block in CI with `wrkgrd verify --reqs`.
Warn when the package manager's release-age cooldown (uv, npm, pnpm, Bun, Yarn, Bundler) is missing or under 14 days, or the client is too old to read it; shown to the agent at session start.
Warn when npm, pnpm or Yarn runs every dependency's install scripts: the config turns blocking off, or the client is older than the first release that blocks them; shown to the agent at session start.
04 See it work
# agent ends its turn ✓ "Implemented the parser. Tests pass." ↳ cargo test was never run. The commit lands red. CI fails ten minutes later.
$ git commit -m "add parser" running wrkgrd verify… error[cargo-test] rust · 1 test failed parser::tests::rejects_empty ✗ commit blocked · exit 1 # fix it before it enters history
05 What it runs
wrkgrd detects the stacks in your tree and runs the right build, test, and lint tools for each. Point it at a repo and every stack is verified with the tools it already uses.
Build, test, lint, and dead-code/unused-dep checks for Cargo projects.
Build, vet, test, and error-handling checks for Go modules.
Build, type-check, lint, test, and dead-code checks for Node projects.
Test, lint, and dead-code checks for Python projects.
Test and error-handling checks for Ruby projects.
Repo-hygiene gates: commit messages, branch scope, secrets, release guard.
Container-hygiene checks for Docker projects.
wrkgrd is free and MIT-licensed, forever. Part of the *grd family — ctxgrd lints your docs, wrkgrd verifies your code.