From 9da0c31a9006bf3d55a4f7078a8ec19968627ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Sat, 29 Aug 2026 08:34:27 +0100 Subject: [PATCH] the media docs become an affordance, and the stale ones go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- affordances/fofos-media.md | 17 +++++++++++++++++ manifest.ts | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 affordances/fofos-media.md diff --git a/affordances/fofos-media.md b/affordances/fofos-media.md new file mode 100644 index 0000000..e96f5d6 --- /dev/null +++ b/affordances/fofos-media.md @@ -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. diff --git a/manifest.ts b/manifest.ts index ae4f861..7f15c85 100644 --- a/manifest.ts +++ b/manifest.ts @@ -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',