workshop6 full outcome audit
# Workshop 6: bounded multi-agent comparison
Use the reservation pair to demonstrate independent adversarial discovery, with the ledger pair as a concrete integration-failure contrast. Keep the scheduling outcome as an exploratory result.
This batch does not establish a team correctness advantage. Three capable single agents receive the same full contracts and the same 30-iteration total allowance as their team comparisons. All original conditions and every attempted new condition are retained. No model run was retried or selected away.
| Prepared task | Condition | Execution | Original external checks | Post-hoc newline check | Product scope | Unit tests | Model calls | Seconds | SDK USD |
|---|---|---|---|---|---|---:|---:|---:|---:|
| reservation | single | finished | Pass | n/a | Pass | 30 | 12 | 153.85 | 0.02066 |
| reservation | team | finished | Pass | n/a | Pass | 20 | 24 | 179.40 | 0.03497 |
| ledger | single | finished | Pass | Pass | Pass | 43 | 19 | 242.61 | 0.03552 |
| ledger | team | timeout | Pass | Fail | Pass | 1 | 19 | 367.16 | 0.02852 |
| schedule | single | finished | Pass | n/a | Pass | 30 | 14 | 151.90 | 0.02669 |
| schedule | team | error | Pass | n/a | Fail | 26 | 27 | 205.56 | 0.04809 |
Total SDK-reported receipts: **$0.19445**. These include parent default and task:* metrics once. Saved child receipts are cross-checks, not additional cost. The original ledger timeout receipt was captured before all child usage arrived; final read-only reconciliation replaces that stale receipt and preserves the earlier record. Receipts are not independently verified bills.
The ledger team snapshot passing the original checker does not mean the run completed or met every stated requirement. It stopped before owner integration and fails the explicitly post-hoc contract check. Product-file scope also does not establish compliance with every workflow instruction.
## What each second context contributed
**Reservation: independent discovery.** The owner first lists filenames, then delegates before reading code. The task contains the workspace path and the instruction to independently test inventory.py against README.md, without defect hypotheses. The child executes concrete failures for constructor/snapshot aliasing, partial mutation on a failed reservation, quantity validation, changed-payload replay, repeated cancellation, cancelled-ID reuse, and duplicate-SKU cancellation. The owner repairs the product and verifies it. The single-agent baseline also fixes the defects. This is independent discovery from the contract, not a bug missed by the baseline and not merely reproduction of owner-supplied hypotheses.
The child violates its read-only/workspace instruction by creating and deleting two /tmp probe scripts. Product files remain untouched by the reviewer. Its report also claims an extra deduction that its own output disproves; the owner repeats that and invents two additional starter defects. Use the actual probe output and the independent checker. Ten failed assertions do not establish ten root causes. These reporting issues are secondary caveats; the material contribution is the executed adversarial investigation.
**Ledger: complementary implementation followed by failed handoff/integration.** The two specialists write disjoint codec.py and reducer.py modules, with overlapping histories. They reach their eight-iteration caps and return error handoffs rather than final evidence reports. The owner spends several minutes before dispatch and reaches the wall-clock stop before adding integration tests. Only the one original import smoke test remains. This is real parallel implementation work, not independent discovery.
The parent adds an unstated line-ending stripping rule to the reducer handoff. That changes the contract: summarize([encode(["id", "acct", "1\n"])]) must raise ValueError because cents must match the stated ASCII integer grammar. The saved team candidate returns {"acct": 1}; the completed single-agent version raises ValueError. The original five check groups omit this edge case. supplemental.py is an explicitly post-hoc probe, validated on starter/reference and applied to both ledger final implementations. The original check results remain unchanged. This is useful evidence of requirement drift in this unfinished snapshot, not a predeclared benchmark result or an estimate of how often teams fail.
**Scheduling: independently verifiable pieces and owner integration.** The contract separates strict HH:MM parsing from interval union and a planner that uses both. The external checker exercises every minute from 00:00 through 24:00, invalid formats, touching/overlapping/zero-length intervals, input preservation, and complete busy/free outputs. The time worker finishes with probe evidence; the interval worker writes its module but reaches its eight-iteration cap. The owner integrates both artifacts, adds 26 passing unit tests, and passes the six external check groups. It then reaches its 14-iteration cap during an extra probe and leaves _probe_part2.py, outside the four allowed files. That final scope violation is real. The failing probe supplies None, outside the stated iterable-input contract, so its TypeError is not a demonstrated product defect. The interval worker also creates /tmp/probe_windows.py outside its workspace. This is useful artifact integration with workflow and lifecycle failures, not a complete compliant team run.
## Controls and limitations
These are three deliberately selected exploratory candidates, one observation per condition, in fixed single-then-team order. Reservation has labeled seeded defects; ledger and scheduling start from incomplete stubs. Earlier cache pilots are preserved at /Users/instructor/Documents/Codex/2026-10-18/task-10/workshop56-redesign and are not rerun. That earlier reviewer received the owner’s hypotheses, unlike this reservation review.
Before model calls, all three external checkers reject their starters and accept known-correct references. The six/five/six check groups are in fixtures.py; checker-validation.json retains exact results. The new newline check is separate and post hoc. Graders stay outside disposable agent workspaces. No grader access was observed in saved actions; path instructions are not filesystem isolation.
All six conditions request openhands/deepseek-v4-flash with reasoning_effort=none, 16384 max output tokens, two SDK retries, and no established seed control. This is a provider model alias, not pinned weights. The local server, SDK, Tools and Workspace report 1.53.0; Canvas package is 1.27.1. Exact settings, versions and source hashes are retained. Requested reasoning settings do not imply zero recorded reasoning tokens.
Single agents have 30 iterations; reservation splits 18+12; other teams split 14+8+8. The budget split is an experimental choice and can strand useful work. Equal allowed iterations are not equal realized calls, tokens or dollars. Each parent has a configured 360-second stop, with polling/cancellation overhead; child budgets are $0.10 each, a coarse parent receipt stop is $0.30, and the batch receipt stop is $1. No expansion or repeat was run. Provider latency, caching, fixed order and other activity on the shared Canvas service limit timing comparisons.
Canvas injects ambient memory despite load_memory=false. Private context hashes and events are retained; these cannot be described as memory-disabled runs. Portable histories redact all dynamic context. Framework-created .git metadata is separated from product edits, and no agent git-init action was observed. Final hashes do not by themselves audit transient writes; the reviewer’s /tmp writes are explicitly recorded.
## Proposed headlines and short narration
**Give each worker a piece you can check.** “One worker parses a time. Another merges intervals. The owner connects those pieces and checks the free minutes for the day. That gives us a specific contribution to inspect, instead of counting how many agents we started.”
**Check the combined result.** “The workers can test their own modules and still leave the owner with integration work. In the ledger run, both modules were written, but both workers hit their iteration limits and the owner stopped before integration. The single agent completed the same contract within its allowance.”
**A handoff can change the requirements.** “The ledger contract requires integer cents. The owner adds a rule to strip line endings, and the worker follows it. An encoded amount ending in a newline now gets accepted. Our original checker missed that case too. The follow-up check is labeled post hoc and runs against both versions.”
**Independent discovery still needs a baseline.** “The reservation reviewer found real failures without receiving the owner’s guesses. That is a useful separate investigation. The single agent fixed the same defects, so this pair gives us no correctness gain to claim.”
Use two or three of these beats, not all four as a new section. Keep the original pair available as historical mechanics evidence; do not edit the live deck until the replacement is reviewed.
## Parent and child evidence anchors
**ledger-single-t1**: parent `7fffc078-f388-44eb-9e5b-7d3ec91961c9`. [Open Canvas](http://localhost:8000/conversations/7fffc078-f388-44eb-9e5b-7d3ec91961c9). Original checks: `runs/ledger-single-t1/run.json`.
- Owner final message `5c946399-1630-4db2-98fa-b9a75b823a39`.
**ledger-team-t1**: parent `6861ddb6-6ca4-4f0e-ba9f-6c5729445fdc`. [Open Canvas](http://localhost:8000/conversations/6861ddb6-6ca4-4f0e-ba9f-6c5729445fdc). Original checks: `runs/ledger-team-t1/run.json`.
- Dispatch `766cdb87-0db4-457f-9a04-bfe8ace0558c` to `codec-specialist` at 2026-10-18T20:20:40.617420.
- Dispatch `c583d262-cd3a-4f70-97d2-1816cd98d895` to `reducer-specialist` at 2026-10-18T20:20:40.623180.
- Returned handoff `39958dc4-b8df-4372-906a-711b7294d3bf` for dispatch `766cdb87-0db4-457f-9a04-bfe8ace0558c`.
- Returned handoff `e5e7a2d5-8361-4179-b624-3d1fec159d7f` for dispatch `c583d262-cd3a-4f70-97d2-1816cd98d895`.
- Child `8803737b34cc4352b68cc9ae51b40f03`: error, 2026-10-18T20:20:41.333316 to 2026-10-18T20:21:54.636775; 11 tool actions. Full events in `runs/ledger-team-t1/children/8803737b34cc4352b68cc9ae51b40f03/events/` (private).
- Child `d05e4664b4e246c796ec974d5f99f92a`: error, 2026-10-18T20:21:55.191608 to 2026-10-18T20:22:53.508032; 9 tool actions. Full events in `runs/ledger-team-t1/children/d05e4664b4e246c796ec974d5f99f92a/events/` (private).
**reservation-single-t1**: parent `8bdb8315-58d4-487a-86f2-26c65923c676`. [Open Canvas](http://localhost:8000/conversations/8bdb8315-58d4-487a-86f2-26c65923c676). Original checks: `runs/reservation-single-t1/run.json`.
- Owner final message `5e86fc98-abef-46eb-b453-40fdbc0848dd`.
**reservation-team-t1**: parent `2688499e-2e58-4487-b876-63aac0e77273`. [Open Canvas](http://localhost:8000/conversations/2688499e-2e58-4487-b876-63aac0e77273). Original checks: `runs/reservation-team-t1/run.json`.
- Dispatch `3476df3c-5067-45f1-bf95-225dcd393982` to `adversary` at 2026-10-18T20:09:53.125829.
- Returned handoff `a2776433-89e0-4802-8c8b-5ed1b68d5153` for dispatch `3476df3c-5067-45f1-bf95-225dcd393982`.
- Child `98c36972eb58415d9a405a994b542caa`: finished, 2026-10-18T20:09:53.684330 to 2026-10-18T20:11:08.313742; 13 tool actions. Full events in `runs/reservation-team-t1/children/98c36972eb58415d9a405a994b542caa/events/` (private).
- Owner final message `133b0737-202f-4bad-9b39-cba1e2870a59`.
**schedule-single-t1**: parent `f8e269f3-1cb3-4db7-912c-903a0ab12831`. [Open Canvas](http://localhost:8000/conversations/f8e269f3-1cb3-4db7-912c-903a0ab12831). Original checks: `runs/schedule-single-t1/run.json`.
- Owner final message `2814d966-e454-4296-a5ac-6e98b316d8eb`.
**schedule-team-t1**: parent `d626179e-243d-4ab9-9623-e04d6c0ae321`. [Open Canvas](http://localhost:8000/conversations/d626179e-243d-4ab9-9623-e04d6c0ae321). Original checks: `runs/schedule-team-t1/run.json`.
- Dispatch `c4cbeff4-f904-4794-9b60-e4a0eae171cf` to `time-worker` at 2026-10-18T20:26:17.421691.
- Dispatch `4d9ae20e-a9ee-4943-8e87-b954f5493456` to `interval-worker` at 2026-10-18T20:26:17.426949.
- Returned handoff `5c83acbb-0bcc-4404-8585-c3592f612c60` for dispatch `c4cbeff4-f904-4794-9b60-e4a0eae171cf`.
- Returned handoff `fa841d9f-c602-4800-b6e2-392419553484` for dispatch `4d9ae20e-a9ee-4943-8e87-b954f5493456`.
- Child `07debdb37ad24b5fa5d44107afe51a1b`: finished, 2026-10-18T20:26:18.290591 to 2026-10-18T20:26:37.760702; 4 tool actions. Full events in `runs/schedule-team-t1/children/07debdb37ad24b5fa5d44107afe51a1b/events/` (private).
- Child `b5dcadc0a90047a98ee2dbbf238ea090`: error, 2026-10-18T20:26:38.462441 to 2026-10-18T20:27:21.802043; 10 tool actions. Full events in `runs/schedule-team-t1/children/b5dcadc0a90047a98ee2dbbf238ea090/events/` (private).
Reservation independent isolation probe: `2ffe3006-ca30-4156-a035-9556ca6a1ef2`. Ledger requirement-drift dispatch: `c583d262-cd3a-4f70-97d2-1816cd98d895`. Ledger child cap errors: `b751233b-d1dd-4593-9de8-c452657215d0` and `a7486dca-eb89-49b8-965e-67fddaa4d0c8`. Detailed adjudication and corrections are in adjudication.json.
## Separate candidate archive
candidate-archive contains all six parents and their child histories through the established canvas-workshop builder/installer/read-only viewer workflow. It is a new unpublished candidate, not a replacement release. Exact event IDs/timestamps and source-file hashes preserve provenance; dynamic context and credentials are removed, personal home paths normalized, execution configuration made inert, and historical unfinished status remains explicit in titles and outcomes. Raw states and private audits are excluded.
archive-validation.json records schema validation, manifest hashes, fresh import, in-process read-only access, blocked mutations/WebSockets and guards against agent/model initialization. No new port is opened. Initial validation was API-only. Subsequent actual-browser acceptance passed for all six Canvas details, six HTML parents, five full child histories and 397 event cards; see BROWSER-ACCEPTANCE.md and browser-acceptance/SUMMARY.json. The static HTML transcripts can be opened directly. Existing slides, talk track, package/release, shared settings and other conversations are unchanged.