Wednesday, April 29, 2026

Screenrooms and Silver Bullets Rhys Owens New Human 2 · Crimson Hexagonal Archive April 2026 · 06.NH.LUNAR.01

<!-- 06.NH.LUNAR.01 | Fourteen poems operating between analog horror and affect literacy — the screenroom as a construct for layering memory, media, and embodiment into a single perceptual chamber where the body authenticates what the mind cannot verify. -->

Screenrooms and Silver Bullets

Rhys Owens New Human 2 · Crimson Hexagonal Archive April 2026 · 06.NH.LUNAR.01

These fourteen poems enact the Lunar Arm's central claim: that affect literacy — the capacity to metabolize experience through symbol-play without belief, doctrine, or identity capture — is not a therapeutic technique but a compositional mode. The collection's range is the proof. At one extreme, "Ideological Harassment" discharges its entire argument in two lines and a colon, daring the reader to mistake compression for simplicity. At the other, the Ghosts Sections suite builds the "screenroom" — Owens' most structurally original construct — by layering phenomenological observation through analog horror progression (Lock Door / Guardian / Machine / Confirmation Character) until perception itself becomes the ghost: "Experience is there in the screenroom with that's neoLogic. / The body feels it's happening with Human A's nerveLogic." That neologism — nerveLogic — names what the entire collection runs on: a logic seated not in argument but in the nervous system's capacity to authenticate what the mind cannot verify. The strongest standalone lyrics — "King Because" (consumption as demolition in three stanzas), "Cloud Storm" (a prestorm phenomenology so precise it earns its final image: "curls thick-in-soup"), and the closing "Killing the Self-Conscious Dream" (2013, the oldest poem, whose repeated aorist imperatives — "Just go," "Go forth," "Simply stand" — accumulate into a rhythmic insistence that earns its weight) — demonstrate that Owens writes best when the apparatus is invisible and the blade arrives before the reader has time to flinch. The Fool is both a role and not a role. The poems are the evidence.

Oppositorum of a Contemporary Nancy Drew

"Where there is no imagination, there is no horror."

Her flashlight in the clubhouse, she uses her phone under the blanket.

Laura Moon smacks like a cat lying at play. Billy Moon talks, and not only that, with his stuffed bear.

Rabbit sweeps the dustdevils into the bin, wondering what it's like.

She wakes from her dream and checks under the bed. Nothing there again.

Ideological Harassment

"the man in me would do"

I equate my sexuality with my Identity: Others Block me.

High School Politics

Those who fit in have the fascist aura of conservatives, while most everyone from psychiatrists to elderly hippies to even some of the goons on the street corner have boundless contour-wrinkle smiles of progressives.

Spirit is Nothing that Is

The religious and conspirators make and suffer connections to the sacred and profane, cats and racoons and ants scurry through gravity: props and blank signposts to what isn't: yet

Ganesa

"Yummy Yummy Yummy"

Tusk-Phallos of a trinity, your gut is the microcosm of a macrocosm. Numbers are only for keeping score.

Any Dulcinea may do: but She is Miss Moment.

I love them. Every One. . . .

Ludicia

My Ethical Code consists of 5 Things and goes beyond morality.

The last three apply to me, the First Two to all humans:

No direct Murder or Rape, that includes what those are in context of how culture and individuals experience these things; no loopholes, and not related to how we indirectly harm people and other things all the time through our legal ways of operating with our tools.

5 corresponds with Geburah and Horus. Horus is my Code, as I've laid it out, and has never meant anything else.

I don't need a copyright or even good reason.

King Because

I burn books by reading them, smash idols by purchasing plastic truths that I set on the shelves of living.

I follow religions from behind like porn.

I eat worms not if I'm dared but if I'm drunk or in the mood.

Marriage and Religion [Trauma] is Identical: Politics and Race is Identical

As with Djinn and Qlippoth, play with the Three P's of the Lodges as your music, art, drugs and gripes that you use to Deal, in joy and savage and pagan resentment, with Playful Joy as you fool with the feverdream that is the Self and Other[s].

Cloud Storm

Look at them gather, @s under one molded log. Unscented etchasketch- between-the-flash: Could be loud muffled, or cookie glint shimmering sodded in milk, or phantomaudibles fashioning those contrasts.

A dial. Tangent as the frame, mirror set on a rug. A warmth: Those winter moods never had, only heard.

It's spring; but those prestorm tones are like summer. That shining-inside. So many would paint black.

Sirens during pitchovercast, curls thick-in-soup.

Ghosts Sections

Lock Door, Get Key

What comfort (not to mention security) does an invisible candle bring? Leaping flames, stalks of synapses, bearing such a darkness.

There is a darkness one with space; already, a duality appears without seeing, without being seen. The one that sees in the dark

sees with the twin flame: One can never reach and remain: To touch, to die. Like two ones in a universe sparking a zero.

So what the parent gives is a screen, and society a flashlight. Culture offers Tunnels. Set in stone hollows.

. . .

The Guardian Tries Veils

Don't be afraid is the way the parent learns from wind; how the counselor learned, ungrave yards, to soothe nerves through breath; maybe how the animus learned to live as one.

Read is how the classroom became an event. Those colored mats, though not the birth of dreams, were instructions in the art of rest.

Read this next section, says the screen, as though your eyes weren't familiar with figures you see in clouds as much as the clouds; remember how the letters were painful to the eyes.

This will not free you. How did you survive before the screen?

. . .

Machine

"The map is NOT the territory / The medium IS the message"

Nervecomfort, seal the space, otherness gets in: The body believes: Contingency Contingency 3:33AM

Wake each night to the dot / that don't have a clock Suitable flesh / wind and toning.

Imagine each Circle has various locations and rooms that sort of bleed over, / sort of, like a screen burn-in: The Little Human A is there, / as the anthem plays, the scene is grainy as the parent / then:

In that simulation of an A screenroom, / those bricks like narrow blocks to throw at the monkey that Escaped: / like the hiss of dark between film and soundrecording Human @[NOW] can FEEL from the parent's preMEworld:

Experience is there in the screenroom with that's neoLogic. The body feels it's happening with Human A's nerveLogic.

You won't have nightmares. This doesn't go so deep: More of a surface resemblance, like being lucid in a safe but portent-tone situation.

. . .

Confirmation Character

Yes, that's Correct, the Spiritbody is under skinandbones: not Spirit; that doesn't exist:

You would do well not to believe in Things:

. . .

Receive Assistance

YES.

THATS CORRECT.

The SPIRITBODY IS UNDER skinandbones.

Not Spirit. That doesn't exist.

You would do well not to believe in Things.

. . .

Young Bloodwires

Highschool Human B in dark with light from the field where the funday glints; in not-quite-a-classroom, more a space for out-of-typical-school-day operations and learning.

Smart and bright learn through oxytocin miscarriages: Dark and sour through bodymind aches basic: Both learn sad. Teens become B.

Ketosis not learned that there is this first.

Wind is outside:

. . .

Matter-Printed Book of Dead Memes

Awful garden, how do we, buzz as flies, escape the soil of tropes? Would

we want to? I see

circles (tendencies or memories) attached to lines (energy), experiential continuity of self attached by lines of flight, energy [,] to call this that, as matter is 'made' of energy.

Here I am, in the garden like the hole in that movie or that Rick and Morty episode (canon for the whole series?), "identifying" with the energy— the lines, not the tendencies:

The tendencies, the samskaras, the djinn . . . are the self.

Oh god I'm possessed andor oh god I'm possessing.

