Skip to content

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 at 2026-10-20T11:06:35.219438Z; transport and verification deadlines are 11:08:35.219438Z and 11: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.tsv rows 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_3zqiy6psrcymxc3fbxvvbzfika freezes at 71. Approver idn_q6bzuafr5x6jp2mlpnltaecjne approves adoption plan pln_ubxzhc372azatqi6wl47asd3gu at 135: adoption 138 has no attempt, Applied 139 names rel_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.tsv row 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_vs7fthjzcy2egcbisobnn2vvw4 approves 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 observation obs_iwzo2oh3ci4q66gnc4cfuvfllq and end observation obs_pkdrj4h65gpcre3rr4wkfgbsy4: versions 20/20, anchor 2026-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 original s6.tsv row 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_q6bzuafr5x6jp2mlpnltaecjne approves pln_y24wwajahj7iwmdycs7zijszda at 264 (apr_ntvgkddvplirvguxdg5hgshboe), then the separate waiting plan pln_upizcgfor7upcuybk6rpa7ss2a at 270 (apr_h3cyj553pmiiha477xqwzvt2ie). Both target rel_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_n2fmoxkmpf4yalolmhwkczx2wm records scope accounting 279, citing obs_t4kfff4ri4tsbb3gvi4oxwgbue and obs_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 by s7-run-20261020T111224Z/s7.tsv rows 32/76/94; rows 36/53 establish the erased revocation.
  • The same approver approves pln_cvdwpkq4dks322scc2bamb6lri at 290 in the new epoch (unseenOverwrite=true). Its operation op_q6fkjnhwd2them6pns7afzpkaq attempts at 295, receives accepted response 296/accounting 297, observes version 8 at obs_4lz2…, completes at 302 and moves Applied from rel_eojo… to newly published rel_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.