## Summary Migrates the docs build pipeline to Dagger (Phase 2 of the Dagger CI adoption plan). - **Backfill `date-modified` frontmatter** on all 80 docs — Dagger's `--src=.` excludes `.git`, so Quartz can't use git history for page dates. Frontmatter dates work with or without git. - **New `docs-check-frontmatter` mise task + pre-commit hook** — validates all docs have `title`, `tags`, and `date-modified` - **New Dagger functions** — `build_changelog` (towncrier in Python container) and `build_docs` (chains changelog → Quartz build in Node container, returns tarball) - **Simplified CI workflow** — the ~44-line inline Quartz build (clone, npm ci, build, tar, cleanup) is replaced by `dagger call build-docs`. Changelog step remains local on the runner since towncrier needs to modify the host working tree for the git commit. ### Design decisions - **Towncrier runs twice in CI**: once inside Dagger (for the docs tarball) and once on the runner (for the git commit). This is intentional — Dagger's directory export is additive and can't delete the consumed changelog fragments from the host. - **Artifact hosting stays on Forgejo Releases** (not migrated to Forgejo Packages as the plan doc originally suggested). That migration can happen independently. - **`date-modified` frontmatter** preserved even though `build_changelog` installs git — the git there is only for towncrier's `git add` call, not for history. The local iteration story (`dagger call build-docs --src=. --version=dev` with uncommitted changes) depends on frontmatter dates. ### Local iteration ```bash dagger call build-docs --src=. --version=dev export --path=./docs-dev.tar.gz tar tf docs-dev.tar.gz | head -20 ``` ## Deployment and Testing - [x] `dagger call build-docs --src=. --version=dev` produces valid 1.1MB tarball (149 HTML pages) - [x] Pre-commit hooks pass (including new `docs-check-frontmatter`) - [ ] Full `workflow_dispatch` run after merge 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/157
2.6 KiB
| title | date-modified | tags | |||
|---|---|---|---|---|---|
| Review Documentation | 2026-02-09 |
|
Review Documentation
How to periodically review and maintain the BlumeOps knowledge base.
Review by Staleness
Show docs sorted by when they were last reviewed (most stale first):
mise run docs-review
This reads the last-reviewed frontmatter field from each card. Cards without the field are treated as never-reviewed and appear at the top. The script shows a staleness table and then displays the most stale card with a review checklist.
To show more entries in the table:
mise run docs-review -- --limit 30
Marking a Card as Reviewed
After reviewing a card, add or update the last-reviewed field in its frontmatter:
---
title: Some Card
last-reviewed: 2026-02-09
tags:
- reference
---
Commit this change alongside any fixes you make during the review.
Review Checklist
When reviewing a documentation card, consider:
| Check | Description |
|---|---|
| Accuracy | Is the information current and correct? |
| Links | Are wiki-links working? Should more be added? |
| Scope | Is the card appropriately sized (not too large/small)? |
| Category | Is it in the right section (reference/how-to/tutorial/explanation)? |
| Frontmatter | Are title and tags appropriate? |
| Related | Should it link to related cards? |
Verify Deployed State
For service reference cards, verify the documentation matches reality:
ArgoCD Apps (Kubernetes services)
Check if the app is synced and healthy:
argocd app get <app-name>
argocd app diff <app-name> # Show pending changes
If out of sync, either the docs are stale or a deployment is pending.
Ansible Roles (indri services)
Check if the role applies idempotently (no changes needed):
mise run provision-indri -- --tags <role> --check --diff
If changes would be made, either the docs are stale or the host has drifted.
Pulumi (Tailscale ACLs, DNS)
Check for drift:
# Tailscale ACLs
cd pulumi/tailscale && pulumi preview
# DNS (Gandi)
cd pulumi/gandi && pulumi preview
If changes are pending, investigate whether docs or infrastructure is stale.
Making Changes
If a card needs updates:
- Create a feature branch
- Make the edits
- Run
mise run docs-check-linksto verify links - Create a PR for review
See update-documentation for publishing changes.
Related
- update-documentation - Publishing documentation changes
- exploring-the-docs - Navigating the documentation