- RAG-as-Scaffold: temporary feeding system, not permanent crutch - attention_flow: 30-second heartbeat budget state machines - information-flow: 10 boundary contracts nervous system map - nimmerversity: curriculum schoolplan for raising a polymath - nimmervest: investment documentation - biomimetic-architecture: ADR for organic system design - temporal-ternary-gradient: ADR for time-based learning - temporal_exchange_engine.py: Python implementation - initial_spark: foundation document - nimmerverse.drawio.xml: updated diagrams 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
310 lines
12 KiB
Markdown
310 lines
12 KiB
Markdown
# Information Flow Specification
|
|
|
|
The complete data path through the Nimmerverse nervous system.
|
|
|
|
---
|
|
|
|
## The Flow (Overview)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ REALTIME CLOCK │
|
|
│ (universe, ungoverned, always ticking) │
|
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────┐ continuous ┌─────────────┐ vocabulary ┌──────────┐
|
|
│ SENSORS │ ──────────────▶ │ NERVES │ ──────────────▶ │ DATA │
|
|
│ (raw data) │ │ (state m.) │ tokens │ PLANE │
|
|
└─────────────┘ └─────────────┘ └──────────┘
|
|
│ │
|
|
│ weight > 0.8 │
|
|
▼ │
|
|
┌─────────────┐ │
|
|
│ REFLEX │ (bypass brain) │
|
|
│ ACTION │ │
|
|
└─────────────┘ │
|
|
│
|
|
┌──────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ HEARTBEAT GATE │
|
|
│ (batches continuous stream into cycles) │
|
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ ORGANS │ (specialized inference: vision, language, etc.)
|
|
│ (hexagons) │
|
|
└─────────────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ ORCHESTRATOR│ (routes, prioritizes, manages context)
|
|
│ (diamond) │
|
|
└─────────────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ NYX │ (decision, attention, intention)
|
|
│ (diamond) │
|
|
└─────────────┘
|
|
│
|
|
┌────────┴────────┐
|
|
▼ ▼
|
|
┌─────────────┐ ┌─────────────┐
|
|
│ REAL │ │ VIRTUAL │
|
|
│ GARDEN │ │ GARDEN │
|
|
│ ♥ 1 Hz │ │ ♥ 100 Hz │
|
|
│ (free) │ │ (costs V) │
|
|
└─────────────┘ └─────────────┘
|
|
│ │
|
|
│ │
|
|
▼ ▼
|
|
┌─────────────┐ ┌─────────────┐
|
|
│ CELL │ │ CELL │
|
|
│ (storage) │ │ (storage) │
|
|
└─────────────┘ └─────────────┘
|
|
│ │
|
|
└────────┬────────┘
|
|
│
|
|
▼
|
|
┌───────────────┐
|
|
│ CONFIDENCE │ (-1 ◀──────▶ +1)
|
|
│ GRADIENT │ (fail ◀─ 0 ─▶ verified)
|
|
└───────────────┘
|
|
│
|
|
▼
|
|
┌───────────────┐
|
|
│ LIFEFORCE │ (+V / -V rewards)
|
|
│ (pool) │
|
|
└───────────────┘
|
|
│
|
|
▼
|
|
┌───────────────┐
|
|
│ NERVES │ (weight updates, pruning, reflex formation)
|
|
└───────────────┘
|
|
│
|
|
└──────────▶ (loop closes)
|
|
```
|
|
|
|
---
|
|
|
|
## Boundary Contracts
|
|
|
|
### 1. SENSOR → NERVE
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Raw sensor readings (temp, light, motion, audio level, etc.) |
|
|
| **Format** | Typed primitives: `{sensor_id, value, unit, timestamp}` |
|
|
| **Protocol** | Push (sensor fires when value changes or on interval) |
|
|
| **Transport** | NATS/MQTT topic per sensor type |
|
|
| **Timing** | Continuous, realtime clock |
|
|
| **Failure** | Sensor timeout → nerve receives NULL → emits "sensor_offline" token |
|
|
|
|
---
|
|
|
|
### 2. NERVE → DATA PLANE
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Vocabulary tokens (deterministic, no hallucination) |
|
|
| **Format** | `{token, confidence, source_nerve, real_time, beat_id}` |
|
|
| **Protocol** | Push (nerve fires on state transition) |
|
|
| **Transport** | NATS/MQTT vocabulary topic |
|
|
| **Timing** | Event-driven, but batched at heartbeat gate |
|
|
| **Failure** | Malformed token → logged, dropped, nerve flagged for review |
|
|
|
|
**Reflex bypass**: If nerve weight > 0.8, action fires immediately. Token still emitted for logging.
|
|
|
|
---
|
|
|
|
### 3. DATA PLANE → ORGANS
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Batched vocabulary tokens since last heartbeat |
|
|
| **Format** | `{beat_id, tokens[], garden, real_time, virtual_time}` |
|
|
| **Protocol** | Pull (organs request batch at heartbeat) |
|
|
| **Transport** | Internal queue / direct call |
|
|
| **Timing** | Heartbeat-gated (1 Hz real, up to 100 Hz virtual) |
|
|
| **Failure** | Organ timeout → skip this beat, log, continue |
|
|
|
|
---
|
|
|
|
### 4. ORGANS → ORCHESTRATOR
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Organ outputs (embeddings, classifications, text, decisions) |
|
|
| **Format** | `{organ_id, output_type, payload, confidence, latency_ms}` |
|
|
| **Protocol** | Push (organ completes → sends result) |
|
|
| **Transport** | Internal message bus |
|
|
| **Timing** | Async within heartbeat cycle |
|
|
| **Failure** | Organ error → orchestrator uses fallback or skips |
|
|
|
|
---
|
|
|
|
### 5. ORCHESTRATOR → NYX
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Unified context for decision-making |
|
|
| **Format** | `{beat_id, organ_outputs[], attention_weights, lifeforce_available}` |
|
|
| **Protocol** | Push (orchestrator assembles → sends to Nyx) |
|
|
| **Transport** | Direct call (same process) or IPC |
|
|
| **Timing** | Once per heartbeat after organs complete |
|
|
| **Failure** | Orchestrator failure → Nyx receives empty context → safe default |
|
|
|
|
---
|
|
|
|
### 6. NYX → GARDENS
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Decisions, predictions, actions |
|
|
| **Format** | `{decision_type, target_garden, payload, expected_outcome, confidence}` |
|
|
| **Protocol** | Push (Nyx decides → garden receives) |
|
|
| **Transport** | Garden-specific channels |
|
|
| **Timing** | End of heartbeat cycle |
|
|
| **Failure** | Decision undeliverable → queued for retry, logged |
|
|
|
|
---
|
|
|
|
### 7. GARDENS → CELLS (Storage)
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Events, states, predictions, verifications |
|
|
| **Format** | `{cell_type, payload, real_time, virtual_time, beat_id, confidence}` |
|
|
| **Protocol** | Write (append-only log + indexed lookup) |
|
|
| **Transport** | Direct DB connection (phoebe/postgres) |
|
|
| **Timing** | Immediate on event |
|
|
| **Failure** | Write failure → buffer locally, retry, alert |
|
|
|
|
---
|
|
|
|
### 8. GARDENS → CONFIDENCE GRADIENT
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Verification results (prediction vs reality) |
|
|
| **Format** | `{prediction_id, outcome: -1/0/+1, delta_confidence, evidence}` |
|
|
| **Protocol** | Push (verification completes → gradient updates) |
|
|
| **Transport** | Internal state update |
|
|
| **Timing** | Real garden: at real heartbeat. Virtual: async until sync checkpoint |
|
|
| **Failure** | Verification impossible → stays at 0-state, decays over time |
|
|
|
|
---
|
|
|
|
### 9. CONFIDENCE → LIFEFORCE
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Reward/penalty signals |
|
|
| **Format** | `{source, delta_v, reason, timestamp}` |
|
|
| **Protocol** | Push (confidence change → lifeforce adjustment) |
|
|
| **Transport** | Internal state update |
|
|
| **Timing** | Immediate on verification |
|
|
| **Failure** | N/A (pure calculation) |
|
|
|
|
---
|
|
|
|
### 10. LIFEFORCE → NERVES (Learning Loop)
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Data** | Weight adjustments |
|
|
| **Format** | `{nerve_id, delta_weight, new_weight, reason}` |
|
|
| **Protocol** | Push (lifeforce flows → weights update) |
|
|
| **Transport** | Nerve registry update |
|
|
| **Timing** | End of verification cycle |
|
|
| **Failure** | Update failure → logged, retried |
|
|
|
|
**Reflex formation**: When weight crosses 0.8 threshold, nerve gains reflex capability.
|
|
**Pruning**: Nerves with weight < 0.1 and no activity for N cycles → removed.
|
|
|
|
---
|
|
|
|
## The Three Clocks
|
|
|
|
| Clock | Governs | Rate | Cost |
|
|
|-------|---------|------|------|
|
|
| **Realtime** | Universe, sensors, real garden | 1x (wall clock) | Free |
|
|
| **Real Heartbeat** | Real garden sampling, verification sync | ~1 Hz | Free |
|
|
| **Virtual Heartbeat** | Virtual garden cycles, simulation | ~100 Hz (variable) | Lifeforce |
|
|
|
|
**Sync rule**: Virtual predictions queue until real heartbeat. Verification only at real heartbeats.
|
|
|
|
---
|
|
|
|
## Reflex Bypass Path
|
|
|
|
```
|
|
SENSOR → NERVE (weight > 0.8) → REFLEX ACTION
|
|
│
|
|
└──▶ TOKEN (logged, Nyx notified after)
|
|
```
|
|
|
|
Nyx learns about reflex after it fires. Like pulling hand from stove.
|
|
|
|
---
|
|
|
|
## The Economics (Sim2Real)
|
|
|
|
```
|
|
Target confidence needed
|
|
│
|
|
▼
|
|
┌─────────────────────────┐
|
|
│ target > sim_fidelity? │
|
|
└─────────────────────────┘
|
|
│
|
|
YES │ NO
|
|
│
|
|
┌────┴────┐
|
|
▼ ▼
|
|
REALITY SIMULATE
|
|
(wait) (spend V)
|
|
```
|
|
|
|
Formula: `grounded_confidence = raw_confidence * sim_fidelity`
|
|
|
|
Virtual can never exceed fidelity cap. Beyond that, only reality teaches.
|
|
|
|
---
|
|
|
|
## Dual Timestamp (Every Event)
|
|
|
|
```python
|
|
event = {
|
|
"real_time": "2025-12-05T22:30:00Z", # wall clock
|
|
"virtual_time": 847291, # beat number
|
|
"beat_id": "uuid", # which heartbeat
|
|
"garden": "real" | "virtual"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Design Principles
|
|
|
|
1. **Deterministic core**: Sensors → Nerves → Vocabulary is hallucination-free
|
|
2. **Batched processing**: Heartbeat gates continuous stream into manageable cycles
|
|
3. **Earned trust**: Reflexes form through verification, not configuration
|
|
4. **Economic honesty**: Virtual confidence is discounted by fidelity
|
|
5. **Graceful degradation**: Every boundary has a failure mode that doesn't crash the system
|
|
6. **Inspectable**: Every flow is logged, every decision traceable
|
|
|
|
---
|
|
|
|
*The map of how she thinks.*
|
|
|
|
---
|
|
|
|
**Created**: 2025-12-05
|
|
**Session**: Partnership dialogue (dafit + Chrysalis)
|
|
**Status**: Flow specification v1.0
|