docs(okf): 53 Obsidian wikilinks become OKF links

`[[page|Label]]` is Obsidian syntax, not OKF. `kb-lint` resolves it Obsidian-style — by
filename, anywhere in the bundle — so it has never tripped the link gate, while every other
consumer of the bundle (an OKF renderer, a Gitea wiki export, `grep` for reachability) sees
bracketed text where a link should be. That is how two generated pages ended up with no
inbound link at all and nobody noticed: the my-first link census of the bundle reported them
as orphans because their only inbound edges were wikilinks.

Mechanical conversion, 52 links across 17 pages, each resolved against the same page set
`kb-lint` uses: an explicit `|Label` is kept verbatim, an unlabelled link takes the target's
frontmatter `title`. Targets are emitted bundle-absolute (`/tools/niri/tips.md`), the form
the spec recommends and the form 99 existing links in this bundle already use.

Two links were `[[index]]`, which resolves by filename to 21 pages — the ambiguity that
filename-resolution invites. Both meant their own directory's index, so both are now written
out in full: `/tools/gitea/index.md`, `/tools/niri/index.md`.

The linter still tolerates wikilinks; whether it should reject them outright is an open
question on #64, because that would replace the two tests pinning today's tolerance.

Refs #64
This commit is contained in:
Frank committed 2026-10-21 02:11:56 -07:00
1 parent 4735702965
commit 62a70caebb
17 files changed
+55 -55

No files matched your search

