feat(lab): complete E30 evidence review gate

This commit is contained in:
DCCONSTRUCTIONS
2026-07-27 11:00:32 +03:00
parent a44d7627fd
commit 001d597a89
55 changed files with 15897 additions and 1548 deletions
+62
View File
@@ -39,3 +39,65 @@ and the boundary between Mission Core and vendor-specific integration code.
Follow the gates in `docs/01_IMPLEMENTATION_PLAN.md`. Do not build heavy
decoders before BLE/Wi-Fi/data-session evidence exists.
## Product UI governance
- For every Control Station, LAB, viewer, or product-presentation change, use
`.codex/skills/mission-core-product-ui/SKILL.md` and follow
`docs/17_PRODUCT_UI_AND_LAB_PRESENTATION_CANON.md` and
`docs/18_APPLICATION_COMPONENT_ARCHITECTURE.md`.
- `NODEDC_DESIGN_GUIDELINE` is the only visual-design source of truth. Before
editing UI, read its `registry/registry.json`, `registry/components.json`,
`registry/icons.json`, and the relevant component documentation.
- Reuse `@nodedc/ui-react`, `@nodedc/ui-core`, tokens, icons, and page patterns.
Do not create an application-local visual control, interaction state,
geometry, color language, or copy of a design-system component.
- If the required visual entity is absent from the Design Guideline, stop and
obtain explicit product-owner approval. After approval, add it to the Design
Guideline first with registry, documentation, states, and validation; only
then consume it here.
- Domain renderers may remain Mission Core code when they visualize Mission
Core data. Their controls and containing surfaces must still be composed from
canonical Design Guideline exports.
- Product UI must not expose implementation steps, roadmap gates, internal
reason taxonomies, debug controls, placeholder status blocks, or temporary
experiment scaffolding. Keep these in Ops, engineering reports, or developer
tooling.
- Extend one reusable application pattern instead of adding per-LAB layouts.
A new LAB supplies data and renderer configuration; it does not invent a new
page hierarchy or visual language.
- Do not generalize the LAB hierarchy into a universal application template.
For a new non-LAB interface, follow
`docs/19_PRODUCT_SURFACE_EXTENSION_PROTOCOL.md`: identify the operator job,
compare placement/composition alternatives, classify the novelty, and obtain
product-owner agreement before adding a workspace, changing primary
navigation, or introducing a new product root.
- Preserve one product grammar while allowing task-specific composition. A
scene, map, timeline, queue, editor, topology, dashboard, and LAB review may
have different layouts when their entity, lifecycle, or action model differs.
- Preserve the internal dependency direction:
`core → components/renderers → workspaces → composition/App`. Core never
imports workspaces or visual adapters; reusable components never import
workspaces. New domains and LAB runs get their own feature module instead of
growing `App.tsx`, `Workspaces.tsx`, or generic CSS buckets.
- Treat `productModel.ts`, executable versioned contracts, and the experimental
vocabulary as the current local semantic sources. Do not add a parallel
runtime ontology unless the admission conditions in
`docs/18_APPLICATION_COMPONENT_ARCHITECTURE.md` are met.
## Laboratory presentation and reporting
- Use one fixed laboratory presentation contract: selectors, one compact
canonical summary, admitted evidence viewer(s), result, and optional reusable
technical details.
- The compact summary must explain the decision question, immutable source,
tested method/models/algorithms, experimental mode, principal result,
limitations, and retained authority. It is not the engineering report.
- The complete engineering report belongs in the Mission Core Ops card as
titled structured blocks: objective and architecture stage, source evidence,
method/models/algorithms, worker/runtime, implementation, validation,
results, regressions and limitations, decision, next stage, and acceptance
checker.
- Spatial evidence uses 3D by default. Image-space reprojection may be offered
as a 2D diagnostic mode inside the same reusable viewer. Primary evidence
viewers must provide the canonical expand/restore action.