- Standardized first-party module metadata in
packages/core/src/module-catalog.ts. - Refactored the CLI to consume centralized module metadata and bindings instead of scattered constants and ad hoc alias handling.
- Normalized the health module to the real manifest/runtime id
health-trackerwhile preservinghealthas a compatibility alias. - Expanded module list/status output to show
baseline,optional, andsystemtiers plus alias/shared-implementation notes. - Replaced the hand-maintained first-party manifest validation list in CI with a registry-driven validator script.
- Corrected architecture/setup/authoring docs to state that
lifeos.jsonis the only current MVP manifest artifact.
lifeos.jsonis the single current MVP manifest artifact.@lifeos/module-sdkis the current authoring/runtime SDK surface.packages/core/src/module-catalog.tsis the authoritative first-party module catalog for canonical ids, tiers, aliases, manifest directories, visibility, toggleability, and implementation bindings.packages/cli/src/first-party-module-registry.tsis the accepted MVP runtime composition layer that binds catalog entries to first-party implementations.
- The CLI still composes first-party modules centrally instead of performing dynamic discovery.
personalityandbriefingremain separate user-facing baseline entries backed by the same orchestrator implementation.- Hidden system modules such as
home-stateandvoiceremain managed through dedicated surface/runtime flows rather thanlifeos module enable/disable.
- It removes the misleading two-manifest story without inventing a future platform architecture.
- It keeps current MVP behavior intact while making module coupling explicit and reviewable.
- It fixes the most visible inconsistency (
healthvshealth-tracker) through normalization and compatibility instead of deletion. - It gives CI and docs one concrete source of truth for the first-party module surface.