Skip to content

v1.0 Demo Evidence Chain

Status: Accepted in v1.0.0
Scope: documentation-only evidence map for the demo-3u Mission Model
Applies to: OrbitFabric Core v1.0.0 - Stable Mission Data Contract

This page records the selected v1.0 demonstration evidence chain for OrbitFabric Core.

It explains how the existing examples/demo-3u Mission Model demonstrates Mission Data Contract continuity across validation, scenario evidence, generated artifacts and Core-owned structured surfaces.

This page does not introduce new Mission Model semantics, new YAML fields, new CLI behavior, new generated surfaces, new scenario behavior or new compatibility guarantees beyond the v1.0.0 stable release boundary.


1. Purpose

The v1.0 demo proves one thing clearly:

A single validated Mission Model can carry the same mission-data meaning across commands, events, payloads, data products, storage/downlink intent, scenario evidence, generated artifacts and Core-owned structured surfaces.

The demo is not intended to prove flight readiness, ground readiness, protocol compliance or tool-specific integration.

The selected proof path is deliberately narrow and already present in the repository.


2. Source of truth

The source of truth is:

examples/demo-3u/mission/

The evidence scenario is:

examples/demo-3u/scenarios/payload_data_flow_evidence.yaml

The supporting generated and exported surfaces are:

generated/reports/payload_data_flow_evidence_report.json
generated/reports/model_summary.json
generated/reports/entity_index.json
generated/reports/relationship_manifest.json
generated/runtime/cpp17/
generated/ground/generic/
generated/docs/

Generated files remain disposable.

The Mission Model remains authoritative.


3. Selected evidence chain

The v1.0 demo evidence chain is:

payload.start_acquisition
        -> payload.acquisition_started
        -> payload lifecycle ACQUIRING
        -> payload.acquisition.active = true
        -> payload.radiation_histogram data product evidence
        -> storage intent declared
        -> downlink intent declared
        -> science_next_available_contact downlink flow
        -> demo_contact_001 contact window
        -> scenario JSON evidence
        -> runtime-facing contract bindings
        -> ground-facing dictionaries
        -> model_summary.json
        -> entity_index.json
        -> relationship_manifest.json
        -> golden signatures protecting selected Core-owned surface fields

This chain demonstrates contract continuity.

It does not demonstrate operational execution.


4. Mission Model declarations used by the chain

The chain is rooted in existing Mission Model declarations.

Chain element Mission Model source Contract meaning
payload.start_acquisition commands.yaml Command that starts synthetic payload acquisition.
payload.acquisition_started events.yaml Event emitted by the payload acquisition command.
demo_iod_payload payloads.yaml Synthetic IOD payload contract.
payload.acquisition.active telemetry.yaml Telemetry effect showing payload acquisition state.
payload.radiation_histogram data_products.yaml Synthetic payload data product produced by the demo payload.
science_next_available_contact contacts.yaml Downlink flow that includes the payload data product.
demo_contact_001 contacts.yaml Synthetic contact window used to demonstrate downlink assumptions.
primary_ground_contact contacts.yaml Synthetic ground contact profile.
uhf_downlink_nominal contacts.yaml Abstract downlink link profile.
payload_start_ground_rule commandability.yaml Commandability rule for the payload start command.

These declarations are contract declarations only.

They are not runtime services.


5. Scenario evidence

The scenario:

examples/demo-3u/scenarios/payload_data_flow_evidence.yaml

checks that the declared command effect is traceable to the declared data product and downlink assumptions.

The expected evidence path is:

payload.start_acquisition
        -> payload.radiation_histogram
        -> storage intent declared
        -> downlink intent declared
        -> science_next_available_contact
        -> demo_contact_001

The produced JSON report is a machine-readable scenario evidence surface.

The plain-text log remains human-oriented and non-contractual.


6. Runtime-facing generated artifacts

The same Mission Model can generate runtime-facing C++17 contract bindings:

orbitfabric gen runtime examples/demo-3u/mission/

The generated runtime-facing artifacts expose contract identifiers, registries, command argument structures and adapter interfaces.

They do not implement:

command dispatch
telemetry polling
scheduling
storage
downlink
HAL
drivers
RTOS integration
flight behavior

For the v1.0 demo, their role is to show that the same contract can be projected toward runtime-facing code boundaries without becoming flight software.


7. Ground-facing generated artifacts

The same Mission Model can generate ground-facing generic dictionaries:

orbitfabric gen ground examples/demo-3u/mission/

The generated ground-facing artifacts expose telemetry, command, event, fault, data product and packet dictionaries for review and downstream integration workflows.

They do not implement:

