core/workbench-ui/schema-snapshot.json
Shay f68b395620 feat(workbench): Wave M C2-b — contemplation as a legible staged process
C2-a surfaced contemplation runs but rendered each scene as a flat JSON dump —
outputs, not process. C2-b makes the loop legible: every scene is now a typed
stage in the canonical ADR-0172 arc.

Reader-first (no theater):
  - schemas.py: ContemplationScene gains a typed loop projection — stage_role
    (cold_attempt | engine_enrichment | engine_proposal | operator_ratifies |
    grounded | other) plus the connective ids (proposal_id, candidate_id,
    proposal_state, grounding_source). New ContemplationStageRole Literal.
  - readers.py: _contemplation_scenes derives stage_role from the scene id
    (closed set, "other" fallback) and pulls the connective ids out of the raw
    detail. schema-snapshot.json regenerated.

UI:
  - ContemplationRoute: the run detail now renders the arc as a staged process —
    "attempt → enrich → propose → ratify → grounded" with named stage roles,
    cold→grounded bookends (surfaces pulled out of before/after), the connective
    ids as evidence, and the raw detail tucked into a collapsible (not lost).

Honest wrinkle (surfaced, not faked): the fixture proposals do NOT resolve in
the live proposal log (source_kinds exemplar_corpus/operator, none
contemplation), so the proposal id is shown as evidence but is intentionally
NOT a clickable cross-route link — a dead link would be theater. Live
Proposals/Calibration navigation is deferred to reader-verified linking once
real contemplation proposals reach the log.

Validation: 128 workbench Python tests + new reader-projection tests (canonical
arc → roles, unknown → "other", id extraction, detail preserved); 466/466
frontend incl. schemaDrift + the staged-process / no-dead-link test; pnpm build
clean; git diff --check clean. No serving-path imports.
2026-06-13 16:58:26 -07:00

399 lines
7.1 KiB
JSON

