power_house 0.3.7

Deterministic verification and provenance system for portable computational identities using .pha artifacts and Rootprint graphs.
Documentation
# Power House + slbit Observatory

Status: active integration guide for Power House v0.3.7 and slbit v0.1.0.

Power House and `slbit` are independent technologies:

- Power House verifies proofs, `.pha` artifacts, identity bindings, and
  Rootprint lineage.
- `slbit` produces deterministic semantic transcripts and visualization
  packets.
- The MFENX Observatory verifies both layers and renders them together.

The semantic layer is deliberately non-core. It never participates in a
`phx_fingerprint`, Rootprint branch ID, replay fingerprint, equivalence result,
or proof-validity decision.

## Install

```bash
cargo add power_house
cargo add slbit
```

The `slbit` crate has zero dependencies. Power House does not depend on it at
runtime. This repository uses it only as a development dependency for examples,
conformance vectors, and cross-crate tests.

## Create a verified Rootprint

Power House canonical JSON accepts integers, not floating-point values. Encode
fractional application values with an explicit fixed-point unit.

```rust
use power_house::{prove_with_rootprint, provenance::PhaArtifact};
use serde_json::json;

let artifact = PhaArtifact::new(
    json!({"producer": "vision-pipeline", "frame": 7842}),
    "vision/v1",
    json!({
        "claim": "stop-sign-detected",
        "confidence_millionths": 987_000
    }),
    json!({"accepted": true}),
)?;

let graph = prove_with_rootprint!(
    label: "drone-perception-7842",
    artifact: artifact,
)?;
graph.verify()?;
let replay_fingerprint = graph.replay()?.state_fingerprint;
# let _ = replay_fingerprint;
# Ok::<(), Box<dyn std::error::Error>>(())
```

## Create a semantic packet

```rust
use slbit::{
    BitInteractiveTranscript, LuminousClaim, SimpleLuminousSumcheck, VizHints,
};

let claim = LuminousClaim::new("drone-camera-frame-7842", 4096)
    .with_viz_hints(VizHints {
        color: Some([0, 200, 255]),
        icon: Some("camera".into()),
        layer_name: Some("perception-conv3".into()),
    });

let mut transcript = BitInteractiveTranscript::new(b"drone-seed-7842");
transcript.record_round_with_note(
    0,
    &[0xde, 0xad, 0xbe, 0xef],
    "sensor-processing",
    "Raw sensor frame converted into features",
);
transcript.record_round_with_note(
    1,
    &[0x42],
    "attention-head-7",
    "Stop-sign feature strongly activated",
);

let luminous = SimpleLuminousSumcheck { claim, transcript };
let packet = luminous.to_viz_packet()?;
packet.verify()?;
# Ok::<(), slbit::SlbitError>(())
```

`slbit` exports payload digests and annotations, not raw round payload bytes.
Its packet and transcript digests establish deterministic transport integrity;
they do not establish proof-system soundness.

## Bind the presentation layer

`ObservatorySidecar` binds opaque JSON packets to exact Rootprint branch IDs
and the canonical Rootprint replay fingerprint:

```rust,ignore
use power_house::ObservatorySidecar;
use std::collections::BTreeMap;

let packet_json = serde_json::from_str(&packet.to_json())?;
let sidecar = ObservatorySidecar::new(
    &graph,
    BTreeMap::from([(graph.root_branch.clone(), packet_json)]),
)?;
sidecar.verify(&graph)?;
```

The complete executable workflow is
[`examples/slbit_observatory.rs`](../examples/slbit_observatory.rs).

## CLI verification

```bash
julian rootprint verify proof.rootprint.json
julian observatory verify \
  proof.rootprint.json \
  proof.observatory.json
```

The second command first verifies the Power House graph, then checks the
optional sidecar schema, replay binding, branch references, and sidecar digest.
Power House treats packet bodies as opaque objects; `slbit` or another producer
must verify packet-specific semantics.

## Browser workflow

The public Observatory downloads and verifies:

1. `artifacts/rootprint-valid.json`;
2. `artifacts/luminous-valid.json`;
3. every `.pha` core fingerprint and Rootprint branch ID;
4. the canonical Rootprint replay fingerprint;
5. the Observatory sidecar digest;
6. every `slbit/viz-packet/v1` transcript and packet digest.

After verification, each graph node exposes its claim, layer, icon, color, and
human-readable transcript rounds. Selecting a node changes presentation state
only.

## Conformance

Generate the canonical integration vectors:

```bash
cargo run --example slbit_conformance_vectors
git diff --exit-code -- \
  conformance/slbit-v1 \
  publicpower/artifacts/luminous-valid.json
```

The manifest explicitly records
`"semantic_packets_affect_core_identity": false`. Mutation tests prove that a
semantic change rejects the sidecar while the underlying Rootprint remains
valid.

## Schemas

| Schema | Owner | Purpose |
| --- | --- | --- |
| `power-house/rootprint/v1` | Power House | Verified provenance DAG |
| `power-house/observatory-sidecar/v1` | Power House | Non-core branch-to-packet binding |
| `slbit/viz-packet/v1` | slbit | Semantic transcript and visualization data |

The normative `slbit` packet specification is published in the standalone
[`slbit` repository](https://github.com/JROChub/slbit/blob/main/docs/packet_spec.md).