Follow-up from #118 (the #104 doc-sync fix), surfaced by the cross-family
review's twin-sweep. Outside #104's blast radius, so tracked separately (not
folded into the PR 2 architecture-contract work).
The overstatement
README.md:366-367 (credential-destruction gate section):
The override is friction plus an audit log, not proof of consent — every use
is logged.
"every use is logged" reads as a guarantee, but that gate's logging is
best-effort: hooks/gate-credential-destruction.py::_log (:109) wraps its
write in except Exception: (:115) and swallows the failure.
This is the same class #104 item (c) fixed for the advisory log. #118 softened
the shared README auditability sentence (~README.md:431, and the zh mirror) to
"these log writes are best-effort…", but did not touch this separate
credential-gate sentence — different hook, different section, not named in #104.
The zh-Hant twin is README.zh-Hant.md:252 (憑證閘段落: "override 是摩擦力加稽核
紀錄,不是同意的證明——每次使用都會留 log").
Suggested fix
Qualify both README.md:367 and README.zh-Hant.md:252 the same way #118 did:
keep the intent (there IS an audit log), add that the write is best-effort (a
failed log write is silently dropped and never blocks the gate). Docs only, no
behaviour change — same "code is authoritative, soften the docs" disposition as
#104 (c). Re-confirm line numbers against HEAD before editing.
Follow-up from #118 (the #104 doc-sync fix), surfaced by the cross-family
review's twin-sweep. Outside #104's blast radius, so tracked separately (not
folded into the PR 2 architecture-contract work).
The overstatement
README.md:366-367(credential-destruction gate section):"every use is logged" reads as a guarantee, but that gate's logging is
best-effort:
hooks/gate-credential-destruction.py::_log(:109) wraps itswrite in
except Exception:(:115) and swallows the failure.This is the same class #104 item (c) fixed for the advisory log. #118 softened
the shared README auditability sentence (~
README.md:431, and the zh mirror) to"these log writes are best-effort…", but did not touch this separate
credential-gate sentence — different hook, different section, not named in #104.
The zh-Hant twin is
README.zh-Hant.md:252(憑證閘段落: "override 是摩擦力加稽核紀錄,不是同意的證明——每次使用都會留 log").
Suggested fix
Qualify both
README.md:367andREADME.zh-Hant.md:252the same way #118 did:keep the intent (there IS an audit log), add that the write is best-effort (a
failed log write is silently dropped and never blocks the gate). Docs only, no
behaviour change — same "code is authoritative, soften the docs" disposition as
#104 (c). Re-confirm line numbers against HEAD before editing.