Scope and Non-Goals¶
bijux-canon-dev owns executable repository-maintenance policy that benefits
from structured Python, focused tests, and stable diagnostics. It is called by
Make and workflows but remains outside product execution and compatibility
routing.
flowchart TD
R[Repository invariant] --> H[bijux-canon-dev helper]
H --> M[Make contract]
M --> W[Workflow trigger and permissions]
H --> E[Diagnostic or governed artifact]
P[Product invariant] --> C[Canonical product package]
L[Legacy public name] --> X[Compatibility package]
Owned responsibilities¶
The package owns rules whose inputs and meaning span repository maintenance:
- OpenAPI freeze, schema hash, and application-to-schema drift checks;
- effective MkDocs configuration, public documentation inventory, generated references, and badge synchronization;
- dependency-declaration analysis and vulnerability-policy normalization;
- version resolution, publication eligibility, and distribution metadata consistency;
- production and development dependency inputs for SBOM generation;
- package-bound hygiene reports that protect a repository invariant; and
- safe execution support for repository-owned absolute commands.
The package also protects its integration contracts through tests for package profiles, documentation navigation and publication, release artifacts, workflows, root configuration, workspace layout, and compatibility wrappers.
Explicit non-goals¶
bijux-canon-dev does not own:
- ingest normalization, index execution, reasoning, agent orchestration, or runtime admission;
- product domain models, protocols, persistence formats, or public APIs;
- compatibility imports, command aliases, wheel names, or deprecation behavior;
- workflow triggers, permissions, environments, or external credentials;
- generic convenience utilities without an identified repository rule; or
- a catch-all maintainer CLI that hides module ownership.
Product packages must not depend on bijux-canon-dev at runtime. Its declared
runtime dependencies are limited to tools needed to interpret maintenance
inputs; optional development dependencies supply its own tests and quality
toolchain.
Ownership test¶
Place a helper here only when all of these statements are true:
- the rule protects repository health, cross-package representation, or release evidence;
- structured parsing, comparison, or diagnostic behavior is clearer in Python than in a Make recipe;
- the input, output, refusal behavior, and caller can be named;
- focused tests can define the rule independently of CI; and
- no canonical package or compatibility wrapper is the more honest owner.
If only the caller is shared but the meaning is product-specific, keep the implementation in the product package and let maintenance automation invoke its public validation surface.
Borderline examples¶
| Requirement | Owner | Reason |
|---|---|---|
| compare every checked-in OpenAPI hash with its pin | bijux-canon-dev.api |
repository representation invariant |
| decide whether a reasoning claim is supported | bijux-canon-reason |
product semantics |
| reject a runtime dependency outside the repository allowlist | bijux-canon-dev.packages.runtime |
maintenance policy over package metadata |
| decide whether runtime may admit an execution | bijux-canon-runtime |
runtime policy and product behavior |
| verify a legacy import delegates to canonical code | compatibility package tests | compatibility ownership |
normalize pip-audit output against repository exclusions |
bijux-canon-dev.security |
shared security acceptance rule |
Dependency direction¶
Maintenance helpers may read package metadata, schemas, docs, and generated reports or import an application factory for explicit drift evaluation. That inspection does not reverse dependency direction: product code must remain usable without the maintenance package, its artifact tree, or workflow context.
The boundary is preserved when deleting bijux-canon-dev would remove
repository checks but would not change any product result.