Pack alignment report
Pack: E:\Cursor_Terra\programming bible\
Date: 2026-11-08
Scope: Structure/wiring and design locks (plan C).
Mode: Report + fix batch 2026-11-08 (items 1–3 + FE Spec .png→.jpg text). Item 5 (FE41–44 → 1536×1024) deferred (GenerateImage cannot emit pack size).
Authority: HTML GDD = lore/figures · FS MD = FS-*/AC-* · FE Spec = boot/Deck/chrome · World/Story MD + GDD sections · PB = implementer · pack-local Marketing/Website = deliverable truth (PACK.md).
Summary
Section titled “Summary”| Bucket | Broken | Stale | Contradict / drift | Notes |
|---|---|---|---|---|
| Structure / wiring | 3 real path classes | 2 bake surfaces | 1 pack-path policy | Hub cards OK |
| Design locks | 0 hard FS↔FE Social splits | — | Extension + size + SoT Marketing | Social prose aligns |
| Figures | 0 missing linked assets | — | FE41–44 size debt; FE Spec .png names |
GDD index uses .jpg |
Fix status: (1)(2)(3)(4) done 2026-11-08 — builders rewrite pack-root docs/ / tfa_* hrefs; SoT + ch.21/23/24 pack-first; FE Spec stills → .jpg (Shiv stays PNG); rebuilt build_fs_html.py · build_pack_spec_html.py · build_pb_html.py. (5) deferred.
Phase A — Structure / wiring
Section titled “Phase A — Structure / wiring”A1 Hub ↔ books — OK
Section titled “A1 Hub ↔ books — OK”Every href on pack index.html resolves (GDD, FS, Arch, FE, World, Story, PB, Kanban/Gantt/Bugs/Keymapping, Marketing, Website, PACK, README, docs/00-source-of-truth.md).
A2 Bake / freshness — STALE
Section titled “A2 Bake / freshness — STALE”| Surface | Finding |
|---|---|
build_doc_order() |
89 docs; 0 missing on disk |
html/index.html |
STALE vs newest source (docs/superpowers/specs/2026-11-02-wall-run-curve-end-design.md 2026-11-07 > HTML 2026-11-05) |
tfa_fs_html/index.html |
STALE vs Terra_Firma_Functional_Specification.md (MD newer 2026-11-07) |
| Arch / FE / World / Story HTML | OK vs their MD mtimes at audit time |
Suggested fix (not applied): python build_pb_html.py · python build_fs_html.py when you approve a rebuild batch.
A3 Pack vs stubs / outside-pack pointers — CONTRADICT
Section titled “A3 Pack vs stubs / outside-pack pointers — CONTRADICT”| id | Books | Claim A | Claim B | Winner | Suggested fix (not applied) |
|---|---|---|---|---|---|
| PTR-001 | docs/00-source-of-truth.md L42 · PACK.md |
Marketing = standalone E:\Cursor_Terra\tfa_marketing_html — not inside this pack |
Deliverable truth is pack tfa_marketing_html/ |
PACK.md | Rewrite SoT Marketing row to pack path; sibling = optional sync source |
| PTR-002 | docs/21-module-kanban.md, docs/23-website.md |
Website Spec at E:\Cursor_Terra\tfa_website_html |
Pack book tfa_website_html/ |
PACK.md | Point bible chapters at pack-relative paths |
| PTR-003 | docs/24-marketing.md |
Book path / robocopy target use Cursor_Terra sibling as primary | Pack is deliverable; sync pulls into pack | PACK.md | Document pack-first; robocopy direction as sync note only |
| PTR-004 | Baked html/index.html |
Same stale outside-pack strings from ch.00/21/23/24 | Pack hub already links pack books | Rebuild after MD fix | Follows PTR-001–003 + build_pb_html.py |
PB-MARKDOWN-MANIFEST.md correctly flags E:\Cursor_Terra\Terra_Firma_*.md as redirect stubs (not a bug).
A4 GDD figures — OK links; SIZE DEBT on FE41–44
Section titled “A4 GDD figures — OK links; SIZE DEBT on FE41–44”- Linked figures from GDD
index.html+ chapters: 53 present, 0 missing. - Illustrated FE JPGs linked in GDD: 28; 24 at pack lock
1536×1024; 4 undersized:
| File | Shipped size | Pack lock |
|---|---|---|
figures/fe41_clan_roster.jpg |
1024×576 | 1536×1024 |
figures/fe42_friends_list.jpg |
1280×720 | 1536×1024 |
figures/fe43_instance.jpg |
1280×720 | 1536×1024 |
figures/fe44_favorites.jpg |
1280×720 | 1536×1024 |
Suggested fix (not applied): Gigapixel full-frame remakes → ship at lock size; QA brand seat against tf_shiv_logo_fire.png (session remakes risk invented crests).
A5 Cross-reader nav — BROKEN relative paths
Section titled “A5 Cross-reader nav — BROKEN relative paths”Query-string links (kanban.html?project=demo) and CSS cache-busters are not dead if the base file exists. Real failures:
| id | From | Bad href | Resolves to | Should be |
|---|---|---|---|---|
| NAV-001 | html/index.html (body prose) |
tfa_gdd_html/index.html |
html/tfa_gdd_html/... (missing) |
../tfa_gdd_html/index.html |
| NAV-002 | tfa_fs_html/index.html |
docs/02-gfp-cookbook.md, docs/02b-..., docs/27-..., docs/inventory/mesh-naming.md |
tfa_fs_html/docs/... (missing) |
../docs/... |
| NAV-003 | tfa_fe_html/index.html |
tfa_gdd_html/index.html |
tfa_fe_html/tfa_gdd_html/... (missing) |
../tfa_gdd_html/index.html |
Left-rail brand links that already use ../ are fine.
A6 ID surface — OK
Section titled “A6 ID surface — OK”| Set | In FS MD | Cited in docs/** |
Missing from FS |
|---|---|---|---|
FS-* |
199 | 92 | 0 |
AC-* |
66 | 27 | 0 |
TBD-* |
57 | 26 | 0 |
Phase B — Design locks
Section titled “Phase B — Design locks”B1 Social / Clan / Friends / Favorites / Instance — ALIGNED (prose)
Section titled “B1 Social / Clan / Friends / Favorites / Instance — ALIGNED (prose)”| Topic | FE Spec | FS | GDD stills |
|---|---|---|---|
| Deck panes | Fireteam / Clan / Friends / Discord | FS-SOC-001 | FE32 + FE41–44 |
| Cap 8 / instance Invite / no favorite on instance | Locked | FS-SOC-002 / 007 | FE43 |
| Clan full roster + clan Send; row Invite = fireteam | Locked | FS-SOC-003 / 004 | FE41 |
| EOS Friends ≠ Discord; favorites diamond shared | Locked | FS-SOC-006 / 008 | FE42 / FE44 |
| One Send; Discord delivery non-authoritative | Locked | FS-SOC-004 | FE35 |
Drift (soft): FE Spec figure table still names FE41–44 (and many FE33+) as .png; pack + GDD ship .jpg only. FE Spec does not inline FS-SOC-* IDs (prose matches FS; IDs live in FS).
B2 Auth / EOS / Discord / Stay signed in — ALIGNED
Section titled “B2 Auth / EOS / Discord / Stay signed in — ALIGNED”FE Spec maps Continue with Discord + Stay signed in to FS-ID family (FS-ID-004 / FS-ID-006 cited in FE). No contradiction found in this pass.
B3 Command Deck / pause / Online overlay — ALIGNED (spot-check)
Section titled “B3 Command Deck / pause / Online overlay — ALIGNED (spot-check)”FE Spec: Online overlays do not pause; Solo pauses. Matches FS-SES overlay policy references used in Social (FS-SES-005). No contradiction logged this pass.
B4 Ultimate / fire Shiv — LOCK TEXT OK; ART DEBT
Section titled “B4 Ultimate / fire Shiv — LOCK TEXT OK; ART DEBT”| Layer | Claim |
|---|---|
| FE Spec | Painted Shiv; FE30 fire; assets tf_shiv_logo.png / tf_shiv_logo_fire.png; no skull/helmet/triangle-eye |
| PB / Demo | Ultimate separate from Flow (FS-CMB-006); Demo may ship OV placeholders |
| GDD FE41–44 remakes (session) | Risk of invented orange crest in brand seat vs lock PNG |
Suggested fix (not applied): Visual QA + remake/stamp policy per standing locks — not part of this report pass.
B5 Demo cuts vs Full — OK pointer pattern
Section titled “B5 Demo cuts vs Full — OK pointer pattern”docs/22-demo.md cites FS IDs heavily and defers non-Demo surfaces. No missing FS IDs from docs cite set (A6). Full vs Demo ownership remains “Demo cuts in ch.22” per manifest.
B6 Economy seats — ALIGNED
Section titled “B6 Economy seats — ALIGNED”FE Spec lock: Character I title bar = CREDITS + BTUCOIN; LUMENAR = Marketplace Wallet only — matches W_TFA_IWallet / economy lock language and GDD I-wallet rules.
B7 Story / World — OK framing
Section titled “B7 Story / World — OK framing”Story MD carries parent book → Game Story child framing; GDD has earth-worldbuilding / storyline sections and Journey “Game Story log” chrome. No hard contradiction in this pass.
B8 Marketing / Website — CONTRADICT (paths only)
Section titled “B8 Marketing / Website — CONTRADICT (paths only)”Same as PTR-001–003. Product content of pack books was not deep-diffed against Cursor_Terra siblings (would need explicit sync audit).
Extension drift (FE Spec ↔ GDD figures)
Section titled “Extension drift (FE Spec ↔ GDD figures)”FE Spec appendix lists illustrated stills as .png (e.g. fe41_clan_roster.png … fe44_favorites.png, fe33_eos_discord.png, OV29/31/32 .png). On disk under tfa_gdd_html/figures/: matching .jpg exist, .png do not (sample verified). GDD HTML already references .jpg.
| id | Severity | Suggested fix (not applied) |
|---|---|---|
| EXT-001 | Stale / contradict | Global replace FE Spec figure filenames .png → .jpg for shipped stills; keep PNG only for lock stamps (tf_shiv_logo*.png) |
Out of scope / deferred
Section titled “Out of scope / deferred”- Gigapixel / remake execution for FE41–44
- Word
.docxas authority - Deep Marketing/Website content diff vs Cursor_Terra siblings
- Full OV plate size audit beyond FE illustrated set
- Auto-rebuild of HTML readers
Fix log (2026-11-08)
Section titled “Fix log (2026-11-08)”| Item | Change |
|---|---|
| NAV | build_fs_html.py / build_pb_html.py: prefix ../ on docs/ and tfa_* links when baking HTML under subfolders |
| PTR | docs/00-source-of-truth.md, 21-module-kanban.md, 23-website.md, 24-marketing.md → pack-first paths |
| EXT | Terra_Firma_FrontEnd_UI_UX_Spec.md illustrated stills .png → .jpg; canonical Shiv → tf_shiv_logo_fire.png |
| Rebuild | FS + FE/World/Story + PB HTML regenerated |
| Size debt | FE41–44 remain undersized; no stretch / no Gigapixel this batch |