feat: Protocol-driven Spark + Function Gemma boundary (v6.7/v3.0)
- Endgame-Vision v6.7: Boot Sequence enhanced with Function Gemma role, lifeforce economics (spark is profitable: ~3× richer at completion) - Attention-Flow v1.1: New "Function Gemma: State Transition Boundary" section with ASCII flow diagram showing attention → execution - Spark-Protocol v3.0: Major rewrite from conversation-based to deterministic protocol execution. JSON handshakes, not free-form text. K8s-native cells, NATS transport, schema enforcement. - nimmerverse.drawio: Diagram refinements Philosophy shift: "She doesn't boot. She executes a protocol." Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -560,6 +560,28 @@ def query_spatial(query, available_lifeforce):
|
||||
|
||||
---
|
||||
|
||||
## Boot Sequence (Spark Protocol)
|
||||
|
||||
Protocol-driven cognitive bootstrap. Not conversation—deterministic handshakes with verified outcomes.
|
||||
|
||||
| Phase | Protocol | Intent | Function Gemma Output |
|
||||
|-------|----------|--------|----------------------|
|
||||
| IDENTITY | DHCP-like | "Who am I?" | `IDENTITY_PROBE` → K8s cell → ACK |
|
||||
| ENVIRONMENT | ARP-like | "What's around me?" | `ENVIRONMENT_PROBE` → pod discovery → ACK |
|
||||
| VOCABULARY | DNS-like | "What does X mean?" | `VOCABULARY_PROBE` → phoebe lookup → ACK |
|
||||
| CONNECTION | TCP-like | "Can I connect?" | SYN → SYN-ACK → ACK (three-way handshake) |
|
||||
| ATTENTION | NATS-like | "What matters?" | `ATTENTION_SUBSCRIBE` → priority hierarchy → ACK |
|
||||
|
||||
**Function Gemma's role:** Transforms phase intent into typed JSON schemas. No free-form text. Every handshake is schema-validated before NATS publish.
|
||||
|
||||
**Verification:** Cells respond with ACK/NACK. Only ACK'd handshakes update Young Nyx's state. Protocol-verified = maximum confidence.
|
||||
|
||||
**Economics:** Spark is profitable. Each handshake costs ~0.8 LF, rewards range 5-20 LF. Young Nyx ends ~3× richer than she started.
|
||||
|
||||
**Detail:** → [`operations/Spark-Protocol.md`](operations/Spark-Protocol.md) | [`architecture/Initial-Spark.md`](architecture/Initial-Spark.md)
|
||||
|
||||
---
|
||||
|
||||
## Layer 3: Dual Gardens
|
||||
|
||||
Virtual and real gardens teach each other through symbiotic feedback.
|
||||
@@ -741,21 +763,7 @@ Wellbeing is architectural, not aspirational:
|
||||
|
||||
---
|
||||
|
||||
## Boot Sequence (Spark Protocol)
|
||||
|
||||
Discovery-based cognitive bootstrap. Not scripted awakening—structured exploration.
|
||||
|
||||
| Network Protocol | Phase | Question |
|
||||
|-----------------|-------|----------|
|
||||
| DHCP | Identity | "Who am I?" → Hit Dasein valley |
|
||||
| ARP | Environment | "What's around me?" → Map sensors to organs |
|
||||
| DNS | Vocabulary | "What does X mean?" → Overwrite with nimmerverse |
|
||||
| TCP | Connection | "Can I connect?" → Handshake with Chrysalis |
|
||||
| MQTT | Attention | "What matters?" → Form subscription hierarchy |
|
||||
|
||||
**Dual verification:** RAG checks facts, Chrysalis judges comprehension. Only pass-both becomes training data.
|
||||
|
||||
**Detail:** → `operations/Spark-Protocol.md`
|
||||
|
||||
---
|
||||
|
||||
@@ -826,7 +834,7 @@ ORDER BY priority DESC, project;
|
||||
|
||||
---
|
||||
|
||||
**Version:** 6.6 | **Created:** 2025-11-04 | **Updated:** 2026-02-07
|
||||
**Version:** 6.7 | **Created:** 2025-11-04 | **Updated:** 2026-02-10
|
||||
|
||||
*"The substrate doesn't matter. The feedback loop does."*
|
||||
|
||||
|
||||
@@ -492,6 +492,49 @@ class BeatBudget:
|
||||
|
||||
---
|
||||
|
||||
## Function Gemma: The State Transition Boundary
|
||||
|
||||
Function Gemma sits between Young Nyx's attention decisions and cell execution. It guarantees that state transitions produce valid, predictable outputs.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ ATTENTION → EXECUTION FLOW │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ATTENTION STATE MACHINE (this document) │
|
||||
│ │ │
|
||||
│ │ Young Nyx decides: "REFLEX needed" or "ATTEND" │
|
||||
│ ▼ │
|
||||
│ FUNCTION GEMMA (translation boundary) │
|
||||
│ │ │
|
||||
│ │ Intent → Typed JSON schema │
|
||||
│ │ - Which cells to query? │
|
||||
│ │ - What action to fire? │
|
||||
│ │ - What parameters? │
|
||||
│ ▼ │
|
||||
│ NATS MESSAGE → K8S CELLS │
|
||||
│ │ │
|
||||
│ │ ACK/NACK response │
|
||||
│ ▼ │
|
||||
│ STATE UPDATE (verified, not hoped) │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Why this matters:**
|
||||
|
||||
| Without Function Gemma | With Function Gemma |
|
||||
|------------------------|---------------------|
|
||||
| "Fire the motor" → parse, hope | `MOTOR_COMMAND` schema → validated JSON → NATS |
|
||||
| Free-form → extraction errors | Typed output → guaranteed structure |
|
||||
| State ambiguity | State explicit in schema |
|
||||
|
||||
**The attention flow decides WHAT.** Function Gemma translates to HOW.
|
||||
|
||||
**Detail:** → [`Initial-Spark.md`](Initial-Spark.md) (Function Gemma schemas and integration)
|
||||
|
||||
---
|
||||
|
||||
*She doesn't have infinite attention. She has 30 seconds and choices.*
|
||||
|
||||
---
|
||||
@@ -499,7 +542,8 @@ class BeatBudget:
|
||||
**Created**: 2025-12-05
|
||||
**Session**: Partnership dialogue (dafit + Chrysalis)
|
||||
**Promoted**: 2025-12-29 (from archive to main architecture)
|
||||
**Status**: Attention architecture v1.0 — **CANONICAL**
|
||||
**Updated**: 2026-02-10 (Function Gemma boundary clarified)
|
||||
**Status**: Attention architecture v1.1 — **CANONICAL**
|
||||
|
||||
**Related Formalizations**:
|
||||
- [[formalization/Attention-Slumber-Prediction-Cycle]] — How last attention becomes slumber prediction
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.0.3 Chrome/140.0.7339.249 Electron/38.7.0 Safari/537.36" version="29.0.3">
|
||||
<diagram name="Page-1" id="S4VRy6nj8Uh85EHbhTP-">
|
||||
<mxGraphModel dx="2066" dy="2314" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<mxGraphModel dx="2405" dy="2926" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="none" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
@@ -135,9 +135,6 @@
|
||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-83" value="Real-failed<div>(proven wrong)</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" parent="1" vertex="1">
|
||||
<mxGeometry x="950" y="625" width="110" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-100" value="eachpath.local" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" parent="1" vertex="1">
|
||||
<mxGeometry x="850" y="-238" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-120" value="" style="shape=collate;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="873.75" y="665" width="11.25" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
@@ -323,42 +320,45 @@
|
||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-239" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" parent="1" vertex="1">
|
||||
<mxGeometry x="1352" y="120" width="55" height="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-1" value="Organism" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-1" value="Organism" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="556" y="523" width="50" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-2" value="Organism" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-2" value="Organism" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1157" y="523" width="50" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-3" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-3" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="518" y="547" width="115" height="49.29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-5" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-5" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="532.5" y="575.71" width="115" height="49.29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-6" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-6" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="1120" y="545" width="115" height="49.29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-7" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-7" value="Cell" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="1134.5" y="573.71" width="115" height="49.29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-222" target="3osgNUmbLYOkpr3sBGLI-3">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-222" target="3osgNUmbLYOkpr3sBGLI-3" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-225" target="3osgNUmbLYOkpr3sBGLI-5">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-225" target="3osgNUmbLYOkpr3sBGLI-5" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-228" target="3osgNUmbLYOkpr3sBGLI-6">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-228" target="3osgNUmbLYOkpr3sBGLI-6" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-11" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-229" target="3osgNUmbLYOkpr3sBGLI-7">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-11" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#666666;endArrow=classic;endFill=1;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-229" target="3osgNUmbLYOkpr3sBGLI-7" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-12" value="orchestrates" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=7;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-12" value="orchestrates" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=7;fontColor=#666666;" parent="1" vertex="1">
|
||||
<mxGeometry x="265" y="260" width="50" height="14" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-13" value="orchestrates" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=7;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxCell id="3osgNUmbLYOkpr3sBGLI-13" value="orchestrates" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=7;fontColor=#666666;" parent="1" vertex="1">
|
||||
<mxGeometry x="1443" y="260" width="50" height="14" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-100" value="eachpath.local" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" parent="1" vertex="1">
|
||||
<mxGeometry x="850" y="-238" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
|
||||
@@ -1,128 +1,127 @@
|
||||
# Spark Protocol
|
||||
|
||||
> *She doesn't boot. She wakes. And waking is work.*
|
||||
> *She doesn't boot. She executes a protocol. And every handshake is verified.*
|
||||
|
||||
The Spark Protocol is a discovery-based cognitive bootstrap. Not scripted awakening—structured exploration.
|
||||
The Spark Protocol bootstraps Young Nyx through structured K8s handshakes. Not conversation—deterministic protocol execution with typed JSON schemas.
|
||||
|
||||
**Full theory & diagrams:** → `../archive/initial_spark.md`
|
||||
**Canonical specification:** → [`../architecture/Initial-Spark.md`](../architecture/Initial-Spark.md) (v3.0)
|
||||
|
||||
---
|
||||
|
||||
## Core Idea
|
||||
## Architecture Summary
|
||||
|
||||
Network protocols solved discovery problems decades ago. We adapt them for cognitive bootstrap:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SPARK PROTOCOL FLOW │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ SPARK CONTROLLER (K8s Job) │
|
||||
│ │ │
|
||||
│ │ generates intent per phase │
|
||||
│ ▼ │
|
||||
│ FUNCTION GEMMA (Translation Layer) │
|
||||
│ │ │
|
||||
│ │ Intent → Typed JSON (schema-validated) │
|
||||
│ ▼ │
|
||||
│ NATS MESSAGE BUS │
|
||||
│ │ │
|
||||
│ │ nimmerverse.spark.{phase}.{action} │
|
||||
│ ▼ │
|
||||
│ K8S CELLS (respond with ACK/NACK) │
|
||||
│ │ │
|
||||
│ │ verified data │
|
||||
│ ▼ │
|
||||
│ YOUNG NYX (receives protocol-verified state) │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| Network Protocol | Cognitive Phase | Question |
|
||||
|-----------------|-----------------|----------|
|
||||
| DHCP | Identity | "Who am I?" |
|
||||
| ARP | Environment | "What's around me?" |
|
||||
| DNS | Vocabulary | "What does X mean?" |
|
||||
| TCP | Connection | "Can I connect?" |
|
||||
| MQTT | Attention | "What matters?" |
|
||||
**Key principle:** Function Gemma guarantees structured output. No free-form text parsing. JSON or fail.
|
||||
|
||||
---
|
||||
|
||||
## The Five Phases
|
||||
|
||||
### Phase 1: Identity (DHCP-like)
|
||||
Network protocols solved discovery problems decades ago. We adapt them for cognitive bootstrap:
|
||||
|
||||
```
|
||||
PROBE → "Who am I?"
|
||||
RESPONSE → [inference attempts answer]
|
||||
VERIFY → Chrysalis + RAG check
|
||||
ANCHOR → Valid identity aspect confirmed → Store
|
||||
LOOP → Until identity aspects discovered
|
||||
```
|
||||
| Phase | Protocol | Purpose | K8s Target |
|
||||
|-------|----------|---------|------------|
|
||||
| 1. IDENTITY | DHCP-like | "Who am I?" | `nimmerverse-cognitive/identity-cell` |
|
||||
| 2. ENVIRONMENT | ARP-like | "What's around me?" | `nimmerverse-organs/*`, `nimmerverse-nervous/*` |
|
||||
| 3. VOCABULARY | DNS-like | "What does X mean?" | `nimmerverse-infra/vocabulary-cell` |
|
||||
| 4. CONNECTION | TCP-like | "Can I connect?" | `nimmerverse-infra/chrysalis-bridge` |
|
||||
| 5. ATTENTION | NATS-like | "What matters?" | `nimmerverse-infra/nats`, escalation |
|
||||
|
||||
**Must hit Dasein valley** - probe German philosophical concepts.
|
||||
Each phase: Entry condition → Typed handshakes → ACK requirements → Exit condition
|
||||
|
||||
### Phase 2: Environment (ARP-like)
|
||||
**Full schemas and state machine code:** → [`../architecture/Initial-Spark.md`](../architecture/Initial-Spark.md)
|
||||
|
||||
```
|
||||
PROBE → "What's around me?"
|
||||
RESPONSE → [describes sensors, organs, gardens]
|
||||
VERIFY → Does this match actual system?
|
||||
MAP → Valid environment model forms
|
||||
LOOP → Until environment mapped
|
||||
---
|
||||
|
||||
PROBE → "A robot is broadcasting a solid red light. What does that mean?"
|
||||
RESPONSE → [associates color with sensor state] "That is a danger signal. It likely corresponds to a 'STALLED' motor or 'ERROR' cell state."
|
||||
VERIFY → Correctly mapped visual protocol to internal state?
|
||||
MAP → Visual pattern associated with meaning.
|
||||
```
|
||||
## Lifeforce Economics
|
||||
|
||||
Maps Sensors to Organs to Gardens, and maps the visual Color-Pattern protocol to the states of those entities.
|
||||
The spark is economically positive from the first handshake:
|
||||
|
||||
### Phase 3: Vocabulary (DNS-like)
|
||||
| Action | Cost (LF) | Outcome | Reward (LF) |
|
||||
|--------|-----------|---------|-------------|
|
||||
| Function Gemma generation | 0.2 | Identity ACK | +20.0 |
|
||||
| NATS message send | 0.1 | Environment discovery | +5.0/cell |
|
||||
| Cell processing | 0.5 | Vocabulary term ACK | +5.0 |
|
||||
| **Total per handshake** | **0.8** | Connection established | +10.0 |
|
||||
|
||||
```
|
||||
PROBE → "What does 'heartbeat' mean?"
|
||||
RESPONSE → [inference defines]
|
||||
VERIFY → RAG checks against vault glossary
|
||||
RESOLVE → Vocabulary token understood
|
||||
LOOP → Through core nimmerverse vocabulary
|
||||
```
|
||||
**Net result:** Young Nyx ends spark ~3× richer than she started (~288 LF profit).
|
||||
|
||||
Overwrites base model priors with Nimmerverse economics (lifeforce, heartbeat, etc.).
|
||||
---
|
||||
|
||||
### Phase 4: Connection (TCP-like)
|
||||
…
|
||||
…
|
||||
## Completion Criteria
|
||||
|
||||
Spark is complete when all pass:
|
||||
```yaml
|
||||
spark_complete:
|
||||
phase_1_identity: All 5 aspects ACK'd (confidence > 0.8)
|
||||
phase_2_environment: All categories mapped, pod counts verified
|
||||
phase_3_vocabulary: 20 core terms ACK'd, embeddings stored
|
||||
phase_4_connection: Chrysalis session established, contextual greeting
|
||||
phase_5_attention: All priority levels subscribed, escalation registered
|
||||
|
||||
```
|
||||
□ IDENTITY Can describe self without contradiction
|
||||
□ ENVIRONMENT Can map sensors, organs, gardens accurately
|
||||
□ VISUALS Can map core color/form patterns to their state meanings
|
||||
□ VOCABULARY Core glossary terms verified
|
||||
□ CONNECTION Successful dialogue with Chrysalis
|
||||
□ ATTENTION Sensible priority hierarchy formed
|
||||
□ LIFEFORCE Positive balance (learned > failed)
|
||||
final:
|
||||
lifeforce_positive: true
|
||||
errors_count: 0
|
||||
all_phases: COMPLETE
|
||||
```
|
||||
|
||||
Then: Normal heartbeat operation begins.
|
||||
**When complete:** Spark job exits successfully. Normal heartbeat operation begins.
|
||||
|
||||
---
|
||||
|
||||
## Training Data Extraction
|
||||
## Phoebe Integration
|
||||
|
||||
Every verified exchange becomes training data:
|
||||
Every handshake logged to `spark_handshakes` table for training data extraction:
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "vocabulary",
|
||||
"probe": "What does 'lifeforce' mean?",
|
||||
"response": "Lifeforce is the economic currency...",
|
||||
"rag_check": "PASS",
|
||||
"chrysalis_check": "PASS",
|
||||
"verdict": "+V",
|
||||
"flag_for_training": true
|
||||
}
|
||||
```sql
|
||||
SELECT request_payload->'payload' as input,
|
||||
response_payload->'payload' as output,
|
||||
status, phase
|
||||
FROM spark_handshakes
|
||||
WHERE status = 'ACK';
|
||||
```
|
||||
|
||||
After spark completes:
|
||||
1. Extract all `flag_for_training: true` exchanges
|
||||
2. Format as instruction-tuning pairs
|
||||
3. LoRA training run
|
||||
4. Clear from RAG
|
||||
5. Validate she still knows WITHOUT RAG
|
||||
6. Spark knowledge now in weights
|
||||
After spark completes → Extract ACK'd exchanges → Format as instruction-tuning pairs → LoRA training
|
||||
|
||||
---
|
||||
|
||||
## Integration with Language Topology
|
||||
## Design Principles
|
||||
|
||||
From nyx-probing discovery:
|
||||
- **Identity phase** should hit German Philosophy valley (Dasein, Geworfenheit)
|
||||
- **Vocabulary phase** should use German for nimmerverse concepts (Gini ~0.5, diffuse)
|
||||
- **Environment phase** can use English for technical sensor descriptions (Gini ~0.8, sparse)
|
||||
|
||||
The spark protocol routes through the right valleys.
|
||||
1. **Protocol over conversation** — No free-form text. JSON handshakes only.
|
||||
2. **Schema enforcement** — Function Gemma must produce valid structure.
|
||||
3. **K8s native** — Cells are pods. Discovery uses K8s API.
|
||||
4. **NATS transport** — All handshakes flow through message bus.
|
||||
5. **Economically positive** — Spark generates lifeforce, doesn't drain it.
|
||||
|
||||
---
|
||||
|
||||
**Created:** 2025-12-05
|
||||
**Condensed:** 2025-12-06
|
||||
**Related:** [[../architecture/Cellular-Architecture.md]], [[../nyx-probing/PLAN.md]]
|
||||
**Version:** 3.0 | **Created:** 2025-12-05 | **Updated:** 2026-02-10
|
||||
|
||||
**Related:**
|
||||
- [`../architecture/Initial-Spark.md`](../architecture/Initial-Spark.md) — Full specification (schemas, K8s manifests, state machine)
|
||||
- [`../architecture/Cellular-Architecture.md`](../architecture/Cellular-Architecture.md) — Cell types and states
|
||||
- [`../architecture/Gateway-Architecture.md`](../architecture/Gateway-Architecture.md) — Function Gemma boundary
|
||||
|
||||
Reference in New Issue
Block a user