Interactive browser game ported from the-door.py terminal version.
Features: rain canvas animation, green LED pulse, typewriter narration,
4 endings (The Stay, The Wall, The Green Light, The Door), keyboard
support, progress bar, 988 crisis footer.
- Check testament-complete.md (actual output) instead of build/the-testament-full.md
- Exclude .gitea/workflows/smoke.yml from secret scan (it references patterns in its own grep command)
Fixes CI failures on PR #33.
- Add sticky navigation bar with section links
- Add reading progress bar (green glow, top of page)
- Add Open Graph and Twitter Card meta tags for social sharing
- Add all 18 chapters organized by part (The Man / Inscription / Network)
- Chapter links point to source on Gitea
- Add David and The Builder character cards
- Add 'Read Full Manuscript' and 'View Source' CTAs
- Add scroll-triggered fade-in animations
- Add ambient rain sound toggle (placeholder audio)
- Add 'Back to top' footer link
- Character cards now have hover effects
- Responsive improvements for mobile
Closes#27
Adds a dead-simple CI smoke test that runs on every PR and push to main:
Parse checks:
- Chapter validation (structure, numbering, H1 headers)
- Markdown build (combines all chapters)
- Compiled manuscript size verification (>10k words)
- Python syntax check on all .py files
- YAML syntax check on workflow files
Secret scan:
- Scans for common API key/token patterns (sk-ant-, sk-or-, ghp_, AKIA, etc.)
- Searches all text files, excludes .git and the smoke test itself
- Hard fail if any secrets found
Two files:
- scripts/smoke.sh — the smoke test script
- .gitea/workflows/smoke.yml — Gitea Actions workflow
Build system for The Testament:
- build/build.py: compiles chapters to PDF, EPUB, MD
- build/metadata.yaml: book metadata
- build/frontmatter.md: title page, dedication
- build/backmatter.md: acknowledgments, sovereignty note
- Makefile: make pdf, make epub, make md
- .gitignore: build artifacts
Add validate_chapters() function that checks:
- No empty chapter files (whitespace-only counts as empty)
- Every chapter starts with an H1 header (# Chapter N — Title)
- No gaps in chapter numbering (sequential from 1)
- No duplicate chapter numbers
- Header chapter number matches filename number
- Warns on suspiciously short chapters (<50 words)
Validation runs automatically before compilation. If errors are found,
compilation is aborted with clear error messages showing exactly what
to fix.
CLI flags:
python3 compile.py --validate # validate only
python3 compile.py --no-validate # skip validation
python3 compile.py # validate then compile
Closes#21
The README previously listed only Chapter 1 with 'Draft' status.
Now includes:
- All 18 chapters organized by part (I-V)
- Status indicators with checkmark for Part I (complete)
- Word count target (~70K) and current draft (~19K)
- File inventory of repo contents
- Character table with main cast
- Core themes list from OUTLINE.md
- Link to compilation pipeline PR #20