- Add pytest-xdist to dev dependencies for parallel test execution
- Handle "all" string value in is_poetry_chapter() for fully poetic books
- Update PoetryBookData model to accept "all" or list of ints
- Expand valid poetry books list to include all Bible books with poetic sections
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Validates:
- books dict contains only valid poetry books
- poetry_chapters are sorted and unique
- stanza_breaks have valid chapter keys with sorted verse lists
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update Pydantic model to match nested JSON structure (Book → Chapter → Verse)
- Rename field: historical_context → historical (11,950 entries)
- Remove unused application field
- Update VerseCommentary schema with nested VersesDict and ChaptersDict
- All 18 data validation tests now passing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix 98 verses with narrative introductions (e.g., 'And he said unto them')
Only the spoken words of Jesus are now marked, not narrative text
- Add JSON Schema for red_letter_verses.json validation
- Add RedLetterVerses Pydantic model to validate_data.py
- Add test_red_letter_verses_structure test
- Update data directory README with red letter section
Changes ensure accurate red letter edition rendering where only
Jesus' actual words appear in red, not narrative introductions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Updated the VerseCommentary validation regex pattern to support:
- Apostrophes in book names (e.g., "Solomon's Song")
- Verse ranges (e.g., "Genesis 1:4-5")
This brings the validator in line with other validators in the codebase
and fixes failing data validation tests.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit adds comprehensive validation for all book introduction files
in data/books/ using Pydantic models and JSON Schema.
Changes:
- Added BookIntroduction Pydantic model with nested models:
- OutlineSection: Validates book outline sections
- KeyTheme: Validates key themes with descriptions
- KeyVerse: Validates key verses with references and text
- Added validate_all_books() function to validate all 66 book files
- Added validate_book_file() helper function
- Added --books CLI flag to validate book files separately
- Generated book_introduction.schema.json JSON Schema file
- Fixed KeyVerse model field name from 'verse' to 'reference'
- Added 4 new tests to validate book directory and all 66 books
All 66 book files now validate successfully against the schema.
Test suite updated: 268 tests passing (added 4 book validation tests).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Pydantic models for all 6 main data files:
- bible_metadata.json
- word_studies.json
- study_guides.json
- verse_commentary.json
- featured_verses.json
- resource_slugs.json
- Add BookIntroduction schema for book JSON files
- Create scripts/validate_data.py:
- Validates JSON data using Pydantic models
- Can generate JSON schemas from Pydantic models
- CLI with --verbose and --generate-schemas flags
- Add test suite (tests/test_data_validation.py):
- 12 tests validating data file structure
- Parametrized tests for all data files
- Integrated into existing test suite
All validation tests pass. JSON schemas auto-generated from Pydantic models.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>