Components: install/settings.system.json, Setup workflow step 4, LIFEOS/TOOLS/MemoryHealthCheck.ts / MemoryHealthGate.hook.ts, LifeOS 6.0.0.
What happens: three parts of 6.0.0 disagree about what settings.system.json is:
- The payload ships
install/settings.system.json deliberately without a hooks block ('the system half WITHOUT the hooks block; InstallHooks owns hooks' — Setup.md).
- Setup.md step 4 overlays it as
settings.json, so nothing ever lands at ~/.claude/settings.system.json.
MemoryHealthCheck.ts treats ~/.claude/settings.system.json as a required regression-reference file and reports CRITICAL if it's missing — and once you copy the shipped one there, it still reports CRITICAL because the four memory hooks (MemoryReviewTrigger, MemoryReviewFire, MemoryHealthGate, MemoryDeltaSurface) aren't registered inside it.
Net effect: every fresh 6.0.0 install surfaces 🩺 MEMORY HEALTH: CRITICAL via MemoryHealthGate even when the live settings.json wiring is complete and correct.
Repro: fresh 6.0.0 install per INSTALL.md → bun LIFEOS/TOOLS/MemoryHealthCheck.ts → settings-missing:settings.system.json (critical); copy the payload file in → four settings-hook-missing:... criticals.
Workaround: compose the file as payload system-half + the hooks object from install/hooks/hooks.json and write it to ~/.claude/settings.system.json — health then passes (warn-only).
Suggested fix: pick one contract — either ship settings.system.json including the canonical hooks block and have Setup place it at the config root, or drop the settings.system.json checks from MemoryHealthCheck for skill-payload installs.
Components:
install/settings.system.json, Setup workflow step 4,LIFEOS/TOOLS/MemoryHealthCheck.ts/MemoryHealthGate.hook.ts, LifeOS 6.0.0.What happens: three parts of 6.0.0 disagree about what
settings.system.jsonis:install/settings.system.jsondeliberately without ahooksblock ('the system half WITHOUT the hooks block; InstallHooks owns hooks' — Setup.md).settings.json, so nothing ever lands at~/.claude/settings.system.json.MemoryHealthCheck.tstreats~/.claude/settings.system.jsonas a required regression-reference file and reports CRITICAL if it's missing — and once you copy the shipped one there, it still reports CRITICAL because the four memory hooks (MemoryReviewTrigger,MemoryReviewFire,MemoryHealthGate,MemoryDeltaSurface) aren't registered inside it.Net effect: every fresh 6.0.0 install surfaces
🩺 MEMORY HEALTH: CRITICALvia MemoryHealthGate even when the livesettings.jsonwiring is complete and correct.Repro: fresh 6.0.0 install per INSTALL.md →
bun LIFEOS/TOOLS/MemoryHealthCheck.ts→settings-missing:settings.system.json(critical); copy the payload file in → foursettings-hook-missing:...criticals.Workaround: compose the file as payload system-half + the
hooksobject frominstall/hooks/hooks.jsonand write it to~/.claude/settings.system.json— health then passes (warn-only).Suggested fix: pick one contract — either ship
settings.system.jsonincluding the canonical hooks block and have Setup place it at the config root, or drop the settings.system.json checks from MemoryHealthCheck for skill-payload installs.