evidence · 3.0 KiB

preparation.md

Committed at docs/evidence/omarchy-themes/preparation.md. This is what grounds the requirements that cite it.

Open raw source

Read-only generation preparation checkpoint

Observed 2026-09-23. tools/theme_activate.py --prepare-only is a host-side preparation command. It accepts a direct unchanged theme directory, a built-in collection member, or a familiar user-theme name; it does not activate the generation or publish a normal image service. No shell receiver currently acknowledges these generations, so OpenSpec tasks 2.1 and 2.2 remain unchecked.

The coordinator calls only the byte-verified pinned color, legacy-palette and template helpers. It copies recognized data into a disposable stage, converts legacy Alacritty colors in scratch, supplies explicit staging paths, and restricts generated outputs to shell.toml and foot.ini. It refuses symlinks, malformed palettes, oversized entries and unresolved templates. It retains icon theme selection, full raw/resolved palette, section overrides and background candidates, and reports unknown/unavailable input. A generation ID binds source content and path, trusted helper/template content and adapter source; a removed or updated checkout cannot overwrite a previous generation. The theme checkout is never written. Source inspection caps are recorded in source-fixtures.md.

python3 tests/test_omarchy_theme_activation.py
  PASS: 6 host tests: unchanged direct source, curated outputs, legacy scratch
  conversion, path/symlink/size/palette rejection, old-generation retention,
  source edit/clone path and trusted helper update invalidation, and rejection
  when a checkout changes during preparation before generation publication.
python3 tools/theme_activate.py fuchsblau --source /tmp/k230-omarchy-theme-fixtures/community --state-root /tmp/k230-theme-prep-final --prepare-only
  PASS: 58 resolved palette keys, 3 background candidates, Yaru-blue selector.
python3 tools/theme_activate.py catppuccin --source /tmp/k230-omarchy-theme-fixtures/builtins --state-root /tmp/k230-theme-prep-final --prepare-only
  PASS: 56 resolved palette keys, 4 background candidates, Yaru-purple selector.
python3 tools/theme_activate.py catppuccin-latte --source /tmp/k230-omarchy-theme-fixtures/builtins --state-root /tmp/k230-theme-prep-final --prepare-only
  PASS: 56 resolved palette keys, 2 background candidates, Yaru-blue selector.

These counts are host parse/preparation results, not claims that wallpapers, icons, gradients, applications or touch surfaces rendered. The next source boundary is a bounded shell-side prepare/commit/rollback acknowledgement, followed by a compatible omarchy-theme-set NAME wrapper and Nix service. An authored foot.ini full-file override is withheld: it may contain terminal directives beyond appearance data. A safe appearance-only adapter remains OpenSpec task 3.4, so this checkpoint does not claim full Foot theme support. Until then the command has an explicit --prepare-only flag and cannot change the active shell. Card/drawer, Settings, notifications, keyboard and wallpaper consumers remain separate implementation tasks and need their named gates.