Frank 6df45d709a Add pkg-inventory.sh: report what a machine has outgrown its manifests
install.sh installs desired − installed from packages/*.pkgs, which guarantees a fresh box reaches
the declared state — and nothing anywhere checked that the declared state still describes the
machines. Measured against the Calamares install day, blankpad carries 41 hand-installed packages
and packages/blankpad.pkgs declared one line.

pkg-inventory.sh walks the other direction: installed − declared, with the pacman log as the
baseline so installer furniture is never reported as a hand install. It splits additions by
whether a sync db can serve them (Chaotic-AUR counts, so only true AUR routes to aur.pkgs),
excludes orphans from --emit, reports flatpak apps without pretending install.sh installs them,
and exits 3 rather than guessing when the sync databases are unreadable.

16 black-box tests over fixtures and a stubbed pacman. Two of them exist because the first
implementation was wrong in ways a small fixture cannot show: sort|head under pipefail dies of
SIGPIPE on a real 1000-line install-day log (awk-exit closes the pipe exactly as head does), and
tr without a trailing echo glues the next report label onto the last folded name.

Docs: omp-docs/tools/packages.md now owns the package tier — install.sh was never documented.

Refs #51
2026-10-20 18:07:42 -07:00
2026-10-15 18:18:40 -07:00

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.md files are directory listings (no frontmatter).
  • Progressive disclosure — index.md is 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.yml is 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/.

S
Description
No description provided
Readme
83 MiB
Languages
Shell 72.9%
HTML 14%
Lua 5.6%
HIP 4.1%
CSS 2.4%
Other 1%