Ownership Boundary¶
DAG behavior is split intentionally across crates. This boundary prevents CLI wrappers, runtime internals, and artifact storage logic from bleeding into each other.
Visual Summary¶
flowchart LR
cli["dag-cli"] --> app["dag-app orchestration"]
app --> core["dag-core semantics"]
app --> runtime["dag-runtime execution"]
runtime --> artifacts["dag-artifacts persistence"]
core -.no direct process side effects.-> purity["pure kernel boundary"]
Ownership Rules¶
bijux-dag-cliowns process entry and shell completion wiring only.bijux-dag-appowns command orchestration and response formatting.bijux-dag-coreowns deterministic graph semantics and planner lowering.bijux-dag-runtimeowns execution engine, scheduler, policy, and replay logic.bijux-dag-artifactsowns artifact formats, integrity, and lifecycle helpers.
Boundary Tests¶
- app crate boundary checks:
crates/bijux-dag-app/tests/crate_boundary_contract.rs - runtime boundaries:
crates/bijux-dag-runtime/tests/runtime_*_contracts.rs - core purity and identity behavior:
crates/bijux-dag-core/tests/*contract*.rs
Code Anchors¶
crates/bijux-dag-app/CONTRACT.mdcrates/bijux-dag-core/CONTRACT.mdcrates/bijux-dag-runtime/CONTRACT.mdcrates/bijux-dag-artifacts/CONTRACT.md