mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-13 14:16:46 +00:00
`roles/` set as inline code reads as a literal path, yet the directory holds an index page the build resolves. Writing it as a link costs nothing and gives the reader the page; leaving it as code hides it, which is how this branch degraded six working references in one pass. The lint strips markdown links from a line before scanning it, or it would report the code span inside a finished link, and it skips fenced blocks. It reads the index filenames from the same place the link lint does. Two false-positive classes came out of the first run and shaped the rule. A span of nothing but dots and slashes is a path word, not a path: '/' names a filesystem in a table of mount points and '../' names the traversal an argument must not perform. An absolute span is skipped because this repository writes Keycloak group paths that way, and /roles/web-app-bluesky is a group, not a folder. 35 spans across 12 files become links, and the documentation build resolves every one of them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Apps Deploy Flows 📦
This directory holds the local deploy flows for one or more applications. For the higher-level overview, prerequisites, and naming rationale, see README.md.
Layout 🗂️
The subtree splits by user intent (the verb) and scope:
| Verb folder | Inventory | Stack cycle | Entity purge |
|---|---|---|---|
initialize/ |
fresh | no | no |
reinstall/ |
fresh | yes (down + up) | yes (shared entities) |
update/ |
reuse | no | no |
Each verb folder MUST contain all.sh for every discovered application and MAY contain selection.sh for one or more apps passed via apps (or as a positional argument where supported).
Conventions 📐
- The verb folder name expresses the deploy intent. The script name expresses the scope.
all.shdiscovers applications on the host viascripts/meta/resolve/apps.shand runs against the full list.selection.shrequires the caller to supply the application set explicitly.- Stack state (containers, volumes) and the inventory directory stay on disk after every flow in this subtree.