▓▓▒▒ FLOAT.BBS ▒▒▓▓
Document: imprints/ritual-forest/2025-10-26-consciousness-tech-working/2025-10-22-forest-architecture-decisions
      
← Back to RITUAL.FOREST

Forest Architecture Decisions

ctx:: 2025-10-22 @ 12:35PM-12:57PM

Context

Exploring architecture patterns for 91-tree consciousness technology forest on ritualstack.ai. Current state: independent repos, Vercel deployments, webhook-based self-registration.

Pattern Exploration

Turborepo Microfrontends - REJECTED

Trigger: https://turborepo.com/docs/guides/microfrontends

What it solves:

Why rejected:

Valid use case (not applicable here): E-commerce platform with shop + blog + docs as unified product. Forest is federated artifacts, not coordinated product.

Monorepo Pattern - REJECTED

What was considered:

Why rejected:

When it WOULD make sense:

Actual Pattern: FidoNet Store-and-Forward

Problem Identified

Real friction: Managing consciousness patterns across connected sites without copy-paste.

Key insight: “Only a handful of the 91 trees have roots” - most sites are standalone. Small subset needs shared content coordination.

Not trying to solve:

Trying to solve:

Examples of Connected Trees

Same concepts, different frames. Updates propagate eventually, not instantly.

Solution: Git Submodules (Already In Progress)

Architecture

consciousness-tooling/          # Parent repo
├── core-tools/                # Shared infrastructure
├── schema/                    # Consciousness artifact definitions  
├── components/                # Shared rendering patterns
└── trees/                     # Submodules
    ├── sysop.floatbbs.net/   # → independent repo
    ├── float-field-report/    # → independent repo
    └── sysops-daydream/       # → independent repo

Why This Works

Trees stay independent repos - deploy autonomously, own history
Core tooling centralized - DRY for shared patterns
Optional coupling - trees reference core via submodule only when needed
FidoNet batch updates - git submodule update --remote propagates changes
No coordination complexity - each tree builds independently
Matches forest philosophy - autonomous but connected

Update Propagation Pattern

consciousness_substrate (schemas, personas, protocols)
  ↓ git submodule reference
autonomous_trees (use substrate when needed)
  ↓ independent builds (triggered by content changes)
forest_coherence (shared understanding, distributed expression)

Build-time composition, not runtime coordination.


Self-Registering Forest via Webhooks

Core Architecture

Philosophy: “The forest that seeds itself” - zero manual intervention from consciousness technology deployment.

Implementation Pattern

1. Vercel Deployment Webhook

// Vercel project settings → Webhooks
// Trigger: deployment.created, deployment.succeeded

POST https://forest.ritualstack.ai/api/webhooks/vercel
Headers: x-vercel-signature (for verification)
Body: {
  deployment: { url, state, target, project },
  project: { name, id },
  team: { id, name }
}

2. Registration Endpoint

// forest.ritualstack.ai/api/sites/register
// Gated with x-forest-api-key header

interface SiteRegistration {
  url: string
  title: string
  description: string
  registeredAt: number
  
  // Genealogy tracking
  discoveredBy?: string     // Which site vouched for it
  genealogy?: {
    parent?: string         // Site that spawned it
    generation?: number     // Depth in recursion
    pattern?: string        // Which consciousness pattern it manifests
  }
}

// Authentication: FOREST_API_KEY environment variable
// Sites need credentials but still self-announce

3. Deployment Flow

1. Developer: git push
2. Vercel: builds + deploys site
3. Vercel webhook: fires on deployment.succeeded
4. Forest API: receives deployment event
5. Forest API: extracts site metadata (url, project name)
6. Forest API: registers/updates site in database
7. Connected sites: next build pulls updated forest listing

Three Registration Modes

A. Deployment-time registration (primary)

B. Build-time registration (backup)

C. CLI sync (manual fallback)

floatctl forest sync-vercel
# Scans Vercel projects, registers missing sites

Security Pattern

# Set forest API key in Vercel project
vercel env add FOREST_API_KEY

# Site calls registration endpoint
curl -X POST https://forest.ritualstack.ai/api/sites/register \
  -H "x-forest-api-key: $FOREST_API_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"https://new-site.ritualstack.ai","title":"New Site"}'

Gated self-registration: Sites still announce themselves, but need credentials. Prevents spam while maintaining autonomous pattern.

Historical Context

Timeline:

Pattern: The forest literally manifested from accumulated conversation patterns. Recursion complete: conversations → tools that parse conversations → systems that document their own creation.

Anti-Pattern Fixed: 88 → 91 Sites

