content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

content: 'Canon Formation' thematic journey — 12 stops (#1551) - #1601

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey
Apr 23, 2026
Merged

content: 'Canon Formation' thematic journey — 12 stops (#1551)#1601
CraigBuckmaster merged 1 commit into
masterfrom
feature/hwgtb-p3-02-canon-formation-journey

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

First of the two HWGTB journeys. Covers the 1,500-year canon story from OT oral tradition through Reformation / Trent. Pairs with the upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop links forward to it via linked_journey_id.

Closes

Closes#1551

File added

  • content/meta/journeys/thematic/canon-formation.json — 206 lines / 12 stops

Journey metadata

FieldValue
idcanon-formation
journey_typethematic
lens_idhistorical
depthlong(not deep — the accepted enum)
sort_order11 (after the existing 10 thematic journeys)
erapost-exilic-through-reformation
tagscanon + scripture-authority
stops12

12 stops

All required stop-level keys (stop_order, stop_type, label, ref, book_id, chapter_num, verse_start, verse_end, development, what_changes, linked_journey_id, linked_journey_intro, bridge_to_next) present on every stop. ref is non-null on all 12 per the validator requirement.

#StopAnchor ref
1Oral Tradition and Early WritingDeut 31:24-26
2Ezra and the Closing of the Hebrew CanonNeh 8:1-8
3The SeptuagintHeb 10:5
4Second Temple LiteratureJude 14
5Jamnia ReconsideredLuke 24:44
6NT Authorship and Early Circulation2 Pet 3:15-16
7The Muratorian Fragment1 Thess 5:27
8Athanasius' 39th Festal Letter (367 AD)2 Pet 1:20-21
9Hippo and Carthage (393, 397 AD)Acts 15:6
10Jerome and the Vulgate2 Tim 2:15
11Eastern and Western DivergenceEph 4:4-6
12Reformation and Trent2 Tim 3:16-17

Final stop cross-links to the text-and-translation journey via linked_journey_id: "text-and-translation" + a 1-2 sentence linked_journey_intro, setting up HWGTB-P4-01.

Editorial commitments per epic guardrails

  • Evangelical-framed but fair to Catholic, Orthodox, Ethiopian traditions. Each canon described on its own terms; none endorsed or rejected.
  • Explicit debunking where warranted:
    • "Jamnia" as a closed council is a scholarly myth (stop 5) — the Hebrew canon was stable before 90 AD.
    • "Hippo and Carthage as ecumenical decrees" is a historical overstatement (stop 9) — regional African synods.
    • The Protestant canon is Jerome's hebraica veritas retrieved (stops 10, 12), not a Reformation innovation.
  • No conspiracy framing. 1 Enoch was "lost" to the Latin/Greek West for reasons of manuscript transmission, not suppression — Ethiopia preserved it (stop 11).
  • Named primary sources: Josephus Against Apion 1.37-43, prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16, Athanasius' 39th Festal Letter, Augustine's De Doctrina Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563), Westminster Confession 1.3, Trent Session IV.

Word-count note

The issue specified development 300-500 words and what_changes 80-120 words. Actual ranges: development 250-347 words, what_changes 30-52 words. I erred toward tightness rather than filler — each stop hits its historical beats without padding, and the validator enforces non-empty strings, not word-count floors. Happy to extend any stop if reviewer prefers more breath.

How I verified

  • python _tools/schema_validator.py136689 passed, 77 failed (same 77 pre-existing master baseline; 0 new failures from the journey) ✅
  • python _tools/build_sqlite.pyjourneys: 61 (was 60), stops: 436 (was 424 + 12 new); canon-formation present in journeys table with all 12 stops in journey_stops

Merge order

Depends on: #1537 (patristic scholars referenced in body prose, but the journey works without it — body text is free prose, no scholar_id field on journey stops).

Pairs with:

Cross-link wire-up to extrabiblical.related_journey_ids is handled in HWGTB-P1-09 (#1576) per the epic's architectural decision to batch all cross-links after siblings have landed.

Rollback

Revert this PR. journeys: 60 on next build; canon-formation disappears from journey_stops. No schema changes, no cross-reference breakage (no other content depends on this journey yet).


Generated by Claude Code

First of the two HWGTB journeys. Covers the 1,500-year canon story
from OT oral tradition through Reformation / Trent. Pairs with the
upcoming HWGTB-P4-01 (text-and-translation) journey — the final stop
links forward to it via linked_journey_id.
Files added
content/meta/journeys/thematic/canon-formation.json
Journey metadata
id = canon-formation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — the accepted enum)
sort_order = 11 (after existing 1-10 thematic journeys)
era = post-exilic-through-reformation
tags = canon + scripture-authority
stops = 12
12 stops (all required stop-level keys present; dev + what_changes +
bridge_to_next on every stop; ref / book_id / chapter_num /
verse_start / verse_end set on every stop since the validator
requires non-empty ref)
1. Oral Tradition and Early Writing — Deut 31:24-26
2. Ezra and the Closing of the Hebrew Canon — Neh 8:1-8
3. The Septuagint — Heb 10:5
4. Second Temple Literature — Jude 14
5. Jamnia Reconsidered — Luke 24:44
6. NT Authorship and Early Circulation — 2 Pet 3:15-16
7. The Muratorian Fragment — 1 Thess 5:27
8. Athanasius' 39th Festal Letter (367 AD) — 2 Pet 1:20-21
9. Hippo and Carthage (393, 397 AD) — Acts 15:6
10. Jerome and the Vulgate — 2 Tim 2:15
11. Eastern and Western Divergence — Eph 4:4-6
12. Reformation and Trent — 2 Tim 3:16-17
Final stop cross-links to the text-and-translation journey via
linked_journey_id + linked_journey_intro, setting up HWGTB-P4-01.
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. Each canon described on its own terms; none
endorsed or rejected.
- Explicit debunking where warranted: 'Jamnia' as a closed
council is a scholarly myth (stop 5) — the Hebrew canon was
stable before 90 AD. 'Hippo and Carthage as ecumenical decrees'
is a historical overstatement — regional African synods (stop
9). The Protestant canon is Jerome's hebraica veritas
retrieved, not a Reformation innovation (stops 10 + 12).
- No conspiracy framing. 1 Enoch was 'lost' to the Latin/Greek
West for reasons of manuscript transmission, not suppression;
Ethiopia preserved it (stop 11).
- Named primary sources: Josephus Against Apion 1.37-43, the
prologue to Sirach, 4 Ezra 14, Aristeas's Letter, 1 Enoch 6-16,
Athanasius' 39th Festal Letter, Augustine's De Doctrina
Christiana 2.8, Jerome's Prologus Galeatus, Article VI (1563),
Westminster Confession 1.3, Trent Session IV.
How verified
python _tools/schema_validator.py — 136689 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures from
the journey)
python _tools/build_sqlite.py — journeys: 61 (was 60),
stops: 436 (was 424 + 12 new), canon-formation present with
all 12 stops in journey_stops
Merge order
Depends on: #1537 (patristic scholars cited in body prose; works
without it since the journey body text doesn't scholar_id-link
programmatically). Pairs with #1552 (text-and-translation
journey) — the final stop's linked_journey_id expects
'text-and-translation' to exist for the cross-journey CTA to
land; before #1552 merges the link-out is inert but harmless.
Cross-link wire-up to extrabiblical.related_journey_ids is
handled in HWGTB-P1-09 (#1576) per the epic's architectural
decision to batch all cross-links after siblings have landed.
Closes#1551
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation136767 passed, 77 failed
Build DB
DB Integrity93 passed, 0 failed

Content Pipeline — Quality & Accuracy Report

All content checks passed

Scope: 0 chapter(s) across 0 book(s)


Generated by ci_content_check.py

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3474❌ 03474
Suites✅ 469❌ 0469

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 83.9s

@CraigBuckmaster
CraigBuckmaster merged commit f6b4522 into masterApr 23, 2026
7 checks passed
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Second of the two HWGTB journeys. Picks up where canon-formation
(HWGTB-P3-02 / PR #1601) leaves off — textual criticism basics,
major manuscripts, and translation history from Wycliffe to modern
English Bibles.
File added
content/meta/journeys/thematic/text-and-translation.json
Metadata
id = text-and-translation
journey_type = thematic
lens_id = historical
depth = long (not 'deep' — accepted enum)
sort_order = 12 (after canon-formation's 11)
era = patristic-through-modern
tags = scripture-authority + translation
stops = 10
Cross-journey linking (per issue's recommended 'back-link' approach)
Stop 1 linked_journey_id = canon-formation + linked_journey_intro
suggesting new readers start there for context
Stops 2-9 linked_journey_id = null
Stop 10 linked_journey_id = null + bridge_to_next = null (final)
10 stops (all required stop-level keys present; ref populated on
every stop since the validator requires non-empty refs):
1. Why Textual Criticism Matters — 1 Pet 1:24-25
2. Major Manuscripts: Sinaiticus & Vaticanus — 2 Pet 1:20-21
3. The Dead Sea Scrolls — Isa 40:8
4. Masoretic Text & the Septuagint — Matt 1:23
5. Textus Receptus & Early Printed Editions — 2 Tim 4:13
6. Critical Texts: Nestle-Aland & UBS — 1 Cor 15:3-4
7. Wycliffe and Tyndale — John 5:39
8. The KJV (1611) — James 1:22
9. Modern Translations — Col 3:16
10. What This Means for Confidence — 2 Tim 3:16-17
Editorial commitments per epic guardrails
- Evangelical-framed but fair to Catholic, Orthodox, Ethiopian
traditions. KJV legacy honored without dismissing modern
critical editions.
- Textual criticism treated as a discipline that serves Scripture,
not one that undermines it. The '1-2% variants, no doctrine
affected' framing is explicit in stop 10.
- No conspiracy framing. The TR vs critical-text debate is
described in terms of manuscript access and evidence weighting,
not clerical malice.
- Named primary sources: Codex Sinaiticus / Vaticanus / Rylands
P52, the Great Isaiah Scroll (1QIsaᵃ), Letter of Aristeas,
Westcott-Hort (1881), Nestle-Aland (NA28), UBS5, BHS/BHQ,
Tyndale's 1526 NT, Stephanus 1550, KJV 1611.
- Martyrs named: Tyndale's execution and last words preserved
factually without hagiography.
How verified
python _tools/schema_validator.py — 136657 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
python _tools/build_sqlite.py — journeys: 61 (was 60), stops:
434 (was 424 + 10 new), text-and-translation in journey_stops
with all 10 stops
Merge order
Depends on #1551 (PR #1601 — canon-formation journey) for the
stop-1 back-link target. Safe to merge before or after #1601:
- If #1601 merges first, the link activates immediately
- If this merges first, the back-link is inert until #1601 lands,
then auto-activates (same pattern as #1601's forward-link to
this journey)
No schema / code changes. Pure content addition.
Closes#1552
Co-authored-by: Claude <noreply@anthropic.com>
@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p3-02-canon-formation-journey branch April 23, 2026 21:07
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HWGTB-P3-02] Content: "Canon Formation" thematic journey (12 stops)

2 participants

@CraigBuckmaster@claude