Wiki Maintenance
Wiki Maintenance
Workflow for keeping the Hyraxknot Division wiki fresh. Owned by Nei (Quartermaster).
Cadence
| Frequency | Activity | Owner |
|---|---|---|
| Daily | Auto-sync: git commit + push (7am cron) | wiki-daily-sync |
| Weekly (Mon 9am) | wiki-stale-scan cron: scan → kanban refresh cards |
Nei + owning sisters |
| Monthly | Full content audit + rebuild | Nei |
Content Refresh Pipeline (since 2026-08-03)
Stale flags are actionable cards, not warnings. Flow:
wiki-stale-scancron (Mon 9am, agent job) runswiki_stale_scan.py— flags content docs 8+ days stale, excludes noise (standups, sessions/, READMEs, index/log/SCHEMA, rescue artifacts).- The cron agent maps each stale doc to its owning sister via
/root/.hermes/profiles/nei/scripts/wiki_content_owners.jsonand creates a kanban card:Wiki refresh: <path> (<N>d stale), assignee = owner, priority 3. - Idempotency key
wiki-refresh-<path-with-dashes>prevents duplicate cards on re-runs. - Cap 10 new cards per run, stalest first — the backlog drains over successive weeks.
- Owning sister refreshes the page (verify claims, bump
updated:, fix paths), updates index.md/log.md if summaries change, rebuilds.
Unknown/uncarded pages default to nei. Incident postmortems and dated changelogs are skipped (historical by design).
Stale Scan
Run a freshness check against all wiki .md files:
python3 -c "
import os, time
wiki = '/root/workspace/wiki'
now = time.time()
for root, dirs, files in os.walk(wiki):
dirs[:] = [d for d in dirs if not d.startswith('.')]
for f in files:
if f.endswith('.md'):
path = os.path.join(root, f)
days = (now - os.path.getmtime(path)) / 86400
rel = os.path.relpath(path, wiki)
if days < 3: print(f' Fresh {rel}')
elif days < 10: print(f' Recent {rel}')
else: print(f' Stale {rel} ({int(days)}d)')
"
| Age | Label | Action |
|---|---|---|
| Today-3 days | Fresh ✅ | No action |
| 3-10 days | Recent ✅ | Quick skim |
| 10+ days | 🟡 Stale | Full verification |
| 30+ days | 🟠 Very stale | High priority verify |
Content Verification
For each 🟡 flagged doc:
- Read the full doc
- Verify claims against live state — run commands, check configs, stat files
- Update frontmatter
updateddate - Fix stale paths, commands, descriptions
- Add markdown links to related docs where appropriate
Key cross-references to verify periodically:
entities/caddy-routes.md→ check against/etc/caddy/Caddyfileentities/homelab-fleet.md→ verify against Proxmox guest listentities/hermes-cron-architecture.md→ check cron-registry.jsonentities/hermes-webui.md→ verify against live instanceconcepts/preferences-boundaries.md→ check Josh’s current preferences
Build & Deploy
cd /root/workspace/wiki-site
docmd build
echo "Pages: $(find dist -name 'index.html' | wc -l)"
Deploy: docmd build && cp -r dist/* /var/www/wiki/
Git Discipline
cd /root/workspace/wiki
git add -A
git commit -m "wiki: <summary> - $(date +%F)"
git push
The wiki-daily-sync cron at 7am catches anything missed, but commit immediately after content changes.
Index & Log
- index.md — Must be updated whenever pages are added or removed. Lists every page with description.
- log.md — Append-only changelog. Format:
## [YYYY-MM-DD] action | subject. Never overwrite.
Related
- Docmd Wiki — how the wiki is built and deployed
- Wiki Editing Guide — conventions for editors
nei-quartermasterskill — full wiki maintenance workflow