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, release-version bumps, and workflow secrets. Run it two ways: as a per-repo linter against a checkout (cerberus), or as a central scan across every repo in the org (cerberus org).

Requirements

  • uv and Python 3.14
  • gh, authenticated against the org — only for cerberus org

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 whose facts live in the checkout — the content and git-history scopes — and exits non-zero on any failure or error, so it drops into CI like any linter. Control-plane checks (workflow-secrets) read GitHub org/admin state the checkout cannot see, so they are skipped here and reported by cerberus org.

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)

Scan the org

cerberus org takes the org as a required argument — a bare name, github.com/<org>, or a full URL.

uv run cerberus org zyplux                  # scan every repo, report findings
uv run cerberus org github.com/zyplux       # same, org given as a URL
uv run cerberus org zyplux --repo api       # scan only the named repo(s)

Runs all checks, including the control-plane ones the local linter skips. Accepts --repo/-r and --check. A failure or error exits non-zero.

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/
workflow-secrets control-plane Every secret referenced in workflows is provisioned

Config

Policy — org name, excluded repos, required recipes and aliases — 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.4.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.4.1-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zyplux_cerberus-0.4.1.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.4.1.tar.gz
Algorithm Hash digest
SHA256 2c6e3ecb05dd6ebd214bb43919ac886f47aba37d63f0b0cbc17c321b1cf59668
MD5 66472e2d520680ba6e06b79ab20886d3
BLAKE2b-256 ed8742f1ca945470b12a1cbe9e2af325a77b5290ca8a1f1c77851538bbb49ab6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zyplux_cerberus-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 28.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ab0a658cdd5d4ab3778209a2d7d90382dcf35bd55779ca8ddf92842f602c3bc7
MD5 ee982ca2aafb5f0d1317d98fccacf56c
BLAKE2b-256 f048ade6e8d4c75228073185377a4a9f365b20ef30fb3d7db1c154c167378bc1

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