GOALS.md / AGENTS.md are the source of truth. Layout apply requires ENBOXER_ALLOW_LAYOUT=1 and a GUI confirm. Example Video FX is off.
2.0 KiB
2.0 KiB
Plan
Product intent: GOALS.md. Agent contract: AGENT.md, AGENTS.md. Tickets: TASKS.md.
How work is split
| Role | Who | Does |
|---|---|---|
| Designer + PM | Grok | Owns GOALS.md. Writes tickets before a worker phase. |
| Worker | OpenCode | One ticket at a time, ponytail on, never --pure. |
When the user tells Grok to keep going, Grok implements. No live compositor dispatch (see GOALS.md Safety).
Push: HTTPS https://gitea.nettsi.de/en/enbuddy only.
Shipped
- Rust crate, YAML profile, mapped-key engine, three modes (maps / mirror / off)
- Configurable passthrough (example ESDF)
- Hyprland 0.56 Lua binds +
send_shortcut(no inject) - Interact/loot map (assist, CTM, IWT once, delay)
- Video FX: source + viewer rects (fraction or pixels), grim + mpv, hover keys/clicks
- Control panel GUI (File / Session / Layout / Maps / Video / Macros)
- Layout presets: stacked, grid, main+strip; per-slot x/y/w/h; generate/capture
- Swap into main, focus next/prev/slot, reset, pin, mouse-follow/broadcast code
- Layout moves gated (
ENBOXER_ALLOW_LAYOUT=1); tiles clamped to monitor - HTTPS remote
en/enbuddy - Example Video FX disabled; layout tiles empty
Next (still GOALS.md)
- GUI: confirm before Apply; Session checkbox “Allow moving game windows”
- Named profiles (File save as / open)
- Type/clipboard broadcast to others
- Slot-number overlay (click to make main)
hyprland-toplevel-exportfor covered Video FX sources- Follow/assist follow current main after swap
- Borderless via Hyprland window rules
- Forever macros when that client exists
Invoke worker (only after tickets are listed in TASKS.md)
opencode run --dir /home/en/git/enBoxer --auto --title "enBoxer tickets" \
"Read GOALS.md, AGENTS.md, TASKS.md. Ponytail required. Do open tickets in order. Do not run ponytail-review. Do not hyprctl dispatch on the live session."