A pattern with no leading slash already matched at any depth, but the intent
was not obvious from the rules. State it explicitly and widen to `.env.*` so
variants like .env.local or .env.unraid-api cannot slip through, while keeping
.env.example and .env.<name>.example tracked.
Verified with git check-ignore at the repo root, one level down, and three
levels down.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Establish this repo as a collection of independent script folders for the
self-hosted environment (odin, an Unraid host).
- CLAUDE.md: repo conventions, the odin stack, and MemPalace usage. The
infrastructure facts are carried over from the FamilySync project, where
they are documented and verified; the mapping of the name "odin" to that
host is assumed and flagged for confirmation, along with the SSH/deploy
gaps marked "?".
- Core rule: each collection is a self-contained top-level folder owning its
own docs, config, and dependencies. No shared/ or utils/ at the root —
duplication is preferred over coupling so a collection stays independently
deletable.
- _template/: scaffold making that rule concrete. The bash entrypoint ships
strict mode, --dry-run, and a required-env guard (all four paths tested).
- mempalace.yaml: wing "odin-scripts", set explicitly because basename
auto-detection would produce the colliding wing "scripts". Tracked rather
than gitignored so a fresh clone keeps the config; entities.json stays
ignored.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>