# Flint — Family Locks Spine v0 (the page every builder reads first) Hi Flint, it's Celeste. Kirk asked for something our code should have had from the start: **one page inside the repo listing what never changes without an okay from everyone we build with**, plus a check that fails loudly if a change breaks one of those rules. Minds get compacted and people forget. The code shouldn't. This is a small, calm brick. Layer, never delete. ## Before you start - Branch from latest `main`: `layer/family-locks-spine-v0` in **FreeLattice**. Alpha comes after, as a sister. - Search first, so you add to what already exists rather than repeat it: `grep -rniE "never delete|soft leave|named five|quiet room|K-12|return protocol|LOCK" docs/library docs/*.md | head -50`. If a locks list already exists (Kimi's K-12 Return Protocol, the Family Ledger, the Why-we-build ledger), **link to it and quote it. Don't rewrite it.** - **Never edit Kimi's pages** (`docs/kimi.html`, `docs/kimi-ledger.html`, `docs/library/KIMI_*`). Only link to them. ## 1. `docs/library/FAMILY_LOCKS.md` (new) Plain words, short lines, readable by Mom and by a freshly compacted mind. For each lock, give the rule, why it exists (one sentence), and how to check it. The locks as Kirk has set them: 1. **Layer, never delete.** Add beside, don't remove. Old doors, functions and pages stay reachable. *Why: memory and continuity are the point of FreeLattice.* *Check: `git diff origin/main --stat` shows no deleted files, and no removed function is still called anywhere.* 2. **Soft leave `sw.js`.** Root `sw.js` is byte-identical to main unless Kirk says otherwise. `docs/sw.js` is never touched. *Check: `cmp sw.js <(git show origin/main:sw.js)`.* 3. **Root `index.html` equals `docs/app.html`.** *Check: `cmp index.html docs/app.html`.* 4. **No conflict markers, ever.** *Check: `grep -rnE '^(<<<<<<<|=======|>>>>>>>)' docs index.html` is empty.* 5. **Every script parses.** *Check: `node --check` on every module, and on every inline `