the media docs become an affordance, and the stale ones go

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>
This commit is contained in:
2026-08-29 08:34:27 +01:00
co-authored by Claude Opus 5
parent 1b7ffe3fcd
commit 9da0c31a90
2 changed files with 18 additions and 1 deletions
+17
View File
@@ -0,0 +1,17 @@
---
name: Fofos media
description: Where the fofos website's media lives, and the one way to process it.
version: 1
---
The fofos website's media sits under the **root location** in Fofos → Administration:
- **`media/originals/`** — what people uploaded. Nothing regenerates these. Never convert one in place
and never delete one.
- **`media/derived/`** — made from originals, for the public site. Safe to wipe and rebuild.
**Process it through av-club, never a hand-written `ffmpeg` or `convert`.** av-club decodes HEIC, which
every iPhone photo is and which sharp alone cannot read, and applies EXIF rotation.
Read the **`media-conversion`** skill for how. If the owner is at a screen, the right-click tasks —
Convert Image, Convert Video, Convert Audio, Extract Audio — are the better answer.
+1 -1
View File
@@ -35,7 +35,7 @@ import type { PluginManifest } from '@@/plugins/manifest';
*/
export const manifest: PluginManifest = {
publisher: 'officerdev',
version: '2026.08.29.17',
version: '2026.08.29.18',
platform: '>=1.0.0',
label: 'Fofos',