Skip to content

Show the mcs prerequisites in a joined tree on the Dependency Tree page - #806

Merged
dem-extra1 merged 5 commits into
mainfrom
claude/project-thread-j628gi
Nov 13, 2026
Merged

dem-extra1 merged 5 commits into
mainfrom
claude/project-thread-j628gi

Conversation

@d-morrison

@d-morrison d-morrison commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Ezra · project thread

Closes #805.

Why

Ezra asked (2026-11-12) whether mds should show a cross-repo tree of how mds builds on mcs. mds's graph already records 40 mcs definitions as prerequisites (391 edges), but the Dependency Tree page shows only mds's own divs. Morrison-Lab/mcs#166 (merged) made mcs publish a graph of its own, so the two can now be joined.

What changed

dependency-tree.qmd gets a second section with a tree that joins the published mcs and mds graphs. It uses the same #dependency-graph-all widget as the lds all-notes tree, which mds's dependency-graph.js already supports. No script or builder changes.

lychee.toml gets one exact-match exclusion, for the data-json attribute. lychee reads that comma-separated list as one URL and reports a 404, although both files it names return 200. The exclusion matches only that exact string, so a real broken link to either file still fails the check. It's here because this PR fails the link check without it.

Verification

  • quarto render dependency-tree.qmd --to html succeeds.
  • I ran the script on the rendered page under jsdom (no browser), feeding it mcs's local build of dependency-graph.json. The joined tree drew 1,552 boxes: 1,389 from mds, 162 from mcs, and 1 sds node that mds links to. Each of the 162 mcs boxes links to its mcs page, for example https://morrison-lab.github.io/mcs/expressions-algorithms.html#def-algorithm. The existing site tree is unchanged at 1,389 boxes.
  • The mcs site is live (checked 2026-11-12, 16:00 PST): mcs/dependency-tree.html, mcs/dependency-graph.json and mds/dependency-graph.json each return 200.

Generated by Claude Code

