# RUN — Pocket Observatory, first delivered candidate

## Outcome and run identity

Completed the directed production brief as a local, editable, dependency-free portfolio. This is one independent original pilot inspired by public examples, not a model comparison and not a reconstruction of a creator’s private prompt.

The candidate includes a runnable source project, a 52,891-byte static build, all three fictional projects and sections, a no-JavaScript plain text view, 11 actual browser screenshots, a 22.4-second demonstration in MP4 and original WebM, an editable remix, exact supplied inputs, attribution, and instructions.

## UTC timing and measured elapsed time

| Measurement | Observed value |
| --- | --- |
| Task start, first recorded clock | 2026-09-07 03:10:55 UTC |
| First portfolio source file created | 2026-09-07 03:15:37.372 UTC |
| First static build written | 2026-09-07 03:23:52.467 UTC |
| Final application build written | 2026-09-07T03:30:58.057421+00:00 |
| Final successful browser verification | 2026-09-07T03:31:01.450Z → 2026-09-07T03:31:06.678Z |
| Browser verification elapsed | 5.228 seconds |
| Screenshot calls in that verification, combined | 0.934 seconds |
| Browser video capture | 2026-09-07T03:32:43.831Z → 2026-09-07T03:33:06.092Z |
| Capture process elapsed | 22.259 seconds |
| Encoded video duration | 22.400 seconds, 560 frames at 25 fps |
| MP4 conversion | 1.86 seconds, FFmpeg’s reported elapsed time |
| End of deliverable assembly, before archive write | 2026-09-07T03:39:15.997053+00:00 |
| Total elapsed to deliverable assembly | 1700.997 seconds (28 minutes 21.0 seconds) |

Build/implementation and rendering are distinguished here. The final native static build reported **0.004 seconds**; first build 0.004 seconds; the complete independent remix build 0.003 seconds. Time from task start through final application build was **1203.057 seconds**, including setup, implementation, early inspection, and internal fixes. It is not compiler time. Screenshot and video times above are separately instrumented. Initial inspection screenshots were not separately timed. Documentation, review, and packaging are included only in the overall task elapsed time; they are not claimed as rendering time.

## Model, effort, speed, and shared account usage

- Requested by the controller: `gpt-6-astra`, `Ultra`.
- Actual exact model identifier, reasoning-effort setting, and service-speed mode: **unknown**. The active instructions identify the assistant generically as GPT-6, but no tool exposed authoritative per-run settings. Requested settings are not presented as observed runtime facts.
- Token counts and per-task dollar cost: **unknown**. No cost was invented.
- Read-only shared-account snapshots: the Codex primary 10,080-minute window reported **27% used** near the beginning (approximately 03:11 UTC) and **35% used** at **03:35:10 UTC**. Other tasks shared this account concurrently. These are account snapshots, not this task’s consumption; no delta is attributed to this build.
- No purchases, paid generation, paid renders, usage resets, new accounts, account changes, source registration, external writes, or publication occurred. Account identifiers and reset-credit details are deliberately excluded.

## Environment and dependencies

| Item | Observed version / detail |
| --- | --- |
| OS | macOS 26.3, build 25D125, arm64 |
| Hardware | MacBook Pro, Mac16,7, Apple M4 Pro, 14 CPU cores (10 performance / 4 efficiency), 24 GB memory |
| Node.js | v24.16.0 |
| npm | 11.13.0 |
| System Python | 3.14.0 |
| Bundled Python used for visual QA sheet | 3.12.14 |
| Bundled workspace runtime | 26.905.11957 |
| Playwright library | 1.62.1, existing installation |
| Actual browser | Chromium 153.0.8010.12, existing headless-shell revision 1243 |
| FFmpeg | 8.1.1; H.264 conversion with libx264 |
| Application packages | None; native HTML/CSS/SVG/ES modules and Node built-ins |
| Fonts | Local Arial/Helvetica, Georgia/Times New Roman, Courier New, and system fallbacks; no redistributed font files |

