Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 32 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,36 @@ joint outcome.
Cloud Run traversal through Interlock, a receipt-bound protected mutation,
independently read back and correlated in Cloud Logging.

**Bounded operational utility (HAC-343)** — one frozen sixteen-scenario corpus
run through four coordination strategies. Exact counts, because the corpus is an
exhaustive enumeration rather than a sample:

| Strategy | Hazards unsafe | Independent opportunities parallel |
| --- | --- | --- |
| Uncoordinated | 2/2 | 2/2 |
| Global lock | 0/2 | 0/2 |
| Per-target lock | 2/2 | 2/2 |
| Interlock | 0/2 | 2/2 |

The per-target lock is a real lock, not a straw man: it serialized same-target
contention 2/2 and parallelised cross-target pairs 4/4, and still missed
cross-target hazards 2/2 — a composition hazard spanning two lock keys is
invisible to any per-key discipline.

The safety is the evidence's, not the engine's. Removing the coupling evidence
reverses the decision:

| Condition | Invalid outcomes |
| --- | --- |
| Interlock + coupling evidence present | 0/2 |
| Interlock + coupling evidence removed | 2/2 |

Interlock is **not** 0% unsafe — it produced invalid joint states in both
ablation scenarios by design — and it is **not** "safer than locking": per-target
locking is correct for the hazard it addresses. Every figure is read from
[`experiments/hac-343/evidence/judge-export.json`](./experiments/hac-343/evidence/judge-export.json),
anchored at canonical result `7ede0f9`.

**Not claimed.** HAC-330 did not run on Google Cloud, and HAC-340 does not
reproduce the 140/120 counterfactual there. Agent Runtime and Agent Gateway did
not participate. Wrong-audience token rejection is controlled local parity
Expand All @@ -173,9 +203,8 @@ evidence, not a cloud result. `ALLOW` is not `VERIFIED`; `OBSERVED` is not
guarantee. No safety, security, verification or production-readiness guarantee.
No fleet-scale readiness and no universal collision prevention.

Evaluation (HAC-319) is **not yet bound**: no SPR, precision, recall,
false-block or useful-concurrency number exists in this package, and none is
shown.
The broader evaluation (HAC-319) — precision, recall, fleet-scale behaviour — is
**not bound**. HAC-343 below is a bounded child of it, not a substitute.

[`DISCLOSURE.md`](./DISCLOSURE.md) is the full provenance statement.

Expand Down
8 changes: 3 additions & 5 deletions media/hac-334/evidence/visual-model.json
Original file line number Diff line number Diff line change
Expand Up @@ -857,20 +857,18 @@
],
"composition": {
"state": "evaluation-not-yet-bound",
"message": "Evaluation not yet bound.",
"message": "Three-regime evaluation not yet bound.",
"regimes": [
"Regime 1",
"Regime 2",
"Regime 3"
],
"metricsWithheld": [
"SPR",
"precision",
"recall",
"false-block rate",
"useful-concurrency"
"fleet-scale behaviour"
],
"rule": "Labels only. No value, no mark, no proportional geometry until HAC-319 supplies a frozen evaluation packet.",
"rule": "Labels only. No value, no mark, no proportional geometry until HAC-319 supplies a frozen three-regime evaluation packet.",
"marks": []
},
"exports": [
Expand Down
2 changes: 1 addition & 1 deletion media/hac-334/masters/IL-DIAG-013-evaluation-shell.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 29 additions & 8 deletions media/hac-335/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,11 @@ fails.
into `evidencePublicationSha`;
- `sourcePacketSha256` is never described as reader-recomputable;
- no unevidenced deployment revision is named;
- HAC-319 is unbound: no metric, no value, and `IL-DIAG-013` is out of the
judge-facing registry and sequence with its seam recorded;
- every HAC-343 figure matches a frozen `display` value in the judge export,
Panel 1 never travels without Panel 2, the A3 credibility strip is present,
and every `mustNotClaim` reading is refused;
- HAC-319 proper stays unbound: no precision, recall or fleet-scale value, and
`IL-DIAG-013` stays out of the judge-facing registry with its seam recorded;
- every capture's proof class agrees with its URL and its semantic state;
- every filename passes the frozen HAC-332 naming grammar;
- no derivative is stale relative to its source, checked by digest and PNG
Expand All @@ -147,13 +150,31 @@ fails.
**33 negative cases** in `test/hac-335-package-gates.test.mjs` prove each of
these still fails when violated.

## HAC-319
## The evaluation: HAC-343 bound, HAC-319 still not

Not bound. No SPR, precision, recall, false-block or useful-concurrency value
appears anywhere in this package. `IL-DIAG-013` stays in the HAC-334 registry as
the reserved evaluation shell and is deliberately excluded here, recorded in
both the sequence and the registry with `seamPreserved: true`, so binding it
later is an addition rather than an excavation.
These are two different things and the package keeps them apart.

**HAC-343 is bound.** The bounded four-arm evaluation has a frozen canonical
result at `7ede0f9`, and every judge-facing figure in this package is read from
`experiments/hac-343/evidence/judge-export.json` — never recalculated here.
HAC-335 authors no evaluation facts; it decides where the comparison sits in the
judge path and what it is allowed to claim.

The gate enforces four properties that prose alone cannot hold:

- every HAC-343 figure in judge-facing copy matches a frozen `display` value in
the export, so a number cannot drift or be invented;
- Panel 1 never appears without Panel 2 in the same file — the four-strategy
comparison and the evidence ablation travel together, because Panel 1 alone
reads as "Interlock is the safe one" and the export forbids that reading;
- the A3 credibility strip (`2/2`, `4/4`, `2/2`) is present wherever the
comparison is, so the per-target lock cannot be quietly reduced to a straw man;
- every entry in the export's own `mustNotClaim` list is checked against the
prose, so the forbidden readings fail the build rather than a review.

**HAC-319 is still not bound.** Precision, recall and fleet-scale behaviour have
no frozen packet. HAC-343 is a bounded child of HAC-319, not a substitute, and
the package says so rather than letting the bound child imply the unbound parent.

## Still open

Expand Down
8 changes: 5 additions & 3 deletions media/hac-335/bin/build-registry.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -435,9 +435,11 @@ const registry = {
{
assetId: 'IL-DIAG-013',
reason:
'HAC-319 evaluation is not bound. The asset stays in the HAC-334 registry as the reserved '
+ 'evaluation shell and is deliberately absent from every judge-facing surface here, so an '
+ 'unavailable evaluation cannot be read as a pending result. The integration seam is preserved.',
'HAC-319 proper — precision, recall, fleet-scale behaviour — is not bound. The asset stays in '
+ 'the HAC-334 registry as the reserved shell for that evaluation and is deliberately absent '
+ 'from every judge-facing surface here, so an unavailable evaluation cannot be read as a '
+ 'pending result. The bounded HAC-343 four-arm evaluation IS bound and is rendered from its '
+ 'frozen judge export; it is a child of HAC-319, not a substitute. The seam is preserved.',
seamPreserved: true,
},
{
Expand Down
Loading
Loading