Add `text` language tag to 25 unlabeled fenced code blocks across the
public-facing READMEs. Mostly directory-tree listings, all-contributors
bot instructions, and pseudo-output ASCII blocks — none were getting
syntax highlighting anyway, but the explicit tag silences markdownlint
MD040 and signals intent ("this is plain text, not a forgotten lang").
GitHub's github-markdown-css applies:
.markdown-body table { display: block; width: max-content; max-width: 100%; }
The HTML width="100%" attribute is a presentational hint with lower
specificity than the class selector, so tables with short cell content
were sizing to max-content and not stretching to fill the column.
Tables with long sentences per cell stretched fine, masking the bug.
Add inline style="width:100%" (specificity 1,0,0,0) which overrides
the class-selector rule. Keep width="100%" attribute as a fallback for
non-GitHub renderers (VSCode preview, GitLab, plain HTML viewers).
54 tables updated across 10 READMEs + the two contributor-sync scripts
that regenerate auto-managed tables.
The sub-project READMEs used an old-school nested-table card design
with hardcoded bgcolor="#ffffff", "#cfd6dd", "#eef2f7" plus deprecated
HTML4 attributes (cellpadding, cellspacing, border). It looked good in
light mode but produced harsh white islands in GitHub's dark theme,
which is what most readers see today.
Across 11 sub-READMEs:
- Strip the card wrapper so data tables are just clean
<table width="100%"> with semantic <thead>/<tbody>. Headers keep
their column widths; bgcolor/valign/zebra-stripe cruft is removed
(GitHub provides its own theme-aware striping).
- Convert the early-release callouts (and mlperf-edu's two-tier
status block + "source of truth" note + interviews' two info boxes)
to GitHub-native > [!NOTE] / > [!WARNING] / > [!TIP] callouts.
These are theme-aware, get proper icons, and render correctly in
light AND dark mode.
Net result: 528 lines of HTML cruft removed, 230 lines of clean
markdown added. Visual identity is preserved (callouts still stand
out, tables still stretch full-width) while becoming dark-mode safe
and consistent with the main README.
Add `width="100%"` to every HTML content and contributor table across all
project READMEs so they render full-width on GitHub instead of collapsing
to natural content width. Cell-level `width="X%"` percentages were already
in place but only take effect once the table itself has an explicit width.
Also update the contributor-sync scripts so the auto-generated tables stay
consistent on the next bot run:
- .github/workflows/contributors/generate_main_readme.py
- .github/workflows/contributors/generate_readme_tables.py
Scope: 27 files, 85 tables. Sub-project READMEs that already use the
"card" pattern (labs/, kits/ content sections with <table width="98%">
wrappers) are intentionally untouched.
- Add wrap_readme_data_tables.py to frame <table>+<thead>/<tbody> blocks in a
98% width panel (#cfd6dd border, #eef2f7 headers, zebra body rows where
applied manually in converted tables).
- Apply wraps to book, kits, labs, slides, tinytorch; tbody wraps for kits
docs/related and instructors overview.
- Convert remaining Markdown tables in mlsysim, mlperf-edu, and interviews to
the same HTML pattern; replace StaffML markdown callouts with HTML panels.
- Add thead rows to kits/instructors body-only tables for clearer hierarchy.
Replace markdown blockquotes with a shared centered table pattern
(cellpadding, bgcolor panel, h3 + aligned paragraphs) so GitHub renders
consistent spacing. Align labs and mlsysim DEV-BANNER with the same layout
and 2026 messaging.
Use a short top-of-README callout for periodic-table, StaffML, TinyTorch,
slides, and instructors: live with the 2026 release, expect steady iteration,
link to GitHub issues. Slides banner replaces dev-only wording with the same
framing while keeping dev/live badges.
Audit of the eight sub-project READMEs showed inconsistent surrounding
text around the auto-managed contributor table — some had a Legend line,
some didn't; instructors used a different heading style; interviews was
missing the thanks blurb and CTA; mlsysim was missing the END marker
and the recognition CTA.
Standardize all eight to the same template: heading + thanks blurb +
legend + ALL-CONTRIBUTORS markers + Recognize-a-contributor CTA.
Per-project quirks preserved: interviews keeps its closing author
sign-off paragraph; CTA wording stays project-specific (e.g. labs
suggests "code, tutorial, test, or doc" while kits suggests
"tool, test, video, or doc").
Per-project sections kept (not consolidated into root). Sub-READMEs
are landing pages, sub-projects could be extracted to standalone repos
later, and recognition is more meaningful where the work lives. The
root README continues to aggregate everything via the existing
sectioned tables.
Closes the gap where Slides and Instructor Site were first-class Quarto
sites but invisible to the contributor recognition pipeline, and fixes
two pre-existing holes for mlsysim/interviews.
Workflows
- all-contributors-add.yml: add `slides` and `instructors` to PROJECTS;
add `slide`/`instructor` aliases. Tighten the LLM prompt with explicit
multi-type and emoji/punctuation rules, and add a deterministic regex
fallback that scans the trigger comment for type keywords and unions
them with the LLM result so a flaky classification never drops a tag.
- update-contributors.yml: add `mlsysim`, `interviews`, `slides`,
`instructors` to the push trigger paths and to the file/commit lists,
so edits to those configs actually rebuild and push READMEs.
Generators
- generate_main_readme.py: refactor the per-section block to a single
PROJECT_SECTIONS table so adding a project is one line; add Slides
and Instructor Site sections.
- generate_readme_tables.py: register `slides` and `instructors`.
Configs / READMEs
- New `slides/.all-contributorsrc` and `instructors/.all-contributorsrc`
seeded with profvjreddi.
- Add ALL-CONTRIBUTORS-LIST markers + recognize-a-contributor blurb to
`slides/README.md` and `instructors/README.md`.
- Regenerate root, slides, instructors, and (sorted-badge drift) the
interviews README via the generators.
Docs
- Refresh `.github/workflows/contributors/README.md` to list all 8
projects and document the canonical-list-in-PROJECTS contract.
- Convert basic markdown tables to responsive HTML tables.
- Add centered div headers and blockquotes for a premium SaaS feel.
- Standardize <kbd> tags for all terminal commands across projects.
- Apply consistent visual hierarchy to root, instructors, mlsysim, tinytorch, kits, and labs.
Complete instructor-facing Quarto site with 10 pages:
- Landing page with hero, semester cards, and component overview
- 8-step getting started checklist for adopting instructors
- Week-by-week syllabi for both semesters with direct links
- Course component map with SVG diagrams
- Pedagogy guide with facilitation strategies and cheat sheet
- Assessment rubrics with sample student work
- TA training guide with grading workflows
- Customization guide for quarters, seminars, and emphases
- FAQ addressing common adoption questions
Includes 4 SVG diagrams, ecosystem-aligned SCSS (light + dark),
and navbar structure matching the book sites.