CBE — Cyber-Butler Enforcement gate
Who it is for: platform, security, and release engineers who need a deterministic gate between “CI passed” and “this artifact may ship”.
What it solves: CBE turns rule-pack manifests into an enforceable release gate: it validates the pack, runs providers, rejects disable/skip attempts, emits SARIF, and produces a machine-readable gate report plus a Release-body fragment. It is a sibling of CBS, CBP, and CBM, not a replacement for them.
How to start:
python -m pip install cbe-review
cbe --help
cbe validate-manifest --manifest rules.json \
--package-type cbs --package-version v1.7.0
Important:
pip install cbeinstalls a different project (Crossroads Bank for Enterprises). This project is distributed ascbe-review. Its import package and CLI are stillcbe.
Install
python -m pip install cbe-review
Requires Python 3.10+. Runtime dependencies: jsonschema and pyyaml.
From a GitHub Release, use the attached
cbe_review-0.1.1-py3-none-any.whl (or the sdist).
Quick start
# Validate a rule pack
cbe validate-manifest --manifest rules.json
# Run providers and write evidence
cbe run-provider --manifest rules.json --source-root . --out-dir out --all
# Enforce no-bypass rules
cbe enforce-no-bypass --manifest rules.json --source-root . \
--package-type cbs --package-version v1.7.0 --workflows
# Build a symbol index / merge SARIF
cbe symbol-index --source-root . --out out/symbol-index.json
cbe emit-sarif --manifest rules.json --run-report out/run.json \
--source-root . --out out/cbe.sarif
Exit codes: 0 PASS, 2 input/format error, 3 gate failure or SKIPPED_INFRA, 4 skip ratio > 20%.
What CBE checks
- Rule-pack schema and semantics, including canonical manifest hash.
- Provider execution and SARIF/JSON artifact validation.
- No-bypass controls across config, source comments, environment, and GitHub Actions workflows.
- Workflow gate-job reachability, including local reusable-workflow delegation.
- CBE report identity, counts, skip ratio, and Release-body Section B.
Dynamic workflow expressions are not guessed. By default they are reported as
UNVERIFIABLE_* warnings; use enforce-no-bypass --strict to turn the
unverifiable conditions into exit 3.
Project links
- Homepage / repository: https://github.com/JunxiangPan/cbe
- Issues: https://github.com/JunxiangPan/cbe/issues
- CLI reference: docs/CLI_V1.md
- Rule-pack schema: docs/RULE_PACK_MANIFEST_V1.md
- E2E matrix: docs/E2E_MATRIX_V1.md
- Boundaries: docs/BOUNDARIES_V1.md
- 0.1.1 metadata/licensing note: docs/CBE-0.1.1_METADATA.md
- Mutation recall: tests/mutation/README.md
- Signing/attestation: docs/SIGNING.md
- Self-protection: docs/SELF_PROTECTION.md
- Threat model: docs/THREAT_MODEL.md
- Package name: docs/PACKAGE_NAME.md
- Schema integration: docs/SCHEMA_INTEGRATION.md
Topics: release-gate, sarif, supply-chain, provenance, python.
Status and compatibility
CBE 0.3.0 is released, signed with GitHub OIDC keyless cosign/sigstore
(cbe-review==0.3.0,
Release).
This tree is 0.3.1 development, a patch that adds the cbf package type
to CLI, manifest, rule-pack and report enums while preserving cbs/cbe/cbp/cbm/
cbc/cbg. Default 0.2.0 behavior remains unchanged.
0.1.0 and 0.1.1 remain available for historical installs; their metadata,
artifacts, and tags are immutable.
License
Apache License 2.0. See LICENSE.
Development
python -m pip install -e ".[e2e]"
pytest
pytest tests/unit --cov=cbe --cov-fail-under=80
The CI matrix runs Ubuntu and Windows on Python 3.10. The 80% gate covers unit coverage; E2E commands run in subprocesses and are not counted by coverage. There is no suppression/omit list.
CBF privacy gate (Phase 0)
CBF is not integrated yet. Status: PENDING_CBF_0.1.0; there is no CBF
PASS for this project or its releases. The cbf-privacy-gate CI job name is
reserved as a name only; no workflow file is added in Phase 0. No
continue-on-error / if: false bypass exists. See docs/CBF_ADOPTION.md.
Once CBF 0.1.0rc1 is available, this project must pin a CBF policy and run
cbf gate --surface git before upload/release. Until then, do not describe the
project as CBF-compatible or CBF-passed.
CBE itself does not implement CBF scanning. When CBF is available, CBE's
--gate-jobs may include cbf-privacy-gate; CBE only verifies that the job is
reachable and not skipped, not CBF findings or policy semantics. The same
opaque reachability rule applies to semantic-gate: CBE does not run a model
or judge semantics. CBE does not import CBF. A future CBE release requires a
real CBF PASS; 0.3.1 fixes the cbf package type but does not claim external
CBF PASS.
CBF status
CBF 0.1.0 stable has not been released (0.1.0rc1 is a pre-release). This project
is not CBF-certified and has no external CBF PASS. Phase 0 preparation
is recorded in docs/CBF_ADOPTION.md; no runtime
dependency, no import, and no CBF-certified release exists yet.
Metadata
Release files for cbe-review 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cbe_review-0.3.1.tar.gz | 49.6 kB | With provenance | Details for cbe_review-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cbe_review-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for cbe_review-0.3.1-py3-none-any.whl |
Total release size: 108.6 kB
Release files / cbe_review-0.3.1.tar.gz
| Download URL | cbe_review-0.3.1.tar.gz |
|---|---|
| Size | 49.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c6c5159f4c41074b214b04bcb5f40862ba08587f0031ee8c99d3146fb77ca89d
|
|
BLAKE2b-256 checksum How to use checksums |
79685e8ff49909eec8fdaf5a5240d7b3558ffba766936324b99dcc55a4d5c0db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / cbe_review-0.3.1-py3-none-any.whl
| Download URL | cbe_review-0.3.1-py3-none-any.whl |
|---|---|
| Size | 59.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a06c99ae5213f36eeb72473ff14537524540d9216c949857c1889889ac08cc6
|
|
BLAKE2b-256 checksum How to use checksums |
8a7462ea99c276ac0e0e9e578154e7bd00d7c35aa93d0c4ce9f8f5b0b96bcd77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logSecurity for cbe-review 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for cbe_review-0.3.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.