AmoleoFamily

Process & Registry

Before — four repos had this

../Amoleo-Family (a sibling of
this folder, i.e. I:\Development\Docker\
Amoleo-Family
)

After — every repo now

../Amoleo-Family (a sibling of
this folder)
+ GitHub fallback URL
+ pointer at the live index

How a sibling repo points back here

Every repo in the family carries a short "Part of the Amoleo family" section in its own CLAUDE.md naming this repo. Two failure modes showed up in that pointer on 3 Sept 2026, in the same conversation where a user noticed docs/stack.md and CLAUDE.md were making false claims about which repos had backlog tooling. Fixing that raised the obvious follow-up: if the docs in this repo had drifted from reality without anyone noticing, what was stopping the same thing happening to the pointer every other repo keeps back to this one?

The two failures

1. Four repos spelled out this machine's own absolute path. Website, Pets, Connections and Accounts all wrote something like:

../Amoleo-Family (a sibling of this folder, i.e. I:\Development\Docker\Amoleo-Family)

The relative path is fine and is what actually gets used. The parenthetical is the problem: it bakes a specific Windows drive letter and folder layout into a file that gets committed and pushed to GitHub. Every repo in the family happens to be private today, so nothing has actually leaked — but a repo's visibility is an editorial decision made elsewhere (see docs/cost-model.md's "free tier" framing — a public repo is also free), not something this pointer should depend on for safety. The other eleven repos already had it right, just saying "a sibling of this folder" with no drive letter — that's the pattern now, everywhere:

- **On disk:** `../Amoleo-Family` (a sibling of this folder)
- **On GitHub:** https://github.com/ValadAmoleo/Amoleo-Family (use this if
  the sibling folder isn't checked out)

2. Several repos hand-copied a list of "which family doc covers what." Website, Pets, Connections and Accounts each carry a small table mapping "here you might change…" to "the spec is…", covering four or five docs. Rissbrook and the ten design-only repos have the same thing in prose form — "brand, footer, cookie banner, screenshots, stack, identity." Both are a snapshot of the family docs index at the time that repo's CLAUDE.md was last touched. The index itself has since grown to seventeen documents (wordmark, header, auth box, OG image, SEO, accessibility, theme, CSS system, cost model, roadmap, mission statements, and more) — none of that growth is reflected in most of the reproduced lists, because nothing tells a repo to update its copy when the index changes. It's the exact same failure this repo caught in its own docs the same day, one level removed: a fact copied into a second file will eventually be wrong in one of them, and nobody notices which.

The fix: point at the index, don't copy it

A repo may still name the two or three docs it touches most (that's useful, local color — Pets' note that it's "the reference for the transactional stack" earns its place). What it must not do is imply that list is complete. Every repo's CLAUDE.md now carries one more sentence after its doc pointers, worded to fit that repo's own style, but making the same claim:

Amoleo-Family/CLAUDE.md's own "Cross-repo specifications" table is the current, authoritative index — read that table directly rather than assuming [this repo's own list] is exhaustive.

That sentence is the thing that actually solves "we don't need to worry about the files going stale in the individual repos": nothing in a sibling repo needs to change when this repo adds a new doc, because the sibling never claimed to enumerate the docs in the first place — it just says where the real list lives, on disk and on GitHub, and trusts that.

What's checked, and what isn't

node tools/check-docs-pointer.mjs reads every repo in tools/repos.json and fails a repo whose CLAUDE.md:

It cannot and does not check that a repo's own hand-picked doc list is accurate — only that the repo has also pointed at the place where accuracy actually lives. A repo is free to say something wrong in its own three-line summary; the checker's job is only to make sure nobody has to trust that summary once they've read the sentence after it.

Applying this to a new repo

tools/register-repo.mjs should be extended to write this section automatically for a brand-new repo, the same way it already writes the repos.json/stack.json/CLAUDE.md triple — not done yet, tracked here rather than silently assumed. Until then, copy the block above by hand into a new repo's CLAUDE.md and run node tools/check-docs-pointer.mjs to confirm it passes.

Generated from docs/family-docs-pointer.md. Edit there and re-run npm run build in docs-site-src/ — never hand-edit a page.