Core Schema
An adjunction is a paired passage between categories. It carries a unit and counit that certify which information is introduced and which is conserved.
F : C → D, G : D → C
unit: id_C → G ∘ F
counit: F ∘ G → id_D
Interpretation: left adjoint creates structure, right adjoint preserves it.
Observability
Left view: "free" constructions and expansion.
Right view: "forgetful" projections and invariants.
Adjoint pair audit: unit and counit diagrams commute.
UI mapping: expand vs filter surfaces.
Design Hooks
Use adjunctions to control what the user sees first and what is revealed on demand.
Reading desk = left adjoint: build the scene.
Spec console = right adjoint: preserve invariants.
Switching between them should preserve a trace.
Trace Spec
Record the unit and counit actions as explicit log entries.
log: { action: "unit" | "counit", ref, timestamp }
verify: unit/counit triangles commute for exposed surfaces