Commit Graph

7 Commits

Author SHA1 Message Date
kennethreitz 2d7e9843b0 updates to data storage 2025-11-30 21:26:59 -05:00
kennethreitz a8b480b3ba Add documented biblical close family marriages data
Created supplemental data file with 6 known close family marriages
from Scripture to provide accurate historical context.

New Data Files:
- close_family_marriages.json: Documented biblical marriages including:
  * Abraham & Sarah (half-siblings) - Genesis 20:12
  * Amram & Jochebed (aunt-nephew) - Exodus 6:20
  * Jacob & Leah (first cousins) - Genesis 29:16
  * Jacob & Rachel (first cousins) - Genesis 29:16
  * Nahor & Milcah (uncle-niece) - Genesis 11:29
  * Isaac & Rebekah (first cousin once removed) - Genesis 24:15

- schemas/close_family_marriages.schema.json: JSON schema with:
  * Required fields: person1, person2, relationship, description, verse
  * Enum for relationship types
  * Pattern validation for verse references
  * Optional notes field for additional context

API Changes:
- Add _load_close_family_marriages() helper function with LRU cache
- Load and count known marriages in statistics endpoint
- Statistics now show accurate count: 6 close family marriages
- Provides educational context about ancient Near Eastern customs

Each marriage entry includes:
- Names of both parties
- Specific relationship type (half-siblings, first cousins, etc.)
- Detailed description of the family connection
- Biblical verse reference documenting the marriage
- Additional notes with relevant quotes or context

This helps users understand how family structures and marriage
customs differed in biblical times compared to modern standards.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 14:22:43 -05:00
kennethreitz 7acb2f6981 Move red_letter_verses.schema.json to schemas directory
Organize schema files:
- Moved red_letter_verses.schema.json to schemas/ directory
- Updated README.md references to point to new location (schemas/red_letter_verses.schema.json)
- Maintains consistency with other schema files (all now in schemas/ directory)

The validation script (scripts/validate_data.py) already uses the schemas/ directory, so no code changes needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:34:05 -05:00
kennethreitz 8e22a0fe80 Clean up verse commentary and add John 3:16
- Remove 2,871 verses with generic template commentary
- Keep 11,950 verses with substantive content
- Restructure JSON from flat to nested format (Book → Chapter → Verse)
- Update schema to reflect nested structure
- Add comprehensive commentary for John 3:16 with Greek word studies
- Update commentary.py to handle both flat and nested JSON formats
- Add *.backup to .gitignore

File size reduced from 47MB to 36MB after removing generic content.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 20:02:06 -05:00
kennethreitz 83a3793174 Update schemas README with book introduction documentation
- Added book_introduction.schema.json to schemas table
- Added --books and --generate-schemas CLI examples
- Updated schema count: 6 → 7 active schemas
- Updated last modified date to 2025-11-27

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 18:45:30 -05:00
kennethreitz c226c4bbbf Add JSON schema validation for 66 book introduction files
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>
2025-11-27 18:42:20 -05:00
kennethreitz 8a03d22b9a Add JSON schema validation with Pydantic
- 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>
2025-11-27 18:34:44 -05:00