# Skyhook Cargo — MiniMax M3.1 Flash validation

- Artifact: `index.html` (35,721 bytes)
- Source: complete document from a fresh MiniMax M3.1 Flash authoring agent on the DeepSeek Harness; packaged without operator code changes
- Runtime: Chrome `155.0.8059.84`, Node `v22.23.3`, offline `file://` CDP loads
- Review date: 2026-10-27

These are post-delivery operator checks, not authoring-agent claims. No score, rank or rubric passage is claimed. The result is a failed run and the artifact is published as failed-run evidence.

| Check | Result | Evidence |
| --- | --- | --- |
| Complete standalone document | Pass | Doctype and closing `</html>` present; one inline script parsed with `new Function`; no external asset reference; no `fetch`, `XMLHttpRequest` or `WebSocket` |
| Offline desktop load | Pass | 1280×720 `file://` load produced one 958×633 canvas, the harbour diorama, the telemetry panel and six controls; no console error, no page exception, no external request |
| Offline mobile load | Pass | 390×844 load rendered a 390×438 canvas with no horizontal overflow; the control bar stayed inside the viewport |
| Scene composition | Pass | Sky, water, dock slab, background props, striped solid tower, painted landing pad, gantry crane, crate, plumb line and the angle arc are all drawn and legible at 1280×720 |
| Telemetry panel | Pass | Cable angle, load speed, cable payout, line to load, contact, trolley x, trolley v and settle progress are all present and readable |
| Simulation advances | **Fail** | Three seconds of held `ArrowRight` and `ArrowUp` left every HUD value unchanged (trolley x −8.0 u, cable payout 16.00 u, angle +0.0°, contact AIR, settle 0.00/2.00 s) and the canvas hash was byte-identical before and after |
| On-screen controls actuate the simulation | **Fail** | A pointer hold on `TROLLEY ▶` and a click on `LOWER ▼` produced no change in any HUD value |
| Trolley drive and braking | Not observed | The trolley never left −8.0 u, so drive, brake, swing and reversal could not be exercised |
| Hoist and lower | Not observed | Cable payout stayed at 16.00 u; the cable length could not be changed |
| Cable constraint and tower clearance | Not observed | With the physics frozen, no swing was produced and the fouled-cable guard was never triggered; the `CABLE FOULED` banner never appeared |
| Landing rule and settle ring | Not observed | The settle counter stayed at 0.00/2.00 s and no delivery banner appeared |
| Pause and reset | Pass | The `PAUSE` control switched the banner to `PAUSED` and the hint to the paused message; `RESET` restored the initial panel |
| Runtime during interactions | Pass | No uncaught exception, no console error, no failed or external request across the whole session |

## Root cause

Source review of the published file explains the frozen simulation. The script declares its canvas size and its physics substep with the same identifier:

```
var W=960,H=620,DPR=1,S0=18;      /* line 119 — canvas size */
var H=1/120, acc=0;               /* line 345 — fixed substep size */
```

Both declarations sit in the same scope, so the later one wins, and `resize()` then overwrites the substep constant with the rendered pixel height:

```
function resize(){ ... H=Math.max(220,Math.floor(r.height)); ... }   /* line 156 */
```

`resize()` runs during `boot()`, so at run time the substep size is 633, not 1/120. The frame loop is

```
while(acc>=H&&n<10){ step(H); acc-=H; n++; }
```

With `H` equal to 633 the accumulator can never reach the threshold at any normal frame rate, so `step()` is never called: the trolley, the hoist, the pendulum, the contacts and the settle timer are all dead code in practice. The same constant also drives the sky gradient, and the correctly drawn sky in the published screenshot confirms that `H` is the canvas height of 633 at draw time.

## Limits and unchecked items

- No rubric criterion was observed. The artifact is not a playable harbour crane challenge, so C1–C5 remain not-observed rather than failed by behaviour.
- The rendering, art direction and HUD layout are correct and were reviewed in screenshots, but a static render says nothing about the coupled motion the brief asks for.
- Because the physics never ran, the operator could not test cable stretch, tower or floor contact, explosive response, pause during a settle, or the reset-then-repeat checklist.
- The screenshot at 390×844 was not visually reviewed; only the layout measurements were.