ground segment
mission control
telemetry archive
operator console
command uplink
telemetry decoder
telecommand encoder
Yamcs integration
OpenC3 integration
XTCE mission database

For the v1.0 demo, their role is to show that the same contract can be projected toward ground-facing review artifacts without becoming a ground segment.


8. Core-owned structured surfaces

The same Mission Model can export Core-owned structured surfaces:

orbitfabric export model-summary examples/demo-3u/mission/ \
  --json generated/reports/model_summary.json

orbitfabric export entity-index examples/demo-3u/mission/ \
  --json generated/reports/entity_index.json

orbitfabric export relationship-manifest examples/demo-3u/mission/ \
  --json generated/reports/relationship_manifest.json

These surfaces answer three different questions:

model_summary.json
        What contract domains are present?

entity_index.json
        What contract entities are defined?

relationship_manifest.json
        How are indexed contract entities related?

They are Core-owned, read-only and derived from the validated Mission Model.

They are not a second source of truth.


9. Relationship evidence selected for v1.0

The relationship_manifest.json surface is important for the demo because it shows that the chain is not just a narrative.

It exposes relationship records such as:

commands:payload.start_acquisition
        -> command_emits_event
        -> events:payload.acquisition_started

commands:payload.start_acquisition
        -> command_targets_subsystem
        -> subsystems:payload

payloads:demo_iod_payload
        -> payload_accepts_command
        -> commands:payload.start_acquisition

payloads:demo_iod_payload
        -> payload_produces_telemetry
        -> telemetry:payload.acquisition.active

data_products:payload.radiation_histogram
        -> data_product_produced_by_payload
        -> payloads:demo_iod_payload

downlink_flows:science_next_available_contact
        -> downlink_flow_includes_data_product
        -> data_products:payload.radiation_histogram

These records are derived from explicit loaded Mission Model fields.

They are not inferred from naming conventions, YAML scanning or downstream assumptions.


10. Golden signature protection

The v1.0 release includes golden signatures for selected Core-owned structured surface fields:

tests/golden/demo_3u_core_surfaces/model_summary_contract_signature.json
tests/golden/demo_3u_core_surfaces/entity_index_contract_signature.json
tests/golden/demo_3u_core_surfaces/relationship_manifest_contract_signature.json

The related test file is:

tests/test_v1_golden_core_surfaces.py

These golden signatures protect contract-significant fields such as:

surface kind
surface version
mission identity
boundary flags
domain counts
entity identifiers
relationship family counts
selected relationship records

They do not freeze:

absolute paths
full generated JSON files
human-oriented terminal output
Markdown wording
generated runtime bindings
generated ground dictionaries
disposable artifact formatting

11. Validation command sequence

The v1.0 demo evidence chain can be exercised with:

ruff check .
pytest
mkdocs build --strict

orbitfabric lint examples/demo-3u/mission/

orbitfabric sim examples/demo-3u/scenarios/payload_data_flow_evidence.yaml \
  --json generated/reports/payload_data_flow_evidence_report.json \
  --log generated/logs/payload_data_flow_evidence.log

orbitfabric export model-summary examples/demo-3u/mission/ \
  --json generated/reports/model_summary.json

orbitfabric export entity-index examples/demo-3u/mission/ \
  --json generated/reports/entity_index.json

orbitfabric export relationship-manifest examples/demo-3u/mission/ \
  --json generated/reports/relationship_manifest.json

orbitfabric gen runtime examples/demo-3u/mission/
cmake -S generated/runtime/cpp17 -B generated/runtime/cpp17/build
cmake --build generated/runtime/cpp17/build

orbitfabric gen ground examples/demo-3u/mission/
orbitfabric gen docs examples/demo-3u/mission/

This validates the contract chain as a host-side, deterministic engineering workflow.

It does not validate flight execution or ground execution.


12. Explicit non-claims

The v1.0 demo evidence chain must not be described as:

flight-ready
ground-segment-ready
mission-control-ready
XTCE-compatible
Yamcs-ready
OpenC3-ready
F Prime-compatible
cFS-compatible
CCSDS-compliant
PUS-compliant
security-enforcing
plugin-executing
relationship graph behavior

The correct claim is narrower:

The demo proves Mission Data Contract continuity from one validated Mission Model across scenario evidence, generated review artifacts and Core-owned structured surfaces.

13. Final position

The v1.0 demo is a proof of engineering continuity, not operational completeness.

The stable message is:

Define the contract once.
Validate it.
Exercise scenario evidence.
Generate review artifacts.
Export Core-owned structured surfaces.
Protect selected stable surface fields with golden signatures.
Keep the Mission Model as the source of truth.

That is the v1.0 demonstration posture for OrbitFabric Core.