Files
Nomarchy/agent
Bernardo Magri 30e632ff65
All checks were successful
Check / eval (push) Successful in 3m48s
fix(display): #142 — dock mode is an intent, and survives a rebuild
Every rebuild while docked re-lit the panel and threw a workspace onto
it. Not forgetfulness: a rebuild PERFORMS an undock. Dock mode lived only
in the compositor (`keyword monitor <internal>, disable`, nothing written
down), the config's only monitor line is the catch-all
`monitor=,preferred,auto,1`, and rewriting the config makes Hyprland
reload it — re-enabling every output. Our own undock path already uses
`hyprctl reload` as exactly that hammer (hardware-proven 2026-07-14).

The watcher could not rescue it: reconcile diffs `monitors all`, which
lists disabled outputs, so the connected set is identical across the flip
— structurally blind, the blind spot of rounds 4-5's "the output set is
the truth".

So the intent is recorded where every other setting lives —
settings.display.dockMode, in-flake, menu-writable — written at the one
choke point both menu and watcher pass through (transition: dock → true,
undock → false, `enable` of an internal → false, because "Screen on" IS
leaving dock mode and must not be undone a second later). The watcher
re-asserts it as a tick invariant rather than an event reaction, which is
what makes the reload case work; auto_dock was already idempotent, so it
costs one `hyprctl monitors` per tick.

The trap avoided: baking the disable into the config would survive a
reload and hand a user with no external a zero-output session at login —
the #100/#127 brick. The config cannot know what is plugged in, so it
keeps defaulting to "everything on" and the re-assert is gated on an
external being present.

Verified: 9/9 gates unit-tested by driving the REAL generated function
against stubs (incl. no-external → never re-dock, profile active → yield,
already-docked → no churn), plus the state write/read round-trip on a
throwaway checkout so the live flake was untouched. V3 queued — needs a
relogin, the watcher is exec-once.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 11:51:52 +01:00
..

Agent instructions + loop state

Everything an AI agent needs to work on Nomarchy, vendor-neutral and git-tracked. Protocol: LOOP.md. Entry point for every harness: repo-root AGENTS.md.

Instructions (how to work)

File Who writes Role
LOOP.md Human One-iteration protocol (orient → pick → work → verify → commit → record) + the V0V3 ladder
VERIFICATION.md Human (agents propose) Enforcement: preflight, honesty rules, visual protocol, hardware-blocked checks, reporting
DELEGATION.md Human (agents propose) Capability tiers, scout/runner roles, token economy, parallel fan-out
GOALS.md Human (agents propose) Pillars, quality bars, non-goals
CONVENTIONS.md Human (agents propose) How to write code/menu/state while shipping
THEME-DESIGN.md Human (agents propose) Theme/visual design instructions

State (what's happening)

File Who writes Role
BACKLOG.md Both Prioritized queue — only executable work list
JOURNAL.md Agents Append-only iteration log (read last 35 entries; older → JOURNAL-ARCHIVE.md)
MEMORY.md Agents Curated durable gotchas
HARDWARE-QUEUE.md Agents append, human checks On-hardware V3 tests only Bernardo can run

Product / design docs (not a queue)

File Role
../docs/VISION.md v1.0 product themes — agents slice into BACKLOG PROPOSED
../docs/ROADMAP.md Design history + shipped log
../docs/README.md Full docs map

Harness adapters (vendor-specific, thin)

Shared content never lives in an adapter — adapters only register/route into the files above, in whatever format their harness requires.

Path Harness Role
../AGENTS.md any Entry point (CLAUDE.md is a symlink to it)
../.claude/settings.json Claude Code Tool permissions
../.claude/agents/ Claude Code nomarchy-scout / nomarchy-runner role defs (contracts in DELEGATION.md)

Do not put backlog items, vision text, or policy under an adapter directory — it is not shared with other agent runners.

Rules of thumb

  1. Execute from BACKLOG only (NOW → NEXT; never PROPOSED without human triage).
  2. Orient with GOALS + CONVENTIONS + MEMORY + last journal + BACKLOG; when the task is product-shaped, also read the relevant VISION §.
  3. Record lasting design in ROADMAP ✓ when something ships that future humans should know; delete the BACKLOG line.
  4. v1 branch is human-only — never advance from an agent session.