All checks were successful
Check / eval (push) Successful in 3m53s
Bernardo rightly pushed back on deferring #79 to a real session: a simulated sunset IS VM-testable. Add checks.auto-theme, a runNixOSTest that installs nomarchy-theme-sync, points NOMARCHY_DEFAULT_THEMES at the presets, stubs the rebuild via NOMARCHY_REBUILD (a marker), configures the day/night pair + schedule, then WALKS THE VM CLOCK across the boundary: 19:55 -> 20:05 -> 20:06 -> next-day 07:30, asserting the active theme goes summer-day -> night (1 rebuild) -> night (idempotent, still 1) -> day (2 rebuilds). This isolates the auto decision + apply + rebuild-trigger; the actual home-manager switch is stubbed (that generic apply path is exercised by every manual theme change). The only on-hardware residual is the user timer firing on its OnCalendar schedule, which systemd-analyze validates. #79 drops its [blocked:hw] tag — it's V2-verified. ROADMAP updated; lesson recorded in MEMORY (don't default timer/session features to V3: stub the generic step, simulate the clock). Verification: V2 PASS (nix build .#checks.x86_64-linux.auto-theme, fresh, exit 0); V0 flake check green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Docs map
Where human and agent documentation lives. Do not invent a third tree for the same facts.
| Path | Audience | Role |
|---|---|---|
| ../README.md | Everyone | What Nomarchy is, install, options tables |
| VISION.md | Maintainers + agents | Product north star toward v1.0 and beyond — themes, not a task queue |
| ROADMAP.md | Maintainers + agents | Design/decision records + shipped log (historical ✓) |
| HARDWARE.md | Users + agents | Firmware, profiles, drivers, unsupported machines |
| TESTING.md | Maintainers + agents | Verification ladder, honesty rule, ISO/VM recipes |
| RECOVERY.md | Users | Broken theme/desktop/boot → undo |
| OVERRIDES.md | Users | Downstream Nix overrides |
| MIGRATION.md | Users | Existing NixOS → Nomarchy without reinstall |
| OMARCHY.md | Users | Coming from Omarchy — bindings/theme/install/config map |
Related (not under docs/)
| Path | Role |
|---|---|
| ../agent/README.md | Executable agent loop state: BACKLOG, LOOP, MEMORY, … |
| ../CLAUDE.md | Agent entry point (any harness that reads it) |
| ../.claude/ | Claude Code only: permissions + subagent defs |
How work flows
VISION (what we want the product to feel like)
│
▼ human triages slices into…
BACKLOG (what's next, ordered — agents execute only this)
│
▼ lasting design notes after ship →
ROADMAP ✓ entries
Agents do not implement directly from VISION or ROADMAP. They take
the top actionable item in agent/BACKLOG.md (see agent/LOOP.md).
They may append PROPOSED pitches that reference VISION § … or
ROADMAP § ….