Put the description contract in a skill, not in a reviewer's memory - #203
Closed
abernier wants to merge 1 commit into
Closed
Put the description contract in a skill, not in a reviewer's memory#203abernier wants to merge 1 commit into
abernier wants to merge 1 commit into
Conversation
`llms.txt` and the per-example documents are built and served correctly. The content they carry is what fails: 40 of the 170 descriptions are empty, and the other 130 run to a median of 56 characters that generally name no technique. `aquarium` ships an empty line and the single tag `transmission`, while the thing that makes the demo work -- a stencil mask, `useMask` plus a backside `MeshTransmissionMaterial` -- is named nowhere. Fixing that is 170 acts of judgement, and judgement at that scale needs its rules written down somewhere a reviewer can point at. `.claude/skills/describe-example/` holds them: English, 120 characters, prose with no identifiers, naming the technique rather than the code -- because a line describing what the code does rots at the first refactor, and one naming which technique is employed survives. Identifiers go to `apis`, which is checkable against the example's own imports and is what keeps the 120 characters comfortable. Vendored here rather than installed, following the precedent the `shadcn` skill already set: it encodes this repo's conventions, so it is reviewed and versioned with them. The skill proposes and waits. One example per run, written only after the maintainer's ok, and the output committed -- git stays the source of truth and no model runs in `bin/`, where a call would make the site build non-reproducible, offline-hostile and cache-busting on every run. `explain.md` carries the second mode. It deliberately does not read the source and write: it runs `teach` in sub-agents, supplies the mission they would otherwise interview a human for, caps the passes at three, and keeps the workspace outside the repo -- lessons and learning records are one person's learning state, not artefacts of a gallery of 170 shared demos, so only the distillation and the glossary come back. Ships no content change, so it can be reviewed as prose. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Aug 14, 2026
This was referenced Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
llms.txtand the per-example documents are built and served correctly.The content they carry is what fails: 40 of the 170 descriptions are
empty, and the other 130 run to a median of 56 characters that generally
name no technique.
aquariumships an empty line and the single tagtransmission, while the thing that makes the demo work -- a stencilmask,
useMaskplus a backsideMeshTransmissionMaterial-- is namednowhere.
Fixing that is 170 acts of judgement, and judgement at that scale needs
its rules written down somewhere a reviewer can point at.
.claude/skills/describe-example/holds them: English, 120 characters,prose with no identifiers, naming the technique rather than the code --
because a line describing what the code does rots at the first refactor,
and one naming which technique is employed survives. Identifiers go to
apis, which is checkable against the example's own imports and is whatkeeps the 120 characters comfortable.
Vendored here rather than installed, following the precedent the
shadcnskill already set: it encodes this repo's conventions, so it is reviewed
and versioned with them.
The skill proposes and waits. One example per run, written only after the
maintainer's ok, and the output committed -- git stays the source of
truth and no model runs in
bin/, where a call would make the site buildnon-reproducible, offline-hostile and cache-busting on every run.
explain.mdcarries the second mode. It deliberately does not read thesource and write: it runs
teachin sub-agents, supplies the missionthey would otherwise interview a human for, caps the passes at three, and
keeps the workspace outside the repo -- lessons and learning records are
one person's learning state, not artefacts of a gallery of 170 shared
demos, so only the distillation and the glossary come back.
Ships no content change, so it can be reviewed as prose.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Stack created with GitHub Stacks CLI • Give Feedback 💬
Closes #196. Position 2 of the stack, on top of #201 — which renames
build-catalog.mjstobuild-llms.mjs, the name this skill's prose uses.pnpm check5/5 ·pnpm test:turbo55/55.🤖 Generated with Claude Code