PRJ-BIBLIOTHECA — Scope Creep & Backlog

Scope Creep & Backlog

SC-001: GitHub Actions Hub Deployment

Field Value

Added

2026-04-12

Trigger

Cloudflare Pages 20-min build timeout with domus-scripture enabled (~6,800 pages). Build takes ~19 min on Cloudflare vs ~2 min locally. Cloudflare shared runners are ~8x slower.

Scope

Replace Cloudflare’s built-in builder with GitHub Actions + wrangler pages deploy (direct upload). Cloudflare Pages project switches from Git integration to Direct Upload — serves static files only.

Priority

P1 — blocks scripture from appearing on docs.domusdigitalis.dev

Status

Not started

Approach:

  1. Create .github/workflows/deploy.yml in domus-docs

  2. Workflow triggers on push to domus-docs main branch

  3. Workflow also triggers via repository_dispatch from spoke repos (so spoke pushes deploy automatically)

  4. Steps: checkout → npm install → ./build.shwrangler pages deploy build/site --project-name=domus-docs

  5. Secrets needed in GitHub: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID

  6. Disable Cloudflare Pages Git integration (prevent double builds)

  7. Re-enable scripture in hub playbook (step 1m)

Why not alternatives:

  • Split scripture into smaller components — adds architectural complexity, doesn’t solve the underlying Cloudflare constraint. Future spokes (classics with 10,288 sonnets) would hit the same wall.

  • Nav flattening — reduces build time marginally but nav resolution isn’t the bottleneck. Page count is.

  • Keep scripture local-only — defeats the multi-site aggregation purpose of Antora.

Evidence:

Without scripture:  3 min 39s  → success (Cloudflare)
With scripture:    18 min 59s  → failure (Cloudflare 20-min timeout)
Local hub build:    2 min 15s  → all spokes including scripture

SC-002: Spoke Push Auto-Deploy

Field Value

Added

2026-04-12

Trigger

Pushing to a spoke repo (e.g., domus-captures) does not trigger the hub rebuild. Content updates don’t appear on docs.domusdigitalis.dev until domus-docs itself is pushed.

Scope

Add repository_dispatch webhooks from spoke repos to domus-docs GitHub Actions workflow. Each spoke push triggers a hub rebuild.

Priority

P2 — dependent on SC-001 (GitHub Actions deployment)

Status

Not started — blocked by SC-001

SC-003: Custom UI Bundle in scaffold-spoke.sh

Field Value

Added

2026-04-12

Trigger

Standalone spoke builds use default Antora UI instead of Domus Catppuccin bundle. Discovered when opening domus-scripture locally.

Scope

Update scaffold-spoke.sh to generate antora-playbook.yml with the local UI bundle path instead of the default Antora UI URL.

Priority

P3 — cosmetic, only affects local standalone builds

Status

Not started — workaround: step 1i sed command

SC-004: Hebrew Terminal Rendering (Kitty + Nikkud)

Field Value

Added

2026-04-12

Trigger

Hebrew text (WLC with nikkud/cantillation) renders as raw codepoints in Kitty terminal. JetBrainsMono Nerd Font Mono lacks full Hebrew combining mark coverage (U+0590-U+05FF).

Scope

Configure Kitty symbol_map or fallback font for Hebrew Unicode block. Alternatively, add a secondary font with Hebrew support (e.g., Noto Sans Hebrew, SBL Hebrew).

Priority

P3 — cosmetic, only affects terminal trilingual reading. AsciiDoc pages render correctly in browser.

Status

Not started

Execution:

Check if a Hebrew font is already installed:

fc-list :lang=he | head -5

Install a Hebrew font with nikkud support:

sudo pacman -S noto-fonts-extra
# Provides Noto Sans Hebrew — full nikkud + cantillation coverage

Add symbol_map to Kitty config:

# Add to ~/.config/kitty/kitty.conf after font_family line
# U+0590-U+05FF = Hebrew block (consonants, nikkud, cantillation)
# U+FB1D-U+FB4F = Hebrew presentation forms (ligatures)
# Hebrew Unicode support (WLC Tanakh with nikkud + cantillation)
symbol_map U+0590-U+05FF,U+FB1D-U+FB4F Noto Sans Hebrew

Load scripture corpus path variables (if not already in ~/.config/shell/aliases.sh):

export RV="$HOME/atelier/_bibliotheca/Principia/02_Assets/DIS-SPANISH/La_Reina_Valera"
export WLC="$HOME/atelier/_bibliotheca/Principia/02_Assets/DIS-HEBREW/Tanakh"
export KJV="$HOME/atelier/_bibliotheca/Principia/02_Assets/LRN-LITERATURE/sacred/kjv-bible"
Add these to ~/.config/shell/aliases.sh under a SCRIPTURE & LANGUAGE section so they persist across sessions. Without them, $KJV, $RV, $WLC resolve to empty strings and grep fails with "No such file or directory".

Verify rendering:

printf "בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים\n"

If nikkud renders on the consonants (not as raw <05b0> codepoints), it works.

Load scripture corpus path variables (if not already in ~/.config/shell/aliases.sh):

export RV="$HOME/atelier/_bibliotheca/Principia/02_Assets/DIS-SPANISH/La_Reina_Valera"
export WLC="$HOME/atelier/_bibliotheca/Principia/02_Assets/DIS-HEBREW/Tanakh"
export KJV="$HOME/atelier/_bibliotheca/Principia/02_Assets/LRN-LITERATURE/sacred/kjv-bible"
Add these to ~/.config/shell/aliases.sh under a SCRIPTURE & LANGUAGE section so they persist across sessions. Without them, $KJV, $RV, $WLC resolve to empty strings and grep fails with "No such file or directory".

Verify trilingual paste:

paste <(grep 'Genesis 1:1 ' "$KJV/kjv_complete.txt") \
      <(grep 'Génesis 1:1 ' "$RV/biblia_rv1909_completa.txt") \
      <(grep 'בְּרֵאשִׁית 1:1 ' "$WLC/tanakh_completa.txt")
After adding symbol_map, open a new Kitty window or reload config. Old shell history may still display Hebrew as raw codepoints — type commands fresh instead of recalling from history.