Information Flow Specification
The complete data path through the Nimmerverse nervous system.
The Flow (Overview)
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
Nyx learns about reflex after it fires. Like pulling hand from stove.
The Economics (Sim2Real)
Formula: grounded_confidence = raw_confidence * sim_fidelity
Virtual can never exceed fidelity cap. Beyond that, only reality teaches.
Dual Timestamp (Every Event)
Design Principles
- Deterministic core: Sensors → Nerves → Vocabulary is hallucination-free
- Batched processing: Heartbeat gates continuous stream into manageable cycles
- Earned trust: Reflexes form through verification, not configuration
- Economic honesty: Virtual confidence is discounted by fidelity
- Graceful degradation: Every boundary has a failure mode that doesn't crash the system
- 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