Skip to content

docs(equipment): add Cross-aggregate invariants section#48

Merged
xmap merged 1 commit into
mainfrom
docs/equipment-fixture-mount-asset-choreography
Jun 5, 2026
Merged

docs(equipment): add Cross-aggregate invariants section#48
xmap merged 1 commit into
mainfrom
docs/equipment-fixture-mount-asset-choreography

Conversation

@xmap
Copy link
Copy Markdown
Owner

@xmap xmap commented Jun 5, 2026

Summary

Adds a new top-level section between Slices and Storage & Projections in docs/architecture/modules/equipment/index.md that documents how Mount, Fixture, and Asset compose at runtime.

The page previously described Mount and Fixture separately under Aggregates but never contrasted them, and never spelled out the guard family that ties Asset, Mount, and Fixture together. A solo dev reading the page in isolation can conflate "slot" between Mount.slot_code (a facility-unique physical bay) and SlotAssetBinding.slot_name (a template-local key drawn from the Assembly's required_slots).

What's added

  • One-paragraph Mount-vs-Fixture role contrast (where each fits)
  • An explicit gloss of the "slot" vocabulary overload
  • A four-axis comparison table (cardinality, lifecycle, relation graph, back-reference shape)
  • A table of the four cross-aggregate guards landed in slices 1, 2, and 3a (AssetHasFixtureBindingError, AssetIsInstalledError, MountHasFixtureBoundAssetError, FixtureAssetNotAttachableError)
  • A ten-step recommended choreography from register_asset through decommission_asset

The orphan-binding guard from slice 3b is intentionally NOT documented here because that slice has not yet landed on main (PR #44 in review); this docs slice can be amended once 3b merges.

Test plan

  • Pure docs change. No source or test edits.
  • mkdocs strict-mode build aborts on a pre-existing warning unrelated to this file (reference/conventions.md -> projects/supply.md link gap from a prior change), confirmed by stash-and-build comparison.
  • No em-dashes (style rule).

\U0001f916 Generated with Claude Code

The equipment module page describes Mount and Fixture separately
under Aggregates but never contrasts them, and never spells out the
guard family that ties Asset, Mount, and Fixture together. A solo
dev reading the page in isolation can conflate "slot" between
`Mount.slot_code` (a facility-unique physical bay) and
`SlotAssetBinding.slot_name` (a template-local key drawn from the
Assembly's required_slots).

Adds a new top-level section between `Slices` and
`Storage & Projections` that covers:

- One-paragraph Mount-vs-Fixture role contrast (where each fits).
- An explicit gloss of the "slot" vocabulary overload.
- A four-axis comparison table (cardinality, lifecycle, relation
  graph, back-reference shape).
- A table of the four cross-aggregate guards landed in slices 1, 2,
  and 3a (decommission_asset's two HAS/IS guards, uninstall_asset's
  fixture-bound guard, register_fixture's not-attachable guard).
- A ten-step recommended choreography that walks register_asset
  through decommission_asset, with the note that the install /
  detach / uninstall / decommission ordering on the teardown side is
  what the four guards enforce.

The orphan-binding guard from slice 3b is intentionally NOT
documented here because that slice has not yet landed on main; this
docs slice can be amended once 3b merges.

Pure docs change. No source edits, no test edits. The mkdocs
strict-mode build aborts on a pre-existing warning unrelated to
this file (`reference/conventions.md` -> `projects/supply.md` link
gap from a prior change).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 5, 2026

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  apps/api/src/cora/equipment
  routes.py
  tools.py
  apps/api/src/cora/equipment/aggregates/fixture
  events.py
  evolver.py
  state.py
  apps/api/src/cora/equipment/projections
  fixture_summary.py
Project Total  

This report was generated by python-coverage-comment-action

@xmap xmap merged commit 642bb98 into main Jun 5, 2026
4 checks passed
@xmap xmap deleted the docs/equipment-fixture-mount-asset-choreography branch June 5, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant