Repository navigation
Portfolio cleanup: fix CLI and pbp bugs, stop publishing third-party data, remove leftovers - #8
Merged
Merged
Conversation
Drops the Cursor skill/rule folder and chat export, two throwaway debug scripts, a scraped debug HTML dump, a scratch note, a duplicate "copy" validation file, the routed X-likes notes and the input-unlock packet (which carried local machine paths). Removes the stale references to the chat export and the packet, ignores future debug HTML dumps, and updates the pbp size in the README. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
Notebooks, three scripts and four docs pointed at one Windows user's Downloads and OneDrive folders. Notebooks now read and write under data/, the scripts resolve the repo root from __file__, and the docs use a placeholder path. Also drops an empty notebook, a stale cleanup row and a local-environment aside. The README gains a Highlights section drawn from the existing results, and REPORT.md gains a plain-English summary above the detailed numbers. Counts in the README file table are updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
The move from src/portal to src/ncaa/portal left every ROOT one level short, so config, the SQLite path, board output, geo, TrackMan, the bio sources and the CLI's script paths all resolved under src/. Every CLI command failed on a fresh clone looking for src/config.example.yaml. Also corrects the README quickstart: the seed workbook is not committed, so it is passed explicitly, and the committed 6-4-3 exports are loaded with enrich-643. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
Fails against the pre-fix layout (10 of 10) and passes after it, so the src/ncaa move cannot silently break the CLI again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
The pbp scripts resolved every input and output next to themselves in src/ncaa/pbp, but the CSVs live in data/pbp and the text reports in data/pbp/validation, so the offline steps could not find their inputs from a clone. Adds DATA_DIR and VALIDATION_DIR to ncaa.pbp and points the scripts at them. Markdown reports and the optional Node PDF step stay beside the scripts. Checked by regenerating merge_season_pdf_inputs outputs: byte-identical to the committed files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
_align_to_game_team fell back to a first-word match before trying the other team, so a "San Diego St. Aztecs" batting cell matched "San Diego Toreros" on "san". Every SDSU plate appearance then voted for USD, and the batter-majority pass rewrote 35 of SDSU's 44 batting rows in game 6530004, zeroing USD's defensive battle metrics for that game whenever the calc was re-run. Exact matches now win, and a containment or first-word match only counts when it picks exactly one team. Re-running baseballr_battle_calc on the committed CSV now reproduces the committed battle report exactly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
The 2026-09-12 clearance covered USD's own TrackMan and branding, not data licensed or scraped from others, and data/643_exports/README.md already said those exports were gitignored. Removes the 6-4-3 Charts exports, the PerfectGame, Sidearm and D1Baseball-derived bios, the D1Baseball reference PDF and the generated recruiting boards, which name athletes with fit and likelihood scores, and ignores them. USD TrackMan and the public NCAA play-by-play stay. The README quickstart and data notes now say so, and the README gains an author line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
The plan logs name the reviewers as separate agents running review skills; REPORT.md and the model card now state that plainly so no reader takes them for human peer review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
ncaa_pbp_playwright raised SystemExit at import when Playwright was missing, which the battle calc's except ImportError could not catch, so the offline calc exited. The battle calc also imported it by bare module name, which only resolves when run as a script, so package imports silently skipped the outs recompute. Playwright is now imported inside the one function that opens a browser, and the battle calc imports the parsers by package path. Run without Playwright, the calc reproduces the committed battle report exactly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
Regenerated by baseballr_battle_calc and extract_distinct_descriptions on the committed 51-game CSV. Three bare "X walked." rows now mark the batter as reaching base; the description lists had been built from an earlier 5-game CSV. The battle report is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KiQuqjV83QHxDZC1giR87t
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.
What changed
Bug fix: every CLI command failed on a fresh clone
src/portaltosrc/ncaa/portalleft every module-levelROOTone directory short. Config, the SQLite path, board output, geo, TrackMan, the bio sources and the CLI'sscripts/paths all resolved undersrc/. Onmain,python -m ncaa.cli init --forcecrashes looking forsrc/config.example.yaml.tests/test_paths.pypins eachROOTto the repo root; it fails 10/10 against the old code and passes after the fix.Bug fix: the pbp scripts could not find their data
data/pbp/and the text reports indata/pbp/validation/.ncaa.pbpnow definesDATA_DIRandVALIDATION_DIR, and 15 scripts use them.merge_season_pdf_inputs: its outputs are byte-identical to the committed files.Bug fix: SDSU half-innings relabelled as USD (game 6530004)
_align_to_game_teammatched "San Diego St. Aztecs" to "San Diego Toreros" on the shared first word. The batter vote then rewrote 35 of SDSU's 44 batting rows as USD, zeroing USD's defensive battle metrics for that game on every re-run.mainreproduces this.Bug fix: the battle calc exited without Playwright
ncaa_pbp_playwrightraisedSystemExitat import, whichexcept ImportErrorcould not catch. The battle calc also imported it by bare module name, so package imports silently skipped the outs recompute.Third-party data no longer published
.gitignorecovers USD's own TrackMan and branding, anddata/643_exports/README.mdalready said the 6-4-3 exports were gitignored.scripts/build_html.py; nothing reads the removed files.Removed from the tree
copy.txt, the X-likes notes, the input-unlock packet, and an empty notebook.Machine-specific paths
Write-ups
REPORT.md: a plain-English summary, plus a Who reviewed note.MODEL-CARD.md: says the reviews were separate AI agent sessions, as the plan logs record, not human peer review.Verification
python -m pytest -q: 164 passedruff check src scripts tests: cleanDeliberately not done
5992fdf,ba559be,6d2503c). Rewriting history would change every SHA and break that evidence. The removed files remain in history.stealth.pykept. The D1Baseball live feed depends on it, and the cookie is the program's own subscription. Paste mode remains the no-scrape fallback.