You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migrated from planning/deferred.md, retired in the move to the PR-body-as-spec convention (#50).
What
Replace Material for MkDocs with Zensical (same team) as the builder for the
org site and the per-project docs sites.
Validated feasible against Zensical 0.0.46 on 2026-07-05: a zensical.toml mirror of mkdocs.yml
plus a one-block overrides/main.html tweak (dedupe the homepage <title> by title text) builds the
current site cleanly under both builders. The spike branch was not kept — redo the port from mkdocs.yml when revisiting.
Why it was deferred
Zensical is pre-1.0 alpha with gaps versus our current setup. Last checked 2026-09-06 against
0.0.59: still Development Status :: 3 - Alpha, still "approaching a beta release", no date given.
Full findings with sources: #60 (comment).
Revisit trigger — when Zensical announces beta, re-check these four, in severity order
exclude_docs — documented unsupported
(backlog#65), and fails open: the Rust config
struct has no deny_unknown_fields, so the key is silently dropped and docs/adr/ + docs/agents/
get published. Blocks .github, faststream-outbox and modern-di, which all rely on it.
Hardest blocker, and the one that would do damage rather than break a build.
Orphaned-page detection, to replace validation.omitted_files
(backlog#63). Also still absent: absolute_links and unrecognized_links. All three are silently ignored by the config mapper —
no warning. faststream-outbox is the hard case: it declares all three plus anchors, so three
of its four checks would vanish quietly. Does map already: --strict (and strict: true in mkdocs.yml since 0.0.53), invalid_links, invalid_link_anchors.
page.is_homepage, or any documented template-context reference at all — absent from the
0.0.59 source, and Zensical publishes no context docs. Affects all four overrides/main.html;
fails silently because Zensical's own theme still references it. Being worked around ahead of
time in Replace page.is_homepage with a builder-portable homepage check in every overrides/main.html #71 (nav.homepage), which removes the bug from our side but not the underlying gap.
Then verify by build: classic variant fidelity against the live sites. No longer a blocker on
paper — classic is documented, explicitly recommended for migrating an existing Material project,
and still actively shipped — but the spike branch was not kept, so pixel parity is unverified.
Cheapest watch is subscribing to zensical/backlog#65 and #63 rather than re-running the survey.
Migrated from
planning/deferred.md, retired in the move to the PR-body-as-spec convention (#50).What
Replace Material for MkDocs with Zensical (same team) as the builder for the
org site and the per-project docs sites.
Validated feasible against Zensical 0.0.46 on 2026-07-05: a
zensical.tomlmirror ofmkdocs.ymlplus a one-block
overrides/main.htmltweak (dedupe the homepage<title>by title text) builds thecurrent site cleanly under both builders. The spike branch was not kept — redo the port from
mkdocs.ymlwhen revisiting.Why it was deferred
Zensical is pre-1.0 alpha with gaps versus our current setup. Last checked 2026-09-06 against
0.0.59: still
Development Status :: 3 - Alpha, still "approaching a beta release", no date given.Full findings with sources:
#60 (comment).
Revisit trigger — when Zensical announces beta, re-check these four, in severity order
exclude_docs— documented unsupported(backlog#65), and fails open: the Rust config
struct has no
deny_unknown_fields, so the key is silently dropped anddocs/adr/+docs/agents/get published. Blocks
.github,faststream-outboxandmodern-di, which all rely on it.Hardest blocker, and the one that would do damage rather than break a build.
validation.omitted_files(backlog#63). Also still absent:
absolute_linksandunrecognized_links. All three are silently ignored by the config mapper —no warning.
faststream-outboxis the hard case: it declares all three plusanchors, so threeof its four checks would vanish quietly. Does map already:
--strict(andstrict: trueinmkdocs.ymlsince 0.0.53),invalid_links,invalid_link_anchors.page.is_homepage, or any documented template-context reference at all — absent from the0.0.59 source, and Zensical publishes no context docs. Affects all four
overrides/main.html;fails silently because Zensical's own theme still references it. Being worked around ahead of
time in Replace page.is_homepage with a builder-portable homepage check in every overrides/main.html #71 (
nav.homepage), which removes the bug from our side but not the underlying gap.plugins.llmstxt(modern-dionly) — unsupported(backlog#83).
Then verify by build:
classicvariant fidelity against the live sites. No longer a blocker onpaper —
classicis documented, explicitly recommended for migrating an existing Material project,and still actively shipped — but the spike branch was not kept, so pixel parity is unverified.
Cheapest watch is subscribing to
zensical/backlog#65 and #63 rather than re-running the survey.