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 VPS via Caddy + Let's Encrypt Trailing shadow: GitHub Pages (extracellular mirror, pending archival)

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, 289 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
  • 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/
cargo run -- provenance --write          # BLAKE3 content manifest → content-manifest.toml

Structure

sporePrint/
├── config.toml          # Zola config + entity_registry (79 entities) + totals
├── sources.toml         # Upstream repo map (GitHub + Forgejo origins)
├── content-manifest.toml # BLAKE3 content provenance (generated)
├── content/             # 312 published pages with TOML front matter
│   ├── lab/             # 132 pages: spring hubs, 99 notebooks (6 domains), spore gallery
│   ├── science/         # 33 baseCamp companion papers
│   ├── architecture/    # 43 pages: composition, NUCLEUS, K-Derm, CAC, Tower Atomic, Sovereign CI, Mesh Topology
│   ├── thesis/          # 18 chapters: PhD dissertation (constrained evolution)
│   ├── philosophy/      # 15 essays: atlasHugged (12 essays + bibliography + sovereign science)
│   ├── methodology/     # 15 pages: constrained evolution, K-NOME, scyBorg, acknowledgments
│   ├── outreach/        # 15 pages: partnership briefs, community landings, consulting
│   ├── products/        # 11 pages: footPrint, tideGlass, helixVision, lithoSpore, etc.
│   ├── technical/       # 8 pages: hardware, grants, pipelines, neuromorphic
│   ├── audience/        # 7 pages: PI, student, builder, compliance, companies guides
│   ├── guidestone/      # 6 pages: verification class
│   ├── story/           # 3 pages: builder narrative essays
│   ├── collaborators/   # 3 profiles: Gonzales (NF), Jones (PFAS), ABG
│   ├── vision/          # 2 pages: Lansing Scuffle campus, thermal sovereignty
│   ├── glossary/        # Plain-language ecosystem glossary
│   └── 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)
│   ├── wasm/            # petal-tongue-wasm (petalTongue scene rendering)
│   ├── certification/   # guideStone manifest (generated by certify)
│   ├── graph/           # Entity graph JSON (generated by graph)
│   ├── llms*.txt        # AI/agent discovery surface (5 files)
│   ├── identity.json    # Schema.org JSON-LD identity graph
│   └── .well-known/     # Keyoxide ASPE verification
├── crates/
│   └── spore-validate/  # Rust crate: 34 modules, 289 tests, zero C toolchain
├── scripts/             # Validation scripts (a11y, agent parity)
├── specs/               # Internal standards (not built by Zola)
└── .github/workflows/   # deploy.yml, auto-refresh.yml (trailing shadow)

Site Topology — Cortical Folds

The site is organized into 5 navigable folds grouping 17 sections:

Fold Sections What
Evidence Lab, Science What we proved (60% of site)
Architecture Architecture, Technical, Products How it works (19%)
Methodology Methodology, guideStone How to build (7%)
Philosophy Philosophy, Story, Thesis Why it matters (12%)
Engagement Glossary, Audience, Outreach, Collaborators, Vision Who and how (8%)

10 reading trails thread pages across fold boundaries. ~110 pages carry typed companion metadata for cross-domain discovery.

spore-validate

Pure Rust validation binary — #![forbid(unsafe_code)], clippy pedantic+nursery zero warnings, 289 tests, 34 modules, zero C toolchain dependencies. Edition 2024, Rust 1.85+.

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, optionally emit JSON
certify [--emit] guideStone certification manifest — 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)
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, pt-status, pt-viz petalTongue IPC visualization commands
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

Organizations

Org Purpose Repos
ecoPrimals Infrastructure — 15 primals + tooling 17
syntheticChemistry Science validation — 8 springs 8
sporeGarden Products — infrastructure compositions 11
protoKarya Protists — wider-world compositions 6

Remaining

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

License

About

Public science site for the ecoPrimals ecosystem — 311 pages, provenance-verified content, self-certified claims. Zola + Pure Rust validation. primals.eco

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages