JARVIGManual

ADR-0015 — Dependency direction

Status: Accepted Date: 2026-09-22

Context

Editor convenience imports are how engines become unable to ship a headless server.

Decision

Dependencies point toward the engine, never out of it. The enforced table is tools/validation/check-boundaries.mjs, documented in docs/architecture/dependency-rules.md. pnpm lint fails on a violation. The dedicated server may not import the render package or the editor. Render may depend on world. World may not depend on render.

Alternatives Considered

  • Convention without a test. Rejected. The founding ticket JRV-0001 asks CI to reject the forbidden import.
  • A runtime check inside every module. Rejected as the primary gate. The import must fail at lint time, before the module graph loads.

Consequences

New packages update the checker and the doc together. Cook-time exclusion of unused node_modules is still future work. Source-level exclusion is the Phase 0 gate.

Supersedes

Nothing.

Superseded By

Nothing.