Skip to content

docs: design for document-type config#52

Closed
mckeea wants to merge 1 commit into
mainfrom
worktree-doc-type-config-design
Closed

docs: design for document-type config#52
mckeea wants to merge 1 commit into
mainfrom
worktree-doc-type-config-design

Conversation

@mckeea

@mckeea mckeea commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

What

Design proposal only — no pipeline code changed. Adds one document to ai/thoughts/plans/.

Handles the new CLMS_CDSE_Migration_Dashboard.qmd (and its sibling ..._Status.qmd) generically: a document-type frontmatter field + a per-type YAML config declaring which elements a type has and which formats it renders. Mirrors the existing categories.yml + helpers/categories.py pattern, so a future type is a YAML entry rather than a code change.

Per maintainer decisions: declarative on/off toggles (no drop:-style verbs), the document type carries the baseline explicitly, dashboards are HTML-only.

Why it's a pipeline problem, not an authoring one

strip_unknown_frontmatter.py's allowlist deletes toc/format/css from the build copy, so a document cannot opt out of anything itself. The AI keywords + intro for the dashboard are already generated and get injected at build.

Verified

The design rests on per-document frontmatter being able to restrict the format set inside the single project-wide render. Confirmed against Quarto's docs (format is the documented exception to metadata merging) and by rendering two fixtures through the real _meta config: the one declaring format: html produced no PDF and no gfm output, and dropped its PDF download link automatically.

Open questions flagged for review

  1. .llms.md comes from website: llms-txt: true, not the gfm writer — so formats: [html] does not suppress it. This contradicts CLAUDE.md.
  2. code: false (retiring the OJS code-hiding hack) is unverified — my test was inconclusive and is honestly marked as such.
  3. The unconditional "Version" title-meta block in default-before-body.html needs handling.

🤖 Generated with Claude Code

Proposal for handling non-standard documents (the CDSE migration dashboard)
generically: a `document-type` frontmatter field plus a per-type YAML config
that declares which elements a type has and which formats it renders.

Design only - no pipeline code changed. Mirrors the existing categories.yml +
helpers/categories.py pattern.

The core mechanism (per-document frontmatter can restrict the rendered format
set) is verified both against Quarto's docs and by rendering through the real
_meta config. Three open questions are flagged for review, including that
.llms.md is produced by `llms-txt: true` rather than the gfm writer, which
contradicts CLAUDE.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mckeea mckeea closed this Jul 18, 2026
@mckeea
mckeea deleted the worktree-doc-type-config-design branch July 18, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant