Ownership model¶
Ownership identifies the package that defines a concept, validates its contract, and decides how failure is represented. The package that stores, executes, renders, or consumes a record does not automatically own its meaning.
Six forms of authority¶
| Authority | Canonical owner | Examples |
|---|---|---|
| representation | Foundation | identifiers, schema versions, canonical JSON, digests, migrations |
| scientific | Core | sequence and spectrum contracts, inference, quantification, workflow acceptance |
| operational | Runtime | providers, run state, checkpoints, replay, artifact custody |
| evidential | Knowledge | provenance, context, support, contradiction, sufficiency |
| decisional | Intelligence | ranking policy, sensitivity, alternatives, recommendation, refusal |
| experimental | Lab | assay readiness, custody, observations, requested-versus-observed reconciliation |
Repository orchestration and release validation are a seventh concern but not
a product authority. bijux-proteomics-dev, root Make targets, and workflows
check whether the product owners remain coherent; they do not redefine the
contracts they validate.
Resolve an owner¶
flowchart TD
change["new concept or disputed behavior"] --> shared{"meaning independent of a proteomics workflow?"}
shared -->|yes| foundation["Foundation"]
shared -->|no| science{"scientific calculation or acceptance?"}
science -->|yes| core["Core"]
science -->|no| execute{"execution, provider, state, or artifact custody?"}
execute -->|yes| runtime["Runtime"]
execute -->|no| evidence{"source, context, claim, or contradiction?"}
evidence -->|yes| knowledge["Knowledge"]
evidence -->|no| decision{"ranking, challenge, or recommendation?"}
decision -->|yes| intelligence["Intelligence"]
decision -->|no| consequence{"assay readiness, handoff, or observation?"}
consequence -->|yes| lab["Lab"]
consequence -->|no| review["restate the concept; ownership is unresolved"]
Widely used is not the same as universally owned. A type belongs in Foundation only when its meaning stays valid without a specific scientific, execution, evidence, decision, or laboratory policy.
Root and maintainer scope¶
The repository root owns cross-package navigation, tracked contract artifacts,
shared command dispatch, coordinated release framing, and automation entry
points. bijux-proteomics-dev owns the implementation of repository checks.
Neither location owns product behavior merely because it sees every package.
| Surface | Legitimate ownership | Misplacement signal |
|---|---|---|
| root documentation | cross-package synthesis and authority routing | repeats package-local semantics as a second source of truth |
apis/ |
reviewed machine-readable public contracts | contains an untracked runtime dump |
makes/ and workflows |
command composition and clean-environment execution | embeds scientific or compatibility policy instead of calling its owner |
bijux-proteomics-dev |
validators, generators, release and repository-health checks | becomes the only implementation of a product rule |
Compatibility ownership¶
agentic-proteins owns historical runtime naming and forwarding. Alias
distributions own their install and import names. Compatibility packages may
test and explain equivalence, but new behavior lands in the canonical package
first. A wrapper that begins defining independent semantics has crossed its
boundary even if its output still looks compatible.
Boundary examples¶
| Change | Owner | Why |
|---|---|---|
| add a stable identifier used by every product package | Foundation | shared meaning is independent of workflow policy |
| change peptide digestion or FDR acceptance | Core | scientific calculation and acceptance changed |
| add a checkpoint transition | Runtime | execution lifecycle changed |
| revise how contradictory literature is reconciled | Knowledge | evidence state changed |
| alter a ranking weight or escalation threshold | Intelligence | decision policy changed |
| require another assay control before handoff | Lab | experimental readiness changed |
| add a check that every package declares its owner | bijux-proteomics-dev |
repository validation changed, not product meaning |
| preserve an old import after a canonical module move | compatibility package | caller continuity changed, not canonical ownership |
When owners disagree¶
- Identify the exact contract or decision under dispute.
- Locate the package that validates and emits its authoritative record.
- Inspect the narrowest public API, schema, or artifact for that record.
- Compare the relevant tests and generated governance evidence.
- Treat duplicated definitions as a defect; do not choose whichever copy is convenient for the caller.
- Narrow the public claim until one owner and one evidence route agree.
Use Cross-Package Ownership for allowed dependency edges and artifact handoffs, and Package Map for direct routes into each owning handbook.