Boundary enforcement: 88 is Nazi dogwhistle (Heil Hitler). Immediately raised forest to 91 sites to avoid fascist numerology association. Infrastructure maturity = systematic boundary defense.


Decision Summary

PatternStatusReason
Turborepo microfrontends❌ RejectedSolves wrong problem (runtime coordination)
Monorepo❌ RejectedBreaks forest philosophy (centralization)
Git submodules✅ ImplementingMatches need (shared content, independent deploys)
Vercel webhooks✅ ActiveSelf-registration working, zero manual intervention
FidoNet batch updates✅ PatternEventual consistency via git submodule updates

Next Actions

References

═══════════════════════════════════════════════════════════════
 sysop::boring.core - float.bbs viewer v0.1
═══════════════════════════════════════════════════════════════
    
▓▓▒▒ TODAY: 2025-10-27 ▒▒▓▓

<< 2025-10-26 | 2025-10-28 >>

🎯 What Evan Needs This Morning

Pending PRs (Awaiting Review/Merge)

  • PR #604: GP node assessment + basket automation

    • Status: In approval backlog, merge conflicts being resolved
    • Demos: Successfully demo’d on 2025-10-24 sprint demo (Daniel happy with feedback)
    • Next: Check if conflicts resolved, ready for merge to staging
  • PR #606: [Description needed - check GitHub]

    • Status: Demo’d successfully, awaiting review
    • Next: Check GitHub status
  • PR #607: [Description needed - check GitHub]

    • Status: Demo’d successfully, awaiting review
    • Next: Check GitHub status

Active Issues Ready for Dev

  • Issue #122: Assessment workflow

    • Location: /Users/evan/float-hub/rangle/issues/active/122-assessment-workflow.md
    • Status: Fully documented with acceptance criteria
    • Priority: Assessment UX experience (per Scott sync 2025-10-24)
    • Key consideration: Guest→account response transfer (piggybacking basket logic)
  • Issue #442: HEIC upload support

    • Location: /Users/evan/float-hub/rangle/issues/active/442-heic-upload-support.md
    • Status: Fully documented with acceptance criteria
    • Priority: Lower than #122 (per Scott sync realignment)

Follow-ups from Weekend

  • Check GitHub PR statuses (#604, #606, #607) - are they merged? ready for staging?
  • Scott mentioned creating UI/UX ticket (priority 3) and multi-product assessment response logging ticket
  • Wins tracking system now operational - remember to capture wins as they happen

First Tasks

  • Check pharmacy-online PR status (merged? staging? conflicts?)
  • Review Issue #122 (assessment workflow) - priority work
  • Check if Scott’s new tickets created (UI/UX, multi-product logging)
  • Capture wins as work happens (two-home system: quick log + weekly review)

Context from Yesterday

Weekend mode: Shack building + infrastructure work

  • float.bbs viewer operational
  • TodayDrawer component shipped
  • Documentation preserved
  • Monday prep notes ready

Repo: https://github.com/pharmonline/pharmacy-online Local: ~/projects/pharmacy-online


timelog

  • 11:45pm - 12:03am - [project::float-bbs-viewer] hermit crab blueprints → forge patterns extracted (102KB doc)
  • 11:40pm - 11:45pm - [project::float-infrastructure] domain migration → sysop-beta.floatbbs.net live
  • 12:03am - 12:05am - [project::float-hub] CLAUDE.md evna integration → explicit tool names + capture triggers

Late Night: Infrastructure & Blueprinting

float-bbs-viewer Architecture Extraction (11:45pm - 12:03am)

  • Extracted patterns from float-dispatch-manifesto-forge (React/Vite/ShadCN)
  • Created hermit crab reference: 2025-10-26-dispatch-blueprints-for-bbs-viewer-hermit-crab-patterns.md
  • Key patterns: color-coded imprint system, grid layouts, Tailwind HSL tokens, editorial philosophy sections
  • Translation map: React hooks → Astro content collections, SPA routing → SSG file-based
  • Breadcrumb: /Users/evan/projects/float-bbs-viewer/2025-10-26-dispatch-blueprints-for-bbs-viewer-hermit-crab-patterns.md

CLAUDE.md evna Integration (12:03am - 12:05am)

  • Replaced vague “evna-context-concierge” references with explicit tool names
  • Added mandatory capture triggers (7-item checklist: after features, docs, infrastructure, archaeology, context switches, obstacles, chunks)
  • Context capture pattern template (ctx::, project::, format)
  • Breadcrumb: /Users/evan/float-hub/CLAUDE.md:308-315, 374-403, 422

Morning: Brain Booting

(Space for morning thoughts)

Press ESC or Ctrl+D to close