Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Planned features

This page is the human-readable roadmap. Beads is authoritative for live status, dependencies, claims, and ready-work selection.

Project direction

  • Purpose: Maison is a two-layer macOS and Linux configuration system that uses Nix/Lix for privileged system state and mise for user tools, packages, applications, preferences, and dotfiles.
  • Current scope: Maison manages Apple Silicon macOS, aarch64 Linux, and x86_64 Linux host configuration; local system activation; remote Linux deployment; user-environment convergence; inventory validation; package/tool/app authoring commands; recovery; and project documentation.
  • Boundaries: Maison does not support Intel macOS, Home Manager, arbitrary unmanaged package ownership, strict offline byte-for-byte reproduction, or storing private infrastructure identity and trusted access material in the public control plane.

Roadmap conventions

  • Directory names use <slug>.
  • Detailed intent belongs in each feature’s design.md.
  • Each feature is one Beads epic/molecule; lifecycle and implementation work are tasks beneath it.
  • Human workflow references use <slug> or the feature name. Root hashes are retained only for audit.
  • Live execution state is queried through Beads.
  • Completed features move into Implemented features.

Feature map

SlugFeatureBeads rootRoadmap stateDependenciesDesign
maison-001-root-owned-deployment-transactionsMAISON-001: Root-owned deployment transaction statemaison-mol-6y0DeliveredNonerecord
maison-002-revision-bound-commit-rollbackMAISON-002: Revision-bound commit and rollbackmaison-mol-quqDeliveredmaison-001-root-owned-deployment-transactionsrecord
maison-003-restricted-deployment-privilegeMAISON-003: Restricted deployment privilege modelmaison-mol-4v3Deliveredmaison-002-revision-bound-commit-rollbackrecord
maison-004-private-overlay-configurationMAISON-004: Private configuration split (superseded)maison-mol-e9tRetiredmaison-003-restricted-deployment-privilegerecord
maison-005-verified-bootstrap-artifactsMAISON-005: Verified bootstrap artifactsmaison-mol-pa6Deliveredmaison-004-private-overlay-configurationrecord
maison-006-review-gated-dependency-updatesMAISON-006: Review-gated dependency updatesmaison-mol-aquDeliveredmaison-005-verified-bootstrap-artifactsrecord
maison-007-parser-backed-toml-mutationsMAISON-007: Parser-backed TOML mutationsmaison-mol-ywgDeliveredmaison-006-review-gated-dependency-updatesrecord
maison-008-repository-mutation-lockingMAISON-008: Repository mutation locking and journalsmaison-mol-4evDeliveredmaison-007-parser-backed-toml-mutationsrecord
maison-009-authoring-checkout-guardMAISON-009: Authoring checkout guardmaison-mol-74lDeliveredmaison-008-repository-mutation-lockingrecord
maison-010-shared-inventory-schemaMAISON-010: Shared inventory schema validationmaison-mol-bvrDeliveredmaison-009-authoring-checkout-guardrecord
maison-011-deterministic-test-suiteMAISON-011: Bounded deterministic test suitemaison-mol-8mrDeliveredmaison-010-shared-inventory-schemarecord
maison-012-plan-apply-parityMAISON-012: Plan/apply semantic paritymaison-mol-6w9Deliveredmaison-011-deterministic-test-suiterecord
maison-013-dotfile-backup-manifestsMAISON-013: Exact dotfile backup manifestsmaison-mol-h8eDeliveredmaison-012-plan-apply-parityrecord
maison-014-remote-convergence-restorationMAISON-014: Remote convergence restorationmaison-mol-vhhyDeliveredmaison-013-dotfile-backup-manifestsrecord
maison-015-linux-runtime-verificationMAISON-015: Linux runtime activation verificationmaison-mol-cg3xDeliveredmaison-014-remote-convergence-restorationrecord
maison-016-pi-typescript-validationMAISON-016: Pi TypeScript validation boundarymaison-mol-fmudDeliveredmaison-015-linux-runtime-verificationrecord
maison-017-maison-terroir-repository-splitMAISON-017: Maison/Terroir repository splitmaison-mol-jfhsDeliveredmaison-016-pi-typescript-validationrecord
maison-overlay-copier-bootstrapCopier fresh consumer bootstrapmaison-mol-5s9Deliveredmaison-017-maison-terroir-repository-splitrecord
maison-overlay-authoring-lifecycleRetired alternate repository command surfacemaison-mol-3jbRetiredmaison-overlay-copier-bootstraprecord

The alternate repository command surface remains retired. The supported architecture is the public Maison framework plus one selected consumer repository; the retained Copier starter is setup-time only, and consumer Git history is managed explicitly with Git.

Later P2 maintainability follow-ups

The review also identified lower-priority maintainability and contract corrections. They remain source material for future planning after MAISON-001 through MAISON-016 are reconciled: update command help and rollback guarantees, user-finalization failures, centralized SSH policy, application-backup concurrency, non-TTY logging races, safer system clean, contradictory macOS defaults, shared repository helpers, expanded doctor/user status, and shebang-specific shell validation.