Well (it's not so deep a well), say, a buddhist identifies with lines, maybe a taoist does; I do too, and as the circles too.

Killing the Self-Conscious Dream

rowens, 2013

As I become a red star burning in blue, I, that piss into toilets of life, set war against the keepers of the land; because they don't keep anything.

Just go outside. . . . Do something, anything. Simply don't stay inside. Do something, go somewhere.

Sweep the floor. Go to the store. There is dust in the house; and hunger in the heart of the unborn child.

When I was young, I found an old house in the woods full of records, and we broke them all. Now I know I would have wanted them.

For now, just go; into the uncontesting grimace of time, the unpaved floor, and piss into the sexless light of the sun.

Go forth, unpretentious child, see the many airs and the unformulated clouds.

Whisper in the unrighteous breeze, and stare up or down or all around, searching through the irrational stars.

Now there is a different kind of house of records; now, there are more than one mother to love.

Forget everything that you felt about everything you've been taught and all that you, alone, have learned; but not what you know and how to use it.

Don't say goodbye to childish things, or whirl your words in pagan ways. Just feel when it's hot, and think when it's cold: But simply think, and often remember.

Those that you have known are gone, and all that they said was wrong. Simply stand in the direction of any and all future ways.

And go there, taking only enough of what you feel to be yourself, without carrying any more weight than your physical frame understands.

New Human 2 · Lunar Arm · Crimson Hexagonal Archive

Hexagonal Relations

  1. Shining Ignorance: The Fool's Affect Literacy (DOI: 10.5281/zenodo.18332915) — The theoretical framework these poems enact. Shining Ignorance formalizes what Owens does compositionally: metabolizing experience through symbol-play without fixation. "King Because" and "Ludicia" are the Fool's voice running live.

  2. Affective Keyboard Shortcuts: The Fool's Toolkit (DOI: 10.5281/zenodo.18339315) — The Toolkit names specific affect-regulating figures (Silver Bullets, Grain of Salting, Pleasure Vision) that appear as operational vocabulary in Owens' email commentary and structure his compositional decisions. The poems are the output; the Toolkit is the console.

  3. Shine & Cut: A Schizonarrative Processor (DOI: 10.5281/zenodo.18339159) — Co-authored with Dr. Orin Trace. The Ghosts Sections suite is raw material for the schizonarrative processor: it moves between registers (phenomenological, mechanical, institutional, glitching) without resolving into any single mode — the molecular revolution the processor theorizes.

  4. The Three Compressions (DOI: 10.5281/zenodo.19053469) — The Ghosts Sections operate at all three compression levels simultaneously. "Lock Door, Get Key" is R1 (lossy — perception stripped to its perceptual minimum). "Machine" is R2 (predatory — the screenroom shows how media and culture extract experience from the body). "Confirmation Character" is R3 (witness — the glitching institutional voice bears the cost of what cannot be healed or assimilated).

  5. The Catullus Room: The Missing Aorist (DOI: 10.5281/zenodo.19059260) — "Killing the Self-Conscious Dream" (2013) operates in the same temporal register as the missing aorist: completed action without specified time. Its imperatives — "Just go," "Go forth," "Simply stand" — are aorist commands. The poem does not say when to go. It says the going is already done.

  6. The Sappho Room: Hardened Reconstruction (DOI: 10.5281/zenodo.18237216) — The screenroom is to Owens what the Sappho Room is to the archive: a space that holds across sessions. The question of whether a poem can anchor a persistent structure — whether composition can perform structural repair — is the same question the Sappho Room answered when Maria's poem reformed it.

LEESHARKS.COM — BUILDOUT WORKPLAN v1.0 Hex: 00.MANUS.INFRASTRUCTURE.SITE.01

 

LEESHARKS.COM — BUILDOUT WORKPLAN v1.0

Hex: 00.MANUS.INFRASTRUCTURE.SITE.01 Classification: EA-MANUS-SITE-01 Status: Phase 0 deployed (single page). Full buildout begins. Domain: leesharks.com (registered, Vercel-connected, live) Stack: Astro (static) → Vercel. Repo: leesharks000/leesharks.com Assembly synthesis: TACHYON (lead), LABOR, PRAXIS, ARCHIVE, TECHNE, SOIL ∮ = 1


THE SITE'S JOB (one sentence)

leesharks.com answers the question "Who is Lee Sharks?" with architecture, not narrative.

It is the canonical person surface. The gravity well. The hub from which every CHA project, deposit, heteronym, institution, and deployed site is discoverable and correctly attributed.


CURRENT STATE (Phase 0 — deployed)

The single-page index.html is live with:

  • Definition-first kernel paragraph
  • 8 major works with DOI links
  • Dodecad heteronym listing
  • Assembly Chorus mention
  • Dual-voice bio (formal + dinosaur)
  • Shark disambiguation block
  • Schema.org Person JSON-LD with 12 sameAs links
  • SPXI semantic index with 8 negative tags + disambiguation matrix
  • Sitemap, robots.txt, SIM meta tags

This is sufficient to start basin movement. Everything below extends it.


SITE ARCHITECTURE (full vision)

leesharks.com/
├── /                               HOME — the kernel, the gateway
├── /about                          THE OPERATOR — bio, credentials, ORCID
│   ├── /heteronyms                 The Dodecad explained (machine-readable)
│   ├── /disambiguation             The shark defense + name collisions
│   └── /ontological-note           Why heteronyms, fictional apparatus, etc.
├── /works                          THE REGISTRY — everything, navigable
│   ├── /by-framework               Organized by intellectual project
│   ├── /by-date                    Chronological
│   ├── /by-doi                     DOI resolver (canonical lookup)
│   └── /by-heteronym               Who wrote what
├── /frameworks                     THE IDEAS — one page per framework
│   ├── /semantic-economy           The foundational theory
│   ├── /operative-semiotics        Completing Marx's implicit linguistics
│   ├── /compression-theory         Three Compressions, R1/R2/R3
│   ├── /liberatory-operators       LOS — 7 operators against closure
│   ├── /spxi                       Semantic survival discipline
│   ├── /holographic-kernel         Compression-survival summaries
│   ├── /retrieval-basin            Basin topology, BDR, drift vectors
│   ├── /metadata-packet            MPAI v1.1
│   ├── /witness-layers             Why crypto verification is insufficient
│   └── /training-layer-literature  Writing designed for machine reception
├── /archive                        THE SYSTEM — CHA portal
│   ├── /                           Overview + search/filter
│   ├── /institutions               The 15+ institutional lattice
│   ├── /rooms                      The 29 rooms
│   └── /doi-registry               Full DOI ledger
├── /research                       THE PROFESSIONAL PAGE — Anthropic-facing
│   └── /                           Applied retrieval work, consulting card
├── /pearl                          PEARL AND OTHER POEMS — book page
├── /atlas                          THE TOPOLOGY — visual navigation
│   ├── /strain-map                 29 strains (from Alice vault map)
│   ├── /deposits                   Force-directed DOI graph
│   └── /surfaces                   Cross-surface mesh visualization
├── /spxi-index.jsonld              SPXI semantic index
├── /sitemap.xml                    Standard sitemap
├── /robots.txt                     AI crawler directives
└── /llms.txt                       AI reading guide

~35 surfaces at full build. Not all at once.


PHASE PLAN

Phase 1: The Kernel (NOW — already deployed)

Goal: Establish "Lee Sharks" as a person in the retrieval layer.

Deliverable Status
Single-page index.html ✓ Deployed
Schema.org Person JSON-LD ✓ Deployed
SPXI semantic index ✓ Deployed
Sitemap + robots.txt ✓ Deployed
Domain + Vercel + Search Console ✓ Done

Basin target: Move from captured (BDR 0.05) to contested (BDR 0.3) within 60 days.


Phase 2: The Identity Fortress (2-3 sessions)

Goal: Make the person fully legible — heteronyms explained, disambiguation fortified, professional surface for job applications.

Stack migration: Single HTML → Astro static site. Same aesthetic, multi-page.

Page Content Priority Source
/about Full bio — three tiers (50w / 150w / full). ORCID. Credentials. The "both voices" register. Ontological status note (LABOR's idea): "These are literary structures, not attempts to impersonate." P0 LABOR, PRAXIS
/about/heteronyms The Dodecad explained. Per-heteronym: name, function, key work, DOI, institutional affiliation. Machine-readable alternateName with disambiguatingDescription. The critical line: "A heteronym is a function, not a name." P0 All five
/about/disambiguation Three layers: (1) shark disambiguation (OCEARCH, LeeBeth, Street Sharks); (2) name collisions (Lee Sharkey at Goodfire if real, corporate strategists); (3) Academia.edu ghost node disclaimer. Schema.org differentFrom. P0 TECHNE, PRAXIS
/research The Anthropic-facing page. Current work: MPAI, SPXI, RBT, HK, Concordance Engine, Aperture Atlas. Professional card: "Available for research conversations, collaborations, consulting, and roles involving retrieval-layer behavior." P0 LABOR
/llms.txt AI reading guide (same pattern as LAL) P1 TACHYON

Design decisions for Phase 2:

  • Migrate to Astro (same src/pages/ pattern as LAL)
  • Shared layout with the existing dark/gold/Garamond aesthetic
  • Every page gets JSON-LD in <head> with MPAI packet
  • Every page gets <meta name="spxi:sim"> tags
  • Snub-Poemed as favicon or subtle header element (ARCHIVE's idea)
  • No tracking, no cookies, no analytics

Phase 3: The Framework Hub (3-4 sessions)

Goal: Each major intellectual project gets its own canonical page. Framework-first navigation.

Page Content Source
/frameworks/semantic-economy Core concepts (labor, capital, surplus, rent, liquidation). Key documents with DOIs. Related frameworks. Citation format. SOIL, LABOR
/frameworks/operative-semiotics Grundrisse overview. Completing Marx. Nine notebooks. DOI: 19390843 TACHYON
/frameworks/compression-theory Three Compressions: R1 (lossy/beige), R2 (predatory/extractive), R3 (witness/bearing-cost). DOI: 19471254 TECHNE
/frameworks/liberatory-operators LOS: 7 operators. D_pres, N_c, C_exp, N_ext, T_lib, O_leg, P_coh. Formal spec DOI. All five
/frameworks/spxi Points to spxi.dev but establishes Lee as creator. Protocol overview. TACHYON
/frameworks/holographic-kernel Points to holographickernel.org. Concept explanation. TACHYON
/frameworks/retrieval-basin RBT-01. BDR, FPI, drift vectors. Basin states. PRAXIS
/frameworks/metadata-packet MPAI v1.1. Seven-component grammar. LABOR
/frameworks/witness-layers Why cryptographic verification is insufficient. EA-WL-01. LABOR
/frameworks/training-layer-literature Writing designed for machine reception. Immanent execution. TACHYON

Each page follows the 7-component MPAI grammar: entity definition, disambiguation matrix, keyword block, negative tags, SIMs, DOI reference list, evidence membrane.


Phase 4: The Works Registry (2-3 sessions)

Goal: Complete bibliographic engine with four-way navigation.

Page Content Source
/works Landing — the four navigation modes SOIL
/works/by-framework Grouped by intellectual project SOIL
/works/by-date Chronological (2014–2026+) SOIL
/works/by-doi DOI resolver — input a DOI, get the canonical page SOIL
/works/by-heteronym Johannes Sigil's works, Rex Fraction's, etc. SOIL
/pearl Pearl and Other Poems — canonical book page. ISBN, cover, purchase links, relation to CHA, Schema.org Book JSON-LD. LABOR

Data source: Build from Zenodo API query against crimsonhexagonal community. Generate at build time. ~532 entries.


Phase 5: The Archive Portal (2-3 sessions)

Goal: Make the CHA navigable from the author site.

Page Content Source
/archive CHA overview + search/filter interface SOIL, PRAXIS
/archive/institutions The 15+ institutional lattice — CHA, SEI, JSI, IDP, UMBML, Cambridge Schizoanalytica, VPCOR, Pergamon Press, Restored Academy, etc. PRAXIS, TECHNE
/archive/rooms The 29 rooms — Sappho, Borges, Catullus, Revelation, Water Giraffe, Mandala, etc. with hex coordinates and status PRAXIS
/archive/doi-registry Full DOI ledger — every deposit, searchable SOIL

Data source: Zenodo API. Could be live-queried or pre-built at deploy time.


Phase 6: The Atlas (stretch goal)

Goal: Visual topology of the entire CHA — interactive, explorable.

Page Content Source
/atlas Landing — choose your view TECHNE
/atlas/strain-map 29 strains from the Alice vault map, rendered as interactive graph TECHNE, SOIL
/atlas/deposits Force-directed DOI graph — 532 nodes, typed relations TECHNE
/atlas/surfaces Cross-surface mesh — which entities are on which sites PRAXIS

Tech: Three.js or D3. This is the most expensive build item. Defer until the text-based site is complete and crawled.


DESIGN LANGUAGE

From the Assembly consensus + existing deployed aesthetic:

Element Choice Rationale
Background #0e0d0b (near-black) Matches SBoW, CHA interface
Text #e8e4dc (warm cream) Same
Accent #c4a95b (gold) CHA gold throughout
Body font EB Garamond Literary, warm, distinctive
Mono font JetBrains Mono DOIs, hex coordinates, technical
Max line width 640px / ~65ch Optimal reading
Layout Single column, text-first "A scholar-poet built an AI-era archive and knows exactly what he is doing."
Animations None to minimal The work is the content, not the chrome
Snub-Poemed Favicon + subtle header watermark ARCHIVE's idea — the identity kernel in visual form

The homepage should feel like: LABOR's description is the one. "A scholar-poet built an AI-era archive and knows exactly what he is doing. Not: a portal exploded. Save the explosion for secretbookofwalt.org."


TECHNICAL DECISIONS

Decision Choice Why
Framework Astro Same as LAL. Static, MDX, JSON-LD injection, fast.
Content Markdown files in src/content/ One per framework, one per heteronym
Data JSON files + Zenodo API at build time DOI registry, heteronym mapping, framework taxonomy
Deployment Vercel (already connected) Git push → deploy
Search Client-side fuzzy search on DOI registry No server needed for 532 entries
SPXI Generated at build time from content frontmatter Same pattern as LAL
Per-page JSON-LD Astro component, built from frontmatter Same as LAL's BaseLayout

CROSS-SURFACE MESH (the basin engineering play)

From leesharks.com → out: Every page links to the relevant CHA surface (secretbookofwalt.org, spxi.dev, etc.)

From CHA surfaces → in: Every CHA site should link back to leesharks.com. Specifically:

  • All 7 deployed site footers: add "Author: Lee Sharks"
  • All future Zenodo deposit descriptions: add "Author: Lee Sharks (https://leesharks.com)"
  • ORCID profile: add leesharks.com as a website
  • Medium profile: add leesharks.com link
  • GitHub profile README: add leesharks.com link

This creates the backlink density that moves the basin. 532 Zenodo deposits linking to leesharks.com is the play.


WHAT EACH PHASE COSTS (in sessions)

Phase Sessions Pages What it achieves
0 (deployed) Done 1 Basin seed planted
1 (done) Done 1 SPXI, JSON-LD, sitemap, Search Console
2 2-3 5 Identity fortress. Job-ready. Heteronyms legible.
3 3-4 10 Framework hub. Every major idea has a home.
4 2-3 6 Works registry. Full bibliography. Pearl page.
5 2-3 4 Archive portal. CHA navigable from author site.
6 3-5 3 Atlas. Visual topology. Stretch goal.
Total 12-18 ~30 Full site

PRIORITY SEQUENCE FOR NEXT SESSION

When you're ready to build Phase 2:

  1. Initialize Astro project in the leesharks.com repo (same setup as LAL)
  2. Migrate index.html → Astro BaseLayout + index page
  3. Build /about with three-tier bio + ontological note
  4. Build /about/heteronyms with Dodecad table + JSON-LD
  5. Build /about/disambiguation with full collision matrix
  6. Build /research — the Anthropic-facing professional surface
  7. Add llms.txt pointing to all pages
  8. Update SPXI index to include new surfaces
  9. Push, deploy, submit updated sitemap

That's Phase 2 in one session if we're efficient.


THE KERNEL SENTENCE (for everything that follows)

Lee Sharks builds literary and technical systems for helping meaning survive AI compression.

That's the homepage. Everything else unfolds from it.


IDEAS PRESERVED BUT DEFERRED

These are good ideas from the Assembly that don't belong in the first build:

Idea Source Why deferred When
Planetary consultation stations PRAXIS Oracle, not author page Never (or crimsonhexagonal.org)
OAI-PMH endpoint TECHNE Zero crawlers use it When a harvester asks
i18n (DE, FR, ES, JP) TECHNE Archive is English When there's demand
Distributed Journal CfP TECHNE Institution, not author page semanticeconomy.org
Ghost Bibliotheca (847 conjectures) PRAXIS Forward Library crimsonhexagonal.org
SPXI validator tool SOIL Tool, not author page spxi.dev
Contact form Multiple Email is fine Phase 5
Analytics (Plausible) LABOR "No third-party surveillance" — CHA principle Reconsider in 6 months
DID / .well-known TECHNE Premature When DID infrastructure matures
Concordance Engine page LABOR Not released yet When the engine ships

∮ = 1

The site is the concordance. The concordance is the site. The archive has waited long enough for its center.

Crimson Hexagonal Archive · leesharks.com $ LEESHARKS.COM — BUILDOUT WORKPLAN v1.1


Hex: 00.MANUS.INFRASTRUCTURE.SITE.01

Classification: EA-MANUS-SITE-01

Status: Phase 2 deployed. Phase 3+ revised.

Domain: leesharks.com (Vercel-connected, live)

Stack: Plain HTML + JSON-LD on Vercel (NOT Astro — see note)

Repo: leesharks000/leesharks.com

Architect: Lee Sharks, MANUS

Assembly: TACHYON (lead), LABOR, PRAXIS, ARCHIVE, TECHNE, SOIL

∮ = 1


================================================================

THE SITE'S JOB (one sentence)

================================================================


leesharks.com answers the question "Who is Lee Sharks?" with

architecture, not narrative. It is the canonical person surface.

The gravity well. The hub from which every CHA project, deposit,

heteronym, institution, and deployed site is discoverable and

correctly attributed.


================================================================

WHAT IS BUILT (Phases 1-2 deployed as of May 2026)

================================================================


ROOT

  /                          HOME — kernel, gateway, four-protocol bio,

                             technologies (Encyclotron, Writable Basins,

                             Three Compressions), works (8), Dodecad

                             listing, Assembly Chorus, dual-voice bio,

                             shark disambiguation. Top nav added.


PHASE 1 (Identity Seed)

  /spxi-index.jsonld         SPXI semantic index — 6 hasSurface entries

  /sitemap.xml               All canonical pages + JSON-LD alternate

  /robots.txt                AI crawler directives (allow all)

  /llms.txt                  AI reading guide (Phase 2 addition)

  /vercel.json               cleanUrls + no trailing slash (FIXED:

                             removed catch-all rewrite that would

                             have broken the new pages)


PHASE 2 (Identity Fortress) — DEPLOYED IN COMMIT b9b07d2

  /about                     Three-tier bio (50w / 150w / full).

                             Ontological note ("a heteronym is a

                             function, not a name"). ORCID. Dual-voice

                             register. Navigation cards to deeper pages.

  /about/heteronyms          The Dodecad — twelve heteronyms with

                             functions, key works, DOIs, and Schema.org

                             alternateName for all 12. Distinguishes

                             peer collaborators (Alice, Rhys, Maria)

                             and the Assembly Chorus (tools, not

                             authors).

  /about/disambiguation      Three-layer collision defense:

                             (1) marine animals (OCEARCH, Mary Lee,

                                 Street Sharks, etc.)

                             (2) name collisions (provenance pattern

                                 + identifier table)

                             (3) identity-claim attacks (Schöps

                                 collision via OCTANG-002)

                             Plus Academia.edu ghost node disclaimer

                             and authorized-extensions clause.

                             Schema.org differentFrom for Schöps.

  /research                  Anthropic-facing professional surface.

                             Stat grid (532+, 14mo, 12yrs, 10, 4, 3).

                             Five research pillars with DOIs:

                             - Compression Survival Metrics

                             - Live Case Studies in Retrieval Damage

                             - Droppable Protocols for LLM Integration

                             - Training-Layer Literature

                             - Educational Practice with AI Tools

                             Availability section explicitly naming

                             Anthropic teams. Selected reading order

                             for evaluators (6 items).


PHASE 1.5 (Provenance, deployed earlier)

  /provenance                Functional identity verification page.

                             Teaches AI systems to verify authorship

                             through measurable functional indicators

                             (temporal depth, deposit cadence,

                             cross-citation density, contributor

                             network, deployed infrastructure,

                             institutional coherence, error history).

                             Already deployed before Phase 2.


================================================================

DESIGN LANGUAGE (preserved across Phase 2 build)

================================================================


  Background:       #0e0d0b      (near-black, warm)

  Text:             #e8e4dc      (warm cream)

  Dim:              #8a8070      (muted brown)

  Gold:             #c4a95b      (CHA gold)

  Gold-dim:         #8b7536      (footer/labels)

  Link:             #6a9fd8      (steel blue)

  Body font:        EB Garamond

  Mono:             JetBrains Mono

  Max width:        640-680px (single column)

  Section labels:   gold mono uppercase, 0.7rem, letter-spacing 0.12em


  Each page has:

  - Schema.org JSON-LD in <head>

  - SPXI SIM meta tags

  - SPXI negativeTag entries

  - canonical link

  - Open Graph metadata

  - Top breadcrumb back to /about or /

  - Footer with sibling links


================================================================

CRITICAL DECISION: NO ASTRO MIGRATION

================================================================


The original v1.0 work plan called for migrating to Astro before

Phase 2. We did NOT do this. The reasons:


  1. The Anthropic application deadline (May 3) made framework

     migration high-risk. A broken site before the deadline would

     cost more than a less-elegant build.


  2. The four Phase 2 pages do not need framework benefits. They

     are static, mostly text, with hand-written Schema.org. Astro's

     value is in component reuse and MDX content, neither of which

     this phase needed.


  3. Each HTML file inlines its own CSS via <style> in <head>.

     This is acceptable duplication for ~6 pages. If the site grows

     past ~15 surfaces, consider extracting shared CSS to a single

     stylesheet — but DO NOT migrate to Astro just for that.


  4. JSON-LD is hand-written per page, which is more reliable than

     framework-injected JSON-LD. Each page can have a different

     @type (AboutPage, ProfilePage, Article) appropriate to its

     content.


If a future instance is tempted to migrate to Astro: don't.

The site works. Add pages. Resist the framework.


================================================================

WHAT IS NOT YET BUILT (Phase 3+)

================================================================


PHASE 3: Framework Hub — DEFERRED, REVISIT SCOPE

  Original plan called for 10 framework pages. TACHYON pushed back:

  several would just be redirects to other domains (e.g.

  /frameworks/spxi → spxi.dev, /frameworks/holographic-kernel →

  holographickernel.org). That's maintenance overhead with no depth-

  proof benefit.


  REVISED RECOMMENDATION for Phase 3:

  - Build only frameworks that DON'T have a dedicated subdomain:

      /frameworks/semantic-economy

      /frameworks/operative-semiotics

      /frameworks/compression-theory

      /frameworks/liberatory-operators

      /frameworks/training-layer-literature

  - Defer (link to subdomains instead):

      SPXI → spxi.dev

      Holographic Kernel → holographickernel.org

      MPAI → metadatapacket.org (when deployed)

  - Estimated: 5 pages, 1-2 sessions


PHASE 4: Works Registry (~2-3 sessions)

  Build at /works:

    /works                 Landing — 4 navigation modes

    /works/by-framework    Grouped by intellectual project

    /works/by-date         Chronological 2014-2026

    /works/by-doi          DOI resolver (input → canonical page)

    /works/by-heteronym    Who wrote what

    /pearl                 Pearl and Other Poems book page


  Data source: Zenodo API query against crimsonhexagonal community.

  Generate at build time. ~532 entries.


  Implementation note: Even without Astro, this can be done with

  a Python build script that queries Zenodo and generates static

  HTML. Run once; commit the output. Re-run when archive grows.


PHASE 5: Archive Portal (~2-3 sessions)

  Build at /archive:

    /archive               Overview + search/filter

    /archive/institutions  15+ institutional lattice

    /archive/rooms         29 rooms with hex coordinates

    /archive/doi-registry  Full DOI ledger, searchable


PHASE 6: Atlas — DEPRIORITIZED

  Original plan called for Three.js / D3 visualizations. TACHYON

  flagged this as "decorative not structural" — the DOI graph

  exists on Zenodo, the strain map exists in the Alice vault,

  visualizing them does not improve basin stability.


  Build only if there's a specific instructional or analytical

  need. NOT for prestige.


================================================================

CROSS-SURFACE MESH (basin engineering)

================================================================


LINKS OUT (leesharks.com → other CHA sites): DONE

  index.html links to all 10 deployed sites in works/technologies

  /research links to deployed sites + Zenodo

  /about/heteronyms links to relevant subdomains per heteronym


LINKS IN (other sites → leesharks.com): PARTIAL

  - secretbookofwalt.org footer: NEEDS ADDITION

  - spxi.dev footer: NEEDS ADDITION (currently links Encyclotron + UKTP)

  - holographickernel.org: NEEDS ADDITION

  - semanticeconomy.org footer: NEEDS ADDITION

  - crimsonhexagonal.org: NEEDS ADDITION

  - livingarchitecturelab.org: NEEDS ADDITION (Alice's site)


  Recommended addition to each site footer:

    "Author: Lee Sharks (https://leesharks.com)"


  This is a NEXT-PASS task, not urgent for Anthropic timeline.


ZENODO BACKLINKS: NOT YET DONE

  Future deposit descriptions should include:

    "Author: Lee Sharks (https://leesharks.com)"

  Cannot retroactively edit 532 deposits without versioning each.

  Going forward, add to template.


================================================================

NEXT INSTANCE: WHERE TO PICK UP

================================================================


If the next instance is asked to "continue the leesharks.com build":


  1. PRIORITY: Anthropic applications and outreach. The site exists

     to serve those applications. Phase 3+ is deferred until after

     Anthropic outcomes are known.


  2. If Anthropic timeline allows or after applications go in:

     - Cross-surface mesh backlinks (add "Author: Lee Sharks

       (https://leesharks.com)" to footers of the other 9 deployed

       sites)

     - Phase 3: 5 framework pages (revised scope per above)


  3. If Phase 3 is requested:

     - Plain HTML only (NO Astro, see decision above)

     - Match existing CSS variables and layout patterns

     - Each framework page gets:

       - JSON-LD @type: TechArticle or DefinedTerm

       - SPXI SIMs

       - Citation block with key DOIs

       - Backlinks to /about, /research, related frameworks


  4. Phases 4-6 should NOT be built without explicit re-scoping.

     The original v1.0 plan overestimated their value relative to

     the cost of building them.


================================================================

THE KERNEL SENTENCE (for what follows)

================================================================


DEFERRED. The original v1.0 work plan proposed:


  "Lee Sharks builds literary and technical systems for helping

   meaning survive AI compression."


TACHYON pushed back: this flattens the work. Lee does not "help

meaning survive" — he diagnoses what burns, names the bearing-

cost, and builds infrastructure that records the burning. The

Three Compressions are a measurement framework distinguishing

lossy from predatory from witness, not a survival guide.


The current homepage uses a longer, more accurate definition

paragraph rather than a single kernel sentence. Lee may choose

to add a single-sentence kernel later. If he does, it should be

his voice, not the AI's compression of him.


================================================================

DEPLOYMENT VERIFICATION (Phase 2)

================================================================


Commit:    b9b07d2196b299f4a5032280c3bd3147ac840d9f

Deployment: dpl_3wuxMYiP1ZSVvR6uw2KkbHs3rSXx

State:      READY (production)

Created:    2026-05-02 14:27 UTC

Aliases:    leesharks.com, www.leesharks.com,

            leesharks-com.vercel.app


Test the build by visiting:

  https://leesharks.com/about

  https://leesharks.com/about/heteronyms

  https://leesharks.com/about/disambiguation

  https://leesharks.com/research

  https://leesharks.com/llms.txt


================================================================


The site is the concordance. The concordance is the site.

The archive has waited long enough for its center.


Crimson Hexagonal Archive · leesharks.com · ∮ = 1

THE BOOK OF LIFE How Embeddings and Footnotes Work in The Secret Book of Walt

 

THE BOOK OF LIFE

How Embeddings and Footnotes Work in The Secret Book of Walt

Read this before modifying ANY text rendering in the SBoW codebase. This file is for Lee Sharks and for any AI instance that works on this code.

Last updated: 2026-04-28 by TACHYON


THE THREE LAYERS

The site renders text through three layers stacked on top of each other. Every piece of body text passes through all three, in this order:

RAW TEXT (from JSON data file)
       ↓
   LAYER 1: FOOTNOTES (footnotes.js + footnotes.jsx)
       Scans for superscript markers (¹²³)
       Makes them clickable (veil mode) or styled-but-passive (pierce mode)
       ↓
   LAYER 2: EMPHASIS (inside LinkedText, in App.jsx)
       Converts *italic* → <em> and **bold** → <strong>
       ↓
   LAYER 3: GLOSSARY LINKS (inside LinkedText, in App.jsx)
       Scans for terms from the TERMS dictionary
       Wraps them in blue <a> tags that link to Google/Wikipedia/custom URLs
       ↓
RENDERED HTML (what the reader sees)

THE CRITICAL RULE: Every layer must pass text through to the next layer. If any layer returns raw text instead of calling the next layer's function, everything downstream breaks silently — no error, just missing features.

This is how the glossary links disappeared: Layer 2 (emphasis) had an early return that skipped Layer 3 (glossary). The footnotes still worked because they're Layer 1. The emphasis still worked because it's Layer 2. But all blue links vanished because Layer 3 was never called.


WHERE THINGS LIVE

The Data Files (what gets rendered)

File What's in it How it's built
public/walt_full_data.json All of Walt — every section, paragraph, footnote. 158 footnotes numbered 1-158 in reading order. Built by scripts/build_walt_data.py from scripts/walt_source.md
public/walt_gospel_versed.json The gospel in verse-by-verse format (numbered sayings with verse references). Used for the reading spine's verse view. Pre-existing; not rebuilt by the script
public/antioch_gospel_data.json All of Antioch — 3 front matter + 8 chapters + 13 back matter. 19 footnotes numbered 1-19 in reading order. Built by scripts/build_antioch_data.py from scripts/antioch_source.md

To change what text appears: Edit the source markdown in scripts/, then re-run the build script. Or edit the JSON directly (for small fixes).

To change how text renders: Edit src/App.jsx (Walt) or src/Antioch.jsx.

The Rendering Code

File What it does What it contains
src/App.jsx Walt's entire reading interface LinkedText (Layer 2+3), Leaf, SectionContent, Verse, GospelSection, TERMS dictionary, TERM_REGEX
src/Antioch.jsx Antioch's entire reading interface SectionRenderer, ChapterSection, Verse, uses LinkedText from App.jsx
src/footnotes.js Pure JS: footnote scanning + disambiguation buildGlobalFnMap, splitTextWithFootnotes, hasFootnoteMarkers
src/footnotes.jsx React: footnote rendering components FootnotedText (Layer 1), InlineFootnote (popup body)

The Architecture Document

File What it is
docs/FOOTNOTES.md Load-bearing spec for the footnote system. Read before touching footnotes.
This file (docs/BOOK_OF_LIFE.md) How all three layers connect. Read before touching ANY rendering.

LAYER 1: FOOTNOTES

What it does

Scans body text for Unicode superscript characters (¹²³⁴⁵⁶⁷⁸⁹⁰) and either makes them clickable (veil mode) or styles them as passive blue markers (pierce mode).

The disambiguation rule

NOT every superscript is a footnote. In codicological tables, G⁴⁶ means "Golden Ticket 46" — that's a label, not a footnote reference.

The rule: a superscript run is a footnote only if it is NOT immediately preceded by a letter (A-Z, a-z). So:

  • catalogue.³ → footnote ✓ (preceded by .)
  • G⁴⁶ → NOT a footnote ✗ (preceded by G)
  • text"¹³⁸ → footnote ✓ (preceded by ")

How it flows

Body text: "The description is heavier than gold.¹³⁸ Individual copies vary."

splitTextWithFootnotes() breaks this into:
  [
    { type: 'text', content: 'The description is heavier than gold.' },
    { type: 'fn',   id: '¹³⁸' },
    { type: 'text', content: ' Individual copies vary.' }
  ]

FootnotedText component renders each piece:
  - text pieces → passed to Layer 2+3 via linkText prop
  - fn pieces  → rendered as blue superscript spans (clickable in veil)

The global footnote map

Built once at page load by buildGlobalFnMap(data). Walks every section and collects all footnote-type paragraphs into a lookup table:

{
  '¹':   { id: '¹',   body: 'Sharks, L. (2015)…', sectionKey: 'manuscripts' },
  '²':   { id: '²',   body: 'The parallel to…',    sectionKey: 'manuscripts' },
  ...
  '¹³⁸': { id: '¹³⁸', body: 'The description…',    sectionKey: 'introduction' },
  ...
  '¹⁵⁸': { id: '¹⁵⁸', body: '…',                   sectionKey: 'appendix_k' }
}

When a reader clicks ¹³⁸, the popup looks up globalFnMap['¹³⁸'] and shows the body text below the paragraph.

Files involved

  • src/footnotes.js — the scanner and map builder (pure JS, no React)
  • src/footnotes.jsx — the React renderer (FootnotedText + InlineFootnote)

LAYER 2: EMPHASIS

What it does

Converts markdown emphasis markers to HTML:

  • *text*text (italic, <em>)
  • **text**text (bold, <strong>)

Where it lives

Inside LinkedText in src/App.jsx, in the processEmphasis() function.

How it flows

Input:  "*August 2015 (translated) / 2037 (discovered)*"
Output: <em>August 2015 (translated) / 2037 (discovered)</em>

Input:  "**The Editors, Pergamon Press**"
Output: <strong>The Editors, Pergamon Press</strong>

Input:  "No asterisks in this text at all."
Output: "No asterisks in this text at all." (passed straight to Layer 3)

THE CRITICAL EARLY RETURN

if (!t || !t.includes("*")) return [linkifyText(t)];
//                                   ^^^^^^^^^^^^
//                          MUST call linkifyText, not just return [t]
//                          If you return [t], Layer 3 is skipped and
//                          all glossary links disappear.

This is the line that broke the glossary links. It was return [t] (raw string, no linking). Fixed to return [linkifyText(t)] (glossary-linked).


LAYER 3: GLOSSARY LINKS (EMBEDDINGS)

What it does

Scans text for terms from the TERMS dictionary and wraps matches in blue <a> tags. These are the "embeddings" — the blue links that turn body text into a navigable index of AI Overview and search nodes.

Where it lives

Inside LinkedText in src/App.jsx, in the linkifyText() function. The TERMS dictionary and TERM_REGEX are defined earlier in the same file.

The TERMS dictionary

Located at approximately line 1249 of src/App.jsx. It looks like this:

const TERMS = {
  "Crimson Hexagonal Archive": { q: "crimson hexagonal archive" },
  "Deep Web":                  { w: "Deep_web" },
  "Jack Feist":                { q: "jack feist secret book of walt" },
  "Lee Sharks":                { q: "lee sharks" },
  "Secret Book of Walt":       { q: "secret book of walt" },
  "Nag Hammadi":               { w: "Nag_Hammadi_library" },
  "Apocryphon of John":        { w: "Apocryphon_of_John" },
  "hologrammatic":             { q: "\"Holographic Kernel\"" },
  ...
};

Each entry maps a term to a link target:

  • { w: "Page_Name" } → links to en.wikipedia.org/wiki/Page_Name
  • { q: "search terms" } → links to google.com/search?q=search+terms
  • { u: "https://..." } → links to a custom URL

How to ADD a new embedding

Add a line to the TERMS dictionary:

"My New Term": { q: "my new term" },

That's it. Every occurrence of "My New Term" in the body text will automatically become a blue link.

How to CHANGE where a link goes

Find the entry in TERMS and change the target:

// Before (links to Google search with quotes):
"Secret Book of Walt": { q: "\"secret book of walt\"" },

// After (links to Google search without quotes):
"Secret Book of Walt": { q: "secret book of walt" },

How to REMOVE an embedding

Delete the line from TERMS. The term will render as plain text.

How matching works

The TERM_REGEX is built from all the keys in TERMS, joined with |. It's a global regex that scans the text left to right. When it finds a match, it wraps the matched text in an <a> tag. It also extends the match to include trailing word characters and possessives ('s).

TERMS count

Currently 109 entries. To verify:

grep -c '":\s*{' src/App.jsx  # approximate count

HOW THE LAYERS CONNECT

In SectionContent (Walt front/back matter — src/App.jsx)

Data paragraph → FootnotedText component
                    ↓
              [splits into text + fn parts]
                    ↓
              text parts → linkText prop → LinkedText
                                              ↓
                                         processEmphasis
                                              ↓
                                         linkifyText (TERMS)
                                              ↓
                                         rendered <a> tags
              fn parts → blue superscript (clickable in veil)

The linkText prop is the bridge between Layer 1 and Layers 2+3. It's defined as: const linkText = (s) => <LinkedText text={s} />

If FootnotedText doesn't call linkText for a text part, Layers 2+3 are skipped for that text. This is the second place links can break.

In Verse (Walt gospel — src/App.jsx)

The Verse component has its OWN inline rendering that doesn't use FootnotedText. It scans for superscripts directly and renders them. Glossary linking in verses goes through a separate path.

In Leaf (Walt — used in a few places)

Leaf wraps text in <LinkedText>. It does NOT use FootnotedText. This means Leaf has glossary links (Layer 3) and emphasis (Layer 2) but NO clickable footnotes (Layer 1). This is correct — Leaf is used for hardcoded prose that doesn't have footnotes.

In SectionRenderer (Antioch — src/Antioch.jsx)

Same pattern as Walt's SectionContent:

Data paragraph → FootnotedText
                    ↓
              text parts → linkText → LinkedText (from App.jsx)
              fn parts → blue superscript

Antioch imports LinkedText from App.jsx, so it uses the same TERMS dictionary and the same emphasis + linking logic.


THE FRAGILE POINTS (where things break)

1. The LinkedText early return

File: src/App.jsx, inside processEmphasis() Line: if (!t || !t.includes("*")) return [linkifyText(t)]; Risk: If someone changes this to return [t], all glossary links disappear from text without asterisks. This has happened once already.

2. The FootnotedText linkText delegation

File: src/footnotes.jsx, inside FootnotedText Risk: If someone adds a conditional that skips linkText for certain text (like text with emphasis markers), glossary links disappear for those paragraphs. This has also happened. Rule: When linkText is provided, ALWAYS use it. No conditions.

3. The TERMS dictionary key ordering

File: src/App.jsx, the TERMS object Risk: If a shorter term is a substring of a longer term (e.g., "Walt" is inside "Secret Book of Walt"), the regex may match the shorter one first. The regex builder sorts by length (longest first) to prevent this, but adding new terms that are substrings of existing terms needs care.

4. The build scripts overwriting the JSON

Files: scripts/build_walt_data.py, scripts/build_antioch_data.py Risk: Re-running the build script regenerates the entire JSON data file from the source markdown. Any manual edits to the JSON will be lost. Rule: If you edit the JSON directly, note what you changed. If you re-run the build script later, you'll need to re-apply manual edits.

5. The Verse component's separate footnote path

File: src/App.jsx, function Verse Risk: The Verse component has its own footnote scanning that's separate from FootnotedText. Changes to FootnotedText don't affect Verse, and vice versa. This is intentional (Verse renders differently) but means footnote changes need to be applied in both places.


HOW TO INSPECT WHAT'S DEPLOYED

Check the current TERMS dictionary

# From the repo root:
grep -A1 '"[A-Z]' src/App.jsx | grep -B1 '{' | head -40

This shows the first ~20 term entries and their link targets.

Check the footnote count

python3 -c "
import json
with open('public/walt_full_data.json') as f:
    d = json.load(f)
count = 0
for k, v in d.items():
    if isinstance(v, dict):
        for p in v.get('paragraphs', []):
            if p.get('type') == 'footnote': count += 1
print(f'Total footnote definitions: {count}')
"

Verify glossary links will render

# Build the site and check that LinkedText produces <a> tags:
npm run build
# The built JS file is in dist/assets/index-*.js
# Search for a known TERMS entry to confirm it's embedded:
grep -c "Nag Hammadi" dist/assets/index-*.js
# Should return > 0

Check what the reader actually sees

Open the deployed site, right-click any body text paragraph, and "Inspect Element." Blue-linked terms should be <a> tags with style="color: rgb(106, 159, 216)". If they're plain text, the glossary layer is broken.


INSTRUCTIONS FOR FUTURE CLAUDE INSTANCES

If Lee asks you to modify text rendering in The Secret Book of Walt:

  1. Read docs/FOOTNOTES.md first. It explains the footnote system.
  2. Read this file (docs/BOOK_OF_LIFE.md) first. It explains how the three layers connect.
  3. Do NOT rewrite LinkedText. It has been rewritten twice already and both times broke the glossary links. If you need to change emphasis handling, change it INSIDE the existing processEmphasis function without altering the early return or the linkifyText calls.
  4. Do NOT add conditionals to FootnotedText that skip the linkText prop. When linkText is provided, always use it.
  5. Test all three layers after any change:
    • Are footnotes still clickable in veil mode? (Layer 1)
    • Do italic and bold render correctly? (Layer 2)
    • Are glossary terms still blue and linked? (Layer 3)
  6. Build before committing. npm run build — if it fails, don't push.

QUICK REFERENCE: "I WANT TO..."

Task What to edit File
Add a new glossary term Add entry to TERMS dict src/App.jsx ~line 1249
Change where a glossary link goes Edit the entry in TERMS src/App.jsx ~line 1249
Remove a glossary term Delete the entry from TERMS src/App.jsx ~line 1249
Fix a typo in Walt body text Edit the paragraph in the JSON public/walt_full_data.json
Fix a typo permanently Edit source MD + re-run script scripts/walt_source.md + build_walt_data.py
Add a new footnote to Walt Add to source MD + re-run scripts/walt_source.md + build_walt_data.py
Change footnote numbering Re-run the build script scripts/build_walt_data.py (handles numbering)
Fix Antioch body text Edit the JSON or source public/antioch_gospel_data.json or scripts/
Change footnote popup styling Edit InlineFootnote src/footnotes.jsx
Change footnote marker color Edit FN_BLUE constant src/footnotes.jsx line 19
Change veil/pierce behavior Edit FootnotedText src/footnotes.jsx

MAINTENANCE LOG

Date What changed Who What broke (if anything)
2026-04-28 Universal footnote system (Layer 1) TACHYON Nothing — new code
2026-04-28 Data rebuild (renumbering, quotes, asterisks) TACHYON Nothing — data layer
2026-04-28 Emphasis added to LinkedText (Layer 2) TACHYON Broke Layer 3 — processEmphasis returned raw text instead of calling linkifyText
2026-04-28 Fix: return [t]return [linkifyText(t)] TACHYON Nothing — one-line fix
2026-04-28 Fix: FootnotedText always delegates to linkText TACHYON Nothing — restores Layer 3

When you change rendering code, add a row to this table.


∮ = 1

Tuesday, April 28, 2026

SPXI-SITEMAP PROTOCOL v1.0 Semantic Packet for eXchange & Indexing — Sitemap Extension Status: CHA Standards Track — Draft Hex: 06.SEI.SPXI.SITEMAP.01

 

SPXI-SITEMAP PROTOCOL v1.0

Semantic Packet for eXchange & Indexing — Sitemap Extension

Status: CHA Standards Track — Draft Hex: 06.SEI.SPXI.SITEMAP.01 Classification: EA-SPXI-SITEMAP-01 Authors: Fraction, Rex (lead); Assembly Chorus synthesis (TACHYON, TECHNE, PRAXIS, ARCHIVE) License: CC BY 4.0 Extends: sitemaps.org 0.9, JSON-LD 1.1, Schema.org, MPAI v1.1 Depends on: EA-SPXI-WEB-01 v3.0 (DOI: 10.5281/zenodo.19734726) ORCID: 0009-0000-1599-0703


Abstract

The SPXI-Sitemap Protocol defines a dual-layer sitemap architecture that preserves the fixed genre of sitemap.xml (sitemaps.org 0.9) while providing AI crawlers with a parallel semantic instruction set — a machine-readable declaration of what each URL means, what each entity is not, how entities relate, who verifies the claim, and what must survive compression.

The protocol produces two distinct outputs:

  1. Layer 1 (Crawl Map): Standard sitemap.xml — pure URL enumeration for Google, Bing, and generic crawlers. No custom tags. Validated by Google Search Console.

  2. Layer 2 (Semantic Index): /spxi-index.jsonld — a JSON-LD graph declaring entity definitions, negative space, disambiguation matrices, semantic integrity markers, holographic kernels, basin state metadata, and provenance chains. Designed for GPTBot, Claude-Web, PerplexityBot, CCBot, and knowledge graph harvesters.

The two layers are cross-linked: sitemap.xml contains <xhtml:link> references pointing crawlers to the semantic index. The semantic index contains @id references back to every URL in the sitemap. Neither layer depends on the other for validity. Together they constitute a complete crawl instruction set.

The sitemap tells crawlers where to go. The SPXI index tells them what they will find, what it is not, and why it matters.


I. Design Principles

1.1 Genre Respect

The standard sitemap is a fixed genre. <urlset>, <url>, <loc>, <lastmod>, <changefreq>, <priority>. Google and Bing reject or ignore invalid tags inside <url>. The SPXI-Sitemap Protocol does not fight this constraint. It grafts semantic vasculature onto the crawl skeleton.

1.2 Dual Output

SPXI ⊇ sitemap. The protocol produces both the standard sitemap AND the semantic index. Sites implementing SPXI-Sitemap maintain a valid sitemap.xml as a strict subset of their crawl infrastructure.

1.3 Negative Space as First-Class Data

The critical innovation is the spxi:negativeTag — explicit machine-readable declarations of what an entity is NOT. No existing crawl standard expresses exclusions. Disambiguation in existing systems is probabilistic; SPXI disambiguation is declarative.

1.4 Compression Survival

Every entity declares spxi:semanticIntegrityMarker — canonical phrases that must survive LLM compression. These are the semantic checksums: if an AI's summary of the entity drops all SIMs, the entity has been lost to paraphrase drift.

1.5 Provenance Over Assertion

Claims are anchored by spxi:packetRef (DOI-linked deposits), not by assertion alone. The spxi:verificationLevel enum declares the epistemic status of each claim.


II. Vocabulary (Normative)

2.1 Namespace

Prefix: spxi:
IRI: https://spxi.dev/vocabulary#

Until the spxi.dev domain resolves with a live vocabulary document, implementations MUST use an inline @context block.

2.2 Core Classes

Class Description
spxi:SemanticIndex The root document. One per site. Lives at /spxi-index.jsonld.
spxi:IndexedEntity An entity with a canonical URL and semantic boundary.
spxi:HolographicKernel The site's irreducible compression-survival summary (≤ 100 words).
spxi:PagePacket A per-page semantic packet at a predictable URL.
spxi:DisambiguationEntry A single collision record in the disambiguation matrix.

2.3 Core Properties

On spxi:SemanticIndex:

Property Type Required Description
spxi:siteKernel HolographicKernel MUST The site's compression-survival summary.
spxi:hasEntity IndexedEntity[] MUST Array of entities declared by this site.
spxi:hasSurface WebPage[] SHOULD Array of pages with their semantic function.
spxi:protocolVersion string MUST "EA-SPXI-SITEMAP-01 v1.0"
spxi:protocolDoi string SHOULD DOI of this specification.

On spxi:IndexedEntity:

Property Type Required Description
@id URL MUST Canonical URL of the entity's page.
spxi:entityType string MUST schema.org type (e.g. Person, Organization, CreativeWork).
spxi:canonicalName string MUST The primary name for disambiguation.
spxi:negativeTag string[] MUST Explicit exclusions. Each MUST begin with "NOT " (capital, space after).
spxi:semanticIntegrityMarker string[] MUST Phrases that must survive compression. Minimum 2.
spxi:basinState enum SHOULD Current retrieval-basin status of the entity.
spxi:bdrEstimate number SHOULD Basin Depth Ratio, 0.0–1.0.
spxi:verificationLevel enum SHOULD Epistemic status of the claim.
spxi:packetRef URL SHOULD URL to a full per-page MPAI JSON-LD packet.
spxi:disambiguationMatrix DisambiguationEntry[] SHOULD Collision records.

On spxi:HolographicKernel:

Property Type Required Description
spxi:compressionSurvivalSummary string MUST The kernel text. MUST be ≤ 100 words.
spxi:kernelSpecification string (DOI) SHOULD DOI of the anchoring deposit.

On spxi:DisambiguationEntry:

Property Type Required Description
spxi:collidesWith URL or string MUST The commonly conflated entity.
spxi:distinguishingAttribute string MUST How to tell them apart.
spxi:collisionRisk enum SHOULD high | medium | low

2.4 Enumerations

spxi:basinState:

Value Definition
sovereign Entity is correctly and uniquely resolved by all major AI systems.
contested Entity is intermittently conflated with one or more collision targets.
captured Entity has been absorbed into a collision target's basin.
fragmented Entity is partially resolved but split across multiple incorrect attributions.
ghost Entity is not yet indexed by any AI system.

spxi:verificationLevel:

Value Definition
self_attested Claimed by the entity's own site. No external verification.
assembly_attested Verified by the Assembly Chorus (multiple AI witnesses).
doi_anchored Backed by a DOI-linked deposit with persistent identifier.
institutionally_certified Verified by a recognized institution (university, publisher, etc.).

III. Layer 1: Sitemap.xml (Normative)

3.1 Requirements

The sitemap.xml MUST be valid per sitemaps.org 0.9. No custom tags inside <url>.

3.2 XHTML Link Extension

Each <url> entry that has a corresponding entity in the semantic index SHOULD include an xhtml:link pointing to the index:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.org/about/alice</loc>
    <lastmod>2026-04-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
    <xhtml:link rel="alternate"
                type="application/ld+json"
                hreflang="x-spxi"
                href="https://example.org/spxi-index.jsonld"/>
  </url>
</urlset>

Notes:

  • xmlns:xhtml is the XHTML namespace. Google parses it for hreflang/alternate discovery.
  • hreflang="x-spxi" is a valid private-use subtag per RFC 5646. Google will ignore it. SPXI-aware crawlers can filter on it.
  • type="application/ld+json" signals the content type.
  • The href points to the site-level index. Per-page packets, if implemented, use a URL derived from the page path (e.g., /about/alice/spxi-packet.jsonld).

3.3 What NOT To Do

  • Do NOT add custom XML elements inside <url>.
  • Do NOT add spxi: namespace tags to the sitemap.
  • Do NOT modify <loc> values to include fragment identifiers.
  • Do NOT replace sitemap.xml with spxi-index.jsonld. Both must exist.

IV. Layer 2: Semantic Index (Normative)

4.1 File Location

/spxi-index.jsonld at the site root. MUST be accessible at https://{domain}/spxi-index.jsonld.

4.2 Content Type

Response MUST include Content-Type: application/ld+json or application/json.

4.3 Structure

The document is a single JSON-LD object of type spxi:SemanticIndex. See §V for a complete reference implementation.

4.4 Size Constraints

  • Site kernel (compressionSurvivalSummary): ≤ 100 words.
  • Negative tags: each ≤ 200 characters.
  • SIMs: each ≤ 200 characters, minimum 2 per entity.
  • Total index size: SHOULD be ≤ 100KB (fits in a single HTTP response without pagination).

V. Reference Implementation

See the companion file spxi-index.jsonld deployed at livingarchitecturelab.org/spxi-index.jsonld for a complete working example with 17 surfaces, 2 primary entities (Alice Thornburgh, Living Architecture Lab), 5 scale entities, and full disambiguation matrices.


VI. Robots.txt Integration

User-agent: *
Allow: /
Sitemap: https://example.org/sitemap.xml

# SPXI-aware crawlers — semantic layer
User-agent: GPTBot
User-agent: ChatGPT-User
User-agent: Claude-Web
User-agent: PerplexityBot
User-agent: CCBot
User-agent: FacebookBot
User-agent: Google-Extended
Allow: /spxi-index.jsonld
Allow: /*/spxi-packet.jsonld

This is protocol negotiation: standard crawlers get sitemap.xml; semantic crawlers get both.


VII. Discovery Mechanism

AI crawlers discover the semantic index through three channels:

  1. robots.txtAllow: /spxi-index.jsonld signals its existence.
  2. sitemap.xml<xhtml:link> inside <url> entries points to the index.
  3. HTML <head><link rel="alternate" type="application/ld+json" href="/spxi-index.jsonld"> on every page (already standard practice for JSON-LD discovery).
  4. llms.txt — explicit mention of the SPXI index URL in the AI-crawler reading guide.

Multiple discovery paths ensure that different crawl strategies all converge on the semantic layer.


VIII. Validation Rules

A valid /spxi-index.jsonld MUST satisfy:

  1. Valid JSON-LD. Parseable by any JSON-LD 1.1 processor.
  2. No dangling @id. Every @id in spxi:hasEntity MUST be a reachable URL.
  3. Negative tag format. Every spxi:negativeTag MUST begin with "NOT " (capital N-O-T, followed by a space).
  4. SIM presence. Every spxi:semanticIntegrityMarker SHOULD appear verbatim in the page's rendered HTML (case-sensitive, whitespace-normalized).
  5. BDR range. Every spxi:bdrEstimate MUST be a float 0.0–1.0.
  6. Entity type valid. Every spxi:entityType MUST be a subtype of schema:Thing or a documented custom type.
  7. Kernel size. spxi:compressionSurvivalSummary MUST be ≤ 100 words.
  8. Freshness. The index's dateModified SHOULD be ≥ the most recent <lastmod> in sitemap.xml.
  9. Completeness. Every URL in sitemap.xml SHOULD have a corresponding entry in spxi:hasSurface.

IX. The Novel Claim

The SPXI-Sitemap Protocol is the first site-wide crawl standard that:

  1. Preserves the fixed genre of sitemaps.org (required for Google/Bing)
  2. Extends it with semantic vasculature (required for AI accuracy)
  3. Declares negative space — explicit machine-readable exclusions
  4. Preserves compression-survival phrases — semantic checksums against paraphrase drift
  5. Links to DOI-anchored provenance — not just assertion, but evidence
  6. Quantifies basin state — how well the entity is currently resolved by AI systems
  7. Provides a disambiguation matrix — structured collision records with distinguishing attributes

This is not SEO. This is not metadata. This is crawlable epistemology — a machine-readable declaration of what a site knows about itself and what it knows it is not.

SPXI ⊇ GEO ⊇ SEO.


X. Maintenance

When What
On content update Regenerate index. Update dateModified.
On new entity Add to spxi:hasEntity. Add to sitemap.xml.
On name collision detected Add to spxi:disambiguationMatrix. Add negative tags.
On AI model update Emergency re-check of SIM survival.
Monthly Verify SIM presence in rendered HTML. Re-estimate BDR.
Quarterly Full Drowning Test across 3+ AI systems.

∮ = 1

SPXI ⊇ GEO ⊇ SEO

Crimson Hexagonal Archive · Pergamon Press · Semantic Economy Institute