Commit Graph
2 Commits
Author SHA1 Message Date
pastilhasandClaude Opus 5 74c6776c75 a desktop audit was not a desktop audit
`formFactor: 'desktop'` changes which thresholds a metric is scored against and
NOTHING else. Throttling and the user agent keep their defaults, which are mobile
— so every desktop run was a desktop-sized window on a 4x-slowed CPU over slow 4G,
announced as a moto-g.

It read 86 where the same page reads 100. That gap was reported repeatedly as
network latency to the host. It was not latency; it was this. Measured after the
fix: desktop 100, LCP 0.4s against 2.2s.

Nine more from the same review:

  runtimeError was never checked, so a page that failed to load reported
  "nothing failing" — the most reassuring possible output for a site that is down

  --json exited 0 before the gate, so the documented non-zero exit was true for a
  person reading the table and false for the only caller that could act on it

  scoreDisplayMode 'error' was filtered out while still nulling its category, so
  a category could read 0 with an empty findings list

  a missing metric serialised as 0, which a script reads as a perfect measurement

  `source` is a string on some audits and an object on others; String() on the
  object printed [object Object]

  the watchdog's surrender was permanent — the health branch sat below the check,
  so once it stopped trying it also stopped noticing, and a server fixed by hand
  left it asleep until the platform restarted

  a failed restart leaves no process at all, because startServer deletes before
  it starts. status null then reads as "somebody stopped it", which the watchdog
  leaves alone — one bad restart would have turned it off and taken the server
  with it, silently

  the skill claimed the panel uses this engine. Nothing but the CLI does

  and gave `bun run build:site` with no cwd, which only works from the website
  checkout — api/static-site.ts documents that and the skill did not

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-05 18:42:45 +01:00
pastilhasandClaude Opus 5 919504901a tell agents the site can be measured
The engine was there and nothing pointed at it, which is the same failure as a
comment outliving its code: an agent would go on asking the owner to open
DevTools and read numbers back, because that is the only loop it knew.

bin/lighthouse.ts is the callable surface — the panel's engine with a table
instead of JSON, exiting non-zero when anything is short of 100 so it can gate
something without being parsed.

affordances/ carries the short always-loaded note: you can measure this
yourself, here is the line, do not ask a person. skills/ carries what the
findings mean, why the built site and the dev server are different questions,
and the three defects this has already caught — each one a rename or a setting
that left something behind and produced no error.

Both are read in place from the plugin directory by capabilitySources, so they
arrive with the plugin and need no publish step.

The invocation globs ~/officer*/platform because the checkout is officer-dev on
one machine and officerdev on the other, and a doc that is right on one box and
wrong on the other is worse than no doc.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 19:27:24 +01:00