Repository Verification Workflow¶
.github/workflows/verify.yml is the required repository verification graph.
It gates package work behind policy prerequisites and shared repository
contracts, then delegates package checks through one reusable workflow.
flowchart LR
event["push, pull request, merge group, dispatch"]
policy["policy-prerequisites"]
repo["repository-contracts"]
matrix["package matrix"]
ready["verification-ready"]
event --> policy --> repo --> matrix --> ready
Trigger Contract¶
The workflow runs for main pushes and pull requests that change repository
policy, workflows, APIs, configs, docs, make logic, packages, or root build
configuration. It also supports manual dispatch and merge-queue validation.
Concurrency is keyed by Git reference, and a newer run cancels an older run for the same reference. Repository permissions are read-only.
Gate Order¶
Policy prerequisites¶
policy-prerequisites runs .github/scripts/check_workflow_prerequisites.py.
It prevents repository verification from proceeding before required policy and
standards checks have reached their expected state.
Repository contracts¶
repository-contracts runs only after the policy gate. It verifies:
These checks cover synchronized make standards, required configuration layout, required make entrypoints, and the public help surface. They do not substitute for package tests.
Package matrix¶
The matrix covers the five runtime packages plus bijux-canon-dev. Each entry
passes package directory and artifact directory to .github/workflows/ci.yml,
which delegates to the SHA-pinned reusable Python workflow in bijux-std.
Default package checks are quality, security, docs, api, build, and
sbom. Notable exceptions are explicit in the matrix:
- runtime also runs
openapi-driftand post-test coverage thresholds for selected boundaries when those files exist; - ingest tests Python 3.11, 3.12, and 3.13; and
- the development package omits docs and API checks from its package targets.
Matrix jobs do not fail fast, so one package failure does not hide evidence from the others.
Completion gate¶
verification-ready always evaluates after repository and package jobs. It
succeeds only when both job groups report success. This gives branch protection
one stable terminal check without discarding the package-level failure detail.
Reading a Failure¶
Start with the earliest failed gate:
| Failed job | Investigate first |
|---|---|
policy-prerequisites |
prerequisite workflow state and GitHub policy visibility |
repository-contracts |
synchronized standards, config tree, or make layout |
| package matrix entry | that package's delegated check and artifact directory |
verification-ready only |
dependency result propagation or cancellation state |
Package artifacts are written under the matrix entry's artifacts/<package>
directory. Use those logs before rerunning a broad lane; they identify the
specific check family that failed.
Change Ownership¶
Both workflow files are synchronized from bijux-std and carry a generated
source-of-truth notice. Change reusable behavior upstream, then refresh the
managed copy and checksum through the standards synchronization process. Local
package behavior belongs in package make profiles or repository-owned check
configuration, not in a hand-edited generated workflow.
See CI Targets for the local command families used by delegated checks.