feat: add disc26-29 fixtures, fix false special detection, rewrite AGENTS.md#29
Merged
feat: add disc26-29 fixtures, fix false special detection, rewrite AGENTS.md#29
Conversation
Batch-add 4 disc fixtures from MS IGLOO: - disc26 (D1): 3 episodes, 15 specials — individual OVA playlists + commentary + extras - disc27 (D2): 3 episodes, 15 specials — individual OVA playlists + commentary + extras - disc28 (D3): 3 episodes, 13 specials — MS IGLOO 2, creditless + extras - disc29 (SD): 1 episode (44min OVA), 3 digital archives 453 tests passing across 29 disc fixtures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Two structural fixes to _detect_special_features(): 1. All-episodes-page detection: extend chapter_selection_jt to include JumpTitle values from IG pages where ALL button targets resolve to episode playlists. Previously only single-JT pages were recognized, causing buttons on multi-episode selection pages (disc8, disc26-28) to be falsely flagged as commentary. 2. Navigation playlist filtering: enhance _nav_playlists_from_hints() to follow one level of JumpTitle indirection from first_playback MO. Disc intros (e.g. 00001.mpls on disc26-28) played via first_playback → JumpTitle → MO → PlayPl chain are now correctly identified as navigation playlists and excluded from title-hint supplementation. Also adds obj_jump_titles to MO hints for JumpTitle chain resolution. Affected disc counts: - disc8: 3 → 1 specials (removed 2 false commentary) - disc26: 15 → 12 specials (removed 2 false commentary + 1 bumper) - disc27: 15 → 12 specials (removed 2 false commentary + 1 bumper) - disc28: 13 → 10 specials (removed 2 false commentary + 1 bumper) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rewrite AGENTS.md to fix 12 factual errors identified by 6-model review. Key changes: - Fix version from v0.3+ to v0.1.0 (matches pyproject.toml) - Replace stale test count (131) with dynamic command reference - Update architecture tree: add .github/, all 28 disc test files, fixtures - Correct remux/ as placeholder (actual code in export/mkv_chapters.py) - Document all 10 model.py dataclasses (was 4) - Fix Python version (CI runs 3.14) - Document conftest two-fixture pattern (discX_path + discX_analysis) - Add PowerShell env var syntax for cross-runtime parity - Add Agent Safety section for untrusted disc metadata - Fix disc2 reference in fixture guidelines Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.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
Adds disc26–29 test fixtures, fixes false commentary/bumper special detection, and rewrites AGENTS.md to fix 12 factual errors identified by a 6-model review pass.
Background
The analysis pipeline was incorrectly classifying certain short playlists as commentary or bumper specials on discs with specific navigation structures. Adding four new OVA-style disc fixtures expanded test coverage and exposed the classification bug. Separately, AGENTS.md had drifted severely from the actual codebase state (version, test counts, architecture tree, data model documentation).
Changes
Disc fixtures and analysis fix
tests/fixtures/disc26/throughtests/fixtures/disc29/with MPLS, CLPI, index.bdmv, MovieObject.bdmv, ICS, and bdmt_eng.xml metadatatest_disc26_scan.py,test_disc27_scan.py,test_disc28_scan.py,test_disc29_scan.pywith per-disc integration teststest_disc_matrix.pyfor the new fixturesbdpl/analyze/__init__.py): Eliminated false positive commentary and bumper special detection by tightening classification logictest_disc8_scan.pyAGENTS.md rewrite (6-model review: opus, sonnet, gpt-5.4, gpt-5.3-codex, gpt-5.2, gemini-3-pro)
v0.3+tov0.1.0(matchespyproject.toml).github/, all 28 disc test files, fixture dirsremux/as placeholder (actual remux code inexport/mkv_chapters.py)model.pydataclasses (previously only 4)discX_path+discX_analysis)disc2reference in fixture guidelinesTesting
ruff check .— cleanruff format .— cleanpytest tests/ -v— 452 tests pass including the 4 new disc fixture suites, updated matrix, and all existing testsAdditional Notes
The AGENTS.md rewrite was validated by re-running all 6 models after the changes — all scored 9–10/10 across correctness, completeness, clarity, architecture, and cross-runtime parity (up from an average of 2.3/10 before the rewrite).