mds's graph records 40 mcs definitions as prerequisites, but the page's
tree shows only mds's own divs. Now that mcs publishes its graph
(Morrison-Lab/mcs#166), add a second tree that joins the two graphs with
the cross-site widget the lds all-notes tree uses.

Closes #805

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xfc9mnLpkrgpT23d9m5ee
@d-morrison d-morrison self-assigned this Nov 12, 2026
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

…ction (review of #806)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xfc9mnLpkrgpT23d9m5ee

Copy link
Copy Markdown
Contributor Author

The review's not-clean verdict (and so require-clean-verdict) is about one thing: the new links point at the mcs site, and mcs hasn't finished publishing yet. Morrison-Lab/mcs#166 merged at 23:45 UTC, and its Quarto Publish run is still in progress. That run deploys mcs/dependency-tree.html and mcs/dependency-graph.json.

I'm holding the next push (it also takes the review's suggestion to drop the repeated hover and click instructions) until both URLs return 200. That push will re-run the review and the link check.


Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

lychee reads the comma-separated attribute as one URL and reports a 404,
though both graph files it names return 200. Exclude only that exact
string, so a real broken link to either file still fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xfc9mnLpkrgpT23d9m5ee
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@d-morrison

Copy link
Copy Markdown
Contributor Author

Cross-harness review (agy Flash) on e3d7132: VERDICT: CLEAN

The new section links valid mcs anchors, the data-json div mirrors the existing graph div, and the anchored lychee exclude regex is valid and matches only the comma-joined value. Flash asked whether the new # heading should nest lower; I checked dependency-tree.qmd on main, whose existing section is also # How to read the tree {.unnumbered}, so the new heading matches. Reviewed from the diff; I did not render the page.

Posted by Claude Code (AI agent) --- not written by a human.

@github-actions

Copy link
Copy Markdown
Contributor

Claude finished review — View run


I fetched PR 806 live just now. It is open, not a draft, and not merged (mergedAt is null). Its head is a86d2a4af3c79df1e4d0bd5b6bb41318d6050703, the commit I reviewed, so the "Ready for merge" verdict applies to the current head.

The prior clean review of e3d7132 is at #806 (comment). It still stands. The PR's own diff is unchanged since then, and the only commit added is a merge of main that matches git's automatic merge.

Verdict

Ready for merge

Structured Review Data (JSON)
{
  "schema_version": "1.1",
  "reviewer": "claude",
  "commit_sha": "a86d2a4af3c79df1e4d0bd5b6bb41318d6050703",
  "verdict": "CLEAN",
  "findings": [],
  "detailed_assessment": "The dependency-tree.qmd section and the anchored lychee.toml exclude are unchanged; the mcs dependency-graph.json and pages all return HTTP 200 now.",
  "holistic_assessment": "The only change since the last clean review is a main merge matching git's automatic result, so scope, link-check and integration concerns are unchanged and resolved."
}

Reviewed commit: a86d2a4

@github-actions

Copy link
Copy Markdown
Contributor

💰 Cost: $0.2358 (review) — run

Copy link
Copy Markdown
Contributor

Non-Claude reads of this PR's diff at head a86d2a4 (OpenCode Go endpoint; the paid models are at their weekly limit, so the free ids):

  • iceman-contributor-free: CLEAN.
  • beam-free: FINDINGS. It says the link to https://morrison-lab.github.io/mcs/proof-writing.html#def-theorem uses a definition anchor for a theorem and is likely broken. Rebutted: the link is to the definition of the word "theorem" in mcs, so a #def- anchor is correct, and the published page has id="def-theorem" (checked with curl just now).

I also merged main into this branch (server-side update, no conflicts), because the merge gate reported it 120 commits behind with changed workflows. That also fixes the preview's mds-only tree, which counted every umbrella-page div twice before #748 (#812).


Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

@github-actions

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.2
🚀 Preview available at: https://Morrison-Lab.github.io/mds/pr-preview/pr-806/

Built to branch gh-pages at 2026-11-13 06:09 UTC.

@d-morrison

Copy link
Copy Markdown
Contributor Author

Annotation dispositions for head a86d2a4:

I batch-read the annotations of all 50 passing runs on this head (53 annotations in 4 groups). There are no warning or failure annotations; all 53 are notices:

  • ubuntu-latest migration notice, on 50 runs: a GitHub-wide runner-image notice, not tied to this diff.
  • SUBMODULES_TOKEN is empty; cloning submodules anonymously, 1 run: routine for a repo whose submodules are public; the checkout succeeded.
  • Skipping element-level diff highlighting: ... exceed the 500-element cap, 2 runs (the two pages with more than 500 elements): the preview diff tool's size cap, not a check result.

Nothing here needs a fix.

Posted by Claude Code (AI agent) --- not written by a human.

@d-morrison

Copy link
Copy Markdown
Contributor Author

Cross-harness review (agy Flash), carried to a86d2a4: VERDICT: CLEAN

The CLEAN verdict on e3d7132 (review) carries to this head: gh pr diff for both heads is identical apart from the index lines (0 differing lines), so the only change is the merge of main.

Posted by Claude Code (AI agent) --- not written by a human.

Copy link
Copy Markdown
Contributor

Annotation dispositions for head a86d2a4

All 53 annotations on this head's 50 check runs are notices; none is a warning or failure.

  • 50 × "The ubuntu-latest label will migrate to Ubuntu 26": runner-image notice, not about this PR.
  • 1 × "SUBMODULES_TOKEN is empty; cloning submodules anonymously": the only submodule (latex-macros) is public, and checkout succeeded.
  • 2 × "Skipping element-level diff highlighting: ... exceed the 500-element cap": the preview's change highlighter skipped two large pages; it affects only the preview's highlighting, not the build.

Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

@dem-extra1
dem-extra1 merged commit af570c1 into main Nov 13, 2026
52 checks passed

Copy link
Copy Markdown
Contributor

Post-merge non-Claude re-read of this PR's diff (the same diff as at head a86d2a4), sent to the OpenCode Go endpoint's free ids at 2026-11-12 22:17 PST:

  • beam-free: CLEAN ("the added section and join-tree markup look consistent ... the lychee exclude regex matches the comma-separated data-json value as intended").
  • iceman-contributor-free: CLEAN.

This PR was merged after beam-free's earlier FINDINGS read had been rebutted, without a clean re-read first. That broke the lab rule that a rebutted FINDINGS read is not a clean read. The re-read above is clean, so nothing needs reverting.


Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

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.

Show the mcs prerequisites in a joined tree on the Dependency Tree page

3 participants