[epic] Port the complete active Emacs environment to Lem #16

Open
opened 2026-09-16 04:13:23 +00:00 by nsaspy · 0 comments
Owner

Goal

Replace the user's active Doom/GNU Emacs environment with a Lem environment that preserves the behavior they actually use: explicit packages, implicit Doom modules, custom Lisp, snippets, Org workflows, language tooling, terminals, project/Git operations, AI/MCP integration, and desktop/runtime integration.

Evidence baseline

  • Source environment: lost-rob0t/dotfiles@6adff8f295201bec7c45b655123615c56a20d3fb
  • Lem upstream: lem-project/lem@75b48185d5e90283d6ab50cccff15322b6fb8987
  • Canonical inventory: .prolog/kb/lem_migration.pl
  • Queue and dependency graph: .prolog/kb/issues.pl
  • Verification entry point: swipl -q -f .prolog/verify.pl

RAGE queue

This is the ordered roadmap. Each child consumes exactly one issue on a rage/<issue>-<slug> branch, records the immutable start SHA, loads the canonical rage and adadr skills from lost-rob0t/skills, uses TDD, and requires exact-head evidence.

The control-plane issue runs first. Bootstrap and inventory follow. Port slices then run in declared order; blockers outrank later work. The final cutover cannot begin until the Prolog parity gate proves every active source capability is either ported with evidence or explicitly rejected by an approved decision.

Analyze

Continuously compare the target against both explicit package declarations and behavior supplied implicitly by Doom modules and custom code. Package-list equality alone is not parity.

Gate

  • No implementation issue starts until the control-plane mode is recorded.
  • No package/capability is silently dropped.
  • No Emacs Lisp is copied and declared “ported”; Lem implementations are Common Lisp or justified external integrations.
  • No default-editor cutover until rollback and executable parity probes are green.

Execute

Consume child issues in queue order and keep the Prolog KB synchronized in the same commit as implementation evidence.

Evaluate

At every candidate SHA run focused tests, the full local gate, packaging checks, the Prolog verifier, and exact-current-head CI where configured.

Recurse

On ordinary defects, fix within the approved design. On architecture-invalidating evidence, preserve the failed attempt and restart ADADR as a new numbered iteration.

Acceptance

  • Every active Emacs package, Doom module, custom autoload, snippet family, external tool, and user-facing workflow has a durable disposition.
  • Lem launches from the user's Nix/Home Manager environment.
  • The parity gate is green.
  • The cutover is reversible and Doom remains available until the user explicitly retires it.

Ordered child issues

  • #2 — [control] Select and record the ADADR control-plane mode
  • #3 — [bootstrap] Install and activate pinned Lem through Nix/Home Manager
  • #4 — [inventory] Build executable Emacs-to-Lem parity probes
  • #5 — [core] Port editing model, completion, navigation, UI, and workspaces
  • #6 — [org] Port Org, Org-roam, agenda, capture, Babel, alerts, and publishing
  • #7 — [lisp] Port Common Lisp REPL, structural editing, debugging, and templates
  • #8 — [languages] Port Prolog, Nim, Nix, Python, JS/TS, C/C++, web, PHP, data, and LSP
  • #9 — [projects] Port Git, Forge, project navigation, file management, and sessions
  • #10 — [runtime] Port terminal, shell, TRAMP, direnv, Docker/Podman, and environment behavior
  • #11 — [ai] Port gptel, MCP, Temple, tools, and flashcard workflows
  • #12 — [custom] Port StarIntel research dashboards, approvals, TODO sync, capture, and activity tools
  • #13 — [snippets] Port every Yasnippet family and Skeletor/project template
  • #14 — [web] Port RSS, browser editing, webpaste, PDF, media, and desktop-open workflows
  • #15 — [operations] Port Hackmode, libvirt, packet/container tools, auth-source, and system integrations
  • #16 — [gate] Prove parity, cut over the default editor, and retain rollback
