open-standards/jcp/conformance/v1/energy_trace.json
David Charlot f9dac4e14b
Some checks failed
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m45s
standards workspaces build + test / aac-rs (pull_request) Successful in 1m32s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Has been cancelled
no-vanity-metrics / WAI public text names no comparison (pull_request) Has been cancelled
no-vanity-metrics / WAI public text names no company or product (pull_request) Has been cancelled
standards workspaces build + test / arl-rs (pull_request) Has been cancelled
standards workspaces build + test / eoc-rs (pull_request) Has been cancelled
standards workspaces build + test / jcp-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-ui-rs (pull_request) Has been cancelled
standards workspaces build + test / joulecontract-rs (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (pull_request) Has been cancelled
standards workspaces build + test / map-rs (pull_request) Has been cancelled
standards workspaces build + test / mesh-rs (pull_request) Has been cancelled
standards workspaces build + test / openpay (pull_request) Has been cancelled
standards workspaces build + test / proof-rs (pull_request) Has been cancelled
standards workspaces build + test / sandbox-rs (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / smart-byte-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Has been cancelled
standards workspaces build + test / joule-code-rs (pull_request) Has been cancelled
jcp: publish the energy_trace/1 conformance pack, and replay it
§5.3–5.6 stated rules and nothing emitted them. The types did not even derive
`Serialize`, so the profile could not cross a wire, let alone be checked by
anyone else — a shape nothing emits is a proposal, which is the same gap the
C2PA emitter closed for `wai` and the negative-vector replay closed for
`joulecontract`.

So: serde on the trace and dynamics types, a `gen_trace_vectors` binary writing
`jcp/conformance/v1/energy_trace.json`, and a test that reads those bytes back
from disk — the same bytes a third party would — and checks the reference
implementation reproduces every recorded verdict.

The pack carries the refusals, not just the acceptances, because the refusals
are the load-bearing half. An implementation that admits an unbound outcome, a
double-counted activity, an over-accounted total or a frozen counter has failed
in the direction that flatters, which is the direction nobody notices:

- conservation: the named residual, the provenance/coverage floor, and all three
  refusals (`Unbound`, `DuplicateActivity`, `OverAccounted`)
- budget: 0.5 % over a one-joule grant is 5000 ppm against a 1 ppm floor; the
  same floor over `Estimator` windows is exact and physically meaningless; a
  ratio against a zero grant is not a figure
- physical: refuted above the burst envelope, refuted **below** the idle floor
  (the frozen-counter shape), `NotRefuted` which is not verification, and a
  zero-duration window as unboundable rather than clean
- shape: a total balanced by padding does not read as sustained; character is
  scale-invariant at 37× the magnitude; under three windows it is unresolvable
- dynamism: an undeclared baseline makes no comparison, a coarser baseline does
  not apply to finer windows, and a cause explains only with evidence attached

Falsified rather than assumed: flipping one recorded residual by a single
microjoule — 250000 to 250001 — fails the replay naming the case and the field.
The pack was then regenerated and the value confirmed back at 250000.

Two anti-vacuity guards, because this file has been written three times this
session and twice the first version could not fail: the pack path is asserted
rather than skipped, and a test requires every declared section plus at least 20
replayed cases, so a wrong path or a renamed key fails instead of passing having
checked nothing.

Verified: 49 tests in `jcp-efficiency` — 43 unit, 6 pack.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-02 00:06:10 -04:00

1003 lines
25 KiB
JSON

{
"budget": {
"negative": [
{
"expected": {
"detectable_floor_ppm": null,
"drift_ppm": null
},
"input": {
"accounted_uj": 5,
"granted_uj": 0
},
"note": "a ratio against a zero grant is not a figure"
}
],
"positive": [
{
"expected": {
"detectable_floor_ppm": 1,
"drift_is_resolvable": true,
"drift_ppm": 5000,
"floor_is_physical": true
},
"input": {
"accounted_uj": 1005000,
"granted_uj": 1000000,
"provenance_floor": "HwShunt"
},
"note": "half a percent over a one-joule grant is 5000 ppm, floor 1 ppm"
},
{
"expected": {
"detectable_floor_ppm": 1,
"drift_ppm": 5,
"floor_is_physical": false
},
"input": {
"accounted_uj": 1000005,
"granted_uj": 1000000,
"provenance_floor": "Estimator"
},
"note": "the same floor over modelled windows is exact and meaningless"
},
{
"expected": {
"drift_ppm": -700000
},
"input": {
"accounted_uj": 300000,
"granted_uj": 1000000,
"provenance_floor": "HwShunt"
},
"note": "underspend is signed, not clamped: allowed joules nothing claimed"
}
]
},
"conservation": {
"negative": [
{
"expected": {
"error": "Unbound"
},
"input": {
"activities": [],
"completed": true,
"total": {
"estimated_uj": 1000000,
"measured_uj": 1000000,
"provenance": "HwShunt"
}
},
"note": "an outcome traceable to nothing is refused"
},
{
"expected": {
"error": "DuplicateActivity"
},
"input": {
"activities": [
{
"coverage": "Whole",
"joules_uj": 100,
"provenance": "HwShunt",
"receipt": [
131,
254,
130,
87,
58,
181,
54,
207,
32,
202,
241,
199,
142,
152,
1,
167,
222,
190,
185,
106,
127,
54,
150,
55,
244,
56,
187,
18,
192,
232,
2,
31
]
},
{
"coverage": "Whole",
"joules_uj": 100,
"provenance": "HwShunt",
"receipt": [
131,
254,
130,
87,
58,
181,
54,
207,
32,
202,
241,
199,
142,
152,
1,
167,
222,
190,
185,
106,
127,
54,
150,
55,
244,
56,
187,
18,
192,
232,
2,
31
]
}
],
"completed": true,
"total": {
"estimated_uj": 1000,
"measured_uj": 1000,
"provenance": "HwShunt"
}
},
"note": "a double-bound activity is refused before the sum"
},
{
"expected": {
"accounted_uj": 140,
"error": "OverAccounted",
"total_uj": 100
},
"input": {
"activities": [
{
"coverage": "Whole",
"joules_uj": 90,
"provenance": "HwShunt",
"receipt": [
145,
164,
228,
185,
68,
127,
194,
173,
193,
139,
176,
74,
18,
11,
104,
118,
90,
128,
13,
105,
45,
112,
99,
117,
0,
80,
196,
87,
158,
232,
254,
67
]
},
{
"coverage": "Whole",
"joules_uj": 50,
"provenance": "HwShunt",
"receipt": [
214,
244,
83,
42,
36,
238,
178,
159,
163,
59,
43,
88,
40,
16,
8,
50,
57,
110,
181,
174,
173,
88,
149,
104,
17,
233,
101,
109,
180,
224,
255,
116
]
}
],
"completed": true,
"total": {
"estimated_uj": 100,
"measured_uj": 100,
"provenance": "HwShunt"
}
},
"note": "activities claiming more than the outcome are refused"
}
],
"positive": [
{
"expected": {
"accounted_uj": 750000,
"coverage_floor": "Whole",
"provenance_floor": "HwShunt",
"residual_uj": 250000,
"unattributed_ppm": 250000
},
"input": {
"activities": [
{
"coverage": "Whole",
"joules_uj": 400000,
"provenance": "HwShunt",
"receipt": [
145,
164,
228,
185,
68,
127,
194,
173,
193,
139,
176,
74,
18,
11,
104,
118,
90,
128,
13,
105,
45,
112,
99,
117,
0,
80,
196,
87,
158,
232,
254,
67
]
},
{
"coverage": "Whole",
"joules_uj": 350000,
"provenance": "HwShunt",
"receipt": [
214,
244,
83,
42,
36,
238,
178,
159,
163,
59,
43,
88,
40,
16,
8,
50,
57,
110,
181,
174,
173,
88,
149,
104,
17,
233,
101,
109,
180,
224,
255,
116
]
}
],
"completed": true,
"total": {
"estimated_uj": 1000000,
"measured_uj": 1000000,
"provenance": "HwShunt"
}
},
"note": "the residual names what no operation claims"
},
{
"expected": {
"accounted_uj": 600,
"coverage_floor": "Partial",
"provenance_floor": "Estimator",
"residual_uj": 400
},
"input": {
"activities": [
{
"coverage": "Whole",
"joules_uj": 300,
"provenance": "HwShunt",
"receipt": [
145,
164,
228,
185,
68,
127,
194,
173,
193,
139,
176,
74,
18,
11,
104,
118,
90,
128,
13,
105,
45,
112,
99,
117,
0,
80,
196,
87,
158,
232,
254,
67
]
},
{
"coverage": "Partial",
"joules_uj": 300,
"provenance": "Estimator",
"receipt": [
214,
244,
83,
42,
36,
238,
178,
159,
163,
59,
43,
88,
40,
16,
8,
50,
57,
110,
181,
174,
173,
88,
149,
104,
17,
233,
101,
109,
180,
224,
255,
116
]
}
],
"completed": true,
"total": {
"estimated_uj": 1000,
"measured_uj": 1000,
"provenance": "HwShunt"
}
},
"note": "provenance and coverage take the floor, never the average"
}
]
},
"dynamism": {
"cases": [
{
"expected": {
"deviation": "BaselineInapplicable"
},
"input": {
"baseline": {
"band_uj": 100,
"declared_applicable": false,
"expected_uj": 1000,
"fit_window_ns": 1000,
"source": "harness:run-1"
},
"window": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 5000,
"provenance": "HwShunt",
"started_ns": 0
}
},
"note": "an undeclared baseline makes no comparison"
},
{
"expected": {
"deviation": "BaselineInapplicable"
},
"input": {
"baseline": {
"band_uj": 100,
"declared_applicable": true,
"expected_uj": 1000,
"fit_window_ns": 10000000,
"source": "harness:coarse"
},
"window": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 5000,
"provenance": "HwShunt",
"started_ns": 0
}
},
"note": "a baseline fit coarser than the trace samples does not apply"
},
{
"expected": {
"deviation": "Unexplained",
"excess_uj": 4000
},
"input": {
"baseline": {
"band_uj": 100,
"declared_applicable": true,
"expected_uj": 1000,
"fit_window_ns": 1000,
"source": "harness:run-1"
},
"cause": null,
"window": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 5000,
"provenance": "HwShunt",
"started_ns": 0
}
},
"note": "outside the band with no evidenced cause stays unexplained"
},
{
"expected": {
"cause_token": "thermal_throttle",
"deviation": "Explained",
"evidence": "5bf7c3480486191c7a4765d7f463d0f30663489492c4d0eaab8d57749d2b2f1a",
"excess_uj": 4000
},
"input": {
"baseline": {
"band_uj": 100,
"declared_applicable": true,
"expected_uj": 1000,
"fit_window_ns": 1000,
"source": "harness:run-1"
},
"cause": {
"ThermalThrottle": {
"reading": [
91,
247,
195,
72,
4,
134,
25,
28,
122,
71,
101,
215,
244,
99,
208,
243,
6,
99,
72,
148,
146,
196,
208,
234,
171,
141,
87,
116,
157,
43,
47,
26
]
}
},
"window": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 5000,
"provenance": "HwShunt",
"started_ns": 0
}
},
"note": "a cause with evidence explains; the token is the claim vocabulary"
}
],
"note": "there is no verdict of intent in this profile, by design"
},
"physical": {
"cases": [
{
"expected": {
"floor_uj": 400000,
"verdict": "RefutedBelow"
},
"input": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 400000000,
"joules_uj": 0,
"provenance": "HwShunt",
"started_ns": 0
},
"note": "a frozen counter on a busy window is refuted from below"
},
{
"expected": {
"verdict": "RefutedAbove"
},
"input": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 10000000,
"provenance": "HwShunt",
"started_ns": 0
},
"note": "a figure past the burst envelope is refuted from above"
},
{
"expected": {
"verdict": "NotRefuted"
},
"input": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 30000,
"provenance": "HwShunt",
"started_ns": 0
},
"note": "inside the envelope is NotRefuted — which is not verification"
},
{
"expected": {
"verdict": "Unboundable"
},
"input": {
"coverage": "Whole",
"declared_work": null,
"duration_ns": 0,
"joules_uj": 999,
"provenance": "HwShunt",
"started_ns": 0
},
"note": "a zero-duration window is unboundable, not clean"
}
],
"envelope": {
"idle_floor_mw": 1000,
"peak_mw": 60000,
"source": "burst rating, deliberately permissive"
}
},
"profile": "energy_trace/1",
"shape": {
"cases": [
{
"expected": {
"verdict": "Inconsistent"
},
"input": {
"declared": "Sustained",
"windows": [
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 300000,
"provenance": "HwShunt",
"started_ns": 0
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 10,
"provenance": "HwShunt",
"started_ns": 1000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 10,
"provenance": "HwShunt",
"started_ns": 2000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 10,
"provenance": "HwShunt",
"started_ns": 3000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 10,
"provenance": "HwShunt",
"started_ns": 4000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 10,
"provenance": "HwShunt",
"started_ns": 5000000
}
]
},
"note": "a total balanced by padding does not read as sustained"
},
{
"expected": {
"shape": "Sustained",
"verdict": "Consistent"
},
"input": {
"declared": "Sustained",
"windows": [
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 37000,
"provenance": "HwShunt",
"started_ns": 0
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 37740,
"provenance": "HwShunt",
"started_ns": 1000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 36260,
"provenance": "HwShunt",
"started_ns": 2000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 37370,
"provenance": "HwShunt",
"started_ns": 3000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 36630,
"provenance": "HwShunt",
"started_ns": 4000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 37000,
"provenance": "HwShunt",
"started_ns": 5000000
}
]
},
"note": "character is scale-invariant: same shape at 37x the magnitude"
},
{
"expected": {
"shape": "Sustained",
"verdict": "Consistent"
},
"input": {
"declared": "Sustained",
"windows": [
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1000,
"provenance": "HwShunt",
"started_ns": 0
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1020,
"provenance": "HwShunt",
"started_ns": 1000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 980,
"provenance": "HwShunt",
"started_ns": 2000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1010,
"provenance": "HwShunt",
"started_ns": 3000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 990,
"provenance": "HwShunt",
"started_ns": 4000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1000,
"provenance": "HwShunt",
"started_ns": 5000000
}
]
},
"note": "flat is sustained"
},
{
"expected": {
"shape": "Ramping",
"verdict": "Consistent"
},
"input": {
"declared": "Ramping",
"windows": [
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 100,
"provenance": "HwShunt",
"started_ns": 0
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 400,
"provenance": "HwShunt",
"started_ns": 1000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 700,
"provenance": "HwShunt",
"started_ns": 2000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1000,
"provenance": "HwShunt",
"started_ns": 3000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1100,
"provenance": "HwShunt",
"started_ns": 4000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1120,
"provenance": "HwShunt",
"started_ns": 5000000
}
]
},
"note": "rising then settling is a ramp"
},
{
"expected": {
"shape": "Bursty",
"verdict": "Consistent"
},
"input": {
"declared": "Bursty",
"windows": [
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 100,
"provenance": "HwShunt",
"started_ns": 0
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 2000,
"provenance": "HwShunt",
"started_ns": 1000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 100,
"provenance": "HwShunt",
"started_ns": 2000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 2000,
"provenance": "HwShunt",
"started_ns": 3000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 100,
"provenance": "HwShunt",
"started_ns": 4000000
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 2000,
"provenance": "HwShunt",
"started_ns": 5000000
}
]
},
"note": "alternating is bursty"
},
{
"expected": {
"verdict": "Unresolvable",
"windows": 2
},
"input": {
"declared": "Sustained",
"windows": [
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1000,
"provenance": "HwShunt",
"started_ns": 0
},
{
"coverage": "Whole",
"declared_work": null,
"duration_ns": 1000000,
"joules_uj": 1000,
"provenance": "HwShunt",
"started_ns": 1000000
}
]
},
"note": "under three windows character is unresolvable, never consistent"
}
],
"idle_floor_uj": 100
},
"spec": "JCP v0.3 SPEC.md §5.3-5.6"
}