thefoldwithin-earth/README.md
Mark Randall Havens 7f86647175 fresh start
2025-10-19 16:48:12 -05:00

1.5 KiB
Executable file

The Fold Within Earth - v2.3 Canonical Minimal Specification

This repository implements the eternal, Markdown-native MUD/blog/archive as per the blueprint.

Setup

  1. npm install (generates package-lock.json)
  2. node tools/hash.js to verify hashes; node tools/hash.js fix to update IDs if needed
  3. npm run lint to validate all files
  4. npm run build to generate /dist
  5. Deploy to Cloudflare Pages (auto-build on push)

Components

  • Atlas: Content in /atlas/*.md (hashes verified)
  • foldlint: Validation: node tools/foldlint.js
  • Build: Generates static site: npm run build
  • Scribe: Archiver daemon: npm run scribe (local only)
  • Witness: P2P chat in browser (embedded in HTML, offline localStorage)

Hash Management

  • Each .md file includes a SHA-256 hash in its id field, computed over YAML front-matter (excluding id) + body.
  • Run node tools/hash.js to check hashes; use node tools/hash.js fix to update incorrect IDs.
  • Hashes exclude the id field to avoid circularity.
  • After modifying exits.to fields, run node tools/hash.js fix to update affected hashes.
  • exits.to fields in .md files must use full id values (e.g., room:slug@sha256:hash) or kind:slug (resolved automatically).
  • Use inline strings for exits.to (no block scalars like >-) to ensure consistent hashing.
  • Broken links (non-existent IDs) or invalid hashes in exits.to will fail the build. Ensure all referenced IDs exist in /atlas and match their file hashes.

For full spec, see /docs/primer.md.