vault: session notes 2026-07-03

This commit is contained in:
Jared Swanson 2026-07-03 14:38:36 -04:00
parent e8b7942bc3
commit b86128f593
1 changed files with 20 additions and 5 deletions

View File

@ -60,12 +60,27 @@ these steps rather than relying on a review date.
6. **Document host-level facts once, shared across all VM-specific projects — don't 6. **Document host-level facts once, shared across all VM-specific projects — don't
duplicate them per project.** Host address, VMID inventory, the token-scoping convention, duplicate them per project.** Host address, VMID inventory, the token-scoping convention,
and the safety rules (never touch protected VMs, no host shell, confirm destructive and the safety rules (never touch protected VMs, no host shell, confirm destructive
actions) belong in one place that every VM-specific project imports/references. Per-project actions) belong in one place that every VM-specific project can actually see. Per-project
duplication drifts — a safety rule updated in one project's docs silently goes stale in duplication drifts — a safety rule updated in one project's docs silently goes stale in
another's. (Concretely: this was extracted from a single project's CLAUDE.md into a another's.
shared host-layer CLAUDE.md referenced by both VM projects, once a second VM project
existed to justify it — don't extract shared docs speculatively before there's a second **Where "one place" should live, if the VM projects are siblings under an umbrella
real consumer.) directory**: put the shared facts directly in the umbrella's own CLAUDE.md, not in a
separate sibling directory referenced via `@../shared/CLAUDE.md`. Claude Code's `@path`
import resolver does not follow `../` references that escape a file's own directory
tree — only same-directory and subdirectory imports resolve. A shared-facts file one
level up and over from each VM project's CLAUDE.md silently never loads in a session
scoped to that project; the path renders as a dead pointer. Verified empirically by
launching a session with cwd inside a sibling project and checking which CLAUDE.md
*content* (not just referenced paths) was actually present in context.
The umbrella CLAUDE.md doesn't have this problem — it already auto-loads for any
subdirectory cwd via Claude Code's ancestor-directory walk, so inlining the shared
facts there makes them visible everywhere for free, no import needed. Per-project
CLAUDE.md files then just point to it in prose ("see the umbrella CLAUDE.md's Proxmox
Host section") rather than via `@import`. Subdirectory-descending imports (e.g. the
umbrella file importing `@some-project/docs/foo.md`) are unaffected by this and work
fine — the restriction is specifically on upward (`../`) traversal.
7. **Before defaulting to a Docker/Container install for a self-hosted service, check 7. **Before defaulting to a Docker/Container install for a self-hosted service, check
whether a native/appliance-OS install path exists.** Docker-only installs sometimes lack whether a native/appliance-OS install path exists.** Docker-only installs sometimes lack