ECC has no canonical installed-state record, making uninstall and repair nondeterministic. A durable install-state contract is needed to manage the lifecycle of installed modules.
## Problem ECC has no canonical installed-state record. That makes uninstall, repair, and post-install inspection nondeterministic. Today the repo can classify installable content, but it still cannot reliably answer: - what profile/modules were installed - what target they were installed into - what paths ECC owns - how to remove or repair only ECC-managed files Without install-state, lifecycle commands are guesswork. ## Scope Introduce a durable install-state contract and the first lifecycle commands: - `ecc list-installed` - `ecc uninstall` - `ecc doctor` - `ecc repair` Suggested state locations: - Claude: `~/.claude/ecc/install-state.json` - Cursor: `./.cursor/ecc-install-state.json` - Antigravity: `./.agent/ecc-install-state.json` The state file should capture at minimum: - installed version - timestamp - target - profile - resolved modules - copied/managed paths - source repo version or package version ## Non-Goals - Rebuilding the installer architecture from scratch