skills/LifeOS/install/CLAUDE.template.md (lines 8 and 19) and LIFEOS/DOCUMENTATION/Config/ConfigSystem.md (lines 44, 62, 104) state that Claude Code does not follow transitive @-imports, so every identity file must be listed in CLAUDE.md directly.
That is not what the harness does. Anthropic's memory docs say: "Imported files can recursively import other files, with a maximum depth of four hops" (https://code.claude.com/docs/en/memory).
Repro (Claude Code 2.1.281): a throwaway directory with a chain CLAUDE.md -> h1.md -> h2.md -> h3.md -> h4.md -> h5.md, each file holding one unique marker word and an @ import of the next. Then:
git init -q . && env -u CLAUDECODE claude -p --tools '' --setting-sources project "List every marker word in your project instructions."
Result: the root marker plus hops 1 through 4 are returned; hop 5 is not. Nested imports load, and the cut matches the documented depth of 4.
Impact: nothing breaks. Listing the identity files directly in CLAUDE.md still works and is arguably clearer. The false premise just misleads anyone designing around it (and the Phase C history entry in ConfigSystem.md records a sidecar that was deleted for this reason).
Suggested fix: reword the five lines to say nested imports are followed up to 4 hops, and that the files are listed directly so the startup load set is explicit in one place.
Caveat: tested with a project-scope CLAUDE.md; the docs describe the same behavior for user scope, but I did not measure that separately.
skills/LifeOS/install/CLAUDE.template.md(lines 8 and 19) andLIFEOS/DOCUMENTATION/Config/ConfigSystem.md(lines 44, 62, 104) state that Claude Code does not follow transitive@-imports, so every identity file must be listed inCLAUDE.mddirectly.That is not what the harness does. Anthropic's memory docs say: "Imported files can recursively import other files, with a maximum depth of four hops" (https://code.claude.com/docs/en/memory).
Repro (Claude Code 2.1.281): a throwaway directory with a chain
CLAUDE.md -> h1.md -> h2.md -> h3.md -> h4.md -> h5.md, each file holding one unique marker word and an@import of the next. Then:Result: the root marker plus hops 1 through 4 are returned; hop 5 is not. Nested imports load, and the cut matches the documented depth of 4.
Impact: nothing breaks. Listing the identity files directly in
CLAUDE.mdstill works and is arguably clearer. The false premise just misleads anyone designing around it (and the Phase C history entry in ConfigSystem.md records a sidecar that was deleted for this reason).Suggested fix: reword the five lines to say nested imports are followed up to 4 hops, and that the files are listed directly so the startup load set is explicit in one place.
Caveat: tested with a project-scope
CLAUDE.md; the docs describe the same behavior for user scope, but I did not measure that separately.