4666d0dce000c92e13a724b88707ef3a50cc5984
Two statements in the law added by #48 need measurement rather than inference, and one of them was wrong. **Attributed.** `niri` and `noctalia` both started `Mon Oct 12 16:22:31 2026` (`ps -o lstart=`); swayidle's last state change was `16:22:23`. The compositor session restarted and the watcher died with it — eight seconds of agreement, which is what `PartOf=graphical-session.target` is for. The fix that #48 justified by reasoning is now justified by the event itself. The user journal holds no entries for that window, so the evidence is process ages, not logs. **Corrected.** #48 said closing the lid suspended blankpad unlocked, because `before-sleep` lived in the dead unit. `systemd-inhibit --list` says otherwise: `noctalia … sleep "Lock before sleep" delay` — the shell holds its own sleep inhibitor and locks on suspend independently of swayidle, so the suspend path held all along. What was dead for eight days is the **idle** lock and `after-resume`. The method error is worth keeping: `pgrep` for lockers came back empty and I read that as "no lock path", when a locker can be a hook inside a running shell. The inhibitor table is the instrument. Added with them, because it answers a question people will ask: while an `omp` session runs, swayidle logs `Not enabling timeouts: idle inhibitor found` and arms no idle timeout (`omp … idle "omp agent session" block`). A box with an agent working does not lock on inactivity, by harness design. Docs only; the unit file from #48 is unchanged and the live watcher is `active` with `NRestarts=1` after the SIGTERM proof. `kb-lint.sh omp-docs` 0 violations, `kb-coverage.py` 0 issues, `bats tests/` 71/71. Refs #47.
Command Center
Configuration repository for Frank's Userspace configurations (i.e. his desktop setup)
AI Disclosures:
- Slop rating: 3/5 - Actively using, actively de-slopping, repository still mostly AI owned
- Completeness: Unfinished, planning planned, no plan yet
- Datacenter model/spend: Less than $5 of Deepseek 4.1 Flash
- Local model: Qwen 3.8 27B
slop rating of 3 or higher indicates human reading is a waste of time outside of this README, and that you might as well ask an agent for help with this.
slop rating 3 indicates Frank is comfortable using this for professional use -- but barely.
The Fleet
| Host | Role | IP |
|---|---|---|
| Workstation | Client box (CachyOS, Niri/Wayland) | — |
| Dankclaw | Server (Podman, reverse proxy, Gitea, NPU) | 192.168.0.143 |
| Dankserver | LLM inference backend | 192.168.0.235 |
The workstation hosts the primary checkout — this repository lives at ~/.omp/ and drives the OMP agent harness.
Structure at a Glance
~/.omp/
├── agent/ # OMP harness runtime
│ ├── config.yml # Live agent configuration
│ ├── models.yml # Model providers (single source of truth)
│ ├── APPEND_SYSTEM.md # System prompt extensions
│ ├── managed-skills/ # Managed skills (SKILL.md bundles)
│ ├── models.db # Model cache
│ └── sessions/ # Persistent session state
├── dotfiles/ # stow-style env-layer packages (home-relative trees)
│ └── deploy via scripts/deploy.sh (check|adopt|sync; quarantine-and-replace)
├── omp-docs/ # Knowledge base (source of truth)
│ ├── index.md # KB index — start here
│ ├── system/ # Fleet hardware, OS, network
│ ├── tools/ # Installed software (llama.cpp, Gitea, Caddy, niri…)
│ ├── core/ # Agent config conventions (settings, models, AGENTS.md)
│ ├── pi/ # Legacy pi-era config reference
│ ├── engineering/ # SDLC, languages, infra, skills ecosystem
│ ├── research/ # Decision-support research (not yet facts)
│ ├── references/ # OKF spec, maintenance procedures
│ ├── caddy/ # Reverse proxy configuration
│ ├── packages/ # Pi packages and extensions
│ ├── inventory/ # Userspace config census
│ ├── reports/ # Investigation reports
│ ├── log.md # Change log
│ └── .okf/ # OKF v0.1 conformance config
├── scripts/ # Utility scripts (kb-lint.sh)
├── plugins/ # npm plugins (pi-peon, etc.)
├── puppeteer/ # Browser automation config
├── .githooks/ # Pre-commit hook
├── .gitignore # Runtime state ignored (databases, logs, cache)
├── AGENTS.md # Agent conventions (niri reload, keybindings)
└── README.md # This file
What Lives Here
Config in, state out. Everything tracked is something an agent reads or writes. Runtime databases (*.db, *.sqlite), logs, caches, and session state are git-ignored — git history captures configuration changes, not agent heartbeat.
Quick Start
| Task | How |
|---|---|
| Read the knowledge base | omp-docs/index.md — every concept linked from here |
| Check agent config | agent/config.yml + agent/models.yml |
| Lint the KB | scripts/kb-lint.sh (OKF v0.1 conformance) |
| View change log | omp-docs/log.md |
| Run a pre-commit | .githooks/pre-commit |
Conventions
- OKF v0.1 — every doc file carries YAML frontmatter with a
type:field.index.mdfiles are directory listings (no frontmatter). - Progressive disclosure —
index.mdis a landing page; drill into subdirectories for detail. - Verified facts — stamped with
verified:when probed against the live fleet. Trust over memory. - Single config source —
~/.omp/agent/models.ymlis the only model registry; OMP is the primary harness and there is no second copy to keep in sync.
Legacy Notes
omp-docs/pi/ and omp-docs/core/ retain general documentation about the pi-coding-agent harness (its config format, packages, skill system) for reference. OMP at ~/.omp/ is the live harness; managed skills live in ~/.omp/agent/managed-skills/.
Languages
Shell
72.9%
HTML
14%
Lua
5.6%
HIP
4.1%
CSS
2.4%
Other
1%