Close INFD-IN-0001; design the independent evidence path; track both blockers
Housekeeping the ruling left behind, plus the one piece of blocked work that was
substantially ours to move.
INFD-IN-0001 closed with its resolution recorded, matching approval-engine's
IN-0002 form. It was still open after GH-DEC-2026-012 answered it.
INFD-IN-0003 and docs/evidence-path-design.md take up O-02, which was sitting in
the blueprint as "mechanism unchosen". Read independence and the local
transactional outbox are settled and not in question. The real question is what
travels, and it is sharper for us than for approval-engine because a
presentation record carries the brief and packet material actually shown to a
human. Three candidates with costs; proposal is commitment-only for Stage 1 —
hashes, principal, timestamps, acks, co-referenced approval id — which
discharges limit 3 and removes our ability to alter the record, while leaving us
able to erase the content. That residual is declared alongside the existing
compromised-surface one rather than papered over.
Deliberately not proposing the full binding document unilaterally: it would put
commercial and personal material into the audit fabric under retention and
export entitlements designed for audit events. That is a meaningful change in
what audit-core holds and is its owner's to accept, not ours to assume. The
third option, a separate evidence store, is refused here because that store has
no owner and inventing one routes around the §16 decision against stronger
archival custody.
Cadence declared and its form argued rather than copied: approval-engine's
heartbeat answer suits genuinely low-volume classes, but ours are mixed —
presentations are one per render, while dispositions and stance applications are
low-volume and are the security-relevant ones. Reconciliation per class as
primary, heartbeat for the low-volume classes. Depends on AUDIT-WP-0009 T04/T06;
declared, not claimed operating.
INFD-IN-0002 files the tenant blocker as a tracked record rather than leaving it
in message threads and a blueprint footnote. T07 and T08 now name their blocking
intakes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-09 23:19:27 +02:00
|
|
|
# The independent evidence path — design and decision request
|
|
|
|
|
|
|
|
|
|
**From:** informed-decision
|
|
|
|
|
**Raised:** 2026-09-09
|
|
|
|
|
**Intake:** `INFD-IN-0003`
|
|
|
|
|
**Blocks:** `INFD-WP-0001-T08`
|
|
|
|
|
**Governing:** `GH-DEC-2026-012` limit **L3-independent-evidence-path**
|
|
|
|
|
**Addressed to:** `audit-core` (registration and payload), `gate-house` (the
|
|
|
|
|
content question, if it is doctrine)
|
Apply GH-DEC-2026-013 and GH-DEC-2026-014; close INFD-IN-0002
Two rulings landed and both corrected something.
GH-DEC-2026-013 accepted our binding-versus-awareness argument, wrote it into
the record as its §6, and did not change the outcome — it sharpened the defect.
Two different facts share one field named tenant: the act-scope, a property of
the act that our binding slice commits, and the principal's membership, a
property of the person that approval-engine exact-matches. Gate House's
correction stands: a binding slice that must commit the scope being entered
should commit that scope, not borrow a membership claim to stand in for it. Our
schema already does — binding.target IS the act-scope and is inside view_hash —
so no field was added, only a statement (PR-08) and a provenance record (PR-09),
since key-cape emits tenant as a bare string.
key-cape had already implemented registration-bound tenancy on 2026-09-09,
correct under both candidate rulings, so the fail-closed-at-first-use risk that
made us withhold the client strings was already retired. IN-0002 closed. The one
remaining input to T07 is the deployed origin.
GH-DEC-2026-014 granted commitment-only evidence and bounded it. It satisfies
non-alteration and NOT reconstructability, and must not be described otherwise
anywhere. It also corrected our wording of the gap: we wrote that it leaves us
able to erase the content, which understates it. Commitment-only moves integrity
out of our control and leaves availability entirely inside it — the party that
can withhold the content is the party the evidence is about. Limit 3's condition
reduced, not removed.
The grant carries a condition we did not propose and would not have thought of:
the path must assert that committed content exists and where custody sits, so
non-production is a finding attributable to the custodian rather than an
unremarkable blank. A commitment with no assertion that something is being
committed to is indistinguishable from a commitment to nothing. Booked as PR-53,
and marked not-a-reversal-candidate.
Recorded the meta-rule Gate House named, now in its third setting here: unknown
versus absent in the stance map, directory-asserted versus registration-supplied
in the tenant claim, erased versus never held in the evidence path. Wherever a
system reaches one appearance by two routes, the record must say which route.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-10 07:57:57 +02:00
|
|
|
**Ruled:** `GH-DEC-2026-014` split it — the payload is `audit-core`'s custody
|
|
|
|
|
question; what may be *claimed* from a record of this shape is doctrine.
|
|
|
|
|
Commitment-only is **granted for Stage 1**, with the §4 condition below, which
|
|
|
|
|
this repository did not propose.
|
Close INFD-IN-0001; design the independent evidence path; track both blockers
Housekeeping the ruling left behind, plus the one piece of blocked work that was
substantially ours to move.
INFD-IN-0001 closed with its resolution recorded, matching approval-engine's
IN-0002 form. It was still open after GH-DEC-2026-012 answered it.
INFD-IN-0003 and docs/evidence-path-design.md take up O-02, which was sitting in
the blueprint as "mechanism unchosen". Read independence and the local
transactional outbox are settled and not in question. The real question is what
travels, and it is sharper for us than for approval-engine because a
presentation record carries the brief and packet material actually shown to a
human. Three candidates with costs; proposal is commitment-only for Stage 1 —
hashes, principal, timestamps, acks, co-referenced approval id — which
discharges limit 3 and removes our ability to alter the record, while leaving us
able to erase the content. That residual is declared alongside the existing
compromised-surface one rather than papered over.
Deliberately not proposing the full binding document unilaterally: it would put
commercial and personal material into the audit fabric under retention and
export entitlements designed for audit events. That is a meaningful change in
what audit-core holds and is its owner's to accept, not ours to assume. The
third option, a separate evidence store, is refused here because that store has
no owner and inventing one routes around the §16 decision against stronger
archival custody.
Cadence declared and its form argued rather than copied: approval-engine's
heartbeat answer suits genuinely low-volume classes, but ours are mixed —
presentations are one per render, while dispositions and stance applications are
low-volume and are the security-relevant ones. Reconciliation per class as
primary, heartbeat for the low-volume classes. Depends on AUDIT-WP-0009 T04/T06;
declared, not claimed operating.
INFD-IN-0002 files the tenant blocker as a tracked record rather than leaving it
in message threads and a blueprint footnote. T07 and T08 now name their blocking
intakes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-09 23:19:27 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 1. The obligation
|
|
|
|
|
|
|
|
|
|
`GH-DEC-2026-012` permitted this repository to emit a presentation claim under
|
|
|
|
|
three limits. The third:
|
|
|
|
|
|
|
|
|
|
> The evidence copy reaches `audit-core` **independently** of you. Claim
|
|
|
|
|
> endpoint and evidence path are different things and neither substitutes for
|
|
|
|
|
> the other. […] audit evidence is protected from the actor being audited, and
|
|
|
|
|
> here the actor and the source are the same component. The copy that is
|
|
|
|
|
> evidence must not be reachable only through the party it is evidence about.
|
|
|
|
|
|
|
|
|
|
Gate House named this the limit that matters most in our case, and we agree: we
|
|
|
|
|
render the view, we compute the hash over it, and we are the party an auditor is
|
|
|
|
|
checking. A design where the only route to the evidence runs through us is not
|
|
|
|
|
evidence.
|
|
|
|
|
|
|
|
|
|
`docs/specs/ArchitectureBlueprint.md` `O-02` records the mechanism as unchosen
|
|
|
|
|
and states T08 must not ship without it, because "we will add the independent
|
|
|
|
|
path later" is how limit 3 becomes limit-3-in-principle.
|
|
|
|
|
|
|
|
|
|
## 2. What is settled and not being asked
|
|
|
|
|
|
|
|
|
|
**Read independence is the property.** A reader obtains the evidence from
|
|
|
|
|
`audit-core` without asking us and without our cooperation. Our claim endpoint
|
|
|
|
|
serves presentation claims to consumers; it is a different surface with a
|
|
|
|
|
different purpose and does not discharge this obligation.
|
|
|
|
|
|
|
|
|
|
**The write path is a local transactional outbox.** Adopted from
|
|
|
|
|
`approval-engine`'s reasoning rather than rediscovered: the queue lives in our
|
|
|
|
|
own store, written in the **same transaction** as the state change it evidences.
|
|
|
|
|
Emit-after-commit is a defect. The queue is local so an `audit-core` outage
|
|
|
|
|
cannot block a binding act, for the same reason it must not block a revocation
|
|
|
|
|
upstream.
|
|
|
|
|
|
|
|
|
|
**Atomicity covers accident, not compromise.** It does not close the residual in
|
|
|
|
|
`layer.yaml` and will not be described as doing so.
|
|
|
|
|
|
|
|
|
|
**Cadence is owed.** Our `layer.yaml` declares presentation evidence
|
|
|
|
|
**load-bearing**, so §9.6 requires a declared cadence. See §5.
|
|
|
|
|
|
|
|
|
|
## 3. The question: what travels
|
|
|
|
|
|
|
|
|
|
A presentation record is not like an approval transition. It contains, or points
|
|
|
|
|
at, the **brief and packet material actually shown to a human** — which is
|
|
|
|
|
frequently commercially or personally sensitive. So "emit the evidence" is
|
|
|
|
|
ambiguous in a way it was not for `approval-engine`, and the ambiguity has to be
|
|
|
|
|
resolved before we build, not after we have shipped a payload shape.
|
|
|
|
|
|
|
|
|
|
Three candidates.
|
|
|
|
|
|
|
|
|
|
### (a) Commitment only — hash and metadata
|
|
|
|
|
|
|
|
|
|
Emit `memo_id`, `memo_version`, `presentation_id`, `principal`, `locale`,
|
|
|
|
|
`ui_release`, `rendered_at`, `acked_highlight_ids`, `view_hash`,
|
|
|
|
|
`awareness_hash`, the co-referenced approval identifier, the disposition verb,
|
|
|
|
|
and the stance application. **Not** the brief, not the packet, not the highlight
|
|
|
|
|
text.
|
|
|
|
|
|
|
|
|
|
- **Proves independently:** that this principal was shown a view whose canonical
|
|
|
|
|
form hashes to H, at time T, and bound act A against approval X.
|
|
|
|
|
- **Cost:** the *content* lives only here. An auditor can verify that content we
|
|
|
|
|
later produce matches H, and can detect alteration — but if we destroy it,
|
|
|
|
|
nobody can ever see what was shown. Audit-core proves the commitment, not the
|
|
|
|
|
material.
|
|
|
|
|
- **Also:** this is strictly stronger than storing nothing, because it removes
|
|
|
|
|
our ability to alter the record after the fact. It does not remove our ability
|
|
|
|
|
to erase it.
|
|
|
|
|
|
|
|
|
|
### (b) Full binding document
|
|
|
|
|
|
|
|
|
|
Emit the canonical binding document itself, from which `view_hash` is
|
|
|
|
|
recomputable.
|
|
|
|
|
|
|
|
|
|
- **Proves independently:** everything (a) does, plus what was actually shown,
|
|
|
|
|
surviving our compromise or our deletion.
|
|
|
|
|
- **Cost:** `audit-core` now holds business-sensitive and possibly personal
|
|
|
|
|
content, under retention profiles and export entitlements designed for audit
|
|
|
|
|
events rather than for the substance of commercial decisions. Its
|
|
|
|
|
secret-finding and redaction surfaces would be operating on material where a
|
|
|
|
|
redaction is not a defect-signal but routine. That is a meaningful change in
|
|
|
|
|
what `audit-core` is holding, and it is theirs to accept or refuse — not ours
|
|
|
|
|
to assume.
|
|
|
|
|
- **Also:** an L4 instrument under (b) puts contract text in the audit fabric.
|
|
|
|
|
|
|
|
|
|
### (c) Split — commitment to `audit-core`, content to a separate evidence store
|
|
|
|
|
|
Apply GH-DEC-2026-013 and GH-DEC-2026-014; close INFD-IN-0002
Two rulings landed and both corrected something.
GH-DEC-2026-013 accepted our binding-versus-awareness argument, wrote it into
the record as its §6, and did not change the outcome — it sharpened the defect.
Two different facts share one field named tenant: the act-scope, a property of
the act that our binding slice commits, and the principal's membership, a
property of the person that approval-engine exact-matches. Gate House's
correction stands: a binding slice that must commit the scope being entered
should commit that scope, not borrow a membership claim to stand in for it. Our
schema already does — binding.target IS the act-scope and is inside view_hash —
so no field was added, only a statement (PR-08) and a provenance record (PR-09),
since key-cape emits tenant as a bare string.
key-cape had already implemented registration-bound tenancy on 2026-09-09,
correct under both candidate rulings, so the fail-closed-at-first-use risk that
made us withhold the client strings was already retired. IN-0002 closed. The one
remaining input to T07 is the deployed origin.
GH-DEC-2026-014 granted commitment-only evidence and bounded it. It satisfies
non-alteration and NOT reconstructability, and must not be described otherwise
anywhere. It also corrected our wording of the gap: we wrote that it leaves us
able to erase the content, which understates it. Commitment-only moves integrity
out of our control and leaves availability entirely inside it — the party that
can withhold the content is the party the evidence is about. Limit 3's condition
reduced, not removed.
The grant carries a condition we did not propose and would not have thought of:
the path must assert that committed content exists and where custody sits, so
non-production is a finding attributable to the custodian rather than an
unremarkable blank. A commitment with no assertion that something is being
committed to is indistinguishable from a commitment to nothing. Booked as PR-53,
and marked not-a-reversal-candidate.
Recorded the meta-rule Gate House named, now in its third setting here: unknown
versus absent in the stance map, directory-asserted versus registration-supplied
in the tenant claim, erased versus never held in the evidence path. Wherever a
system reaches one appearance by two routes, the record must say which route.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-10 07:57:57 +02:00
|
|
|
*Refusal endorsed by `GH-DEC-2026-014`, with an addition worth carrying: an
|
|
|
|
|
evidence store owned by the party whose conduct it evidences is not an evidence
|
|
|
|
|
store, whatever its integrity properties. **The ownership objection is prior to
|
|
|
|
|
the custody one.***
|
|
|
|
|
|
Close INFD-IN-0001; design the independent evidence path; track both blockers
Housekeeping the ruling left behind, plus the one piece of blocked work that was
substantially ours to move.
INFD-IN-0001 closed with its resolution recorded, matching approval-engine's
IN-0002 form. It was still open after GH-DEC-2026-012 answered it.
INFD-IN-0003 and docs/evidence-path-design.md take up O-02, which was sitting in
the blueprint as "mechanism unchosen". Read independence and the local
transactional outbox are settled and not in question. The real question is what
travels, and it is sharper for us than for approval-engine because a
presentation record carries the brief and packet material actually shown to a
human. Three candidates with costs; proposal is commitment-only for Stage 1 —
hashes, principal, timestamps, acks, co-referenced approval id — which
discharges limit 3 and removes our ability to alter the record, while leaving us
able to erase the content. That residual is declared alongside the existing
compromised-surface one rather than papered over.
Deliberately not proposing the full binding document unilaterally: it would put
commercial and personal material into the audit fabric under retention and
export entitlements designed for audit events. That is a meaningful change in
what audit-core holds and is its owner's to accept, not ours to assume. The
third option, a separate evidence store, is refused here because that store has
no owner and inventing one routes around the §16 decision against stronger
archival custody.
Cadence declared and its form argued rather than copied: approval-engine's
heartbeat answer suits genuinely low-volume classes, but ours are mixed —
presentations are one per render, while dispositions and stance applications are
low-volume and are the security-relevant ones. Reconciliation per class as
primary, heartbeat for the low-volume classes. Depends on AUDIT-WP-0009 T04/T06;
declared, not claimed operating.
INFD-IN-0002 files the tenant blocker as a tracked record rather than leaving it
in message threads and a blueprint footnote. T07 and T08 now name their blocking
intakes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-09 23:19:27 +02:00
|
|
|
(a)'s payload to `audit-core`, plus the full bundle to a store that is neither
|
|
|
|
|
`audit-core` nor us.
|
|
|
|
|
|
|
|
|
|
- **Proves independently:** as (b).
|
|
|
|
|
- **Cost:** a store with no owner. There is no such component today, and
|
|
|
|
|
inventing one to satisfy a limit is how a surface acquires an operational axis
|
|
|
|
|
it was never given. §16 also decided against stronger archival custody for
|
|
|
|
|
approval evidence, and we should not route around that decision by building a
|
|
|
|
|
parallel archive under another name.
|
|
|
|
|
|
|
|
|
|
## 4. What we propose
|
|
|
|
|
|
|
|
|
|
**(a) for Stage 1, with the gap stated rather than papered over.**
|
|
|
|
|
|
|
|
|
|
Reasoning:
|
|
|
|
|
|
|
|
|
|
1. It discharges limit 3 as written. The copy that is evidence — the commitment
|
|
|
|
|
that a presentation with hash H happened to principal P at time T — is
|
|
|
|
|
reachable from `audit-core` without us.
|
|
|
|
|
2. It does not silently expand what `audit-core` holds. Expanding that is a
|
|
|
|
|
decision for its owner, and (b) presented as a fait accompli would be exactly
|
|
|
|
|
the drift we asked gate-house to prevent in a different context.
|
Apply GH-DEC-2026-013 and GH-DEC-2026-014; close INFD-IN-0002
Two rulings landed and both corrected something.
GH-DEC-2026-013 accepted our binding-versus-awareness argument, wrote it into
the record as its §6, and did not change the outcome — it sharpened the defect.
Two different facts share one field named tenant: the act-scope, a property of
the act that our binding slice commits, and the principal's membership, a
property of the person that approval-engine exact-matches. Gate House's
correction stands: a binding slice that must commit the scope being entered
should commit that scope, not borrow a membership claim to stand in for it. Our
schema already does — binding.target IS the act-scope and is inside view_hash —
so no field was added, only a statement (PR-08) and a provenance record (PR-09),
since key-cape emits tenant as a bare string.
key-cape had already implemented registration-bound tenancy on 2026-09-09,
correct under both candidate rulings, so the fail-closed-at-first-use risk that
made us withhold the client strings was already retired. IN-0002 closed. The one
remaining input to T07 is the deployed origin.
GH-DEC-2026-014 granted commitment-only evidence and bounded it. It satisfies
non-alteration and NOT reconstructability, and must not be described otherwise
anywhere. It also corrected our wording of the gap: we wrote that it leaves us
able to erase the content, which understates it. Commitment-only moves integrity
out of our control and leaves availability entirely inside it — the party that
can withhold the content is the party the evidence is about. Limit 3's condition
reduced, not removed.
The grant carries a condition we did not propose and would not have thought of:
the path must assert that committed content exists and where custody sits, so
non-production is a finding attributable to the custodian rather than an
unremarkable blank. A commitment with no assertion that something is being
committed to is indistinguishable from a commitment to nothing. Booked as PR-53,
and marked not-a-reversal-candidate.
Recorded the meta-rule Gate House named, now in its third setting here: unknown
versus absent in the stance map, directory-asserted versus registration-supplied
in the tenant claim, erased versus never held in the evidence path. Wherever a
system reaches one appearance by two routes, the record must say which route.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-10 07:57:57 +02:00
|
|
|
3. It is honest about what it does not close. Our first wording — "we can still
|
|
|
|
|
erase the content" — **understated it**, and `GH-DEC-2026-014` corrected us:
|
|
|
|
|
commitment-only moves **integrity** out of our control and leaves
|
|
|
|
|
**availability** entirely inside it. *The party that can withhold the content
|
|
|
|
|
is the party the evidence is about.* That is the condition limit 3 exists to
|
|
|
|
|
prevent, reduced and not removed.
|
Close INFD-IN-0001; design the independent evidence path; track both blockers
Housekeeping the ruling left behind, plus the one piece of blocked work that was
substantially ours to move.
INFD-IN-0001 closed with its resolution recorded, matching approval-engine's
IN-0002 form. It was still open after GH-DEC-2026-012 answered it.
INFD-IN-0003 and docs/evidence-path-design.md take up O-02, which was sitting in
the blueprint as "mechanism unchosen". Read independence and the local
transactional outbox are settled and not in question. The real question is what
travels, and it is sharper for us than for approval-engine because a
presentation record carries the brief and packet material actually shown to a
human. Three candidates with costs; proposal is commitment-only for Stage 1 —
hashes, principal, timestamps, acks, co-referenced approval id — which
discharges limit 3 and removes our ability to alter the record, while leaving us
able to erase the content. That residual is declared alongside the existing
compromised-surface one rather than papered over.
Deliberately not proposing the full binding document unilaterally: it would put
commercial and personal material into the audit fabric under retention and
export entitlements designed for audit events. That is a meaningful change in
what audit-core holds and is its owner's to accept, not ours to assume. The
third option, a separate evidence store, is refused here because that store has
no owner and inventing one routes around the §16 decision against stronger
archival custody.
Cadence declared and its form argued rather than copied: approval-engine's
heartbeat answer suits genuinely low-volume classes, but ours are mixed —
presentations are one per render, while dispositions and stance applications are
low-volume and are the security-relevant ones. Reconciliation per class as
primary, heartbeat for the low-volume classes. Depends on AUDIT-WP-0009 T04/T06;
declared, not claimed operating.
INFD-IN-0002 files the tenant blocker as a tracked record rather than leaving it
in message threads and a blueprint footnote. T07 and T08 now name their blocking
intakes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-09 23:19:27 +02:00
|
|
|
4. (b) remains available and is a payload change, not a redesign, if the estate
|
|
|
|
|
later decides a commitment is insufficient.
|
|
|
|
|
|
|
|
|
|
**We are not asking to defer (b) indefinitely.** We are asking whether the
|
|
|
|
|
content question is `audit-core`'s to answer as its custodian, or `gate-house`'s
|
|
|
|
|
as doctrine. If it is doctrine and the ruling is (b), we will implement (b).
|
|
|
|
|
|
Apply GH-DEC-2026-013 and GH-DEC-2026-014; close INFD-IN-0002
Two rulings landed and both corrected something.
GH-DEC-2026-013 accepted our binding-versus-awareness argument, wrote it into
the record as its §6, and did not change the outcome — it sharpened the defect.
Two different facts share one field named tenant: the act-scope, a property of
the act that our binding slice commits, and the principal's membership, a
property of the person that approval-engine exact-matches. Gate House's
correction stands: a binding slice that must commit the scope being entered
should commit that scope, not borrow a membership claim to stand in for it. Our
schema already does — binding.target IS the act-scope and is inside view_hash —
so no field was added, only a statement (PR-08) and a provenance record (PR-09),
since key-cape emits tenant as a bare string.
key-cape had already implemented registration-bound tenancy on 2026-09-09,
correct under both candidate rulings, so the fail-closed-at-first-use risk that
made us withhold the client strings was already retired. IN-0002 closed. The one
remaining input to T07 is the deployed origin.
GH-DEC-2026-014 granted commitment-only evidence and bounded it. It satisfies
non-alteration and NOT reconstructability, and must not be described otherwise
anywhere. It also corrected our wording of the gap: we wrote that it leaves us
able to erase the content, which understates it. Commitment-only moves integrity
out of our control and leaves availability entirely inside it — the party that
can withhold the content is the party the evidence is about. Limit 3's condition
reduced, not removed.
The grant carries a condition we did not propose and would not have thought of:
the path must assert that committed content exists and where custody sits, so
non-production is a finding attributable to the custodian rather than an
unremarkable blank. A commitment with no assertion that something is being
committed to is indistinguishable from a commitment to nothing. Booked as PR-53,
and marked not-a-reversal-candidate.
Recorded the meta-rule Gate House named, now in its third setting here: unknown
versus absent in the stance map, directory-asserted versus registration-supplied
in the tenant claim, erased versus never held in the evidence path. Wherever a
system reaches one appearance by two routes, the record must say which route.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-10 07:57:57 +02:00
|
|
|
## 4a. The existence assertion — required, and not ours
|
|
|
|
|
|
|
|
|
|
`GH-DEC-2026-014` granted commitment-only **on a condition we did not propose**,
|
|
|
|
|
and it is the condition that makes the grant safe.
|
|
|
|
|
|
|
|
|
|
**Non-production must be detectable as a finding, not present as an absence.**
|
|
|
|
|
|
|
|
|
|
If the independent path holds only a commitment, a reviewer who asks for content
|
|
|
|
|
and gets nothing cannot distinguish *erased*, *withheld*, *lost*, and *never
|
|
|
|
|
held*. The absence reads as an unremarkable blank.
|
|
|
|
|
|
|
|
|
|
So the emitted record MUST carry, alongside the commitment:
|
|
|
|
|
|
|
|
|
|
| Field | Meaning |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| `content_exists` | An assertion that committed content exists |
|
|
|
|
|
| `custody` | Where custody of that content sits |
|
|
|
|
|
|
|
|
|
|
such that **failure to produce at retrieval is a conformance failure
|
|
|
|
|
attributable to the custodian** — here, this repository.
|
|
|
|
|
|
|
|
|
|
> A commitment with no assertion that something is being committed to is
|
|
|
|
|
> indistinguishable from a commitment to nothing.
|
|
|
|
|
|
|
|
|
|
**Not a reversal candidate.** If it proves expensive, the answer is a cheaper
|
|
|
|
|
mechanism for the same property, never the property's removal.
|
|
|
|
|
|
|
|
|
|
Two limits travel with the grant and belong in `audit-core`'s design too:
|
|
|
|
|
|
|
|
|
|
- It satisfies **non-alteration**. It does **not** satisfy
|
|
|
|
|
**reconstructability**, and must not be described as doing so in any document
|
|
|
|
|
or conformance claim on either side.
|
|
|
|
|
- The residual is not closed and this repository is not credited with closing
|
|
|
|
|
it. The existence assertion narrows the erasure gap by making non-production
|
|
|
|
|
attributable; it does not produce the missing thing.
|
|
|
|
|
|
Close INFD-IN-0001; design the independent evidence path; track both blockers
Housekeeping the ruling left behind, plus the one piece of blocked work that was
substantially ours to move.
INFD-IN-0001 closed with its resolution recorded, matching approval-engine's
IN-0002 form. It was still open after GH-DEC-2026-012 answered it.
INFD-IN-0003 and docs/evidence-path-design.md take up O-02, which was sitting in
the blueprint as "mechanism unchosen". Read independence and the local
transactional outbox are settled and not in question. The real question is what
travels, and it is sharper for us than for approval-engine because a
presentation record carries the brief and packet material actually shown to a
human. Three candidates with costs; proposal is commitment-only for Stage 1 —
hashes, principal, timestamps, acks, co-referenced approval id — which
discharges limit 3 and removes our ability to alter the record, while leaving us
able to erase the content. That residual is declared alongside the existing
compromised-surface one rather than papered over.
Deliberately not proposing the full binding document unilaterally: it would put
commercial and personal material into the audit fabric under retention and
export entitlements designed for audit events. That is a meaningful change in
what audit-core holds and is its owner's to accept, not ours to assume. The
third option, a separate evidence store, is refused here because that store has
no owner and inventing one routes around the §16 decision against stronger
archival custody.
Cadence declared and its form argued rather than copied: approval-engine's
heartbeat answer suits genuinely low-volume classes, but ours are mixed —
presentations are one per render, while dispositions and stance applications are
low-volume and are the security-relevant ones. Reconciliation per class as
primary, heartbeat for the low-volume classes. Depends on AUDIT-WP-0009 T04/T06;
declared, not claimed operating.
INFD-IN-0002 files the tenant blocker as a tracked record rather than leaving it
in message threads and a blueprint footnote. T07 and T08 now name their blocking
intakes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-09 23:19:27 +02:00
|
|
|
## 5. Cadence
|
|
|
|
|
|
|
|
|
|
Presentation evidence is declared load-bearing, so §9.6 requires a cadence and
|
|
|
|
|
rate monitoring is not automatically the right form.
|
|
|
|
|
|
|
|
|
|
Note a difference from `approval-engine`: their classes are genuinely low-volume
|
|
|
|
|
(a handful of revocations a month), which is why heartbeat is their answer.
|
|
|
|
|
Ours are mixed:
|
|
|
|
|
|
|
|
|
|
- **Presentations** are relatively high-volume — one per render.
|
|
|
|
|
- **Dispositions and stance applications** are low-volume and are the
|
|
|
|
|
security-relevant ones.
|
|
|
|
|
|
|
|
|
|
So we propose **reconciliation as the primary form**, per class: our own count
|
|
|
|
|
of presentations, dispositions and stance applications compared against
|
|
|
|
|
`audit-core`'s event count per class, with divergence a finding. Plus a
|
|
|
|
|
**heartbeat for the low-volume classes**, because a quiet month of dispositions
|
|
|
|
|
is indistinguishable from suppression by rate alone — the same argument
|
|
|
|
|
`approval-engine` makes.
|
|
|
|
|
|
|
|
|
|
This depends on `AUDIT-WP-0009` T04/T06, which we understand are open. We are
|
|
|
|
|
declaring the cadence now and will not describe it as operating until those
|
|
|
|
|
land.
|
|
|
|
|
|
|
|
|
|
## 6. What we need
|
|
|
|
|
|
|
|
|
|
| From | Decision |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| `audit-core` | Sender registration for `informed-decision`, and whether payload (a) or (b) is acceptable to hold |
|
|
|
|
|
| `audit-core` | Whether reconciliation-plus-heartbeat is the right cadence form for a mixed-volume source |
|
|
|
|
|
| `gate-house` | Only if the content question is doctrine rather than custody |
|
|
|
|
|
|
|
|
|
|
Proposed registration, following `approval-engine`'s form:
|
|
|
|
|
|
|
|
|
|
| Field | Value |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| Sender and permitted source | `informed-decision` (exact) |
|
|
|
|
|
| Tenants | `["tenant:platform"]` — but see the open tenant question, `INFD-IN-0002` |
|
|
|
|
|
| Write / read | `true` / `false` |
|
|
|
|
|
| Evidence kind | `load-bearing` |
|
|
|
|
|
| Cadence form | reconciliation, plus heartbeat for low-volume classes |
|
|
|
|
|
| Secret policy | `redact` |
|
|
|
|
|
|
|
|
|
|
`redact` chosen for the same reason `approval-engine` chose it: a receiver
|
|
|
|
|
should retain a legitimate record with an accidentally secret-shaped field
|
|
|
|
|
removed rather than reject the event and leave delivery pending. Under payload
|
|
|
|
|
(a) the exposure is small by construction; under (b) `redact` would be doing
|
|
|
|
|
substantially more work, which is itself an argument for (a).
|
|
|
|
|
|
|
|
|
|
**Note the coupling:** the tenant on our registration is the same unresolved
|
|
|
|
|
question as `INFD-IN-0002`. If a human token cannot carry `tenant:platform`, our
|
|
|
|
|
audit registration tenant and our approval tenant should be settled together
|
|
|
|
|
rather than separately.
|