docs(60): point-of-use corrections from the 2026-10-20 review

Measured fixes, one line each, from the review of everything that landed on
2026-10-20 (issue #60). Each page keeps its own facts; nothing was moved.

- inventory/index, index: the census blurb says what the page actually covers
  (tracked-vs-box-only per file), not "all userspace configuration"
- dotfiles-deploy: the wallpaper re-fetch recipe resolves the CDN URL through
  the wallhaven API — /w/<id> answers text/html, so curl -L never yields a
  JPEG; description widened to the whole page, tools/index blurb matched
- okf-maintenance: the link example and the mistake bullet now agree with
  okf-spec, which RECOMMENDS absolute bundle paths (they said the opposite)
- decisions/index: the unlisted-page gate is kb-coverage.py, not kb-lint
- AGENTS.md: the three skill-config subsections are pointers again; the pages
  own issue tracker, labels and domain docs
- swayidle-lock.service: Description names what the unit does (arms the idle
  lock over noctalia-shell IPC); suspend belongs to noctalia's inhibitor
- common.pkgs: git-lfs re-justified by the tracked .gitattributes filter
  contract; the swayidle comment drops its lid-policy claim
This commit is contained in:
Frank committed 2026-10-21 00:54:06 -07:00
1 parent 71a7e5cb9a
commit 671222b881
9 files changed
+30 -23

No files matched your search

+4 -7
View File
@@ -94,19 +94,16 @@ knowledge base. Those pages own their facts; this is only the pointer.
### Issue tracker ### Issue tracker
Work items are Gitea issues on `dank/command-center` (Dankclaw, See [`omp-docs/skills/issue-tracker.md`](omp-docs/skills/issue-tracker.md).
`192.168.0.143:3000`) — no `gh`, no `tea`. See
[`omp-docs/skills/issue-tracker.md`](omp-docs/skills/issue-tracker.md).
### Triage labels ### Triage labels
The five canonical roles, each label string equal to its name. See See [`omp-docs/skills/triage-labels.md`](omp-docs/skills/triage-labels.md).
[`omp-docs/skills/triage-labels.md`](omp-docs/skills/triage-labels.md).
### Domain docs ### Domain docs
Single-context, inside the existing knowledge base: `omp-docs/glossary.md` and ADRs: `omp-docs/decisions/`. `omp-docs/glossary.md` is intentionally not created.
`omp-docs/decisions/`. See [`omp-docs/skills/domain-docs.md`](omp-docs/skills/domain-docs.md). See [`omp-docs/skills/domain-docs.md`](omp-docs/skills/domain-docs.md).
## Secret gate (HARD rule) ## Secret gate (HARD rule)
@@ -1,5 +1,5 @@
[Unit] [Unit]
Description=swayidle idle lock (locks via noctalia-shell IPC, suspends on lid) Description=swayidle idle lock watcher (arms the idle lock via noctalia-shell IPC; suspend is covered by noctalia's sleep inhibitor)
Documentation=https://github.com/swaywm/swayidle Documentation=https://github.com/swaywm/swayidle
After=graphical-session.target After=graphical-session.target
# Restart together with the session, not merely at boot: this unit is wanted by # Restart together with the session, not merely at boot: this unit is wanted by
+2 -2
View File
@@ -1,8 +1,8 @@
# Architecture decision records # Architecture decision records
Decisions this repo has made and will not silently revisit. One file per Decisions this repo has made and will not silently revisit. One file per
decision, named `NNN-<slug>.md`, listed here — an unlisted page fails `kb-lint` decision, named `NNN-<slug>.md`, listed here — an unlisted page fails
and does not exist as far as any agent is concerned. `scripts/kb-coverage.py` and does not exist as far as any agent is concerned.
**No ADRs yet.** The first one lands the moment a decision stops being **No ADRs yet.** The first one lands the moment a decision stops being
reversible. reversible.
+2 -2
View File
@@ -57,8 +57,8 @@ search practices, open models, MCP.
## [Inventory](inventory/index.md) ## [Inventory](inventory/index.md)
Pre-pruning census of every userspace config on this box — the input for the Per-file tracked-vs-box-only census of `~/.config` on blankpad — the input for the
pruning session. dotfiles pruning/adoption session.
## [Decisions](decisions/index.md) ## [Decisions](decisions/index.md)
+1 -1
View File
@@ -2,4 +2,4 @@
Census of all userspace program configuration on the workstation. Census of all userspace program configuration on the workstation.
- [home-config-census.md](home-config-census.md) — Complete inventory of top-level dotfiles, ~/.config, ~/.local/share state, and special directories (~/.pi, ~/.omp) - [home-config-census.md](home-config-census.md) — Per-file tracked-vs-box-only census of ~/.config on blankpad — the input for the dotfiles pruning/adoption session.
+4 -3
View File
@@ -38,7 +38,7 @@ happened, and the durable lesson. It is not a file manifest.
A gate that gets an empty file list reports success. Law: a check MUST fail closed; A gate that gets an empty file list reports success. Law: a check MUST fail closed;
a silently-passing gate is worse than none, because it buys the belief of safety. a silently-passing gate is worse than none, because it buys the belief of safety.
Details: [secret gate](../tools/index.md). Details: [secret gate](/tools/index.md).
``` ```
**Rules:** **Rules:**
@@ -58,8 +58,9 @@ Details: [secret gate](../tools/index.md).
- ❌ Forgetting the entry — the change lands undocumented and the next agent rediscovers - ❌ Forgetting the entry — the change lands undocumented and the next agent rediscovers
the failure the hard way. the failure the hard way.
- ❌ Starting a second log in a subdirectory — the sprawl that makes logging useless. - ❌ Starting a second log in a subdirectory — the sprawl that makes logging useless.
- ❌ Invented absolute paths in links — links resolve relative to the page, and the - ❌ Invented paths in links — the RECOMMENDED form is an absolute bundle path
linter checks them. (`/tools/index.md`), resolved against the bundle root; the mistake is a path that
names no file there, and that is what the linter reports.
- ❌ Re-expanding an old entry in place — the entry is a pointer; git is the transcript. - ❌ Re-expanding an old entry in place — the entry is a pointer; git is the transcript.
--- ---
+13 -4
View File
@@ -1,14 +1,14 @@
--- ---
type: reference type: reference
title: Dotfiles deployment tier title: Dotfiles deployment tier
description: How dotfiles/ packages become live configuration — stow-equivalent symlinks, host override packages, and the two laws about theme media and systemd enable symlinks. description: How dotfiles/ packages become live configuration — deploy.sh modes, host override packages, and the tier's hard-won laws, from media and generated theme output to systemd enable/start semantics, dconf dumps, and idle-lock watcher triage.
tags: tags:
- dotfiles - dotfiles
- deployment - deployment
- systemd - systemd
- noctalia - noctalia
timestamp: 2026-10-20 timestamp: 2026-10-20
verified: 2026-10-20 verified: 2026-10-21
--- ---
# Dotfiles deployment tier # Dotfiles deployment tier
@@ -54,8 +54,17 @@ checkout, `git rm --cached` on the branch notwithstanding.
Restore on a fresh box: the library lives in `~/.local/share/noctalia/wallpapers/`, a path Restore on a fresh box: the library lives in `~/.local/share/noctalia/wallpapers/`, a path
`deploy.sh` does not manage. Every filename is `wallhaven_<id>.<ext>` and the ID is the `deploy.sh` does not manage. Every filename is `wallhaven_<id>.<ext>` and the ID is the
whole address — `curl -L -o <name> "https://wallhaven.cc/w/<id>"` into that directory puts whole address — but `https://wallhaven.cc/w/<id>` answers `text/html`, the web page, so
the set back. Losing it is an acceptable outcome; 80 MB per clone forever is not. resolve the direct CDN URL through the API and download that:
```bash
id=73g8xo # the wallhaven_<id> stem of any file in the set
url=$(curl -s "https://wallhaven.cc/api/v1/w/$id" | grep -o '"path":"[^"]*' | cut -d'"' -f4)
curl -L -o ~/.local/share/noctalia/wallpapers/"${url##*/}" "$url"
```
`data.path` already ends in `wallhaven_<id>.<ext>`, so the filename keeps itself. Losing it
is an acceptable outcome; 80 MB per clone forever is not.
## Law: never `systemctl --user enable` a unit from a worktree ## Law: never `systemctl --user enable` a unit from a worktree
+1 -1
View File
@@ -9,7 +9,7 @@ Configuration guides and reference material for installed software. Each tool ha
* [applications](applications.md) — Default userspace applications on CachyOS with Niri — browsers, editor, terminal, file manager, audio, screenshots, gaming. * [applications](applications.md) — Default userspace applications on CachyOS with Niri — browsers, editor, terminal, file manager, audio, screenshots, gaming.
* [cachyos](cachyos.md) — Arch-based rolling release with performance-optimized kernels, repositories, and gaming stack. Running on the workstation. * [cachyos](cachyos.md) — Arch-based rolling release with performance-optimized kernels, repositories, and gaming stack. Running on the workstation.
* [comfyui](comfyui/index.md) — Node-based AI image generation engine on dankclaw. FLUX.2 klein 4B, CPU backend, systemd managed. * [comfyui](comfyui/index.md) — Node-based AI image generation engine on dankclaw. FLUX.2 klein 4B, CPU backend, systemd managed.
* [dotfiles-deploy](dotfiles-deploy.md) — How `dotfiles/` packages become live config: `deploy.sh` modes, host override packages, and why theme media and worktree-enabled units are traps. * [dotfiles-deploy](dotfiles-deploy.md) — How `dotfiles/` packages become live config: `deploy.sh` modes, host override packages, and the tier's hard-won laws, from media and generated theme output to systemd enable/start semantics, dconf dumps, and idle-lock watcher triage.
* [ghostty](ghostty/index.md) — GPU-accelerated terminal emulator with extensive configuration, keybindings, and shaders. * [ghostty](ghostty/index.md) — GPU-accelerated terminal emulator with extensive configuration, keybindings, and shaders.
* [gitea](gitea/index.md) — Private Git hosting on dankclaw. Quadlet-managed containers: Gitea, PostgreSQL, Caddy. * [gitea](gitea/index.md) — Private Git hosting on dankclaw. Quadlet-managed containers: Gitea, PostgreSQL, Caddy.
* [handy](handy.md) — Offline speech-to-text transcription with WebKitGTK backend and Tauri v2 UI. * [handy](handy.md) — Offline speech-to-text transcription with WebKitGTK backend and Tauri v2 UI.
+2 -2
View File
@@ -18,8 +18,8 @@ btop
# system / fleet tooling # system / fleet tooling
yay # AUR helper bootstrap: ships in the cachyos repo; aur.pkgs installs need it yay # AUR helper bootstrap: ships in the cachyos repo; aur.pkgs installs need it
git-lfs # LFS smudge/clean for tracked wallpapers (see .gitattributes) git-lfs # .gitattributes still routes image types through the LFS filter; no image is tracked since 2026-10-20
swayidle # idle lock + lid policy via swayidle-lock.service unit swayidle # idle lock watcher via swayidle-lock.service; suspend locking is noctalia's sleep inhibitor
# desktop apps # desktop apps
flameshot # screenshot tool; bound to CTRL+Shift+1/2/3 in niri keybinds flameshot # screenshot tool; bound to CTRL+Shift+1/2/3 in niri keybinds