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>
there were two markdown files sitting in media/originals/ — CLAUDE.md and
MEDIA_PROCESSING.md — carried in when that tree was copied. both are gone from
there now, and the originals in Projects/fofos are untouched and byte-identical, so
nothing was lost.
MEDIA_PROCESSING.md was not merely redundant, it was WRONG in three ways and each
would have failed on first use: it gave av-club's address as localhost:3020 (the
port is ephemeral now and it is reached at /api/av-club), it required a bearer token
(the platform's own gate handles that), and it described an upload-only model
(there is a path mode, so nothing needs uploading). it also pointed at
~/Projects/_avi_club_docs/, which does not exist on that machine.
documentation that lives beside the data goes stale invisibly — nobody re-reads a
file in a media folder when the service it describes changes. an affordance does not
have that failure mode: it ships with the plugin, updates with it, and disappears
when the plugin is removed.
KEPT SHORT DELIBERATELY. an affordance is compiled into EVERY conversation, unlike a
skill which is opened on demand — so this is the facts and a pointer, and the
reasoning stays in the media-conversion skill where it is read once by somebody who
needs it. the first draft was 206 words against gitea's 86; this one is under 120.
what it carries is the part an agent must not get wrong: originals are irreplaceable
and derived is rebuildable, and processing goes through av-club rather than a
hand-written ffmpeg line.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>