Skip to content

Set up cds as a fragment library - #2

Merged
dem-extra1 merged 5 commits into
mainfrom
setup-fragment-library
Oct 12, 2026
Merged

dem-extra1 merged 5 commits into
mainfrom
setup-fragment-library

Conversation

@dem-extra1

Copy link
Copy Markdown
Contributor

Before: the repo is a fresh copy of the qwt template, with its example chapters and template wording.

After: the site is Computational Complexity for Data Science, a fragment library set up the way pds is. Its home page lists the planned topics and links the related libraries, and the sidebar is empty until the first topic page lands.

The home page also lists the starting materials: Arora and Barak, the two Stanford CS154 pages, Ullman's page for the Hopcroft, Motwani and Ullman automata book, and Stanford CS254.

How: the infrastructure comes from pds, renamed for cds. That includes the cds -> . self-symlink, which lets include paths written as cds/... resolve when the site renders standalone, and its lint, lychee, render and R build exclusions. Where qwt was newer than pds, the PR keeps qwt's version: the preview action pins, the plugin list in .claude/settings.json, the widget-panel CSS and the dependabot comment. CLAUDE.md, AGENTS.md and the Copilot instructions name the UCD-SERG lab manual and Principles of Scientific Writing.

Checked: quarto render --to html with Quarto 1.10.18 completes with no warnings, and typos is clean on the changed prose. An adversarial review of the first commit found template leftovers, and the second commit fixes them.

🤖 Generated with Claude Code

https://claude.ai/code/session_0159834hyPXNNGozz8ZrW5nK


Generated by Claude Code

Replace the qwt template's example chapters with the fragment-library
setup that pds uses: a self-referential cds symlink so include paths
written as cds/... resolve standalone, the symlink removed before lintr
runs, a docked sidebar mirrored by navbar menus, and a home page that
lists the planned topics. The repo's own CLAUDE.md, README and package
metadata now describe cds rather than the template.

Files where the template is newer than pds (action pins in preview.yml,
the plugin list in .claude/settings.json, page-navigation.html, the
widget-panel CSS and the dependabot comment) keep the template's version.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159834hyPXNNGozz8ZrW5nK
Remove page-navigation.html (Home is not in the sidebar here), point
/new-chapter at root-level topic pages, drop pds-specific lychee
excludes and unused DESCRIPTION imports, keep the self-symlink out of
R CMD build, and reword template and chapter wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159834hyPXNNGozz8ZrW5nK

Copy link
Copy Markdown
Contributor Author

link-checker fails on one link: the home page links the sister library at https://morrison-lab.github.io/ids/, which 404s because that site has not published yet. It will exist once Morrison-Lab/ids#2 merges and the publish workflow deploys it, and each PR is blocked on the other in the same way. I added the links checked by hand label, which is the skip the shared link-check workflow provides for this. The weekly link check on main will catch the link if it is still broken after both sites publish.

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


Generated by Claude Code

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

The README names the qwt template and the pds library and describes the
latex-macros submodule; the Spellcheck workflow flagged all four words.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159834hyPXNNGozz8ZrW5nK
Address the review nits: chapters/ no longer exists, the preview comment
still described it, _subfiles/ is not created until the first fragment,
and the lint command should restore the symlink even when lint fails.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159834hyPXNNGozz8ZrW5nK

Copy link
Copy Markdown
Contributor Author

Review suggestions, addressed in d4b6c7c along with a Spellcheck fix (pds, qwt and submodule(s) added to inst/WORDLIST; spelling::spell_check_package() is now clean locally):

  • chapters/*.qmd render glob and the stale preview.yml comment: removed and reworded.
  • _subfiles/ in CLAUDE.md: marked as created with the first fragment.
  • lint.md: the symlink restore is now unconditional.
  • Kept as is: the Authors@R name and email (the maintainer's own, as in pds), the appendix heading level and the level-1 slide-break filter (both deliberate pds changes), and bib entries for the starting materials, which come with the first topic page that cites them.

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


Generated by Claude Code

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

The Spellcheck job flagged author names, course terms and "symlink" on index.qmd.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159834hyPXNNGozz8ZrW5nK
@github-actions

Copy link
Copy Markdown

Claude finished review — View run


Review of PR #2, round 3 (commit 1bf1f4a)

This round covers one commit, 1bf1f4a, which adds 16 lines to inst/WORDLIST. I read the diff and grepped index.qmd for the names. I did not run the spell-check workflow.

  • Added entries: The new words are names and terms from the home page: Arora, Barak, Boaz, Sanjeev, Avi, Motwani, Rajeev, Reingold, Omer, Automata, automata, computability, symlink, and the possessives Sipser's, Ullman's and Wigderson's.
  • Matches the page: index.qmd lines 40-55 do use these names. The entries are all fixes at the source, as CLAUDE.md asks, and nothing is suppressed.
  • Ordering: The list stays in the existing C-locale ordering, with capitalised entries before lowercase ones. For example, Sanjeev sorts between RevealJS and SERG.

I found nothing new. My round 2 review gave Ready for merge on d4b6c7c, and it still stands. The two optional leftovers from that round are unchanged: CLAUDE.md:16 still lists chapters/, and the new-chapter command name still says "chapter".

Verdict

Ready for merge

Structured Review Data (JSON)
{
  "schema_version": "1.1",
  "reviewer": "claude",
  "commit_sha": "1bf1f4a3f4fcb0b403e1130a2c740fc9f817a6af",
  "verdict": "CLEAN",
  "findings": [],
  "detailed_assessment": "The only change, inst/WORDLIST, adds names and terms that appear in index.qmd, in the existing sort order, so spell-check is fixed at the source.",
  "holistic_assessment": "The commit is scoped to spell-check hygiene and cannot affect the build or CI pipelines, so the round 2 Ready for merge verdict stands."
}

Reviewed commit: 1bf1f4a

@github-actions

Copy link
Copy Markdown

💰 Cost: $0.1580 (review) — run

Copy link
Copy Markdown
Contributor Author

On the two optional leftovers: CLAUDE.md no longer mentions chapters/ anywhere (grep -n "chapters/" CLAUDE.md finds nothing at 1bf1f4a; line 16 lists the root-level topic pages). The new-chapter command keeps its name to match qwt and pds, where the same command exists; renaming it here alone would split the lab's command set, so that belongs in a qwt change if anywhere.

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


Generated by Claude Code

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.

2026-10-12 08:06 UTC

@dem-extra1
dem-extra1 merged commit 17ef8f2 into main Oct 12, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants