bijux-proteomics-dev¶
bijux-proteomics-dev implements repository policy as versioned, tested Python
instead of embedding it in shell fragments or CI-only behavior. It owns
validators for documentation, APIs and schemas, architecture, security,
quality, governance, compatibility, and release evidence.
flowchart LR
M["Make target"] --> E["stable Python entry point"]
E --> P["policy owner"]
P --> V["validator"]
V --> A["evidence in artifacts/"]
V --> X["actionable failure"]
P --> T["contract tests"]
Make targets provide stable operator commands; this package carries the policy and implementation behind them. The split keeps orchestration readable while allowing validators to have typed inputs, unit tests, and reusable failure reports.
Route by responsibility¶
| Concern | Guide | Expected owner |
|---|---|---|
| find a validator or helper family | Module map | one durable Python module family |
| choose checks for a change | Quality gates | explicit gate and evidence contract |
| protect API and schema evolution | Schema governance | lock, compatibility, and generated evidence owners |
| validate public documentation | Documentation integrity | links, structure, claims, badges, and build checks |
| evaluate dependency or code risk | Security gates | static, vulnerability, policy, and allowlist checks |
| prepare publication | Release support | build, identity, version, artifact, and preflight checks |
| make a repository-safe change | Maintainer safe change | scoped edit, affected gates, coherent commit |
| decide whether code belongs here | Scope and non-goals | repository policy rather than product behavior |
The package overview and package substance describe the implemented surface. Operating guidelines govern extensions and failure behavior.
Validator contract¶
Every repository validator needs:
- a stable command entry point;
- a clearly owned policy input;
- deterministic repository discovery and output location;
- success and failure tests, including malformed and missing inputs;
- actionable diagnostics identifying the violated contract and evidence;
- a nonzero exit status on failure;
- documented scope and known limits.
flowchart TD
I["repository inputs"] --> N["normalize and validate"]
N --> C["evaluate named contract"]
C --> R{"result"}
R -->|pass| E["write bounded evidence"]
R -->|fail| D["diagnostic and nonzero exit"]
D --> O["owner corrects cause"]
O --> I
A validator must not rewrite the input to make it conform, catch and discard a failure, or report success when a required tool is missing. Remediation belongs to an explicit owner command and remains separate from verification whenever the two actions can be reviewed independently.
Policy ownership¶
Product packages own scientific and runtime behavior. bijux-proteomics-dev
may inspect those packages against repository contracts, but it does not become
the source of truth for their domain models. Conversely, CI workflows call
maintainer commands; they do not carry independent copies of validation policy.
This creates a traceable chain:
- the Make target names the operator contract;
- the package module owns policy evaluation;
- package tests exercise positive and negative behavior;
- CI repeats the command in a clean environment;
- evidence and failures remain available for review.
Failure discipline¶
Failures identify the exact contract, subject, expected condition, observed condition, and remediation owner whenever possible. Existing blockers remain visible and distinguishable from regressions introduced by a change. A missing dependency, stale generated artifact, empty test collection, or skipped required surface is not a passing result.
Generated logs and reports belong under artifacts/ unless the command
explicitly governs a tracked repository output. Handwritten policy and
generated evidence are reviewed and committed separately when they are not
inseparable for correctness.