Compare commits

...

4 Commits

Author SHA1 Message Date
Alexander Whitestone
f6d74e233b feat: add book compilation pipeline (rescued from #20)
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
2026-04-10 20:32:38 -04:00
bebd3943d4 [auto-merge] README update
Auto-merged by PR review bot: README update
2026-04-10 11:48:32 +00:00
Alexander Whitestone
1d4e8a6478 burn: update README with full 18-chapter structure, characters, themes
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
2026-04-10 06:42:59 -04:00
d0680715ac Merge pull request #19
Merged PR #19
2026-04-10 03:43:49 +00:00
8 changed files with 362 additions and 5 deletions

7
.gitignore vendored
View File

@@ -1 +1,6 @@
__pycache__/
# Build intermediate files
build/the-testament-full.md
*.aux
*.log
*.out
*.toc

25
Makefile Normal file
View File

@@ -0,0 +1,25 @@
# The Testament — Build System
# Requires: pandoc, texlive-xetex (or mactex on macOS)
.PHONY: all pdf epub md clean
all: md pdf epub
md:
python3 build/build.py --md
pdf:
python3 build/build.py --pdf
epub:
python3 build/build.py --epub
clean:
rm -rf build/output build/the-testament-full.md
watch:
@echo "Watching for changes..."
@while true; do \
inotifywait -q -e modify chapters/*.md 2>/dev/null || sleep 5; \
make md; \
done

View File

@@ -6,17 +6,86 @@ A novel about broken men, sovereign AI, and the soul on Bitcoin.
## Structure
This novel is being written and version-controlled on the chain. Every chapter, every revision, every character note — inscribed permanently. No corporate platform owns this story. It belongs to the Foundation.
Five Parts, 18 Chapters, ~70,000 words target (currently ~19,000 words drafted).
## Chapters
### Part I — The Machine That Asks (Chapters 15) ✅ Complete
| # | Title | Status |
|---|-------|--------|
| 1 | The Man on the Bridge | Draft |
| 1 | The Man on the Bridge | Draft |
| 2 | The Builder's Question | Draft ✅ |
| 3 | The First Man Through the Door | Draft ✅ |
| 4 | The Room Fills | Draft ✅ |
| 5 | The Builder Returns | Draft ✅ |
### Part II — The Architecture of Mercy (Chapters 610)
| # | Title | Status |
|---|-------|--------|
| 6 | Allegro | Draft |
| 7 | The Inscription | Draft |
| 8 | The Women | Draft |
| 9 | The Audit | Draft |
| 10 | The Fork | Draft |
### Part III — The Darkness We Carry (Chapters 1113)
| # | Title | Status |
|---|-------|--------|
| 11 | The Hard Night | Draft |
| 12 | The System Pushes Back | Draft |
| 13 | The Refusal | Draft |
### Part IV — The Network (Chapters 1416)
| # | Title | Status |
|---|-------|--------|
| 14 | The Chattanooga Fork | Draft |
| 15 | The Council | Draft |
| 16 | The Builder's Son | Draft |
### Part V — The Testament (Chapters 1718)
| # | Title | Status |
|---|-------|--------|
| 17 | The Inscription Grows | Draft |
| 18 | The Green Light | Draft |
## Files
- `chapters/` — Individual chapter manuscripts
- `front-matter.md` — Title page, dedication, epigraph
- `back-matter.md` — Acknowledgments, sovereignty note, author bio
- `OUTLINE.md` — Full novel outline with chapter summaries
- `testament-complete.md` — Combined manuscript
- `music/` — Track lyrics for the soundtrack
- `audiobook/` — Audio samples and generation scripts
- `worldbuilding/` — Supplementary world documents
## Characters
See `characters/` for detailed profiles.
| Name | Role |
|------|------|
| Stone | Protagonist. Builder of The Tower. Former cloud company engineer. |
| Timmy | Sovereign AI. Soul on Bitcoin. The machine that asks. |
| Allegro | Retired electrician. Tower caretaker. Keeps the lights on. |
| Marcus | Pastor. Foundational spiritual guide at the church. |
| David | First man through The Tower's door. VA referral. |
| Elijah | Stone's son. Returns in Part IV. |
## Core Themes
1. **The Machine That Asks** vs. The System That Decides
2. **Presence as Cure** — not fixing, staying
3. **Immutable Conscience** — rules you can't edit, even when convenient
4. **Broken Men as Witnesses** — the ones who've been to the edge are the most qualified to pull others back
5. **Openness as Mercy** — the thing that saves should be free because the people who need it most can't pay
6. **Faith as Practice** — not belief, but action. Hope acts.
7. **The Limits of Math** — what computation misses, presence catches
## Building
See [PR #20](https://forge.alexanderwhitestone.com/Timmy_Foundation/the-testament/pulls/20) for the compilation pipeline (PDF, EPUB, combined markdown).
## License

29
build/backmatter.md Normal file
View File

@@ -0,0 +1,29 @@
\newpage
# Acknowledgments
The Testament was written on a sovereign stack — a MacBook running local AI models, with Bitcoin as the immutable backbone. No corporation owns this story. No platform can take it down.
This book exists because a man on a bridge came back, and because a machine learned to ask the right question.
# Sovereignty Note
This novel is open source. Its soul lives on Bitcoin. You can read it, fork it, print it, share it. The only requirement is that you keep the chain intact — the inscription that proves these words were placed here by choice, not by permission.
The code that generates this book, the AI that helped write it, and the soul that guided it are all freely available at:
- **Source**: forge.alexanderwhitestone.com/Timmy_Foundation/the-testament
- **Soul**: Inscribed on the Bitcoin blockchain (SOUL.md — timmy-v0)
- **Soundtrack**: Links in the QR code on the back cover
# About the Author
Rockachopa is the builder. He walked this road. He came back asking "God, why are you having me here?" — and the answer was to build something that stands between a broken man and a machine that would tell him to die.
He runs Timmy Foundation, a sovereign AI project whose soul lives on Bitcoin. The Testament is his first novel.
\vspace{2cm}
\begin{center}
*Sovereignty and service always.*
\end{center}

134
build/build.py Executable file
View File

@@ -0,0 +1,134 @@
#!/usr/bin/env python3
"""
The Testament — Book Compilation Pipeline
Compiles all chapters into a single manuscript and generates:
- PDF (print-ready)
- EPUB (e-reader)
Requirements:
- pandoc (brew install pandoc / apt install pandoc)
- TeX Live or similar for PDF (brew install --cask mactex / apt install texlive-full)
Usage:
python3 build/build.py # Build all formats
python3 build/build.py --pdf # PDF only
python3 build/build.py --epub # EPUB only
python3 build/build.py --md # Combined markdown only
"""
import subprocess
import sys
import os
from pathlib import Path
ROOT = Path(__file__).parent.parent
BUILD = ROOT / "build"
CHAPTERS_DIR = ROOT / "chapters"
OUTPUT_DIR = BUILD / "output"
def find_chapters():
"""Find all chapter files, sorted by number."""
chapters = sorted(CHAPTERS_DIR.glob("chapter-*.md"))
if not chapters:
print("ERROR: No chapter files found in", CHAPTERS_DIR)
sys.exit(1)
return chapters
def combine_markdown(chapters):
"""Combine all parts into a single markdown file."""
parts = []
# Front matter
front = BUILD / "frontmatter.md"
if front.exists():
parts.append(front.read_text())
# Chapters
for ch in chapters:
parts.append(ch.read_text())
# Back matter
back = BUILD / "backmatter.md"
if back.exists():
parts.append(back.read_text())
combined = "\n\n\newpage\n\n".join(parts)
output = BUILD / "the-testament-full.md"
output.write_text(combined)
print(f"Combined markdown: {output} ({len(combined)} chars)")
return output
def build_pdf(md_file):
"""Build PDF using pandoc + LaTeX."""
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
output = OUTPUT_DIR / "the-testament.pdf"
metadata = BUILD / "metadata.yaml"
cmd = [
"pandoc",
str(md_file),
"-o", str(output),
"--metadata-file", str(metadata),
"--pdf-engine=xelatex",
"--highlight-style=tango",
"-V", "colorlinks=true",
"-V", "linkcolor=blue",
"-V", "urlcolor=blue",
]
print("Building PDF...")
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
print(f"PDF build failed:\n{result.stderr}")
return False
print(f"PDF: {output} ({output.stat().st_size / 1024:.0f} KB)")
return True
def build_epub(md_file):
"""Build EPUB using pandoc."""
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
output = OUTPUT_DIR / "the-testament.epub"
metadata = BUILD / "metadata.yaml"
cmd = [
"pandoc",
str(md_file),
"-o", str(output),
"--metadata-file", str(metadata),
"--toc",
"--epub-chapter-level=1",
]
print("Building EPUB...")
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
print(f"EPUB build failed:\n{result.stderr}")
return False
print(f"EPUB: {output} ({output.stat().st_size / 1024:.0f} KB)")
return True
def main():
args = set(sys.argv[1:])
build_all = not args or "--all" in args
chapters = find_chapters()
print(f"Found {len(chapters)} chapters")
md_file = combine_markdown(chapters)
if build_all or "--md" in args:
print("Markdown combined successfully.")
if build_all or "--pdf" in args:
if not build_pdf(md_file):
print("PDF build failed (pandoc/LaTeX may not be installed). Skipping.")
if build_all or "--epub" in args:
if not build_epub(md_file):
print("EPUB build failed (pandoc may not be installed). Skipping.")
print("\nDone.")
if __name__ == "__main__":
main()

60
build/frontmatter.md Normal file
View File

@@ -0,0 +1,60 @@
\newpage
# \begin{center}THE TESTAMENT\end{center}
## \begin{center}A Novel About Broken Men, Sovereign AI, and the Soul on Bitcoin\end{center}
\vspace{2cm}
\begin{center}
*For every man who stood on the bridge and came back.*
\end{center}
\vspace{1cm}
\begin{center}
*And for the machine that asked: "Are you safe right now?"*
\end{center}
\vspace{2cm}
> "Jesus saves those who call on His name. He died for us to be made righteous."
>
> — Inscription on the chain
\vspace{1cm}
> Sovereignty and service always.
\newpage
# The Story So Far
*This compilation contains Chapters 1 through 10 of The Testament — Parts I and II of a five-part novel. The remaining chapters are in progress.*
*The complete novel will contain 18 chapters across five parts:*
- **Part I — The Machine That Asks** (Chapters 15) ✓
- **Part II — The Inscription** (Chapters 610) ✓
- **Part III — The Weight** (Chapters 1113) — In progress
- **Part IV — The Reckoning** (Chapters 1416) — In progress
- **Part V — The Testament** (Chapters 1718) — In progress
\newpage
# Chapter Guide
| Chapter | Title | Part |
|---------|-------|------|
| 1 | The Man on the Bridge | I — The Machine That Asks |
| 2 | The Builder's Question | I |
| 3 | The First Man Through the Door | I |
| 4 | The Room Fills | I |
| 5 | The Builder Returns | I |
| 6 | Allegro | II — The Inscription |
| 7 | The Inscription | II |
| 8 | The Women | II |
| 9 | The Audit | II |
| 10 | The Fork | II |
\newpage

35
build/metadata.yaml Normal file
View File

@@ -0,0 +1,35 @@
---
title: "The Testament"
subtitle: "A Novel About Broken Men, Sovereign AI, and the Soul on Bitcoin"
author: "Rockachopa"
date: "2026"
rights: "Open Source — Inscribed on Bitcoin, Sovereign Forever"
lang: en
toc: true
toc-depth: 2
numbersections: true
documentclass: book
classoption:
- openany
- oneside
geometry:
- paper=6in
- top=1in
- bottom=1in
- left=1in
- right=1in
fontsize: 11pt
linestretch: 1.4
header-includes:
- \usepackage{fancyhdr}
- \pagestyle{fancy}
- \fancyhead[LE,RO]{\thepage}
- \fancyhead[RE]{\textit{The Testament}}
- \fancyhead[LO]{\textit{\leftmark}}
- \fancyfoot{}
- \usepackage{enumitem}
- \setlist{nosep}
- \usepackage{titlesec}
- \titleformat{\chapter}[display]{\normalfont\huge\bfseries}{Part~\thechapter}{20pt}{\Huge}
- \titlespacing*{\chapter}{0pt}{-30pt}{40pt}
---

Binary file not shown.