@@ -220,12 +220,10 @@ The operation MUST canonicalize and create the baseline evidence at
220220` docs/validation/firmware/oi1/<HEAD>.json ` , compute the digest of those exact
221221bytes, and atomically update ` firmware/qualification/oi1-gates.json ` with the
222222exact frozen policy shape and derived thresholds. The baseline path is
223- no-replace: an existing different file is fatal; an existing byte-identical
224- file is an idempotent input. The policy update MUST be an atomic same-directory
225- replacement, and both complete byte payloads MUST pass the production
226- baseline/policy validator before either destination is changed. This operation
227- is evidence assembly only; it does not approve a release or mutate staged
228- measurement inputs.
223+ no-replace: any existing destination is fatal. The policy update MUST be an
224+ atomic same-directory replacement, and both complete payloads MUST pass the
225+ production baseline/policy validator. This operation is evidence assembly
226+ only; it does not approve a release or mutate staged measurement inputs.
229227
230228The protected candidate site's build-selected SHA-256 of ` release.json ` is the
231229root identity of the candidate exercised during HIL. The completed HIL
@@ -1289,10 +1287,9 @@ the embedded pending records, require all six supplied checks to be `passed`,
12891287validate the observation and every profile threshold, and only then insert
12901288` footprint_reliability: passed ` and ` status: passed ` . It MUST render exactly one
12911289canonical ` PYBLE_HIL_RECORDS_V2 ` marker, validate the completed payload against
1292- the candidate bytes and committed policy, write the output atomically, and
1293- prove the candidate and completion-fragment inputs did not change during the
1294- operation. It never mutates the candidate and does not perform public bundle
1295- promotion; ` finalize-public ` remains the only promotion step.
1290+ the candidate bytes and committed policy, and write the output atomically. It
1291+ never mutates the candidate and does not perform public bundle promotion;
1292+ ` finalize-public ` remains the only promotion step.
12961293
12971294` oi1_observation ` is JSON ` null ` in a pending candidate. In a completed report
12981295it is an object with exactly:
0 commit comments