Skip to content

Ownership Boundary

Ingest authority is transformation authority. It decides how source material becomes immutable documents, chunks, local indexes, ranked candidates, and extractive citations under declared configuration.

flowchart TD
    change{"What invariant changes?"}
    representation["source representation"]
    vector["governed vector execution"]
    meaning["claim support or verification"]
    orchestration["role order or convergence"]
    authority["run acceptance or replay policy"]

    change --> representation
    change --> vector
    change --> meaning
    change --> orchestration
    change --> authority

    representation --> ingest["bijux-canon-ingest"]
    vector --> index["bijux-canon-index"]
    meaning --> reason["bijux-canon-reason"]
    orchestration --> agent["bijux-canon-agent"]
    authority --> runtime["bijux-canon-runtime"]

Decision table

Change Owner Reason
normalize whitespace before chunk identity is computed ingest changes the prepared representation
alter overlap, tail handling, or structural deduplication ingest changes chunk boundaries, order, or identity
add a local lexical scoring option for the compact retrieval path ingest extends the package-owned reference workflow
select an eligible backend under exact/ANN and replay contracts index governs vector execution across backend capabilities
decide that cited bytes support a derived statement reason changes claim grounding and verification
retry a role because workflow convergence has not been reached agent changes orchestration lifecycle
permit or reject a completed flow under tenant policy runtime changes final run authority

The local retrieval seam

Both ingest and index contain retrieval-related code, but their authority is different:

  • ingest owns a local document workflow that makes preparation testable and provides BM25/NumPy reference retrieval and cited extraction;
  • index owns explicit execution intent, artifact materialization, backend capability negotiation, exact or bounded ANN execution, and replay evidence.

Moving from the first to the second is not triggered by corpus size alone. The boundary is crossed when retrieval needs governed backend choice, execution contracts, cross-run identity, or replay semantics.

Handoff contract

Downstream consumers receive stable source and chunk identity, normalized text, offsets within that text, embeddings when configured, metadata, and explicit result or failure values. They must not reinterpret normalized offsets as original byte offsets or assume hash embeddings carry semantic meaning.

The owner of a defect is the layer whose invariant was false. A changed chunk caused by normalization belongs here; a correct chunk ranked incorrectly under a declared vector contract belongs in index.

Minimum preparation handoff

A downstream package should receive one custody packet rather than unrelated text and vectors:

Handoff field Why it is required
source identity and retained digest/reference identifies the admitted input without claiming source reliability
reader/parser and effective preparation configuration explains how bytes or rows became fields and normalized text
RawDoc and CleanDoc relationship separates parsed representation from normalized representation
ordered chunk identities, text, parent links and normalized offsets makes segmentation and citation geometry auditable
embedding specification and vector identity, when present prevents vectors from being detached from model, dimension and metric assumptions
admitted, rejected and partial-status inventory prevents downstream success from hiding missing source material
observations, safeguards and typed failures exposes quality signals and effect-boundary behavior
serialization/index format and artifact fingerprint makes persisted material loadable or explicitly incompatible
flowchart LR
    source["source identity"]
    config["reader + preparation config"]
    prepared["RawDoc + CleanDoc"]
    chunks["ordered chunks + normalized spans"]
    optional["embedding spec + vectors"]
    disposition["accepted + rejected inventory"]
    packet["preparation handoff"]

    source --> packet
    config --> packet
    prepared --> packet
    chunks --> packet
    optional --> packet
    disposition --> packet

If a field is unavailable, the handoff must narrow its claim. For example, chunks without a source-to-normalized map may support normalized-text citations, but not original-byte coordinates.

Resolve boundary disputes by the first false record

Observed problem Inspect first Likely owner
source row was decoded into the wrong field reader output and RawDoc ingest
normalized text or chunk offsets differ under the same configuration CleanDoc, rules and chunk geometry ingest
vector dimension/specification in the handoff is wrong embedding output and EmbeddingSpec ingest or its selected embedder boundary
immutable prepared vectors are ranked differently by a declared backend execution request, backend and result index
top-ranked bytes do not support the proposed statement evidence span, support edge and findings reason
correct preparation output is omitted from a workflow merge shard/merge lineage and agent trace agent
prepared artifact is valid but disallowed for the tenant or flow manifest, policy and runtime verdict runtime

Begin at the earliest record whose invariant is false. Later packages retain the failure and its identity; they do not become the owner merely because they detected it.

Coordinate Spaces Are Part Of Custody

Cleaning can change case, whitespace, or retained content before chunking. Chunk start and end therefore address the normalized CleanDoc text, not the original CSV bytes or characters.

flowchart LR
    bytes["source bytes"]
    parsed["RawDoc fields"]
    normalized["CleanDoc text"]
    chunk["chunk text + normalized offsets"]
    candidate["ranked candidate"]

    bytes -->|decode and parse| parsed
    parsed -->|cleaning rules| normalized
    normalized -->|chunk geometry| chunk
    chunk -->|local retrieval| candidate
Question Evidence required
which source entered the pipeline? source identifier plus retained input identity or digest
which text was segmented? normalized parent text and effective cleaning configuration
where did a chunk come from? parent identity, normalized offsets, chunk text, and geometry
can a citation be mapped to original bytes? an explicit source-to-normalized mapping produced during preparation

The current chunk contract does not carry a general source-byte mapping. A consumer may quote the normalized span and identify its parent, but must not claim original-byte coordinates unless it retained an independent mapping.