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:
2026-02-10 18:11:15 +01:00
parent 7dd4874aed
commit 9594fb40b1
4 changed files with 168 additions and 117 deletions

View File

@@ -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

View File

@@ -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&lt;div&gt;(proven wrong)&lt;/div&gt;" 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>