PoC timeline and delegated technical assessment¶
| Date | 20 October 2026 |
| Work item | E6: demonstrate PoC acceptance |
| Contracts | Design §18.2, AP S8, ER §9.3 |
| Primary assessor | The Codex agent that executed the guided walkthrough; not an independent reviewer |
| Decision enabled | Assess the technical PoC from retained records and distinguish timeline traceability from operator convenience |
1. Authority and evidence¶
The owner delegated straightforward factual assessment to the executing agent on 20 October: “Do this yourself for the obvious cases.” This report records that agent's conclusions, not a claim that the owner executed the commands or independently read every timeline. The owner separately assessed the presented operator experience negatively (§4). Authorization to execute a demonstration is not itself acceptance.
The acceptance record remains the source for the complete integrated run, controls and matrices. This report supplements it: it does not change their revisions, results, failed runs or explicit skips.
The guided walkthrough used the clean revision
c9b70ffbf4d3b13b775ee949d67bca1f03183294, the existing disposable fixture pins,
and synthetic credentials. The separate full S6 record below remains at
ab327884527fee3b3ed32f0e2dfc8ffde5bf0ce3. No source files changed during execution.
| Guided stage | Retained record | PASS / FAIL / SKIP |
|---|---|---|
| Adoption | adoption-execution |
34 / 0 / 0 |
| Worker proposal | worker-proposal |
26 / 0 / 0 |
| Worker apply | worker-apply |
28 / 0 / 0 |
| Drift pass | steps-20261020T110711Z |
73 / 0 / 3 |
| Focused lost-response replay | lost-response |
58 / 0 / 0 |
| Nominal restoration | steps-20261020T111224Z |
128 / 0 / 0 |
| Final API reads | handoff-api |
74 / 0 / 0 |
The S5 skips are the frozen-revert control, ingestion interruption matrix and wrong-role unfreeze control, already exercised in the earlier complete campaign. The focused same-startup lost-response replay supplements the original separate S6; it does not replace that scenario's other interruption points or refusal controls.
Retained evidence bundle: walkthrough-31-20261020.
The owner retains the complete captures and a sanitized four-case package. Each case
contains operation.json, events.json, timeline.json, observations.json
and individual observations; the guided plans are in human-review/api/.
The separate S6 plan's proposed-state response and approval were recovered from
original HTTP captures 0047.txt/0048.txt into independent-review/, with a
source/extraction manifest. The original input manifest still verifies all 542 files.
Databases, provider snapshots and credentials remain outside this small package.
To reproduce the analysis, follow the timeline-reading guide
and recovery reads. Follow every page
and linked observation. For a mechanical comparison, the pinned
fixtures/s8-answers.jq accepts the four case
directories below. Set BW_REPO to the absolute checkout path and BW_EVIDENCE
to the absolute retained-bundle path. Run this block as a script from any directory.
It creates a working copy for the analysis outputs:
set -eu
: "${BW_REPO:?Set the absolute Bronzeward checkout path}"
: "${BW_EVIDENCE:?Set the absolute walkthrough-31-20261020 bundle path}"
BW_REPLAY_DIR=$(mktemp -d)
printf 'working copy: %s\n' "$BW_REPLAY_DIR" >&2
cp -a "$BW_EVIDENCE/human-review" "$BW_EVIDENCE/worker-apply" \
"$BW_EVIDENCE/agent-assessment" "$BW_REPLAY_DIR/"
linked='.ordered and .eventsAreTimeline and .attemptsLinked and (.textServed | not)
and .commitmentApproved
and (.commitment[-1].approval as $a | any(.approved[]; .approval == $a
and (.by | type == "string" and . != "") and (.role | type == "string" and . != "")))
and .observationsResolve and .observedIsTimeline and .observedRead'
applied='(.commitment[-1].approval as $a | any(.approved[]; .approval == $a and .role == "approver"))
and (.attempts | length) >= 1
and all(.attempts[]; .route != null and .observation != null and .transportDeadline != null
and .verificationDeadline != null and .recordedAt != null and .sending != "unknown")
and .attempts[-1].response.class == "accepted"
and (.observed | length) >= 1
and .ended == "completed" and .state == "completed"'
for BW_CASE in 01-worker-apply 02-drift 03-interruption 04-restoration; do
BW_CASE_DIR="$BW_REPLAY_DIR/human-review/$BW_CASE"
BW_ANSWER="$BW_REPLAY_DIR/agent-assessment/$BW_CASE.json"
jq -n --slurpfile op "$BW_CASE_DIR/operation.json" \
--slurpfile ev "$BW_CASE_DIR/events.json" \
--slurpfile tl "$BW_CASE_DIR/timeline.json" \
--slurpfile obs "$BW_CASE_DIR/observations.json" \
-f "$BW_REPO/fixtures/s8-answers.jq" >"$BW_ANSWER" || exit
jq -e "$linked" "$BW_ANSWER" || exit
case "$BW_CASE" in
01-worker-apply|02-drift) jq -e "$applied" "$BW_ANSWER" || exit ;;
esac
done
python3 "$BW_REPLAY_DIR/agent-assessment/assess.py"
# Reversing a copied timeline must fail validation despite successful extraction.
BW_CASE_DIR="$BW_REPLAY_DIR/human-review/01-worker-apply"
jq 'reverse' "$BW_CASE_DIR/timeline.json" >"$BW_REPLAY_DIR/reversed-timeline.json"
jq -n --slurpfile op "$BW_CASE_DIR/operation.json" \
--slurpfile ev "$BW_CASE_DIR/events.json" \
--slurpfile tl "$BW_REPLAY_DIR/reversed-timeline.json" \
--slurpfile obs "$BW_CASE_DIR/observations.json" \
-f "$BW_REPO/fixtures/s8-answers.jq" >"$BW_REPLAY_DIR/reversed-answers.json"
jq -e '.ordered == false' "$BW_REPLAY_DIR/reversed-answers.json" >/dev/null
BW_CONTROL_RC=0
jq -e "$linked" "$BW_REPLAY_DIR/reversed-answers.json" \
>"$BW_REPLAY_DIR/reversal-predicate.out" || BW_CONTROL_RC=$?
[ "$BW_CONTROL_RC" -eq 1 ]
printf 'reversed-timeline predicate: expected exit 1, observed %s\n' "$BW_CONTROL_RC"
# Compare JSON answers and every original input after the replay and control.
python3 - "$BW_REPLAY_DIR" "$BW_EVIDENCE" <<'PY'
from pathlib import Path
import hashlib
import json
import sys
replay, evidence = map(Path, sys.argv[1:])
cases = ("01-worker-apply", "02-drift", "03-interruption", "04-restoration")
for case in cases:
relative = Path("agent-assessment") / (case + ".json")
if json.loads((replay / relative).read_text()) != json.loads((evidence / relative).read_text()):
raise SystemExit(f"answer mismatch: {case}")
manifest = json.loads((evidence / "agent-assessment/input-manifest.json").read_text())
if len(manifest) != 542:
raise SystemExit(f"unexpected input count: {len(manifest)}")
for item in manifest:
if hashlib.sha256((evidence / item["file"]).read_bytes()).hexdigest() != item["sha256"]:
raise SystemExit(f"input hash mismatch: {item['file']}")
print("4 answer sets match; 542 original input hashes match.")
PY
The extraction filter emits answers; its exit status alone does not validate them.
The six jq -e calls above use the canonical linked/applied predicates from
fixtures/scenarios/s8: expect six true results
and exit 0. The retained agent-assessment/assess.py then checks the served source
records: expect 23 source-level factual cross-checks passed. and exit 0.
It rewrites source-cross-checks.json in the working copy. The remaining commands
require a successful extraction with ordered=false for the reversed copy,
predicate exit 1, four matching JSON answer sets and all 542 original input
hashes unchanged. The entire script exits 0 only when those checks succeed.
Its printed working-copy path contains the outputs for inspection; that generated
directory can be deleted afterwards, while the retained evidence bundle is kept.
These checks support consistency, not independent interpretation.
The complete block was executed from outside the checkout. Its exact bytes,
execution wrapper, stdout, stderr, result and manifest are retained in
independent-review/replay-checks/; replay.sh is the block above, and
result.json records its hash, command and exit status. The six predicates,
23 source checks, four answer comparisons and 542 hashes passed; the reversed
timeline extracted successfully but its predicate exited 1 as expected.
Complete captures and positive-control secret scans are retained with the runs.
2. Four timeline readings¶
Revisions below are machine-scope commit order, not a global clock. Attempts precede sending and cannot prove delivery. Digests are withheld from served records; drift/convergence judgements and separately attributed harness checks have distinct bases. Shortened IDs below are unique prefixes in the retained case; full IDs remain in its JSON. Backup times are operator-entered; use each entry's epoch, not an event ID's read-time epoch.
Normal worker apply¶
Operation op_p6ts4luxskabqvs5qbnmeycje4, plan
pln_kceberl7fmjm35hz45aoaos22e, epoch ep_uscegvuhoz65rmnviaomq6amje.
- Approval revision 12 names approver
idn_q6bzuafr5x6jp2mlpnltaecjne. Commitment 16 binds that approval, plan and evidence observation. - Attempt 17 records the worker route
10.55.0.3:50000, evidence observation, controller/generation and both deadlines. It was recorded at2026-10-20T11:06:35.219438Z; transport and verification deadlines are11:08:35.219438Zand11:11:35.219438Z. - Response 18 is accepted; accounting 19 rests on that response. This case requires no recovery-admin accounting decision.
- Completion observation 22 follows observation-started 21. Classification 23
relies on the response, accounting and observation; state 24 is completed and
Applied moves
rel_yend…→rel_qczl…at 25. Separately,worker-apply/guided-apply.tsvrows 15/19/20/22 establish the worker change, unchanged control plane and state convergence.
Drift, adoption and revert¶
Revert operation op_yefcszh4txsxfcckfl5vsohzfe, plan
pln_v5kacaliyd73722kspaxty626e, in the same pre-restoration epoch.
- Drift 46 opens; author
idn_3zqiy6psrcymxc3fbxvvbzfikafreezes at 71. Approveridn_q6bzuafr5x6jp2mlpnltaecjneapproves adoption planpln_ubxzhc372azatqi6wl47asd3guat 135: adoption 138 has no attempt, Applied 139 namesrel_u3pm…, and drift 140 closes adopted. - The same approver approves the revert at 187 (
unseenOverwrite=true) and unfreezes at 188, after a second drift opens at 161; commitment follows at 195. - Attempt 196 (bounds below) receives accepted response 197, accounting 198;
completion observation
obs_h4lw…supports completed 203 and reverted drift 205. Observed resource versions progress 3 → 4 → 5 across the two drifts and revert. - Separately,
s5-pass-20261020T110711Z/s5.tsvrow 26 proves the missing-mark refusal before secret persistence. Unfreezing does not itself approve a revert.
Lost-response interruption¶
Original separate S6 record s6-run-20261018T205620Z, operation
op_aer7okgheiftyrkmlvoaijxqdu, plan pln_i4ipf5rll3b7okk24syob3lfji.
Its epoch is ep_ub5hbpow5yfbakbopuqliqayke; identifiers belong to that separate fixture.
- Approver
idn_vs7fthjzcy2egcbisobnn2vvw4approves at 449 before commitment 453 and attempt 454. Transport response 455 has code 14; unresolved 456 precedes takeover 457. - Accounting 465 is a recovery-admin decision by
idn_nqb3frxy2gd6lwb72l7knjs7e4, citing start observationobs_iwzo2oh3ci4q66gnc4cfuvfllqand end observationobs_pkdrj4h65gpcre3rr4wkfgbsy4: versions 20/20, anchor2026-10-18T21:20:09.306882Z, settle floor 30 s. Completion later observes version 21. - Classification 468 permits retry only after that accounting. Attempt 470 receives accepted response 471; subsequent observation supports completion 477.
- Conflicting plan
pln_h5fp…at 460 is approved at 461 by that approver, revoked at 462 and never committed. Wrong-role accounting is separately proved by originals6.tsvrow 151. Decision accounting is not proof of non-delivery. The focused 20 October replay does not replace this record.
Restoration¶
Restored operation op_2sk3bf4brucrnjivezuan3uxla, plan
pln_y24wwajahj7iwmdycs7zijszda; recovery epoch
ep_sr34wsje3iirfyupzmrcpfpnya.
idn_q6bzuafr5x6jp2mlpnltaecjneapprovespln_y24wwajahj7iwmdycs7zijszdaat 264 (apr_ntvgkddvplirvguxdg5hgshboe), then the separate waiting planpln_upizcgfor7upcuybk6rpa7ss2aat 270 (apr_h3cyj553pmiiha477xqwzvt2ie). Both targetrel_a57a…in the old epoch. In the earlier post-restoration capture, approval 270 still looks live; its later revocation was erased. At the independent live read below, that waiting plan reads expired and has no committed operation; its immutable approval remains. Commitment 268 precedes the backup; recovery ownership 271, unresolved 272 and hold 273 follow entry.- Recovery-admin
idn_n2fmoxkmpf4yalolmhwkczx2wmrecords scope accounting 279, citingobs_t4kfff4ri4tsbb3gvi4oxwgbueandobs_l7ecpovyfph4ysxky4h5fyuhmu, resource versions 7/7 and the 30-second settle floor. - State 281 is cancelled: its approval belongs to the earlier epoch. No attempt exists in the restored journal, and that operation is not retried.
- Served observations show version 6 at
obs_6ixi…, then 7 at accounting and drift 284; they establish change, not its cause or time relative to the backup. The post-backup send is separately established bys7-run-20261020T111224Z/s7.tsvrows 32/76/94; rows 36/53 establish the erased revocation. - The same approver approves
pln_cvdwpkq4dks322scc2bamb6lriat 290 in the new epoch (unseenOverwrite=true). Its operationop_q6fkjnhwd2them6pns7afzpkaqattempts at 295, receives accepted response 296/accounting 297, observes version 8 atobs_4lz2…, completes at 302 and moves Applied fromrel_eojo…to newly publishedrel_gfmr…at 303. Drift closes reverted at 304; exit 305 returns both scopes to normal. - Zero attempts in restored history is not evidence that no post-backup request reached the node. The old and new epochs must remain distinct.
The remaining attempts all use 10.55.0.3:50000; times below are UTC on the case's date.
| Case / revision | Recorded | Transport deadline | Verification deadline |
|---|---|---|---|
| Drift / 196 | 11:08:52.875814 | 11:10:52.875814 | 11:13:52.875814 |
| S6 / 454 | 21:19:36.593424 | 21:20:06.593424 | 21:24:36.593424 |
| S6 / 470 | 21:20:49.345186 | 21:21:19.345186 | 21:25:49.345186 |
| Restoration revert / 295 | 11:19:21.01762 | 11:21:21.01762 | 11:24:21.01762 |
3. Criterion verdicts and independent review¶
The six delegated criterion verdicts are recorded in the acceptance record's current table. This assessment supplies their dated rationale and independent-review evidence; it does not maintain a second verdict table.
Claude independently read the four served captures before comparing this report
at 91b71d7. Its retained independent-review/claude-initial-review.md
(SHA256 ed5626582b0e96ca597e1e88b99a90d8c96961037624788f15692787cfe96502)
identified missing links and harness/timeline attribution; §2 corrects those findings.
The confirming Claude review 6c80ac46 at ad89e68 found all five fixes complete
and no new defects. Its retained independent-review/claude-confirmation.md
(SHA256 ed61896c9ece78c75df98873f304e8e91f3f73c5fcede67c31916033cb4e4018)
records the actual procedure: read scope-ordered timelines, operations, recovery
events, linked plans/approvals and observations; it reported agreement on all four cases.
It made no live API calls, exercised no event stream and did not verify pagination or hashes.
That confirmation missed a restoration approval mismatch subsequently identified
by hosted Codex review at 35e4c1c. The retained timeline and linked plan responses
bind approval 264 to pln_y24… and approval 270 to pln_upiz…, as corrected in §2.
This correction supersedes that part of the earlier confirmation; the original
review is retained unchanged and does not prove the mistaken binding.
Independent Claude review 48eb761a at 3435240 subsequently reconstructed the
restoration answer from the served timeline, operations, linked plans/approvals
and observations, and confirmed the corrected binding and remaining narrative.
Its unchanged output is retained as independent-review/claude-restoration-correction.md
(SHA256 666144c5b9d0923054e57006f7cf51f75605b530d8ff3e157e48602a77a106fd).
That reviewer statically read the extraction-only recipe at 3435240, which the
executing agent ran. The predicate-and-control recipe in §1 replaces it.
The retained-only review above did not independently execute the walkthrough's
authenticated, paginated GETs. A separate Codex reader subsequently followed that
walkthrough as synthetic h-viewer against the still-running clean c9b70ff
fixture. It wrote and hashed its own four answers before opening the assessment
at 3435240, then compared them and found agreement, including the corrected
restoration approval binding.
The unchanged supplement is retained under
independent-review/live-walkthrough/. Its README.md gives the exact procedure;
requests.jsonl and the individual response bodies/headers retain 98 GETs, all
HTTP 200 and command exit 0. With limit=7, it followed 44 timeline pages
(305 entries), 13 observation pages (91 observations) and every operation-event
page to an empty next cursor. It fetched the linked plans, approvals and releases,
including the distinct new-epoch revert. Fourteen checks passed: response status,
epoch, ordering, link coverage, cursor completion, capture screening and two
in-memory positive controls. The manifest verifies 228 payload files.
| Retained artifact | SHA256 |
|---|---|
independent-answers.md, checkpointed before comparison |
91c98076d83fb553d2b65acf62848752fcbbf987fdfec541096245791a35c937 |
comparison.md, against assessment 3435240 |
587d569e821d9e325db31b5406c6894e5163f4229cae2cf8629f654e94d6e286 |
SHA256SUMS, payload manifest |
b7dba6b42136a7519541d0c0dd133a965802383bb2ed5c4b47cf97f815c553de |
The separate S6 reading used byte-verified original captures, as AP S8's precondition requires; it did not substitute the guided interruption or repeat S6's HTTP pagination. All fresh headers carry the current recovery epoch; the pre-restoration header comparison remains in the original campaign. This reader did not repeat event-stream expiry/revocation, viewer mutation refusals or Talos error injection. Their evidence remains in the original S8 run and controls (acceptance record R48), not in these new GETs. Screening today's captures with today's fixture patterns does not replace the original S6 secret scan.
Delegated factual disposition: S8's independent reading is met by this additional walkthrough. This supersedes the earlier retained-only basis for that verdict, without changing what the earlier reviewers actually did. AP S8, ER §9.3 and design §18.2 name no human or owner-named reviewer. The older “person” wording was an added characterization, not an acceptance-plan condition. This disposition uses the owner's factual-assessment delegation, not reviewer authority or a waiver. Original person-read SKIPs remain historical. Neither this review nor the earlier agent review proves unaided human usability.
4. Human-facing usability¶
The owner assessed the demonstrated experience as inadequate: even simple queries
required a convenience wrapper, while interaction remained a raw API.
Source inspection supports that finding. The executable provides serve,
migrate, token and orphans; it has no ordinary configuration-workflow CLI.
There is no web UI. The documented path uses shell functions, HTTP requests,
JSON, resource identifiers and conditional request headers. The temporary viewer
wrapper was demonstration tooling, not a product client.
This is a negative usability assessment now, not merely an unperformed study. It does not contradict the narrower PoC requirement for a minimal authenticated API, and it must not be represented as satisfactory day-to-day operator usability. A supported client needs separately scoped product work; this report chooses neither a CLI nor a web UI and adds neither to PoC acceptance.
5. Limits and remaining work¶
- The first apply plan withholds its diff because its adopted baseline has no equivalent redacted whole configuration, as PA §9.3 and choice §17.38 permit. Target review and publication validation are not a live-baseline diff.
- No health check is bound. Completion proves the bound configuration postconditions, not workload health or production readiness.
- Observation-based accounting and the settle floor do not establish a universal upper bound on late request delivery.
- The earlier acceptance campaigns retain responsibility for negative matrices, interruption points and variant coverage omitted by the guided pass.
- After the guided runs listed in §1, the documentation repairs replayed the analysis and added the independent live GET walkthrough in §3. They performed no new configuration mutation, interruption or restoration scenario.
- Issue31 and milestone03 remain open until this assessment lands and closure is recorded in the authoritative tracker. Licence and later implementation exclusions remain.