Skip to main content

Cross-repo invariant verifier for the zyplux organization

Project description

cerberus

Verifies repository invariants — CI workflow structure, justfile and dependency conventions, CODEOWNERS, and release-version bumps — as a per-repo linter against a checkout.

Requirements

  • uv and Python 3.14

The justfile check shells out to just, which ships with the package (via rust-just) — no separate install.

Lint a repo

uv run cerberus            # lint the current directory
uv run cerberus PATH       # lint a checkout at PATH

Runs every check and exits non-zero on any failure or error, so it drops into CI like any linter. Run cerberus list to see every check, its scope, and what it verifies.

Option Description
--check NAME Limit to named check(s); repeatable
--config PATH Use a cerberus.toml other than the bundled
--fix Auto-fix fixable problems (e.g. trailing whitespace)

A repo opts out of specific checks with [tool.cerberus] disable = ["check-id", ...] in its pyproject.toml.

Checks

ID Scope Verifies
justfile content Recipe names, aliases, check pipeline, wrapped tool calls, no trailing whitespace
ci-workflow content ci.yml exists, exposes a ci check, runs on PRs (push to main recommended)
ci-sequence content ci.yml runs the canonical check sequence per stack, in the org container
cerberus-step content A CI workflow runs cerberus to self-verify org invariants
workflow-tooling content Workflows set up only the workspace toolchain (uv, bun), not extra tools
rumdl-config content .rumdl.toml carries the org-canonical rule config (per-repo exclude allowed)
vitest-runner content TypeScript tests run on vitest, never bun's built-in test runner
ts-project-references content TypeScript typecheck runs via project references (tsc -b), not a per-package fan-out
catalog-discipline content Every workspace package.json dependency pins via catalog: or workspace:
release-bumps git-history A published target's version is bumped whenever its release surface changes
codeowners content CODEOWNERS present and covers /.github/

Config

Policy — required recipes and aliases, the canonical CI sequence — lives in cerberus.toml. Override it with --config PATH.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zyplux_cerberus-0.5.1.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zyplux_cerberus-0.5.1-py3-none-any.whl (30.7 kB view details)

Uploaded Python 3

File details

Details for the file zyplux_cerberus-0.5.1.tar.gz.

File metadata

  • Download URL: zyplux_cerberus-0.5.1.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for zyplux_cerberus-0.5.1.tar.gz
Algorithm Hash digest
SHA256 6f106fadad326f94de0ce9fbea2c4b16afbc036c9728612594b3d17894dfcc9c
MD5 306fd8f9e88b706d68187c61e87133cb
BLAKE2b-256 40d9da1a5c932a8f390540a64a213d75abe0048b820f60f3f890fdff67ebb896

See more details on using hashes here.

File details

Details for the file zyplux_cerberus-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: zyplux_cerberus-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 30.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for zyplux_cerberus-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 364f68bc4b8ec2ba4eac0962e2c67754325f8d3a6d5913d7782cf56a1bc98f2b
MD5 bc0ffa5375e0a522a7769ae6fd51950d
BLAKE2b-256 1fd1028c3a8801d65075b7a1b882bd5dd560e428af6b613e1335f30ab16042d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page