# Concourse Divide — GPT-6.1 Terra validation

- Artifact: `index.html` (15,511 bytes)
- Source: one complete document from a fresh GPT-6.1 Terra Codex session (Codex CLI 0.163.0, `gpt-6.1-terra`, reasoning effort medium, 94 s, 18,164 tokens reported), published without operator code changes
- Runtime: headless Chrome `156.0.8078.47` with offline `file://` loads and CDP key and pointer events
- Review date: 2026-10-27

These checks were run by the operator after delivery. They are not claims made by the authoring agent. No score, rank or rubric pass is claimed. **This is a failed run**, published as failed-run evidence.

| Check | Result | Evidence |
| --- | --- | --- |
| Complete standalone document | Pass | Has a doctype and a closing `</html>`, inline script only, no external asset or network API |
| Offline desktop and mobile load | Pass | The station, the divider, the North, Center and South passages, the two destination blocks and 48 travelers rendered at 1280×720 and 390×844, with no console error, page exception or outside request |
| Population and counts | Pass | Showed 48 active, 0 arrived and 48 waiting. Active + arrived = 48 throughout |
| Crowd moves with all gates open | **Fail** | 48 of 48 were waiting and 0 had arrived at 5, 10, 30 and 55 simulation seconds, and no traveler left its starting cell |
| Selection and waiting reason | Pass | Clicking C12 showed `Destination: East zone`, `Planned route: Center passage`, `Status: Waiting for space or the opposing stream to yield.` |
| Gate closure states | Pass | Key `2` set Center to CLOSED, since nobody was inside the passage. After closing all three, C12 showed `Planned route: No route` and `No route: all reachable passages are closed or closing.` |
| South-only recovery (A4) | **Fail** | After South was reopened, the counts were still 48 active, 0 arrived and 48 waiting 15 simulation seconds later |
| Runtime during interactions | Pass | No uncaught exception or console error |

## Root cause

Each team starts in the other's destination:

```
cyan  (team 0) starts at x = 2..5, y = 4..9   → inSlot for amber (team 1) is x 2..5
amber (team 1) starts at x = 19..22, y = 4..9 → inSlot for cyan  (team 0) is x 19..22
```

`route(a, reserved, true)` only accepts a destination cell that is not occupied. Every destination cell starts occupied by the other team, so each traveler's path comes back empty and it is marked waiting. Nobody ever moves, so no cell ever frees up. The simulation is deadlocked from the first tick, and no gate state can release it.

## Limits and unchecked items

- Rerouting, draining a closing gate and the 90-second recovery could not be tested, because no traveler ever moves.
- The trail display is unobserved, because there was no motion.