## Goal Replace the user's active Doom/GNU Emacs environment with a Lem environment that preserves the behavior they actually use: explicit packages, implicit Doom modules, custom Lisp, snippets, Org workflows, language tooling, terminals, project/Git operations, AI/MCP integration, and desktop/runtime integration. ## Evidence baseline - Source environment: `lost-rob0t/dotfiles@6adff8f295201bec7c45b655123615c56a20d3fb` - Lem upstream: `lem-project/lem@75b48185d5e90283d6ab50cccff15322b6fb8987` - Canonical inventory: `.prolog/kb/lem_migration.pl` - Queue and dependency graph: `.prolog/kb/issues.pl` - Verification entry point: `swipl -q -f .prolog/verify.pl` ## RAGE queue This is the ordered roadmap. Each child consumes exactly one issue on a `rage/<issue>-<slug>` branch, records the immutable start SHA, loads the canonical `rage` and `adadr` skills from `lost-rob0t/skills`, uses TDD, and requires exact-head evidence. The control-plane issue runs first. Bootstrap and inventory follow. Port slices then run in declared order; blockers outrank later work. The final cutover cannot begin until the Prolog parity gate proves every active source capability is either ported with evidence or explicitly rejected by an approved decision. ## Analyze Continuously compare the target against both explicit package declarations and behavior supplied implicitly by Doom modules and custom code. Package-list equality alone is not parity. ## Gate - No implementation issue starts until the control-plane mode is recorded. - No package/capability is silently dropped. - No Emacs Lisp is copied and declared “ported”; Lem implementations are Common Lisp or justified external integrations. - No default-editor cutover until rollback and executable parity probes are green. ## Execute Consume child issues in queue order and keep the Prolog KB synchronized in the same commit as implementation evidence. ## Evaluate At every candidate SHA run focused tests, the full local gate, packaging checks, the Prolog verifier, and exact-current-head CI where configured. ## Recurse On ordinary defects, fix within the approved design. On architecture-invalidating evidence, preserve the failed attempt and restart ADADR as a new numbered iteration. ## Acceptance - Every active Emacs package, Doom module, custom autoload, snippet family, external tool, and user-facing workflow has a durable disposition. - Lem launches from the user's Nix/Home Manager environment. - The parity gate is green. - The cutover is reversible and Doom remains available until the user explicitly retires it. ## Ordered child issues - [ ] #2 — [control] Select and record the ADADR control-plane mode - [ ] #3 — [bootstrap] Install and activate pinned Lem through Nix/Home Manager - [ ] #4 — [inventory] Build executable Emacs-to-Lem parity probes - [ ] #5 — [core] Port editing model, completion, navigation, UI, and workspaces - [ ] #6 — [org] Port Org, Org-roam, agenda, capture, Babel, alerts, and publishing - [ ] #7 — [lisp] Port Common Lisp REPL, structural editing, debugging, and templates - [ ] #8 — [languages] Port Prolog, Nim, Nix, Python, JS/TS, C/C++, web, PHP, data, and LSP - [ ] #9 — [projects] Port Git, Forge, project navigation, file management, and sessions - [ ] #10 — [runtime] Port terminal, shell, TRAMP, direnv, Docker/Podman, and environment behavior - [ ] #11 — [ai] Port gptel, MCP, Temple, tools, and flashcard workflows - [ ] #12 — [custom] Port StarIntel research dashboards, approvals, TODO sync, capture, and activity tools - [ ] #13 — [snippets] Port every Yasnippet family and Skeletor/project template - [ ] #14 — [web] Port RSS, browser editing, webpaste, PDF, media, and desktop-open workflows - [ ] #15 — [operations] Port Hackmode, libvirt, packet/container tools, auth-source, and system integrations - [ ] #16 — [gate] Prove parity, cut over the default editor, and retain rollback
Sign in to join this conversation.
No description provided.