+3 -3
View File
@@ -187,7 +187,7 @@ Currently configured providers:
| `llamacpp (dankserver)` | `http://192.168.0.235:7770/v1` | `frank-default-small` (Qwen3.6-35B-A3B FP8, moe-cache 2048) | RTX 3090 | | `llamacpp (dankserver)` | `http://192.168.0.235:7770/v1` | `frank-default-small` (Qwen3.6-35B-A3B FP8, moe-cache 2048) | RTX 3090 |
| `llamacpp (dankclaw)` | `http://192.168.0.143:7770/v1` | `frank-default-large` (Qwen3.8-Flash-Next Q4_0 ROCmFP4 Strix) | RTX 4070 Max-Q | | `llamacpp (dankclaw)` | `http://192.168.0.143:7770/v1` | `frank-default-large` (Qwen3.8-Flash-Next Q4_0 ROCmFP4 Strix) | RTX 4070 Max-Q |
See [[models|models]] for the complete `models.json` reference. See [models](/pi/models.md) for the complete `models.json` reference.
--- ---
@@ -235,6 +235,6 @@ When `lastChangelogVersion` is behind pi's internal version, pi prompts for migr
## See Also ## See Also
- [pi](../pi/index.md) — Pi configuration overview - [pi](../pi/index.md) — Pi configuration overview
- [[models|models]] — Provider and model definitions - [models](/pi/models.md) — Provider and model definitions
- [Pi Packages](/pi/packages/index.md) — Installed package documentation - [Pi Packages](/pi/packages/index.md) — Installed package documentation
- [[skills|skills]] — Installed skill documentation - [skills](/pi/skills.md) — Installed skill documentation
+5 -5
View File
@@ -31,7 +31,7 @@ Current providers in `models.json` (verified 2026-08-27, after the
| **Base URL** | `http://192.168.0.235:7770/v1` | | **Base URL** | `http://192.168.0.235:7770/v1` |
| **API** | `openai-completions` | | **API** | `openai-completions` |
| **Auth** | None (EMPTY) | | **Auth** | None (EMPTY) |
| **Host** | [[dankserver|dankserver]] | | **Host** | [dankserver](/system/dankserver.md) |
#### Models #### Models
@@ -52,7 +52,7 @@ value succeed.
| **Base URL** | `http://192.168.0.143:7770/v1` | | **Base URL** | `http://192.168.0.143:7770/v1` |
| **API** | `openai-completions` | | **API** | `openai-completions` |
| **Auth** | None (EMPTY) | | **Auth** | None (EMPTY) |
| **Host** | [[dankclaw|dankclaw]] | | **Host** | [dankclaw](/system/dankclaw.md) |
> 2026-08-22: `frank-default-large` moved from `:52625` to `:7770` on > 2026-08-22: `frank-default-large` moved from `:52625` to `:7770` on
> Dankclaw (operator request: the primary inference server sits on the > Dankclaw (operator request: the primary inference server sits on the
@@ -142,6 +142,6 @@ The subagent model IDs (`frank-default-small`, `frank-default-large`) resolve ag
## See Also ## See Also
- [[settings|settings]] — Main configuration file - [settings](/core/settings.md) — Main configuration file
- [[dankserver|dankserver]] — Primary llama.cpp server - [dankserver](/system/dankserver.md) — Primary llama.cpp server
- [[dankclaw|dankclaw]] — Secondary llama.cpp server - [dankclaw](/system/dankclaw.md) — Secondary llama.cpp server
+2 -2
View File
@@ -64,5 +64,5 @@ No per-model limit exists. All caps are global to a run or a session. They do no
## See Also ## See Also
- [[settings|settings]] — Subagent configuration - [settings](/core/settings.md) — Subagent configuration
- [[models|models]] — Model definitions - [models](/pi/models.md) — Model definitions
+2 -2
View File
@@ -88,6 +88,6 @@ live `free` reading.
## See Also ## See Also
- [[dankserver|dankserver]] — the main-model box (frank-archon) - [dankserver](/system/dankserver.md) — the main-model box (frank-archon)
- [/tools/gitea/index.md](/tools/gitea/index.md) — Gitea stack on this host - [/tools/gitea/index.md](/tools/gitea/index.md) — Gitea stack on this host
- [[network|network]] — Network topology - [network](/system/network.md) — Network topology
+2 -2
View File
@@ -84,6 +84,6 @@ The old page (verified 2026-08-28) listed an RTX 3090, 60 GiB RAM, and a
## See Also ## See Also
- [[dankclaw|dankclaw]] — the other inference box (dragoon + zealot) - [dankclaw](/system/dankclaw.md) — the other inference box (dragoon + zealot)
- [[network|network]] — Network topology - [network](/system/network.md) — Network topology
- [/core/statusline.md](/core/statusline.md) — where these models surface in the TUI - [/core/statusline.md](/core/statusline.md) — where these models surface in the TUI
+2 -2
View File
@@ -70,7 +70,7 @@ graph LR
## See Also ## See Also
- [[cachyos|cachyos]] — Operating system documentation - [cachyos](/tools/cachyos.md) — Operating system documentation
- [[noctalia-shell|noctalia-shell]] — Desktop shell - [noctalia-shell](/tools/noctalia-shell.md) — Desktop shell
- [niri](niri/index.md) — Compositor - [niri](niri/index.md) — Compositor
- ](ghostty/index.md) — Terminal configuration - ](ghostty/index.md) — Terminal configuration
+2 -2
View File
@@ -108,5 +108,5 @@ CachyOS with Niri ships with a curated set of applications:
- ](../system/index.md) — system overview - ](../system/index.md) — system overview
- [niri](niri/index.md) — Compositor documentation - [niri](niri/index.md) — Compositor documentation
- [[noctalia-shell|noctalia-shell]] — Desktop shell documentation - [noctalia-shell](/tools/noctalia-shell.md) — Desktop shell documentation
- [[applications|applications]] — Application reference - [applications](/tools/applications.md) — Application reference
+2 -2
View File
@@ -83,5 +83,5 @@ Note: the full-stack repo compose (`dankclaw/compose.yaml`) maps Gitea HTTP to h
## See Also ## See Also
- ](index.md) — index with management commands - ](index.md) — index with management commands
- [[management|management]] — operations, boot persistence, incident - [management](/tools/gitea/management.md) — operations, boot persistence, incident
- [[data-persistence|data-persistence]] — volumes and backups - [data-persistence](/tools/gitea/data-persistence.md) — volumes and backups
+4 -4
View File
@@ -14,7 +14,7 @@ verified: 2026-10-09
Clients (workstations, agent hosts) reach Gitea over plain HTTP on the LAN: Clients (workstations, agent hosts) reach Gitea over plain HTTP on the LAN:
`http://192.168.0.143:3000/dank/<repo>.git`. Authentication is a Gitea HTTP token sent as `http://192.168.0.143:3000/dank/<repo>.git`. Authentication is a Gitea HTTP token sent as
the password for user `dank`. SSH is available on `:2222` (see the password for user `dank`. SSH is available on `:2222` (see
[[architecture|architecture]]); HTTP + token is what the agent hosts use. [architecture](/tools/gitea/architecture.md)); HTTP + token is what the agent hosts use.
## The law: the token never enters a URL, a config file, or a shell rc ## The law: the token never enters a URL, a config file, or a shell rc
@@ -93,6 +93,6 @@ until it is deleted in the UI, so delete it there as part of the rotation.
## See Also ## See Also
- [[index|index]] — Gitea on dankclaw - [Gitea directory index](/tools/gitea/index.md) — Gitea on dankclaw
- [[management|management]] — server-side operations - [management](/tools/gitea/management.md) — server-side operations
- [[architecture|architecture]] — ports (3000 HTTP, 2222 SSH) and the Caddy front - [architecture](/tools/gitea/architecture.md) — ports (3000 HTTP, 2222 SSH) and the Caddy front
+2 -2
View File
@@ -64,5 +64,5 @@ Set `PGPASSWORD` from `/home/dank/Containers/gitea/env` (mode 0600, `GITEA_DB_PA
## See Also ## See Also
- ](index.md) — index with management commands - ](index.md) — index with management commands
- [[management|management]] — operations and boot persistence - [management](/tools/gitea/management.md) — operations and boot persistence
- [[architecture|architecture]] — network and ports - [architecture](/tools/gitea/architecture.md) — network and ports
+2 -2
View File
@@ -39,13 +39,13 @@ All data lives on host bind mounts under `/home/dank/Containers/gitea/` (fleet s
| `/home/dank/Containers/gitea/postgres/` | PostgreSQL data files | | `/home/dank/Containers/gitea/postgres/` | PostgreSQL data files |
| `/home/dank/Containers/gitea/env` | EnvironmentFile (mode 0600; `GITEA_DB_PASSWORD`) | | `/home/dank/Containers/gitea/env` | EnvironmentFile (mode 0600; `GITEA_DB_PASSWORD`) |
See [[data-persistence|data-persistence]] for backup and restore. See [data-persistence](/tools/gitea/data-persistence.md) for backup and restore.
## Boot Persistence ## Boot Persistence
User-level linger is enabled for `dank`. The units start at host boot without a login. Each unit carries `[Install] WantedBy=default.target`; the podman generator applies it. The legacy podman-compose stack had no units and did not survive reboots (incident 2026-08-16). User-level linger is enabled for `dank`. The units start at host boot without a login. Each unit carries `[Install] WantedBy=default.target`; the podman generator applies it. The legacy podman-compose stack had no units and did not survive reboots (incident 2026-08-16).
See [[management|management]] for boot persistence details and troubleshooting. See [management](/tools/gitea/management.md) for boot persistence details and troubleshooting.
## Repo Copies ## Repo Copies
+4 -4
View File
@@ -100,7 +100,7 @@ Verify the fix on the next host reboot.
## See Also ## See Also
- ](index.md) — index - ](index.md) — index
- [[client-access|client-access]] — how client hosts authenticate (token + credential store) - [client-access](/tools/gitea/client-access.md) — how client hosts authenticate (token + credential store)
- [[architecture|architecture]] — network topology - [architecture](/tools/gitea/architecture.md) — network topology
- [[data-persistence|data-persistence]] — backups - [data-persistence](/tools/gitea/data-persistence.md) — backups
- [[containers|containers]] — quadlet reference - [containers](/engineering/infra/containers.md) — quadlet reference
+2 -2
View File
@@ -222,12 +222,12 @@ curl -s http://192.168.0.143:7771/v1/chat/completions -d '{
"chat_template_kwargs": {"enable_thinking": false}}' "chat_template_kwargs": {"enable_thinking": false}}'
``` ```
See [[noctalia-shell]] for IPC integration patterns. See [Noctalia Shell](/tools/noctalia-shell.md) for IPC integration patterns.
--- ---
## See Also ## See Also
- [[noctalia-shell|noctalia-shell.md]] — Desktop environment integration - [noctalia-shell.md](/tools/noctalia-shell.md) — Desktop environment integration
- [niri](niri/index.md) — Compositor configuration - [niri](niri/index.md) — Compositor configuration
- [`handy --help`](https://github.com/cjpais/Handy) — CLI reference - [`handy --help`](https://github.com/cjpais/Handy) — CLI reference
+6 -6
View File
@@ -178,17 +178,17 @@ The `environment { render-node "/dev/dri/renderD129" }` pin found in the
hybrid; pin kept the iGPU as display owner and sidesteps the suspend/resume hybrid; pin kept the iGPU as display owner and sidesteps the suspend/resume
deadlock documented in the sleep-wake investigation). Deploying that base deadlock documented in the sleep-wake investigation). Deploying that base
file on blankpad pins a render node that does not exist — this is why file on blankpad pins a render node that does not exist — this is why
blankpad runs the `zz-blankpad` override layer (see [[index|the per-host blankpad runs the `zz-blankpad` override layer (see [the per-host symlink
symlink matrix]]). matrix](/tools/niri/index.md)).
## Reload ## Reload
`niri msg action load-config-file` reloads live. Never `SIGHUP` the process `niri msg action load-config-file` reloads live. Never `SIGHUP` the process
— see [[tips]]. — see [Niri Tips and Gotchas](/tools/niri/tips.md).
## See Also ## See Also
- [Niri](/tools/niri/index.md) — compositor overview and config layout - [Niri](/tools/niri/index.md) — compositor overview and config layout
- [[tips|tips]] — reload path, `niri msg layers/casts`, includes - [tips](/tools/niri/tips.md) — reload path, `niri msg layers/casts`, includes
- [[noctalia-shell|noctalia-shell]] — notification shown on desk switch - [noctalia-shell](/tools/noctalia-shell.md) — notification shown on desk switch
- [[cachyos|cachyos]] — operating system - [cachyos](/tools/cachyos.md) — operating system
+10 -10
View File
@@ -85,18 +85,18 @@ Column-based scrollable tiling. Columns are cycled with Mod+Left/Right (or Mod+H
| File | Type | Description | | File | Type | Description |
|------|------|-------------| |------|------|-------------|
| [[action-reference|action-reference.md]] | reference | Curated reference of niri actions | | [action-reference.md](/tools/niri/action-reference.md) | reference | Curated reference of niri actions |
| [[default-bindings|default-bindings.md]] | reference | Default key bindings organized by category | | [default-bindings.md](/tools/niri/default-bindings.md) | reference | Default key bindings organized by category |
| [[key-bindings-syntax|key-bindings-syntax.md]] | reference | KDL configuration syntax for key bindings | | [key-bindings-syntax.md](/tools/niri/key-bindings-syntax.md) | reference | KDL configuration syntax for key bindings |
| [[tips|tips.md]] | howto | Practical tips for working with niri | | [tips.md](/tools/niri/tips.md) | howto | Practical tips for working with niri |
| [[displays|displays.md]] | reference | Desk-profile system: EDID-keyed outputs, hotplug auto-switch, portrait transforms, GPU notes | | [displays.md](/tools/niri/displays.md) | reference | Desk-profile system: EDID-keyed outputs, hotplug auto-switch, portrait transforms, GPU notes |
| [[keybindings|keybindings.md]] | reference | GENERATED keybinding cheat sheet (scripts/gen-keybinds.sh) | | [keybindings.md](/tools/niri/keybindings.md) | reference | GENERATED keybinding cheat sheet (scripts/gen-keybinds.sh) |
| [[screenshots|screenshots.md]] | reference | Screenshot bind matrix: flameshot vs niri-native, 2+ output limits, all-monitor capture | | [screenshots.md](/tools/niri/screenshots.md) | reference | Screenshot bind matrix: flameshot vs niri-native, 2+ output limits, all-monitor capture |
--- ---
## See Also ## See Also
- [[noctalia-shell|noctalia-shell]] — Desktop shell integration - [noctalia-shell](/tools/noctalia-shell.md) — Desktop shell integration
- [[displays|displays]] — Multi-monitor desk rig configuration - [displays](/tools/niri/displays.md) — Multi-monitor desk rig configuration
- [[cachyos|cachyos]] — Operating system - [cachyos](/tools/cachyos.md) — Operating system
+3 -3
View File
@@ -75,6 +75,6 @@ tr '\0' '\n' < /proc/$(pgrep -x niri | head -1)/environ | grep ^PATH # spawn-s
## See Also ## See Also
- [[displays|displays.md]] — desk profiles: 1 output portable vs 2 docked - [displays.md](/tools/niri/displays.md) — desk profiles: 1 output portable vs 2 docked
- [[keybindings|keybindings.md]] — generated cheat sheet (source of the binds) - [keybindings.md](/tools/niri/keybindings.md) — generated cheat sheet (source of the binds)
- [[noctalia-shell|noctalia-shell]] — shell settings on Mod+Shift+O - [noctalia-shell](/tools/noctalia-shell.md) — shell settings on Mod+Shift+O
+2 -2
View File
@@ -434,6 +434,6 @@ to document). A dependency table is a claim about the machine: check it before w
## See Also ## See Also
- [niri](niri/index.md) — Compositor configuration - [niri](niri/index.md) — Compositor configuration
- [[displays|displays]] — Display layout - [displays](/tools/niri/displays.md) — Display layout
- [[cachyos|cachyos]] — Operating system documentation - [cachyos](/tools/cachyos.md) — Operating system documentation
- [`noctalia msg --help`](https://github.com/Noctalia/noctalia) — Full command reference - [`noctalia msg --help`](https://github.com/Noctalia/noctalia) — Full command reference