The app has no dependency install step, external asset requests, analytics, API keys, cookies, browser storage, or live data. The localhost server is a development convenience and is not a production hosting service.

## Instructions and skill influences

1. The exact controller dispatch and brief were saved under `inputs/` before product implementation. The supplied short brief and Useful correction text were retained as input context; the directed production brief was the actual build contract.
2. Curtis’s global working agreement supplied autonomy, local-change authorization, limited iteration, external-write restrictions, deliverable reporting, and Next prompt requirements.
3. `sites:sites-building` and its environment reference were read. They informed initial setup, scoped page design, direct access to content, real metadata, responsive behavior, and requested browser QA. The mandated cached starter was unavailable offline. Under the explicit installed-dependencies-only restriction, the owner used native local files rather than downloading a starter. No Site was registered or deployed. `sites-hosting` was not applied because the user explicitly required local-only work.
4. `playwright` and its CLI reference were read. Its CLI-first workflow was attempted offline. The CLI was not cached, so the existing Playwright library and existing Chromium binary were used directly, without `@playwright/test` or a new package install.
5. User-directed original CSS/SVG geometry and functional instrument controls were used. No external image generation was invoked. The demonstration is a live browser capture, not an authored animation composition or claimed physics render.
6. The task was independently delegated/background work. A user-facing app browser panel was not opened. The exact localhost URL is provided for review, and no other Codex task was started or messaged.

## Within-task subagent use

One scoped subagent, `accessibility_review`, was used for two bounded read-only assignments:

- Independent requirements analysis covering section selection versus opening, keyboard/focus, touch, reduced motion, content parity, and fictional contact.
- A read-only source review of dial/focus/project retention/reduced-motion behavior while the owner ran browser QA. It reported no additional material defects in the scoped review.

The subagent inherited the task configuration; its actual exact model/effort was not independently observable. It made no files, called no Sites tools, started no servers, and spawned no agents. The owner authored, ran, inspected, and packaged the site. This was within-task collaboration, not another user-owned Codex task.

## Acceptance checks and actual evidence

The final verification passed **11 grouped browser checks**, with no runtime or console errors and all website requests confined to localhost. Details are in `exports/verification.json`.

- Desktop initial view and all Work/About/Contact content rendered in actual Chromium. All three fictional projects were directly selectable. Project choice persisted across section changes, and each project’s star became highlighted.
- Tab order, skip link, visible 3px keyboard focus outline, dial arrow/Home/End input, Enter opening, and focus transfer to the reading heading passed.
- Dial movement changed the selected section without prematurely changing the open section. The map moved smoothly in normal mode and retained the selected project highlight.
- Pointer rotation, both tactile buttons, angular seam crossing, and release outside the dial passed.
- Phone browser emulation at 390×844 used actual CDP touch events for rotation and taps for navigation/project changes. Primary section, tactile, project, and dial targets measured at least 44×44 CSS pixels.
- Phone instrument height measured **214.94 CSS pixels**. The complete opening project description ran from **y=695.75 to y=801.31**, inside the 844-pixel initial viewport. Horizontal overflow checks passed at widths 320, 390, 768, and 1024.
- A 720-CSS-pixel / 2×-DPR viewport verified reflow corresponding to the available layout width at 200% desktop browser zoom. It was not a native toolbar zoom or text-only enlargement test.
- Reduced-motion emulation produced no star-map transform, transition, or animation, and the dial opened the requested section successfully with immediate transitions.
- The static text view passed exact content-parity checks for identity, all project descriptions/details/facts/annotations, About, and Contact with JavaScript disabled. The no-JavaScript home fallback reached it.
- Contact remained plain text at `hello@averyvale.example`, with explicit fictional labeling and no form or message action.
- The source passed `npm run check`; the static build succeeded. The independent Morgan Reed remix was built in a scratch copy and verified to replace the identity and all project names in generated text HTML without altering the delivered Avery source.
- The original brief passed byte-for-byte comparison with its supplied source. The MP4 was probed as H.264, 1440×1080, 25 fps, 560 frames, 22.400 seconds. The actual screenshot set and a filmstrip of the recorded video were visually inspected.

