# Decision: Treat embedded submodules as read-only ## Context `bee` embeds external git submodules such as: - `internal/chart/` — `reanimator/chart`, a generic read-only viewer for Reanimator JSON snapshots - `bible/` — shared engineering rules and contracts These repositories are reused by other projects. A local feature request in `bee` must not be solved by silently changing shared submodule behavior. The concrete failure mode here was attempting to add project-specific storage telemetry presentation by editing `internal/chart/`. That couples a shared viewer to one host application's needs and creates hidden cross-project regressions. ## Decision Embedded submodules are read-only from the point of view of `bee`. - Do not implement `bee`-specific behavior by editing `internal/chart/`. - Do not implement `bee`-specific behavior by editing `bible/`. - If `bee` needs new data in the report, produce it in the standard audit JSON emitted by `bee` itself. - `chart` must continue to consume the canonical snapshot as an external viewer, without host-specific forks. - Updating a submodule pointer to an upstream commit is allowed. - Carrying local unmerged submodule commits as part of a `bee` feature is forbidden. ## Consequences - Audit/report features must be expressed through the contract in `bible-local/docs/hardware-ingest-contract.md`. - `bee` owns collection, normalization, and serialization of storage telemetry in `hardware.storage[]`. - `chart` remains a pure visualization module that reads the snapshot it is given. - If a capability is genuinely missing in a shared submodule, it must be proposed and landed upstream as a generic change first, then pulled into `bee` via a normal submodule update.