Sync people data across website, CV, and lab-manual#13
Merged
jeremymanning merged 14 commits intomainfrom Mar 24, 2026
Merged
Conversation
- Added ContextLab/lab-manual as Git submodule at lab-manual/ - Created scripts/parse_lab_manual.py with parser for lab_manual.tex members chapter, plus helpers for adding/moving members and committing/pushing submodule changes - Created tests/test_parse_lab_manual.py with 17 tests (all passing) - Updated build-content.yml to checkout with submodules - Added full speckit artifacts (spec, plan, research, data-model, tasks) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Created scripts/reconcile_people.py: compares people.xlsx (source of truth), JRM_CV.tex, and lab_manual.tex using exact, nickname, and fuzzy matching (0.85 threshold) - Categorizes discrepancies as auto-resolved, flagged-for-review, or conflicts - Excludes non-person sheets (collaborators, director) from comparison - Created tests/test_reconcile_people.py with 22 tests including a 20+ name variation corpus for fuzzy matching validation - 192 total tests passing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- onboard_member.py now calls add_member_to_lab_manual() after CV update - offboard_member.py now calls move_member_to_alumni() after CV update - Both wrap lab-manual operations in try/except for graceful degradation - Lab-manual changes are committed and pushed directly to master - 192 tests passing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Updated build-cv.yml to checkout with submodules: true - Added submodule initialization check to pre_push_check.py (warning only) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Updated CLAUDE.md: added reconcile command, submodule setup, cleaned up auto-generated sections - Updated AGENTS.md and scripts/AGENTS.md: added new scripts to structure and WHERE TO LOOK tables - All 192 tests pass, pre-push check passes, reconciliation dry-run shows 57 discrepancies (18 flagged for review) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Data fixes from reconciliation dry-run: - Fixed spelling: Aaryan Agarwal → Aaryan Agrawal in people.xlsx - Fixed name: Maura F. Hough → Maura Hough in lab-manual - Fixed name: Francisca O. Fadairo → Francisca Fadairo in lab-manual - Offboarded Maura Hough (2023) to alumni in lab-manual Added to alumni_undergrads in people.xlsx (flagged by reconciliation): - Matthew Givens (2024-2025), Keene Dampal (2025), Jaysen Quan (2025) - Molly McQuoid (2022), Joy Maina (2025), Emmy Thornton (2025) - Moved Matt/Keene/Jaysen/Maura to alumni in lab-manual - Added Joy/Emmy to lab-manual alumni - Closed CV entries for Joy/Emmy Onboarded Andy Kim (Hye-Sung Kim) as undergrad: - Added to people.xlsx, JRM_CV.tex, lab-manual, Google calendars Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CV: Aaryan Agarwal → Aaryan Agrawal, Armando Oritz → Armando Ortiz - people.xlsx: Armando Oritz → Armando Ortiz - lab-manual: Helen Lu → Helen Liu, removed duplicate Hye-Sung Kim (kept Andy Kim) - Reconciliation now shows 1 flagged item (Colson Duncan, pending separate onboarding) down from 18 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- photo_already_processed() now checks square dimensions + transparent corners (RGBA) instead of just file existence, catching unprocessed photos that were placed directly in images/people/ - Reprocessed Andy Kim's photo with hand-drawn border (500x500) - Rebuilt people.html Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Onboarded Colson Duncan as undergrad (people.xlsx, CV, lab-manual, GitHub, Google calendars). No photo yet. - Removed duplicate Colson entry in lab-manual (kept 2025 start year) - Updated README.md: added lab-manual update to onboard/offboard docs, added reconciliation section, added submodule init to build docs - Reconciliation now shows 0 flagged items (down from 18) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Added 5 missing people to CV (Emily Whitaker, Jaysen Quan, Keene Dampal, Matthew Givens, Molly McQuoid) and closed their year ranges. Added 38 missing people to lab-manual: - 10 active undergrads to current section - 25 alumni undergrads to alumni section - 3 alumni grad students to alumni section All three sources (people.xlsx, JRM_CV.tex, lab_manual.tex) are now 100% in sync with 0 discrepancies. Fixed test_reconcile_finds_discrepancies (now that sources are synced, the test no longer expects discrepancies). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sorted all list blocks in both lab_manual.tex (9 lists) and JRM_CV.tex (3 etaremune blocks) by start year. Entries with the same start year are sorted alphabetically by name. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Processed colson_duncan.jpg with face detection and border, updated people.xlsx image reference, rebuilt people.html. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Points to commit 5e83c41 which has deduplicated entries, sorted lists, and all 38 missing people added. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
people.xlsx,JRM_CV.tex, andlab_manual.texin syncNew scripts
scripts/parse_lab_manual.py— parser + write helpers for lab_manual.tex members chapterscripts/reconcile_people.py— three-way comparison tool with fuzzy name matchingtests/test_parse_lab_manual.py(17 tests) +tests/test_reconcile_people.py(22 tests)Other changes
onboard_member.py/offboard_member.pynow update lab-manual (graceful degradation on failure)photo_already_processed()now checks square dimensions + transparent corners instead of just file existencepre_push_check.pywarns if submodule not initializedTest plan
reconcile_people.py --dry-runshows 0 discrepanciespre_push_check.pypasses🤖 Generated with Claude Code