{
"ArtifactDetail": [
"content_type",
"content"
],
"ArtifactRef": [
"artifact_id",
"kind",
"path",
"digest",
"created_at"
],
"AuditEvent": [
"event_id",
"source",
"source_path",
"timestamp",
"event_type",
"mutation_boundary",
"summary",
"ref_id",
"payload_digest",
"payload"
],
"CalibrationClass": [
"class_name",
"correct",
"wrong",
"refused",
"committed",
"reliability_floor",
"coverage",
"propose_required",
"propose_licensed",
"serve_required",
"serve_licensed",
"source_path",
"source_digest"
],
"ChatTurnResult": [
"prompt",
"surface",
"articulation_surface",
"walk_surface",
"grounding_source",
"epistemic_state",
"normative_clearance",
"normative_detail",
"trace_hash",
"refusal_emitted",
"hedge_injected",
"mutation_mode",
"identity_verdict",
"safety_verdict",
"ethics_verdict",
"proposal_candidates",
"turn_cost_ms",
"checkpoint_emitted",
"leeway_evidence",
"pipeline_record",
"field_evidence",
"turn_id"
],
"CognitivePipelineEdge": [
"from_stage",
"to_stage",
"label"
],
"CognitivePipelineRecord": [
"schema_version",
"status",
"missing_reason",
"trace_hash",
"versor_condition",
"field_digest",
"stages",
"edges"
],
"CognitivePipelineStage": [
"stage_id",
"label",
"status",
"summary",
"detail"
],
"ContemplationRunDetail": [
"before",
"after",
"engine_chain",
"scenes"
],
"ContemplationRunSummary": [
"run_id",
"source_path",
"source_digest",
"prompt",
"cold_subject",
"scene_count",
"learning_arc_closed",
"all_claims_supported",
"active_corpus_byte_identical"
],
"ContemplationScene": [
"scene_id",
"claim",
"detail",
"stage_role",
"proposal_id",
"candidate_id",
"proposal_state",
"grounding_source"
],
"DemoDagEdge": [
"from_node",
"to_node",
"label"
],
"DemoDagNode": [
"node_id",
"label",
"summary",
"detail"
],
"DemoEvidenceDag": [
"graph_id",
"graph_kind",
"title",
"source_digest",
"nodes",
"edges"
],
"DemoRunResult": [
"demo_id",
"all_passed",
"what_this_proves",
"what_this_does_not_prove",
"scenarios"
],
"DemoScenarioRunResult": [
"scenario_id",
"status",
"passed",
"proposer_wrong",
"evidence_class",
"decision_reason",
"trace_hash",
"problems",
"response",
"evidence_dag"
],
"DemoScenarioSummary": [
"scenario_id",
"title",
"expected_status",
"evidence_class",
"proposer_wrong",
"what_this_proves",
"what_this_does_not_prove"
],
"DemoSummary": [
"demo_id",
"title",
"description",
"evidence_class",
"scenario_count",
"read_only",
"scenarios"
],
"EvalLaneSummary": [
"lane",
"versions",
"read_only",
"description"
],
"EvalRunResult": [
"lane",
"version",
"split",
"passed",
"metrics",
"cases",
"source_digest"
],
"FieldEvidence": [
"schema_version",
"status",
"missing_reason",
"trace_hash",
"versor_condition",
"versor_condition_ceiling",
"field_valid",
"field_digest",
"parent_field_digest",
"transition_inner_product"
],
"IdentityContinuity": [
"status",
"engine_identity",
"parent_engine_identity",
"current_engine_identity",
"written_at_revision",
"current_revision",
"lineage_relation",
"verification_summary",
"evidence_gap"
],
"LeewayEvidence": [
"class_name",
"license",
"theta",
"claim_disclosure",
"source_digest",
"calibration_evidence_ref"
],
"MathProposalDetail": [
"wrong_zero_assertion",
"proposed_change_payload",
"reasoning_trace_id",
"reasoning_trace_steps",
"evidence_hashes",
"handler_name",
"suggested_ratify_cli",
"leeway_evidence"
],
"MathProposalSummary": [
"proposal_id",
"domain",
"shape_category",
"proposed_change_kind",
"structural_commonality",
"evidence_count",
"replay_equivalence_hash"
],
"MathRatifyResult": [
"proposal_id",
"change_kind",
"handler_name",
"routing_status",
"message",
"suggested_cli",
"applied",
"target_path",
"evidence_hash"
],
"MathReasoningStep": [
"step_index",
"step_kind",
"claim",
"justification",
"input_pointers",
"output_payload"
],
"PackDetail": [
"manifest_digest",
"manifest"
],
"PackSummary": [
"pack_id",
"source",
"manifest_path",
"version",
"language",
"modality",
"determinism_class",
"checksum",
"checksums"
],
"ProposalDetail": [
"proposed_chain",
"replay_evidence",
"source",
"evidence",
"artifact_refs",
"suggested_cli",
"leeway_evidence"
],
"ProposalRef": [
"candidate_id",
"source_kind"
],
"ProposalSummary": [
"proposal_id",
"state",
"source_kind",
"replay_equivalent",
"created_at",
"downstream_effect"
],
"RunDetail": [
"turns",
"manifest",
"identity_continuity"
],
"RunSummary": [
"session_id",
"source",
"turn_count",
"started_at",
"updated_at",
"checkpoint_present",
"checkpoint_revision",
"artifact_refs",
"evidence_gap"
],
"RunTurnRef": [
"turn_id",
"trace_hash",
"timestamp",
"trace_path",
"surface_excerpt",
"trace_integrity"
],
"RuntimeStatus": [
"backend",
"git_revision",
"engine_state_present",
"checkpoint_revision",
"revision_warning",
"active_session_id",
"mutation_mode"
],
"ServingMetrics": [
"lane",
"correct",
"refused",
"wrong",
"sample_count",
"source_path",
"source_digest"
],
"TurnJournalEntrySchema": [
"turn_id",
"timestamp",
"trace_hash",
"prompt",
"surface",
"articulation_surface",
"walk_surface",
"grounding_source",
"epistemic_state",
"normative_clearance",
"verdicts",
"refusal_emitted",
"hedge_injected",
"proposal_candidates",
"turn_cost_ms",
"checkpoint_emitted",
"trace_integrity",
"journal_digest",
"leeway_evidence",
"pipeline_record",
"field_evidence"
],
"TurnJournalSummarySchema": [
"turn_id",
"timestamp",
"prompt_excerpt",
"surface_excerpt",
"trace_hash",
"grounding_source",
"trace_integrity"
],
"TurnReplayComparison": [
"turn_id",
"comparison_basis",
"origin_state",
"original_trace_hash",
"replay_trace_hash",
"equivalent",
"replay_turn_cost_ms",
"divergences",
"leeway_evidence"
],
"TurnReplayDivergence": [
"path",
"original",
"replay",
"severity"
],
"TurnVerdict": [
"outcome",
"runtime_detail"
],
"VaultEntry": [
"entry_index",
"epistemic_status",
"epistemic_state",
"metadata",
"versor_digest"
],
"VaultSummary": [
"source_path",
"entry_count",
"store_count",
"reproject_interval",
"max_entries",
"persisted"
]
}