Skip to content

Collapse the deployments site: nav 846 -> 35 lines, 4 authored pages -> 1 - #789

Merged
xmap merged 1 commit into
mainfrom
collapse-deployment-site
Sep 9, 2026
Merged

Collapse the deployments site: nav 846 -> 35 lines, 4 authored pages -> 1#789
xmap merged 1 commit into
mainfrom
collapse-deployment-site

Conversation

@xmap

@xmap xmap commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Summary

docs/deployments/ was 85% of the whole site's nav (846 of 991 lines), giving 80 off-roadmap generalization exercises (facilities CORA has never connected to) the same page-tree depth as the one real pilot, 2-BM.

  • Nav: every Site collapses to one entry pointing at its already-generated index.md (which already lists every hosted beamline with badges + summary). 2-BM keeps its full subtree, unchanged. Every other page still builds and is still reachable via the Site roster, the beamline's own index.md, or direct URL — just not force-listed in the sidebar. Flipped validation.nav.omitted_files from warn to ignore accordingly; validation.links.anchors stays warn and is the correctness net for the merge below.
  • Content: merged each non-pilot beamline's techniques.md + governance.md + model.md + questions.md into one notes.md (headers demoted, cross-links repointed). Nothing reworded — structural merge only. 2-BM is excluded (the one deployment with a real relationship and real questions).
  • Dropped the auto-injected "open a GitHub issue, quote the item ID" footer on Open-questions pages (scripts/mkdocs_hooks.py): once questions.md isn't its own public page, that outreach mechanism — addressed at real facility staff CORA has no relationship with — no longer applies. 2-BM keeps its own hand-written reply section.
  • test_techniques_not_stale.py repointed at notes.md, scoped to just its Techniques section so the Open-questions pipe-tables in the same file don't leak into the stale-Method scan. test_open_questions_alignment.py needed no change — it was already scoped to 2-BM only (the only deployment with an on-disk inventory.md; it's generated for everyone else).

Test plan

  • mkdocs build --strict — clean, no dangling nav or anchors
  • uv run pytest apps/api/tests/unit/deployments/ — 830 passed
  • Spot-checked rendered HTML (site/deployments/chx/notes/index.html etc.) for correct heading anchors
  • git diff --stat matches exactly: 320 authored files -> 80 notes.md, mkdocs.yml nav + one validation line, mkdocs_hooks.py and beamline_pages.py one edit each, one test file updated

🤖 Generated with Claude Code

…-> 1

docs/deployments/ was 85% of the whole site's nav, all to give 80
off-roadmap generalization exercises (facilities CORA has never
connected to) the same page-tree depth as the one real pilot (2-BM):
a generated reader set plus four hand-authored files each
(techniques.md, governance.md, model.md, questions.md), every one
hand-listed in mkdocs.yml.

Two concrete costs followed. Nav was unmaintainable by hand (750
targets listed one line at a time). And questions.md read as an open
letter to a real facility's staff ("What CORA needs the CHX team to
confirm..."), published publicly, with a build-injected footer
instructing the reader to open a GitHub issue and quote the item ID -
CORA has no relationship with these teams, and the footer is what
actively solicited a reply from someone who never asked to be asked.

Nav: every Site now collapses to one entry pointing at its already-
generated index.md, which already lists every hosted beamline with its
badges and summary (site_pages.py's roster table) - nothing new to
write. 2-BM keeps its full subtree unchanged, since it's the one real
deployment worth sidebar navigation. Every other page still builds and
is still reachable via the Site roster, the beamline's own index.md, or
direct URL, just not force-listed in the sidebar. Flipped
validation.nav.omitted_files from warn to ignore accordingly;
validation.links.anchors stays warn, and is the real correctness net
for the merge below (mkdocs build --strict fails on any dangling
anchor).

Content: merged each non-pilot beamline's four hand-authored files into
one notes.md (own H1 dropped, internal headers demoted a level, joined
under Techniques/Governance/Model/Open questions sections). Same-file
cross-references become bare anchors; cross-beamline references
(e.g. ../i22/techniques.md) repoint at ../i22/notes.md#techniques.
Nothing reworded - this is a structural merge, not an editorial pass -
and 2-BM is excluded entirely, since it's the one deployment where a
real relationship and real questions exist. Dropped the auto-injected
footer in mkdocs_hooks.py now that questions.md isn't its own page;
2-BM keeps its own hand-written "How to reply" section unchanged.

test_techniques_not_stale.py repointed at notes.md, scoped to just its
Techniques section (notes.md also carries Open-questions pipe-tables
that must not leak into the stale-Method scan). Its _KNOWN_STALE
backlog is unaffected: this is a structural move, not a content fix.
test_open_questions_alignment.py needed no change - it discovers
directories with both questions.md AND inventory.md on disk, and
inventory.md is generated (virtual) for all but the 2-BM pilot, so it
was already scoped to 2-BM only, before and after this change.

Verified: mkdocs build --strict clean, apps/api/tests/unit/deployments/
(830 tests) green, spot-checked rendered HTML for correct heading
anchors on several merged pages.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Coverage report

Warning

The diff for this PR is too large to be retrieved from GitHub's API (maximum 300 files). Diff coverage is not available for this PR.

This PR does not seem to contain any modification to coverable code.

@xmap
xmap merged commit 9869b9d into main Sep 9, 2026
19 checks passed
@xmap
xmap deleted the collapse-deployment-site branch September 9, 2026 13:02
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