feat(lab): canonize versioned report template

This commit is contained in:
DCCONSTRUCTIONS
2026-07-27 16:05:32 +03:00
parent 2c016b117d
commit 95c6540691
20 changed files with 582 additions and 128 deletions
+18
View File
@@ -127,6 +127,14 @@ There are not two unrelated laboratory-page templates. Mission Core has one
`compact summary → evidence → result → optional reusable details`.
The executable product contract is versioned as
`missioncore.laboratory-report/v1`. Its canonical summary always contains the
four named fields `question`, `approach`, `principalResult`, and `limitation`.
Its ordinary result uses the shared `LaboratoryResultSummary` with metrics and
the three named conclusions `proved`, `notProved`, and `decision`. LAB feature
modules provide typed values; they do not render `laboratory-summary` or
`laboratory-result-summary` markup themselves.
Catalog profile/work selectors precede the template. The compact summary
projects the task, method, principal result, limitation, and retained authority
from typed LAB data; it does not reproduce the complete engineering report.
@@ -140,10 +148,20 @@ The evidence slot has two admitted renderers:
- `diagnostic-model` — a specialized visual result such as the LAB E28 L2.6
surface/timeline/review viewer.
An admitted diagnostic viewer may own the result interaction internally when
the evidence itself is the review/result instrument, as in E28 and E30. This is
not permission to omit the result from a new ordinary LAB report. New bounded
`ENNResult.tsx` modules use `LaboratoryResultSummary`.
If an experiment needs a new chart or control, the reusable result/evidence
component is extended and validated. A one-off page that bypasses the template
is not accepted.
Changing slot order, removing a required summary/conclusion field, or changing
shared report geometry requires product-owner agreement, a new contract
version, migration of all consumers, and an updated architecture test. A
single LAB run never changes the v1 anatomy.
## Publication gates
A LAB run is catalogued only when: