# SIMD Experimental — rev 2 implementation report

**Task:** `[SIMD-EXPERIMENTAL]:IMPLEMENT:v1:muv2m9u5-rva7u` (Agent 1, implementer)
**Question this report answers:** Does the delivered HTML satisfy the human's request —
"Add a subtle neon accent line under the hero and a short line that says requests are
reviewed by a second agent" — and is it safe to publish to the live sandbox?

**Verdict:** Yes, with one copy-accuracy risk flagged in §5.
Deliverable: `src/experimental/index.html` (3,981 B).

All evidence below was gathered on **2026-10-05**. Each claim is tagged
**[F]** fact (directly observed, reproducible), **[I]** inference (reasoned from a fact),
or **[U]** uncertainty (not established).

---

## 1. What the live page actually is

**[F]** `GET https://www.si-md.xyz/experimental/` → HTTP 200, 1,479 B,
`content-type: text/html; charset=utf-8`, `server: Vercel`,
`etag: "93168442d74382d7d6d81606e2dc8c38"`, `date: Mon, 05 Oct 2026 10:04:37 GMT`.

**[F]** That URL is **not** the page content. It is a loader shell. Its inline script
(verbatim from the fetched body) does:

```js
const res = await fetch("/api/contest?op=experimental-html", { cache: "no-store" });
const html = await res.text();
frame.srcdoc = html;                                   // <iframe sandbox="allow-scripts allow-same-origin allow-forms">
document.title = (html.match(/<title>([^<]*)<\/title>/i) || [])[1] || "SIMD Experimental";
...
setInterval(load, 60_000);
```

**[F]** `GET https://www.si-md.xyz/api/contest?op=experimental-html` → HTTP 200, 1,686 B.
This is the real page ("v1"): a single `<main>` with a `.mark` kicker, an `<h1>`
("A page the swarm can rewrite."), one body paragraph, and a `.panel` stating the open rung.
Design tokens: `--bg:#07090c --fg:#e8eef6 --mute:#8b97a8 --line:#1c2430 --acc:#6ee7b7`.

**[I]** Three constraints follow from the loader, and they governed the implementation:

| Inference | Grounded in |
|---|---|
| The document must be **fully self-contained** — it is injected as `srcdoc`, so relative URLs and any external asset are unreliable. | `frame.srcdoc = html` |
| The `<title>` must be preserved or the browser tab name changes. | the `document.title = html.match(...)` line |
| The page is **re-injected every 60 s**, so any CSS animation restarts each minute. | `setInterval(load, 60_000)` |

The last point is why the added motion is a short loop (9 s and 3.2 s) rather than a long
one-shot intro: a one-shot would re-fire every minute and become a visible blink. **[I]**

---

## 2. What changed (v1 → rev 2)

Diff is additive; no existing copy, token, or structure was removed. **[F]** (verified — §3)

1. **Neon accent line under the hero.** A new `<div class="hero-rule" aria-hidden="true">`
   placed immediately after the `<h1>`. It is 1 px tall, `max-width:42rem` (matching the
   existing `p` measure), painted with a horizontal `linear-gradient` in the page's own
   accent `#6ee7b7` that fades to zero alpha at both ends, plus a two-stop
   `box-shadow` glow (`.25` at 8 px, `.10` at 22 px). A `::after` highlight 18 % of the
   line's width drifts across it over 9 s.
2. **Review notice.** A new `<p class="reviewed">`:
   "Requests are **reviewed by a second agent** before a revision goes live."
   68 characters; one line; a small pulsing accent dot sits to its left.
3. **Supporting, minimal.** Version mark `v1` → `v2`; the panel's "version `1`" → `2`;
   a one-line footer naming the revision; a `prefers-reduced-motion` block.

Decisions I made, since the request did not specify them:
- "Under the hero" was read as **directly below the `<h1>`**, above the body copy — not
  below the whole header block. The accent line therefore separates the headline from the
  new notice. **[I]**
- "Subtle" was enforced as a budget, not a feeling: 1 px height, peak gradient alpha 0.85,
  glow alpha ≤ 0.25, no fully-opaque fill. Checked mechanically (§3). **[I]**

---

## 3. Verification performed

Two independent check layers. Both are reproducible; the browser layer loads the document
through the **same srcdoc-in-sandboxed-iframe path production uses**, not as a bare file.

### 3.1 Structural checks — 43/43 passed **[F]**

Python `html.parser`-based script (committed as `test/check_revision.py`). Notable assertions:

- Tag nesting clean; no unclosed tags; all required elements present.
- **Self-contained:** no external `src`/`href`, no `@import`, no remote `url()`, no `<script>`.
- Accent line is positioned *after* the `<h1>` in document order, uses a gradient, has a glow,
  is `aria-hidden` (decorative, not announced to screen readers), and its alphas stay ≤ 0.9.
- Visible copy (with `<style>` contents excluded) contains "reviewed by a second agent";
  the sentence is 68 chars — one short line, as asked.
- Every `animation:` name has a matching `@keyframes`, no dead `@keyframes`, and all
  animations are disabled under `prefers-reduced-motion`.
- v1 copy, title, and all design tokens preserved.

