a29ee9dd33
gates / gates (push) Successful in 2m38s
Decision 150 (operator 13:25): sessions correct stale facts in instruction files themselves, naming each edit; never loosen a rule. Added to unprompted-work.md §5 (all copies) and PROMPT-TEMPLATE.md §9. CLAUDE.md gates paragraph (R-891), architecture pointer, docs/website rules, the doubled R-286 sentence in the workspace CLAUDE.md. Decision 149: vaultwarden's step proven on bench 9401 and box 9202 (evidence here). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
---
|
||
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, no
|
||
embedded `<style>` blocks, 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.
|