Skip to content

ecoPrimals/sporePrint

Repository files navigation

sporePrint

The public-facing science site for ecoPrimals — sovereign scientific computing.

Live site: primals.eco Sovereign primary: golgiBody-ext VPS via Caddy + Let's Encrypt Trailing shadow: GitHub Pages (extracellular mirror, will be archived after NS cutover)

Deployment Architecture

Gate pushes to Forgejo (golgi) → Sovereign CI
  1. Forgejo post-receive hook fires (golgi)
  2. sovereign-ci-trigger.sh SSH → sporeGate (over WG)
  3. sporeGate builds binary + rsync depot to golgi
  4. golgi: sporeprint-rebuild.sh pulls + zola build
  5. Caddy serves from public/ (auto-TLS via Let's Encrypt)
  6. ext-github-push.sh pushes to GitHub (trailing shadow)

Stack

  • Zola 0.22.1 — Rust static site generator (single binary, zero deps)
  • spore-validate — Rust validation + certification crate (34 modules, 284 tests, zero C deps)
  • petalTongue viz pipeline — Server-rendered SVG with WASM progressive enhancement
  • Markdown + TOML front matter — human-readable, AI-parseable content
  • Custom theme — Catppuccin Mocha/Latte, system fonts, dark/light, zero external deps
  • Caddy — TLS termination + file serving on golgiBody-ext
  • Knot DNS — Sovereign DNSSEC (ns1/ns2.primals.eco) with CAA for Let's Encrypt

Local Development

# Prerequisites: Zola 0.22+, Rust toolchain 1.85+

zola serve             # http://127.0.0.1:1111
zola build             # output to public/

# Validation (Rust — typed, pedantic, 90%+ coverage)
cd crates/spore-validate
cargo build --release
cargo run -- validate                    # registry + totals + taxonomies
cargo run -- validate --check --verbose  # + shortcode scan + entity report
cargo run -- check-links                 # internal link integrity
cargo run -- render-notebooks --discover # Jupyter → Zola markdown
cargo run -- fetch-refresh --write       # clone upstream, update metrics
cargo run -- graph --emit                # entity graph → static/graph/
cargo run -- certify --emit              # guideStone manifest → static/certification/

Structure

sporePrint/
├── config.toml          # Zola config + entity_registry (66 entities) + totals
├── sources.toml         # Upstream repo map (GitHub + Forgejo origins)
├── content/             # 259 Markdown pages with TOML front matter
│   ├── science/         # 34 baseCamp companion papers
│   ├── architecture/    # 20 pages: catalogs, inventory, topology, deployment, certify
│   ├── lab/             # 133 pages: spring hubs, notebooks, spore gallery
│   ├── products/        # blueFish, esotericWebb, helixVision, lattice QCD, lithoSpore
│   ├── guidestone/      # guideStone verification class
│   ├── audience/        # PI, student, builder, compliance guides
│   ├── methodology/     # Constrained evolution, K-NOME, playbooks, scyBorg, inoculum
│   ├── technical/       # Hardware, grants, pipelines, barracuda gaps, neuromorphic
│   ├── glossary/        # Plain-language ecosystem glossary
│   ├── thesis/          # PhD dissertation scaffold (16 chapters, constrained evolution)
│   ├── philosophy/      # atlasHugged (12 essays — the "why")
│   ├── story/           # Builder narrative essays (I Don't Know Rust, etc.)
│   └── sitemap/         # Full site navigation
├── templates/           # 14 Tera HTML templates + shortcodes
├── sass/css/            # SCSS partials → compiled by Zola (nav, layout, landing, etc.)
├── static/
│   ├── css/             # (generated by Zola Sass compilation — do not hand-edit)
│   ├── js/              # viz-hydrate.js (WASM progressive enhancement for petalTongue visualizations)
│   ├── wasm/            # petal-tongue-wasm (petalTongue scene rendering)
│   ├── certification/   # guideStone manifest (generated by certify)
│   └── graph/           # Entity graph JSON (generated by graph)
├── crates/
│   └── spore-validate/  # Rust crate: 34 modules, 284 tests, zero C toolchain
├── specs/               # Internal standards (not built by Zola)
└── .github/workflows/   # deploy.yml, auto-refresh.yml

(gonzales/ removed Wave 119 — migrated to petalTongue)

spore-validate

Pure Rust validation binary — #![forbid(unsafe_code)], clippy pedantic+nursery zero warnings, 284 tests, 34 modules, zero C toolchain dependencies. Edition 2024, Rust 1.85+. Release binary optimized (LTO+strip). All files under 680L (max: nucleus.rs at 670).

Subcommand Purpose
validate Registry field checks, totals sums, taxonomy tags, content lint
validate --check + shortcode scan + internal link validation
validate --strict Promote warnings to errors
validate --verbose + full entity report with all fields
graph [--emit] Build typed entity graph (renvois de choses), optionally emit JSON
certify [--emit] guideStone certification manifest — compute BLAKE3 Merkle, emit/validate
provenance BLAKE3 content hashing + drift detection (--write/--verify/--diff)
cas-manifest [--emit] BLAKE3 hash Zola build output for NestGate CAS
cas-push [--generate] Push build artifacts to NestGate CAS via UNIX socket
discover Show self-capabilities and discover peer primals
refresh <repos_root> Cross-repo metric drift detection
refresh --write Auto-update config.toml with current metrics
fetch-refresh Clone upstream repos → refresh in one step
render-notebooks Jupyter .ipynb → Zola markdown (pure JSON parse)
render-notebooks --discover Auto-find notebooks via .gate workspace walk
check-links Validate all @/ internal links
nucleus <profile> Validate running NUCLEUS against profile (--probe for IPC health)
depot-verify BLAKE3 integrity check of depot binaries against checksums.toml
depot-list-arches Inventory available architectures and binary counts
pt-render <path> Render content via petalTongue IPC
pt-status Show petalTongue backend status
pt-viz <name> Request visualization from petalTongue
tower-status Probe Tower primals for P1 method availability
build-viz Generate static SVG visualizations via petalTongue IPC

Self-Certification (guideStone)

sporePrint certifies its own published claims. The certification manifest at /certification/manifest.json contains entity counts, edge counts, a BLAKE3 Merkle root of the entity graph, and content page totals.

# Verify the site independently:
git clone https://github.com/ecoPrimals/sporePrint.git && cd sporePrint
cargo run --manifest-path crates/spore-validate/Cargo.toml -- certify
# Compare graph_merkle with https://primals.eco/certification/manifest.json

Nav Bar Structure

9 items: Science · Architecture · Lab · Thesis · Story · guideStone · Philosophy · Products | Primals · Springs · GitHub

Auto-Refresh

Sovereign (primary — Sovereign CI, Wave 120+)

source repo push → Forgejo (golgi) → post-receive hook
  → SSH to sporeGate (build authority over WG)
  → cargo build --release → rsync depot to golgi
  → sporeprint-rebuild.sh pulls + zola build
  → Caddy serves updated public/ (zero downtime)

GitHub (trailing shadow — will be archived)

source repo push → notify-sporeprint.yml → repository_dispatch
  → sporePrint auto-refresh.yml
    → clone source, run spore-validate refresh --write
    → commit config.toml if changed
    → deploy.yml → certify → zola build → GitHub Pages

Adding Content

Every page is a Markdown file with TOML front matter:

+++
title = "Page Title"
description = "Short description for listings and search"
date = 2026-06-01
+++

Your content here...

Evolution Roadmap

Current — Wave 134e (July 9, 2026)

  • 259 content pages, 66 entities, 284 tests, 34 modules
  • Edition 2024, Rust 1.85+, zero unsafe, zero C deps
  • NUCLEUS validation + depot integrity + riboCipher transport signal
  • Shared IPC module: JSON-RPC 2.0 NDJSON with response ID correlation
  • cargo-deny supply chain security — all deps pure Rust, no advisories
  • Tower probe table profile-driven (TOML probe_methods override)
  • SYSTEMD_SOCKET_DIR env-overridable (BIOMEOS_SYSTEMD_SOCKET_DIR)
  • Nucleus display extracted — all files under 800L
  • Static SVG diagrams with viz_embed fallback rendering
  • Sovereign deployment AAR filed (5 divergences tracked)
  • Phase 1 idiomatic Rust evolution: shared walker, IPC connect helper, DiagnosticCollector, #[must_use], Cow, function decomposition
  • Phase 2 petalTongue integration: build-viz subcommand, MaturityLevel enum, maturity validation
  • Stale code cleanup: gonzales explorer dead JS removed, petaltongue docs corrected, section_count shortcode deleted
  • Philosophy subtabs: sidebar groups atlasHugged into Stories/Framework/Synthesis/Reference
  • Cross-reference linking: 44 inter-essay references converted to Zola internal links
  • Thesis scaffold: 16-chapter PhD dissertation section with abstracts and cross-links
  • lithoSpore product page: spore taxonomy, operating modes, validation tiers, pseudoSpore lifecycle
  • Wave 134e: Deep debt sprint — module splits (commands.rs 785L→4 modules, main.rs 687L→3 modules)
  • Tower probes data-driven (TOML embedded via include_str!), CAS push structured errors, fetch Result returns
  • 7 content transplants (4 evidence docs, 2 baseCamp papers, scyBorg protocol) — 259 pages total
  • Thesis fully transplanted (16 chapters), front matter completed, snapshot banner added
  • Hardcoded metrics evolved to total_stat shortcodes across 8 files
  • 5 broken Spring Catalog URLs fixed, gen3 path refs converted to Zola @/ links

Completed Waves (66–119)

  • Wave 66: Sovereign self-hosting (Caddy + Let's Encrypt + systemd rebuild)
  • Wave 67: Nest Atomic / pure-primal evolution (petalTongue content pipeline)
  • Wave 68: Live visualizations + deep debt (VizRegistry, LazyLock, WASM)
  • Wave 69: CSS modularization + ForgeArchiveBackend + sovereign CI
  • Wave 70: Pure deps + typed returns + paths.rs constants
  • Wave 73–74: CAS integration + discovery + pipeline design
  • Wave 85–107: Transport abstraction + socket standards + deep debt zero
  • Wave 111: Gate expansion + federation + content cascade (222 pages)
  • Wave 113–119: riboCipher signal, NUCLEUS probe, depot verify, mesh enrollment
  • Wave 133d: Content transplant (philosophy, story, methodology — 10 pages)
  • Wave 134: Phase 1+2 idiomatic Rust + petalTongue integration

Remaining

  • DNS registrar NS cutover to ns1/ns2.primals.eco
  • Archive GitHub Pages deploy workflow to fossilRecord
  • CAS route registration (path→hash mapping for NestGate HTTP serving)
  • petalTongue renders live dashboards from primal APIs
  • Forgejo webhook triggers sovereign CI rebuild (no GitHub Actions)

License

About

Public verification portal — executable claims, reproduction guides, and documentation for the ecoPrimals sovereign computing ecosystem

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors