docs+gate: felhom.eu/CLAUDE.md becomes core + path-scoped rules; instructions gate registered (R-229)
gates / gates (push) Successful in 8s
gates / gates (push) Successful in 8s
227 -> 115 effective lines, split into .claude/rules/{hub,website,manifests,docs}.md, and
repo_gates.py gains gate 6. Trim first, register second: a registered-but-failing gate refuses
every push through the pre-push hook, which is why this repo -- the one that OWNS the gate --
was the only one not running it.
Register discipline and the R-110 installer fence deliberately stayed in the core; both have
triggers no fixed glob covers, and scoping them would have rebuilt the failure class they exist
to prevent.
Scoping proven from the InstructionsLoaded hook log in two fresh sessions, not from frontmatter.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
---
|
||||
paths: ["website/**"]
|
||||
---
|
||||
|
||||
# Website — build, deploy, and the encoding fences
|
||||
|
||||
## Deploy
|
||||
|
||||
The website **auto-deploys via git-sync from `main`** — just push, live in 1–2 min. No ArgoCD sync,
|
||||
no image build. Emergency edits: https://files.felhom.eu.
|
||||
|
||||
**Do NOT pin the website to the installer tag.** The sparse-checkout used to cover `/website/` and
|
||||
`/scripts/` in one sync; pinning that would turn every copy edit into a release. The installer's
|
||||
tag-based publishing is a separate mechanism — see the R-110 fence in the repo core `CLAUDE.md`.
|
||||
|
||||
## Gates
|
||||
|
||||
Website changes go through `python3 scripts/repo_gates.py`, which runs `site_gates.py`. **A new page
|
||||
must be added to that gate's `PAGES` list** or it is unchecked.
|
||||
|
||||
`site_gates.py` asserts: BOM, emoji, nav/footer consistency, analytics, CDN, design tokens, and
|
||||
cache-busting.
|
||||
|
||||
## The encoding fences
|
||||
|
||||
- **All `website/` HTML is UTF-8 *with BOM*. Preserve it.** An editor that strips the BOM is a
|
||||
silent, whole-file change.
|
||||
- **Emoji count is zero.** The design system forbids them; the gate enforces it.
|
||||
- Cache-busting: bump the asset query string when CSS or JS changes, or browsers serve the old file
|
||||
and the change looks like it did not deploy.
|
||||
|
||||
## Copy
|
||||
|
||||
Customer-facing copy is **Hungarian**, and its tone and terminology rules live in the
|
||||
**`felhom-ui-design`** skill — use it rather than inventing phrasing. Operator-facing text is
|
||||
English.
|
||||
Reference in New Issue
Block a user