internal-weblisted
Install: claude install-skill erclx/canon
# Web
Read `canon/context/web/index.md` for structure, the Astro build, and the gotchas before editing, then the file it names for the change at hand.
`internal/rules/claude/593-landing-page.md` is scoped to `web/**` and holds the page's conventions, each of which fails silently when broken. It loads on the edit and this skill loads for the domain. Open the rule before drafting rather than after: a draft that never read it reproduces what it forbids, and a five-round drafting pass did exactly that.
## Before drafting a page change
- Read the rule. Do not work its conventions from memory, and do not restate them in a plan, since a paraphrase of a convention is how a plan ships a requirement the rule does not carry.
- Read `references/citation-anchors.md` before adding or editing any string in `web/src/content/copy.ts`.
- Check whether the change moves a count. A count is read from the CLI at build time and never typed, so a number in a draft is a defect the build cannot catch on its own.
## The two trees are not the same tree
`web/gallery.config.mjs` reads `web/gallery-src` and never `web/src`, and `scripts/core/check-gallery-exclusion.sh` guards the separation on every build reaching the live domain. A component under `web/src/components/` renders in the gallery whether or not the page imports it, so a component left unused after a section is dropped reads as one somebody deleted a reference to by mistake.
## Images are generated
- Point an image at a file some script