## Initial internal defects and recoveries

All changes below occurred before the first delivered candidate. **No separate post-delivery or human-directed correction pass was consumed.** The archive preserves the first delivered result for possible later review.

Material product issues found and fixed during initial implementation/verification:

1. First phone inspection placed the project description at y≈855.61, below the initial 844-pixel viewport; the instrument measured ≈267.93 pixels high. The phone heading/spacing and instrument were compacted, redundant phone chrome was reduced, and touch targets retained. Final measured geometry is above. This was an observed initial QA defect, not an automatic execution of the brief’s sample human correction.
2. An unused malformed SVG path contained a nonnumeric token and produced a browser console error. It was removed; final console checks are clean.
3. The custom rotary pointer handler initially ran on a native range input. During real emulated touch drag, the native slider’s own handling competed with the rotary path and selected Contact instead of the expected About. The visible rotary surface now owns pointer capture and touch movement while the native range preserves keyboard and assistive-technology semantics. The affected pointer/touch/keyboard checks and the final verification passed.

Environment/tooling recoveries, not new product correction gates:

- The pinned Sites initializer and Playwright CLI were unavailable in the offline npm cache (`ENOTCACHED`); no network install was attempted.
- Sandboxing blocked the localhost bind and Chromium launch. Automatic sandbox review approved the in-scope local server/browser commands. No approval was rejected and no new human authorization was requested.
- Playwright’s default expected browser revision was absent; the already-installed Chromium revision 1243 was explicitly selected. No browser was downloaded.
- A build command was once invoked from the workspace instead of the nested project, producing a missing-package error; it was rerun in the correct directory.
- System Python lacked Pillow for a scratch visual QA contact sheet; the bundled Python with Pillow was used instead. This did not alter deliverable images or trigger a new product pass.
- A first hardware query was blocked; a read-only system-profile query provided the nonidentifying hardware fields reported above.

## Human/controller interventions

The initial dispatch supplied the requested model/effort, local-only scope, within-task subagent authorization, existing account allowance, first-candidate preservation, and one possible future consolidated correction. No additional human creative input, preference revision, manual content edit, account action, or correction prompt arrived during the run. Automatic environment approval for local process execution is recorded above. No other Codex task was created, started, woken, resumed, handed off, or messaged.

## Remaining limitations

- Browser coverage is Chromium desktop and phone emulation. Physical phones, Safari, Firefox, and a live human screen-reader session were not tested; no WCAG certification is claimed.
- The constellation, tide curves, and gear diagram are illustrative original geometry. Screenshots and video demonstrate appearance and interaction, not accurate astronomy, ocean data, mechanical performance, or physics.
- This is a functional portfolio containing fictional project demos, not production implementations of those three project applications. Contact is intentionally nonfunctional.
- Very small decorative instrument inscriptions are secondary to the readable page controls and content. System-font substitution may change spacing slightly on other platforms.
- The local server does not hot-reload: rebuild and refresh after edits. Live preview availability depends on the retained local process; `npm run dev` recreates it.

## Handoff and preservation

Editable project: `project/`. Static export: `project/dist/`. Visual exports and measured evidence: `exports/`. Local preview at delivery: **http://127.0.0.1:4317**.

The companion `pocket-observatory-first-candidate.zip` preserves this first delivered candidate. It contains source, built site, exports, README/remix, attribution, inputs, and this record; it excludes node_modules, caches, browser profiles, credentials, temporary QA artifacts, and unrelated personal files. The archive is CRC-checked at creation. Extract into a fresh folder before a later targeted correction and keep the original archive unchanged.
