Verify brief publication against live origin and record historical gaps
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a09cbd-43c1-79f3-809e-1ee97b40b64d
This commit is contained in:
parent
8a65297d56
commit
8bd2e5ff92
10 changed files with 565 additions and 90 deletions
66
docs/brief-durability-audit.md
Normal file
66
docs/brief-durability-audit.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Daily brief durability audit
|
||||
|
||||
The verifier resolves the live `origin/main` commit with `git ls-remote` and
|
||||
reads that immutable Git tree. If necessary, it fetches missing objects. Local
|
||||
files, local commits and stale remote-tracking refs cannot establish completion.
|
||||
An unreachable remote or Hub is an error (exit 2), never a successful check.
|
||||
Hub progress reads are paginated; repeating/malformed pages fail closed.
|
||||
|
||||
```bash
|
||||
python3 scripts/verify_brief_durability.py --require-hub
|
||||
python3 scripts/verify_brief_durability.py --allow-reconciled --json
|
||||
python3 scripts/verify_brief_durability.py --allow-reconciled --require-date 2026-09-14
|
||||
```
|
||||
|
||||
The last command is the acceptance check for the September 14 scheduled run.
|
||||
Before that run publishes, it must fail. A known historical gap cannot satisfy
|
||||
`--require-date`.
|
||||
|
||||
For events dated September 13, 2026 onward (or any event containing push
|
||||
attestation), the verifier requires `pushed=true`, the canonical date/path,
|
||||
and a full `origin_sha` that is an ancestor of the live remote head and contains
|
||||
the nonempty brief. The current remote tree must also contain the file.
|
||||
Earlier events with files on origin are reported separately as legacy evidence;
|
||||
the audit does not invent historical push attestations.
|
||||
|
||||
## September 7–11 reconciliation
|
||||
|
||||
The five original `fi_daily_brief` events remain intact in the append-only Hub
|
||||
log. The evidence file
|
||||
[`2026-09-14-brief-completion-reconciliation.json`](evidence/2026-09-14-brief-completion-reconciliation.json)
|
||||
records exact event IDs, original details and the audited remote commit. No
|
||||
missing brief is reconstructed or counted as successful.
|
||||
|
||||
After publishing this evidence to origin, append one correction per event:
|
||||
|
||||
```bash
|
||||
python3 scripts/reconcile_brief_completions.py # review, read-only
|
||||
python3 scripts/reconcile_brief_completions.py --apply # append corrections
|
||||
```
|
||||
|
||||
The helper validates every source event and missing path before writing. It
|
||||
uses stable idempotency keys and skips already recorded corrections. Correction
|
||||
events use `fi_daily_brief_reconciliation`, never the completion event type.
|
||||
|
||||
The verifier accepts a correction only when its event ID/date/path/disposition/
|
||||
reason matches the evidence JSON in a published ancestor commit. Default strict
|
||||
mode still fails on these missing dates. `--allow-reconciled` explicitly allows
|
||||
the acknowledged historical debt, prints every gap, and fails on any new gap or
|
||||
invalid attestation.
|
||||
|
||||
## Next-run readiness (2026-09-14 Berlin)
|
||||
|
||||
Temporal schedule `activity-schedule-3169ab1f-882b-59c7-9763-d014dc96f4fc` is
|
||||
unpaused; its next action is September 14 at 07:30 Europe/Berlin (05:30 UTC).
|
||||
The claim-loop service is active and was restarted after executor commit
|
||||
`11020e8` (push-before-completion). Keep its FI checkout synchronized before the
|
||||
run: the executor pushes its current branch and does not pull automatically.
|
||||
|
||||
The activity-core resolver also needs the publication contract: only an event
|
||||
with `pushed=true`, a full SHA, canonical path and matching `detail.date` may
|
||||
clear today's due bit. An event for yesterday delivered today must leave today
|
||||
due. The Git audit remains the authoritative check of actual origin objects;
|
||||
the resolver checks the executor's attestation.
|
||||
|
||||
This preflight is not evidence that the future scheduled run succeeded. Run
|
||||
the exact-date audit after publication and retain its result.
|
||||
Loading…
Add table
Add a link
Reference in a new issue