Skip to content

Repository Boundary Rules

bijux-gnss-dev owns maintainer workflows. It may validate governed repository inputs, derive maintenance commands, compare benchmarks, and emit maintenance evidence. It must not become product runtime, GNSS science, operator workflow, or a general scripting crate.

Dependency Direction

flowchart TD
    command["bijux-gnss<br/>operator command crate"]
    receiver["bijux-gnss-receiver<br/>runtime pipeline"]
    infra["bijux-gnss-infra<br/>datasets and persistence"]
    nav["bijux-gnss-nav<br/>navigation science"]
    signal["bijux-gnss-signal<br/>signal substrate"]
    core["bijux-gnss-core<br/>shared contracts"]
    dev["bijux-gnss-dev<br/>maintainer workflows"]
    policies["bijux-gnss-policies<br/>shared repository guardrails"]

    command --> receiver
    command --> infra
    receiver --> nav
    receiver --> signal
    infra --> core
    nav --> core
    signal --> core
    receiver --> core
    dev --> policies
    dev -. does not own .-> command
    dev -. does not own .-> receiver

Product crates may share GNSS contracts through lower owners. Maintainer tooling may inspect repository inputs and emit evidence, but it should not define product behavior that belongs to command, receiver, infra, nav, signal, or core.

Boundary Decisions

proposed work belongs in bijux-gnss-dev when belongs elsewhere when
audit allowlist handling it validates reviewed repository exceptions or derives audit arguments it changes dependency policy shared across repositories
deny deviation handling it validates this repository's governed input file it changes the shared standard itself
benchmark comparison it executes or compares maintainer-approved benchmark suites it changes product algorithm behavior being benchmarked
command workflow guardrail it protects repository maintenance commands it adds operator-facing GNSS behavior
artifact or output handling it writes maintainer evidence into governed locations it defines receiver runtime artifacts or infra persistence layout

Public Boundary Rule

  • Expose a curated command surface, not the whole source tree.
  • Keep internal modules private until another crate has a durable contract to import.
  • Remove forwarding modules that do not own behavior, validation, or a public compatibility seam.
  • Keep product semantics out of maintainer commands even when a maintenance workflow inspects product artifacts.

Structure Discipline

  • Let path names reveal ownership before implementation detail.
  • Group modules by durable responsibility: validation, policy, benchmark, output, command execution, or governed input.
  • Keep repository effects explicit so reviewers can see what a maintainer command reads and writes.
  • If a module name needs a long explanation, the boundary probably needs a clearer owner.

First Proof Check

Inspect crates/bijux-gnss-dev/docs/BOUNDARY.md, crates/bijux-gnss-dev/docs/PUBLIC_API.md, crates/bijux-gnss-dev/docs/WORKFLOWS.md, crates/bijux-gnss-dev/src/main.rs, and crates/bijux-gnss-dev/tests/integration_guardrails.rs.