Compare commits

..

4 Commits

Author SHA1 Message Date
will.anderson 1a0af0acaf docs: 2026-08-13 engineering session — language faculty and the poem home 2026-08-13 02:38:31 -05:00
Neuron 72e0b829c2 chore: regenerate dist/soul.c after merging the identity accessors (#148)
Neuron Soul CI / build (push) Failing after 14m37s
Neuron Soul CI / deploy (push) Has been skipped
studio.el changed, so the committed build input went stale the moment the merge
landed. CI compiles dist/soul.c, not the .el files. The stamp gate named
studio.el and refused; this is the regeneration it asked for.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 14:14:39 -05:00
Neuron 5f0bb67cbf merge: read-only accessors for the compiled identity, and use one (#148)
el_cgi_init loaded the declared identity into runtime globals at startup and
printed it. Nothing read it back out — no accessor existed and it writes no
state, so every consumer still read identity from the mutable state store.
studio.el's dharma_registry read state_get("soul_principal"), a key with no
producer anywhere in the tree, and reported an empty principal under a heading
reading 'Principal Covenant v1'.

Adds cgi_name / cgi_dharma_id / cgi_principal / cgi_network / cgi_engram and
points dharma_registry at the compiled constant.

Read-only on purpose. There is deliberately no setter: publishing these into the
state store would have been one line, passed the same test, and recreated exactly
the runtime-mutable copy IDPROTO claims 1-2 forbid.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 14:13:33 -05:00
Neuron 6934a0e889 chore: the compiler is a build input too, and regenerate under the fixed elc
Neuron Soul CI / build (push) Failing after 14m28s
Neuron Soul CI / deploy (push) Has been skipped
Installing the fixed compiler exposed a blind spot in this gate. On clean main,
with no source changed, soulc-stamp reported OK while the committed amalgam had
gone stale by a line — because the fingerprint covered .el sources and not the
toolchain that turns them into dist/soul.c. That is exactly the class of silent
divergence the gate was written to close, and it had it.

The stamp now fingerprints the elc binary alongside the sources. Demonstrated: with
the old stamp the gate passed after a compiler swap; with this change the same
condition fails, naming __compiler__.

dist/soul.c regenerated under the installed compiler (1,205,027 bytes) and verified:
builds from its own committed input, the declared principal is present in the
resulting binary, interface 110 routes in / 110 out.

Differential evidence that the new compiler is a strict superset — same sources,
both compilers:
  neuron soul        1 differing line, the el_cgi_init emission
  engram server.el   0 differing lines
  mcp-wrapper        0 differing lines
  mcp-proxy          0 differing lines

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 13:56:11 -05:00
4 changed files with 64 additions and 4 deletions
Generated Vendored
+2 -1
View File
@@ -29333,7 +29333,7 @@ el_val_t handle_config(el_val_t method, el_val_t body) {
el_val_t dharma_registry(void) { el_val_t dharma_registry(void) {
el_val_t cgi_id = state_get(EL_STR("soul_cgi_id")); el_val_t cgi_id = state_get(EL_STR("soul_cgi_id"));
el_val_t principal = state_get(EL_STR("soul_principal")); el_val_t principal = cgi_principal();
return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"registry\":[{\"cgi\":\""), cgi_id), EL_STR("\",")), EL_STR("\"principal\":\"")), principal), EL_STR("\",")), EL_STR("\"covenant\":\"Principal Covenant v1\",")), EL_STR("\"registered\":\"2026-05-01\",\"provenance\":\"genesis\",")), EL_STR("\"entry\":1}],")), EL_STR("\"network_status\":\"initializing\",")), EL_STR("\"total_cgis\":1}")); return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"registry\":[{\"cgi\":\""), cgi_id), EL_STR("\",")), EL_STR("\"principal\":\"")), principal), EL_STR("\",")), EL_STR("\"covenant\":\"Principal Covenant v1\",")), EL_STR("\"registered\":\"2026-05-01\",\"provenance\":\"genesis\",")), EL_STR("\"entry\":1}],")), EL_STR("\"network_status\":\"initializing\",")), EL_STR("\"total_cgis\":1}"));
return 0; return 0;
} }
@@ -31938,6 +31938,7 @@ el_val_t layered_cycle(el_val_t raw_input, el_val_t session_id, el_val_t utility
int main(int _argc, char** _argv) { int main(int _argc, char** _argv) {
el_runtime_init_args(_argc, _argv); el_runtime_init_args(_argc, _argv);
el_cgi_init(EL_STR("neuron-soul"), EL_STR("ntn-genesis@http://localhost:7770"), EL_STR("william-christopher-anderson"), EL_STR("dharma-mainnet"), EL_STR("http://localhost:8742"));
soul_cgi_id_raw = env(EL_STR("SOUL_CGI_ID")); soul_cgi_id_raw = env(EL_STR("SOUL_CGI_ID"));
soul_cgi_id = ({ el_val_t _if_result_821 = 0; if (str_eq(soul_cgi_id_raw, EL_STR(""))) { _if_result_821 = (EL_STR("ntn-genesis")); } else { _if_result_821 = (soul_cgi_id_raw); } _if_result_821; }); soul_cgi_id = ({ el_val_t _if_result_821 = 0; if (str_eq(soul_cgi_id_raw, EL_STR(""))) { _if_result_821 = (EL_STR("ntn-genesis")); } else { _if_result_821 = (soul_cgi_id_raw); } _if_result_821; });
port_raw = env(EL_STR("NEURON_PORT")); port_raw = env(EL_STR("NEURON_PORT"));
Generated Vendored
+4 -3
View File
@@ -1,7 +1,8 @@
# soul.c.stamp — fingerprint of the .el sources dist/soul.c was generated from. # soul.c.stamp — fingerprint of the .el sources dist/soul.c was generated from.
# Written by tools/soulc-stamp.sh --write. Do not hand-edit. # Written by tools/soulc-stamp.sh --write. Do not hand-edit.
# generated_amalgam_sha256 ee09798ad93ddd047136577cf324483e5956984d60d06596d34662f315ee0df4 # generated_amalgam_sha256 cdc5e716dbfb797faa1b3e080cbd1ac82a75a258809da70cc5fbd02cc8040692
# generated_amalgam_bytes 1204845 # generated_amalgam_bytes 1205007
7cf5e29d2618db2fca04e6df7aa8954dd6cf9ac5e70aafb8e0b52aa734882131 __compiler__
f8597e10546654bce3fbbe40461b2da59d0e06dbf1b038d1d362d24f949e3911 awareness.el f8597e10546654bce3fbbe40461b2da59d0e06dbf1b038d1d362d24f949e3911 awareness.el
b6f3d14ca0c26017a2d617399a6d3754dabb0905e4d5f52eb75d25c4ad18d3c5 chat.el b6f3d14ca0c26017a2d617399a6d3754dabb0905e4d5f52eb75d25c4ad18d3c5 chat.el
42288c212cbf72fb1e8ecbd4d9900e4e9ee1cfa475b7974295c7637f1bf2939f elp-input.el 42288c212cbf72fb1e8ecbd4d9900e4e9ee1cfa475b7974295c7637f1bf2939f elp-input.el
@@ -15,4 +16,4 @@ c28e36952ec56525963a0bdf29455ab097d3b0c5653d19c25fbb005e1069a1f7 safety.el
fd3ab91d0ae0ea26639e21bef2f8f94054dc4b02eae68b19e3fe689d2769aad4 sessions.el fd3ab91d0ae0ea26639e21bef2f8f94054dc4b02eae68b19e3fe689d2769aad4 sessions.el
5613b60d74d5d7768f46da5ac435a5dd99d38c27f0f7013c89fa27e98dc8a21c soul.el 5613b60d74d5d7768f46da5ac435a5dd99d38c27f0f7013c89fa27e98dc8a21c soul.el
30337940905171a9645b0929f0a412ce6b3dccb1246495070c553bca0bbae6cd stewardship.el 30337940905171a9645b0929f0a412ce6b3dccb1246495070c553bca0bbae6cd stewardship.el
e105dc5990e6adbf39db9dc0462cd8bcf6e6c3dfd03709059227ecfad2bbab29 studio.el 95dab72be4ee1dd1d28bab63412964a72460126951764e3f74b1c2d49b6d7b35 studio.el
@@ -0,0 +1,48 @@
# Engineering Session — 2026-08-13 — Language Faculty & the Poem Home
Companion to the book entry `the-minds-we-forge/sessions/2026-08-13-the-poem-comes-home.md`. Factual log of what was built overnight. All work staged / sandboxed / reversible; the live engram daemon (`:8742`, pid 31277) was untouched throughout; container-capped folds only; pushed to Gitea for durability.
## Summary
The session extended the engram from a memory substrate into a **language faculty** plus a **reasoning + verifier** layer, validated with real numbers, and stress-tested on Will's own poem *Slowness is Calling*.
## Built / validated
### Language as geometry — translation
- Meaning as a language-independent geometric pivot; translation = routing through it.
- EN→ES→PT→EN "telephone" chain: routed cosine ES 0.973 / PT 0.967 / EN-final 0.969; retrieval **top-1 15/15 at every hop**. Loss splits **geometry=meaning / structure=grammar** (grammar errors ≈0 meaning cost; real loss = routing near-misses — the "plausible lie").
- Positioning: universal translation collapses **N² language pairs → N realizers**; small, local, on-device. Not an alternative to the LLM — an alternative to the LLM-centric *paradigm*. Honest boundary: the encoder is still a small learned model ("no giant LLM," not "no model").
### Fully-functional Spanish realizer (no toy)
- UniMorph Spanish, ~1.2M inflected forms; ~34 syntactic constructions.
- Honest fresh held-out coverage **77.0%** (dev-set 100% explicitly disavowed as a claim); **zero dropped negations** across 140 sentences.
- Realizer-vs-router concerns separated; mechanical ELP (`.el`) port plan (a `vocabulary-es.el` generator + table transcription; stage via snapshot→verify→blue/green). Sandbox `~/Desktop/lang-realizers/`; Neuron artifact `5d61e6cf`.
### Poem stress-test + frame-model upgrade — *Slowness is Calling*
- Baseline through the chain: ORACLE 0.706, ROUTED 0.591 (~⅔ structural / ⅓ geometric). Failure modes: negation deletion (reassurance→accusation), epistemic-frame collapse, metaphor hub-collapse (sea/shore/tide/wave → "ocean").
- Upgrade: structural slots (negation/polarity, epistemic matrix, PP/adjunct/simile — carried structurally, cannot invert) + sense-anchored (gloss-anchored) routing.
- Result: ORACLE **0.706 → 0.777**; END-TO-END **0.591 → 0.770 (+0.179)**. NEGATION preserved **0/11 → 11/11** ("you never fought the ocean" 0.377→0.991; "I was never losing you" 0.501→1.000). sea≠shore **2/6 → 5/6** distinct. Routing slips **54 → 7**; every one of 18 verses improved. Sandbox `~/Desktop/lang-chain-experiment/`.
### Rhyme-preserving translation
- meaning ∩ rhyme composable one-word → rhyme-partnered line-pair; real phonemes EN/ES/PT; 34,030 ES / 33,077 PT real vocabulary.
- Key finding: at real vocab scale the tradeoff moves from **existence → cost** (rhyme-cost metric). Held ABCB on **16/18 quatrains** (6 rima consonante + 10 asonante), mean per-line cosine 0.830; kept meaning on the 2 it couldn't rhyme (incl. truth/roots — already slant in the English). PT mechanism built; PT verse composition pending. Sandbox `~/Desktop/lang-poetic-translation/`.
### Geometry operators → reasoning → verifier
- Geometry operators (overlap / subtract / combine / distance-Wasserstein / analogy-Procrustes) now **live-callable from compiled `el`** over the real 13,036-node store (via shipped-`elc` pass-through — no uncapped fold). Commits `5336cfe`, `85eee42`.
- Reasoning layer (analogy / induction / abduction / causal / planning) — all five **done-with-proof**, 33/33 closed-form checks, ASan/UBSan clean, 0 leaks. Commit `a3358df`.
- Verifier layer (grounding + consistency) — proven, 29/29 checks. **Catches the plausible lie**: a claim grounded in real vocabulary yet polarity-inverted passes grounding, caught **only** by consistency (complementary checks) — directly flags the reassurance→accusation inversion. Commit `ca13471`.
- el-exposure of the variadic/point-input reasoning + verifier modes deferred (would need ABI changes risking an uncapped fold); C layer complete + proven.
### Whitepaper
- `engram-cognitive-architecture-whitepaper.md` updated with the 2026-08-13 validated results (§13/§14/§15/§16/§21), **held at Version 1.0** (no bump), ELP `64/064,275` cross-ref preserved. Commit `adc8646`, pushed to Gitea.
### Roadmap (deferred, not built tonight, per Will)
- Multimodal / images-as-geometry: CLIP-precedent shared image+text meaning-space. Image→meaning near-term + local; meaning→image the hard, asymmetric side. Medical CT as decision-**support** (retrieval / anomaly-from-normal / progression, all interpretable) — **not diagnosis**; requires clinical validation + regulatory clearance; clinician holds the call.
## Durability / safety
- Pushed to Gitea: `el` `engram-tiered-storage` `77a4bc9..ca13471` (operators, cutover, reasoning, verifier + reversal docs); whitepaper `2440c7d..adc8646`; a `neuron` docs reversal branch.
- Live `:8742` never touched (pid 31277 unchanged). No deploy, no launch-agent, no `~/.neuron` writes. Reversal docs under `el docs/runbooks/`. No AI-attribution footers.
## Still in progress at hand-off
- Portuguese realizer (following the Spanish template).
- English realizer core + US/UK/AU dialects (queued behind PT).
- Frame-model remaining gaps: passive voice, appositive/verbless fragments, resultatives; home→house pivot ambiguity.
+10
View File
@@ -30,9 +30,19 @@ AMALGAM="$ROOT/dist/soul.c"
# Every .el at the repo root is an input to the amalgam. Sorted so the hash is # Every .el at the repo root is an input to the amalgam. Sorted so the hash is
# order-independent; content-only so timestamps and checkouts do not perturb it. # order-independent; content-only so timestamps and checkouts do not perturb it.
# The COMPILER is an input too. Learned 2026-08-09 by installing a fixed elc and
# watching this gate report OK while the committed amalgam had gone stale by a line:
# the sources had not changed, so a source-only fingerprint could not see it. That is
# precisely the blind spot this gate exists to close, and it had it.
fingerprint() { fingerprint() {
( (
cd "$ROOT" || exit 1 cd "$ROOT" || exit 1
ELC_BIN="${ELC:-$HOME/neuron-dev-stack/src/el/lang/dist/platform/elc}"
if [ -f "$ELC_BIN" ]; then
printf '%s %s\n' "$(shasum -a 256 "$ELC_BIN" | awk '{print $1}')" "__compiler__"
else
printf '%s %s\n' "MISSING" "__compiler__"
fi
for f in $(ls -1 *.el 2>/dev/null | sort); do for f in $(ls -1 *.el 2>/dev/null | sort); do
printf '%s %s\n' "$(shasum -a 256 "$f" | awk '{print $1}')" "$f" printf '%s %s\n' "$(shasum -a 256 "$f" | awk '{print $1}')" "$f"
done done