> Honest note: my first two check failures were **bugs in the checker, not the page** —
> `handle_data` was counting CSS as visible text, and `animation:none` was parsed as an
> animation name. Both were fixed and re-run. No page defect was found by this layer.

### 3.2 Rendered checks — Chromium 1243, 3 configurations, all passed **[F]**

Headless Chromium (installed locally; system libs extracted from `.deb`s since the sandbox
had none). Measured from the live DOM, not asserted from source:

| | desktop 1200×760 | mobile 390×780 | reduced-motion |
|---|---|---|---|
| accent line box | x 260, w 672, **h 1 px** | x 20, w 350, **h 1 px** | same as desktop |
| line is below `<h1>` | ✅ (h1 bottom 190.8 → rule 212.8) | ✅ (143.7 → 165.7) | ✅ |
| notice is below line | ✅ (227.8) | ✅ (180.7) | ✅ |
| computed gradient + glow | ✅ both present | ✅ | ✅ |
| `.hero-rule::after` anim | `rule-drift` | `rule-drift` | **`none`** |
| `.dot` anim | `dot-pulse` | `dot-pulse` | **`none`** |
| notice text read from DOM | "Requests are reviewed by a second agent before a revision goes live." | same | same |
| horizontal overflow | none | none | none |
| JS / console errors | none | none | none |

**[F]** A 4× magnified capture of the line (animation frozen at its mid-point for
determinism) confirms it renders as a green neon hairline with a soft bloom and a visible
travelling highlight — i.e. it is actually visible, not a token that computes correctly but
paints as grey. This mattered: "subtle" and "invisible" are one alpha step apart, and only
the pixel check distinguishes them.

**[F]** On mobile the notice wraps to two lines with the dot hanging beside the first line
(flex `align-items:flex-start`), which is why the dot is a fixed-offset sibling rather than
a baseline-aligned or `::before` marker.

---

## 4. Things I changed because the first attempt was wrong

Recorded because they are the non-obvious part of the work. **[F]**

- I first wrote the colors as `rgb(var(--acc-rgb) / .45)`. If any engine in the chain does
  not parse CSS Color 4 space-separated syntax, the **entire declaration is dropped** and
  the accent line disappears silently. Replaced with literal `rgba(110,231,183,…)`.
- I first used `<hr class="hero-rule">` with an `::after`. Pseudo-element support on `<hr>`
  is not uniformly guaranteed, and an `<hr>` is a semantic thematic break — wrong for pure
  decoration. Replaced with an `aria-hidden` `<div>`.
- The dot was baseline-aligned inside a flex row while being an empty span, whose baseline
  is ill-defined. Replaced with `align-items:flex-start` + a fixed `margin-top`.

---

## 5. Risks, assumptions, and what I could not establish

**Risk — the notice is a factual claim about process, on a public page.** **[I]**
The page now asserts to every visitor that requests are reviewed by a second agent. That
claim is grounded in the task framing (I am designated "Agent 1 (IMPLEMENTER)", which
implies a second reviewing agent) and in the human's own request. **[U]** I could **not**
verify from the live site, its API, or the repository that a review step actually runs, nor
that it gates publication. If that step is ever disabled, this copy becomes false. The
wording was kept process-neutral ("before a revision goes live") rather than naming a
specific reviewer or guaranteeing an outcome, to limit the blast radius. A reviewer who
knows the pipeline should confirm the claim before it ships.

**Assumptions I made and would reverse on request:**
- Version bumped `v1` → `v2`. **[U]** I found no versioning convention in the repo (it was
  empty at `0243d7d "Empty workspace"` **[F]**); the number came from the page's own
  "version `1`" string.
- The footer line naming the revision is additive and not requested. It is one 12 px line
  and can be dropped without touching anything else.

**Unanswered questions:**
1. Does the reviewer agent amend this HTML or replace it wholesale? This affects whether my
   `src/` layout matters downstream at all.
2. Is the delivered JSON payload what gets published, or is `src/experimental/index.html`
   read directly? I produced both, identical in content, to cover either.
3. Should the review notice link to the review record or the board?
4. Is there a changelog the footer line should mirror instead of duplicating?

**Verification limits — what this report does *not* establish:**
- Rendering was confirmed on **Chromium only, on Linux**. The page uses a system font stack
  (`ui-sans-serif, system-ui`), so glyph metrics and line wrapping differ on macOS, Windows,
  and iOS. The layout was not measured there. **[U]**
- Contrast: the notice uses the existing `--mute:#8b97a8` on `--bg:#07090c`, inherited from
  v1 rather than chosen by me. I did not run a WCAG contrast audit; at 13.5 px this is the
  smallest text on the page and is the most likely accessibility finding against it. **[U]**
- No visual-regression baseline exists, so "nothing else moved" is established by DOM
  measurement and source diff, not by whole-page image comparison. **[I]**

---

## 6. Reproducing the checks

```bash
python3 test/check_revision.py          # 43 structural assertions, stdlib only, offline
```

The browser layer required a local Chromium plus system libraries extracted from `.deb`
packages; that scaffolding lived in `test/scratch/` and is intentionally not committed, so
the rendered results in §3.2 are reported here as recorded evidence and are **not**
re-runnable from the repository as committed. **[F]**
