agent-quality-gate is a Bun-first CLI quality gate for AI-assisted TypeScript workflows.
- This repository is not published to a package registry.
- Official install channels are Git tags and GitHub Release tarballs.
- External pull requests are currently not accepted.
- Bug reports, documentation problems, and feature ideas should go through issues.
- Bun
>=1.3. - Git.
Install from a Git tag:
bun add -d git+https://github.com/greenhost87/agent-quality-gate.git#v0.0.1Install from a GitHub Release tarball:
bun add -d https://github.com/greenhost87/agent-quality-gate/releases/download/v0.0.1/agent-quality-gate-0.0.1.tgzAdd a script:
{
"scripts": {
"verify": "verify"
}
}bun run verifyverify
verify --all-errors
verify --help- Default mode stops at the first failure.
--all-errorskeeps running and aggregates failures.- Exit code mirrors the failing tool exit code.
VERIFY_DEBUG=1prints resolved config and step sources.
VERIFY_DEBUG=1 verifyverifyruns fixed steps in this order:protected-coverage,eslint,ast-grep,remark,tsc,duplicate-shapes,depcruise,knip,jscpd.- Locked mode rejects local
verify.config.*files and local--configpaths. - Bundled configs from
dist/default-configsare used.
protected-coverage: internal preflight step that ensures protected paths are still covered before the external tools run.eslint: useseslint,@eslint/js,typescript-eslint, andeslint-plugin-check-fileto validate JavaScript and TypeScript code style, correctness, and file naming rules.ast-grep: uses@ast-grep/cliwith the bundledsgconfig.ymlrules to catch forbidden code patterns by syntax tree matching.remark: usesremark-cli,remark-lint,remark-preset-lint-recommended,remark-lint-maximum-line-length, andremark-lint-no-duplicate-headingsto lint Markdown files.tsc: usestypescriptto run type-checking with the bundledtsconfig.verify.json, including unused locals and unused parameters checks.duplicate-shapes: uses the internalts-morph-based analyzer to detect duplicate exported TypeScript shapes insrc/.depcruise: usesdependency-cruiserto validate module dependency structure insrc/.knip: usesknipto find unused exports.jscpd: usesjscpdto detect copy-pasted code in the allowed source directories.
Release tag must match vX.Y.Z and package.json.version.
bun install --frozen-lockfilebun run --silent verify
bun test
bun run check:release-tag -- vX.Y.Z
bun run pack:verify- Push tag
vX.Y.Z. release.ymlvalidates tag/version parity, runs checks, and builds the tarball.- GitHub Release attaches
artifacts/*.tgz. - Registry publication remains disabled.
Run install checks explicitly when validating release installs:
bun run test:e2e:installMIT. See LICENSE.