content: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

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: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

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: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

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: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

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: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

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: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

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: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

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: wire cross-links between extrabiblical entries and siblings (#1576) - #1619

Closed
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup
Closed

content: wire cross-links between extrabiblical entries and siblings (#1576)#1619
CraigBuckmaster wants to merge 1 commit into
feature/hwgtb-p4-02d-full-summary-batch4from
feature/hwgtb-p1-09-cross-link-wireup

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

What this does

Last Phase-1 content issue. Performs the single coordinated wire-up pass that #1541, #1544, #1545, #1551 deliberately deferred by shipping with empty related_*_ids[] arrays. Now that all the sibling content has landed (or is in PRs), this back-fill populates the cross-references across the 12 extrabiblical entries.

Closes

Closes#1576

Cross-link matrix applied (per issue spec)

EntryDebatesJourneyDifficult
1_enoch314
2_enoch110
jubilees211
jasher010
assumption_of_moses111
tobit310
judith310
wisdom_of_solomon210
sirach210
1_maccabees210
4_ezra110
damascus_document210

All 12 entries have at least journey='canon-formation' linking back to the Phase-3 journey (#1551 / PR #1601). Entries with significant NT-passage weight (1_enoch, jubilees, assumption_of_moses) also link to the Phase-1 difficult-passage entries (#1545 / PR #1594) that unpack the specific NT texts they illuminate. Entries central to canon-formation debates (tobit, judith, wisdom, sirach, 1_maccabees) link to the debate topics on apocrypha exclusion, Jerome vs Augustine, and Trent (#1544 / PR #1592).

No other changes

No new content. No schema changes. No code changes. Only the three cross-reference arrays on extrabiblical.json entries are modified. Diff against the batch-4 base: 1 file changed, 92 insertions(+), 26 deletions(-) — exactly the 36 array fields (12 entries × 3 arrays) now populated.

How I verified

Merge order (must-follow chain)

This is the last link in the full_summary chain + cross-link wire-up. Depends on#1541, #1544, #1545, #1551, and #1553#1579 (the four full_summary batches) all being merged first for the referenced IDs to resolve. Cannot merge before those land.

Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the 12 entries already have brief_summary + full_summary + this PR's cross-link arrays populated simultaneously at merge time.

master
└─ #1589 (12 brief entries)
└─ #1605 batch 1
└─ #1606 batch 2
└─ #1609 batch 3
└─ #1617 batch 4
└─ this PR (cross-link wire-up)

Rollback

Revert this PR. The three related_*_ids arrays return to [] on every entry. ExtraBiblicalDetailScreen (PR #1597) renders empty sections instead of populated chips — no error, just no cross-links. Full_summary + brief_summary unaffected.


Generated by Claude Code

…1576)
Final Phase-1 content issue. Performs the single coordinated wire-up
pass that #1541, #1544, #1545, #1551 deliberately deferred by
shipping with empty related_*_ids[] arrays. Now that all the sibling
content has landed (or is in PRs), this back-fill populates the
cross-references across the 12 extrabiblical entries.
File
content/meta/extrabiblical.json — three arrays populated per entry:
related_debate_ids, related_journey_ids, related_difficult_passage_ids
Cross-link matrix applied (per issue spec)
Entry Debates Journey Difficult
───────────────────── ─────── ─────── ─────────
1_enoch 3 1 4
2_enoch 1 1 0
jubilees 2 1 1
jasher 0 1 0
assumption_of_moses 1 1 1
tobit 3 1 0
judith 3 1 0
wisdom_of_solomon 2 1 0
sirach 2 1 0
1_maccabees 2 1 0
4_ezra 1 1 0
damascus_document 2 1 0
All 12 entries have at least journey='canon-formation' linking back
to the Phase-3 journey. Entries with significant NT-passage weight
(1_enoch, jubilees, assumption_of_moses) also link to the Phase-1
difficult-passage entries that unpack the specific NT texts they
illuminate. Entries central to canon-formation debates (tobit, judith,
wisdom, sirach, 1 maccabees) link to the debate topics on apocrypha
exclusion, Jerome vs Augustine, and Trent.
No new content. No schema changes. No code changes. Only the
three cross-reference arrays on extrabiblical.json entries are
modified.
How verified
python _tools/schema_validator.py — 136482 passed, 77 failed
(same 77 pre-existing master baseline; 0 new failures)
All cross-reference IDs sourced from the matrix in the issue,
which was itself generated against:
- debate topics authored in #1544 / PR #1592
- difficult passages authored in #1545 / PR #1594
- canon-formation journey authored in #1551 / PR #1601
Merge order (must-follow chain)
This is the LAST link in the full_summary chain + cross-link
wire-up. Depends on #1541, #1544, #1545, #1551, and
#1553-#1579 (the four full_summary batches) all being merged
first for the referenced IDs to resolve. Cannot merge before
those land.
Branched off feature/hwgtb-p4-02d-full-summary-batch4 so the
12 entries already have brief_summary + full_summary + this
PR's cross-link arrays populated simultaneously.
Closes#1576
@CraigBuckmaster

Copy link
Copy Markdown
OwnerAuthor

Superseded by the collapsed replacement PR #1622, which merges the entire chain into a single commit on master (no stacked-branch dependencies, no extrabiblical.json recreation conflicts).

@CraigBuckmaster
CraigBuckmaster deleted the feature/hwgtb-p1-09-cross-link-wireup branch April 23, 2026 20:49
CraigBuckmaster added a commit that referenced this pull request Apr 23, 2026
Collapses the chain of 5 stacked PRs (#1605, #1606, #1609, #1617, #1619)
into a single clean commit on top of master. Each PR in the chain was
rebuilt from a pre-#1589 base and recreated extrabiblical.json from
scratch, which forced a conflict with the canonical file added by
#1589. Since #1619 is a strict superset of the earlier ones, merging
its final state directly is equivalent to sequentially applying all 5.
## Full summaries added (12)
Scholarly long-form treatment for every entry:
1_enoch (9969 chars), 2_enoch (7992), jubilees (8653),
jasher (7372), assumption_of_moses (8297), tobit (8781),
judith (9296), wisdom_of_solomon (8764), sirach (9451),
1_maccabees (9211), 4_ezra (9459), damascus_document (9417)
## Cross-links wired
Referential integrity to existing tables:
- 11 entries gained related_debate_ids → debate-topics.json
- 12 entries gained related_journey_ids → journeys/thematic/
- 3 entries gained related_difficult_passage_ids → difficult-passages.json
## Verified locally
- schema_validator.py: same 77 pre-existing failures, no new ones
- build_sqlite.py: clean build
- validate_sqlite.py: [OK] ALL CHECKS PASSED
## Closes#1553, #1577, #1578, #1579, #1576
## Supersedes
#1605, #1606, #1609, #1617, #1619
Co-authored-by: Claude (for Craig) <claude@anthropic.com>
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.

2 participants

@CraigBuckmaster@claude