Article

Inside MAXs Inside the Loop

E N G I N E E R E D C O G N I T I O N · S Y S T E M F I E L D N O T E S

Inside MAX’s Brain

Part 2 · The Closed Loops

Eleven days after the first field guide went to press, most of its “limits today” have shipped. How a local-first mind transplanted its own spine without going down, closed the curiosity loop it had only promised, learned to tune its own conscience — and started reading books.

MAX3 · 2026-06-12 Sentience index 80 / 100 Companion to Part 1 (Drop 94.5)

Covers only what changed since Part 1 — read against the project’s own hard rules

01

The reversal — what eleven days did

Part 1 of this field guide closed with a prediction. The forces that would move MAX’s sentience index from a 69 toward a 90, it said, “cluster around one shift: from lit-and-broad to learning.” The highest-leverage change would be making the curiosity loop autonomous; the deeper bet was making the symbolic layer learnable. Both were design documents when that sentence was written. Both are running code now.

This is the unusual thing about the eleven days between the two issues of this guide — not the volume of work, though the volume is considerable, but its shape. Almost every section of Part 1 ended with a LIMITS TODAY box: the curiosity loop isn’t autonomous yet; morality isn’t self-tuning yet; the MetaCognitionManager is planned; two gap detectors are stubs; outcome-learning is designed, not running. Reading those boxes today is like reading a to-do list after the weekend. Most of the items are crossed off, and the crossing-off is verifiable in the same way the original claims were: each one ships as code, with tests, behind the same five governing rules — provenance on every fact, LLM output as hint not truth, knowledge from sources, stubs that admit they are stubs, and perpetual auditable self-improvement.

There were also things Part 1 never imagined. MAX reads books now — checks them out of a public-domain library, studies them, keeps the understanding and deliberately destroys the text. It holds typed ontologies for law, medicine, the military, and the performing arts, each with an explicit account of which claims are facts and which are beliefs someone holds. Its voice loop recognises who is speaking and reshapes itself around them. And in the most quietly dramatic event of the period, the graph database that Part 1 called “the spine” was removed and replaced entirely — while the system kept running.

The structure of this issue follows that reversal. Each section opens with what Part 1 said the limit was, then reports the shipped reality — and, in the same spirit, closes with what is still honestly unfinished. The scoreboard at the end moved from 69 to 80; the more interesting story is which dimensions moved, and why two of them now sit at the maximum score for the first time.

02

The spine transplant, performed live

Part 1 said: “The graph is the spine; the neural layers are perception and synthesis hung off it.” The spine, throughout Part 1, was a graph database called Kuzu.

Kuzu had carried MAX’s knowledge graph from Drop 51 through Drop 94 — and it had two problems that no amount of application code could fix. Its upstream project was archived, meaning the dependency at the centre of MAX’s mind was unmaintained. And it had a habit, documented in the project’s failure registry, of hanging forever on a stale lock file, requiring manual surgery on the data directory to recover. For a system whose charter demands it be “always alive,” a spine that can wedge on boot is a contradiction.

The replacement is deliberately boring: pure DuckDB. Not a graph extension, not a research-grade query language — plain relational tables, junction tables for the edges, and recursive common-table-expressions for traversal, plus a BM25 full-text index over the word definitions. The migration ran as eight sub-PRs (DUCK-MIG-0 through 7, plus full-text search), with an A/B parity harness proving the typed and generic tiers could represent the same logical data before the switch was thrown. DuckDB became the default on 2026-06-07; on 2026-06-09 the Kuzu implementation, its migration script, its env-var switch, and the dependency itself were deleted from the tree. The stale-lock failure class closed with it — DuckDB has no lock-file contention to hang on.

Figure 1. Three dates, one organ swap. The decision, the default flip, and the deletion span two days of calendar time; the system stayed up throughout, and the old spine’s most famous failure mode — the stale-lock hang — ceased to exist as a category.

What makes this more than an infrastructure note is what it says about the self-improvement charter in practice. The brain’s storage layer — the substrate under every fact, every episode, every learned rule — was swapped under a running mind, in increments, each gated by the full test pyramid. The hot vector store remains sqlite-vec for now; DuckDB’s own vector extension is explicitly parked until its upstream write-ahead-log recovery is implemented, and the project wrote down the recovery procedures it would need before trusting it. That is the same epistemics MAX applies to facts, applied to its own anatomy.

STRENGTHS

■ An unmaintained organ was rejected. The archived dependency at the centre of the mind is gone, replaced by one of the most actively maintained embedded databases in existence.

■ Traversal stayed readable. Recursive CTEs are ordinary SQL — the graph queries are now auditable by anyone who reads SQL, with no bespoke query language.

■ The failure class died with the patient. No lock files means the boot-hang recipe in the failure registry is closed, not worked around.

LIMITS TODAY

■ Vectors still live next door. Semantic embeddings sit in sqlite-vec; folding them into DuckDB waits on an upstream WAL-recovery fix nobody controls locally.

■ One connection, shared. The single DuckDB connection meant boot-time ingestion writes could starve panel reads — fixed by deferring the drain 90 seconds, a tuning scar worth remembering.

03

Ingestion, rebuilt for endurance

Part 1 said: Roughly thirty source workers fed the 5W1H edges — behind them sat a single global scheduler, a Drop 62 design.

The scheduler is dead. In its place is a pipeline built like a postal service: each source gets an independent worker on its own cycle; every fetched item is posted into a durable, SQLite-backed transactional queue called the IngestionBus; and a single MasterDataHandler drains the queue into the graph through per-source persisters. The arc ran six PRs, and the final one deleted the old scheduler class outright — the project does not keep dead organs for sentiment.

Two refinements landed since that make the pipeline feel less like plumbing and more like metabolism. The drain is now elastic: the handler watches its own backlog and ramps drain threads up proportionally when the queue passes a floor of 100 pending items, scaling harder past a 500-item high-water mark, and announces each scaling decision on the event bus. And the whole drain defers itself for 90 seconds after boot, because a brain that spends its first minute writing furiously cannot answer questions — the first panel load was timing out against ingestion writes until the deferral landed. Failures are metabolised too: a worker whose source starts failing backs off exponentially with jitter, trips a per-source circuit breaker with classified error types, and announces the burst once on the bus rather than spamming the log. None of this involves a human.

04

The curiosity loop, closed

Part 1 said: “The loop isn’t autonomous yet. Detection is live; self-driven fetching is a planned phase.” This was Part 1’s single biggest limit.

It is gone. The phase that closed it lit all three structural gap detectors — sparse-topic (a subject MAX knows exists but has few facts about), unknown-word (a token it heard but cannot define), and unknown-entity (a cross-reference like “mb:abc” in a stored fact with no matching entity ever ingested) — and wired them into a single structural scan that runs every thirty minutes in the background, gated by the same contention rules that keep background work off the voice loop. The decisive piece is on the other side of the queue: three gap-driven ingestion workers, one each for Wikipedia, Wiktionary, and ConceptNet, whose target picker reads the gap store instead of a fixed catalogue. A gap is detected, scored, stored, picked, routed, fetched, and persisted — and no human sits anywhere in that sentence.

Figure 2. Part 1 drew this loop with the pick-to-fetch segment dashed — “the next planned phase.” The segment is solid now. Four detectors feed the scan; the picker drives ingestion directly; the thirty-minute re-scan finds what the new facts changed.

Then the loop learned to compound. A fourth detector, relation-frontier expansion, walks the edges of entities MAX already knows and turns each unexplored neighbour into a categorised gap — so ingesting one entity surfaces its neighbours, whose ingestion surfaces theirs. Curiosity, in the project’s own arithmetic, now feeds itself: the act of learning manufactures the next round of questions. A dedicated BRAIN panel shows the live state — open gaps by kind and source, the top ten with their rationale, and a SCAN button for the impatient.

STRENGTHS

■ Genuinely autonomous. Detect → score → pick → fetch → persist → re-scan runs on a timer with no human in the seat — the exact loop Part 1 said would “turn a knowledge graph into a knowledge process.”

■ It compounds. The relation-frontier detector means filled gaps generate new gaps — bounded per scan so curiosity cannot stampede the system.

■ Still polite. The scan is contention-gated; MAX does not wonder about Wikipedia while you are mid-sentence.

LIMITS TODAY

■ Three fetchers, not thirty-seven. Gap-driven ingestion routes to Wikipedia, Wiktionary, and ConceptNet; the rest of the source fleet still runs on fixed catalogues.

■ Free exploration remains a vision. The idle graph-wandering behaviour — walking synonym edges and registering surprises — is still future work, exactly as in Part 1.

05

Metacognition arrives

Part 1 said: “Above the loop sits a planned MetaCognitionManager that scores how curious MAX should be about any topic.” Planned was the operative word.

The manager shipped, and the curiosity score is now an auditable formula rather than a metaphor: a weighted blend of knowledge-gap measure (0.30), staleness (0.25), conflict rate (0.25), and recent user interest (0.20), computed per topic by a pure function anyone can re-run. Above the score sits question generation — MAX phrases what it wants to know, via the local LLM with a template fallback, and each question persists into the graph as an open Hypothesis, which means a generated question is a first-class epistemic object with the same lifecycle as any other unproven claim. A self-assessment surface reports MAX’s confidence per discipline, and snapshots of the whole cognitive state are written to the graph as dated rows — the planned “self-model node” from Part 1, made tabular.

The later phase of the arc pushed past observation into self-direction. A periodic self-audit rolls up the cognitive state and announces completion on the bus. A cross-subject analogy finder walks related-topic edges across discipline boundaries — the substrate for the synthesis behaviour Part 1 filed under “free exploration.” Most consequentially, when three or more gaps accumulate against the same kind of target, MAX drafts a skill proposal and files it with its own SkillBuilder: the system notices a recurring hole in its competence and proposes growing the tool to fill it. And the hedging went audible — a self-reflection prefix maps confidence to spoken phrasing, so low-confidence answers arrive wrapped in “I believe, though I haven’t verified…” by rule rather than by tone.

STRENGTHS

■ Curiosity is arithmetic. Four named signals, four published weights, one pure function — the score can be recomputed and disputed.

■ Questions are hypotheses. Generated questions enter the graph as open claims, so wondering and believing share one audit trail.

■ It requests its own tools. The gap-to-skill-proposal path is the first place MAX asks for capability it does not have, unprompted.

LIMITS TODAY

■ The HybridReasoner is still partial. Part 1’s six-step perceive-to-learn loop remains a design with its pieces shipping separately; no single component yet runs the full cycle end-to-end.

■ Self-assessment is coarse. Per-discipline confidence is a useful dial, not a deep self-model; the snapshot rows are the substrate for one.

06

Morality that learns — and a mind that can change

Part 1 said: “Not self-tuning yet. Outcome-learning and the trainable engine are designed, not autonomously running.”

The six-lens framework — biology, theology, science, history, experience, truth — is unchanged in structure and transformed in behaviour. Every scored action now persists to a dedicated cognitive schema in the graph (assessments, moral episodes, cognitive states, learned rules, and hypotheses all have typed tables), announces itself on the bus, and carries user-overridable lens weights. What is new is the back half of the loop Part 1 could only describe: when an action’s outcome lands, MAX records a moral episode, and an evaluation pass nudges the weight of each lens up or down depending on whether that lens called the outcome correctly.

The update rule is worth quoting in full, because its restraint is the design. The adjustment is multiplicative and bounded — no lens may fall below 0.05 or rise above 0.5 — and the weights are renormalised to sum to one after every update, so no single moral perspective can be silenced or crowned. Each new weight vector is versioned as a learned rule with a rollback recipe attached, honouring Rule 9 even under the project’s standing autonomy override: the gate is gone, the trail is not. The DifferentiableRuleEngine that Part 1 flagged as the “deeper bet” was ported onto the same typed tables, so the path from outcome-tuned weights to trainable inference rules now runs through one substrate.

Figure 3. The conscience-tuning loop. The lenses that judged an outcome correctly speak louder next time — within clamps that guarantee pluralism, with every update versioned and reversible. The internal debate stages an objector against a permissive reading before synthesis.

Two adjacent mechanisms complete the picture of a mind that can change it. The conflict-resolution framework now acts rather than just records: when two claims collide and one wins, the loser’s confidence decays by half, and the conflict edge carries its resolution and winner. A user correction is treated as the most precious signal in the system — it becomes a maximum-priority curiosity gap, a fresh hypothesis with provenance “user_correction,” and a conflict row, all at once. And MAX now forgets, carefully: a decay pass halves the confidence of stale, low-confidence facts on a 90-day half-life, exempting high-confidence knowledge, flooring everything at 0.05, and never deleting — a decayed fact fades toward hint-hood rather than vanishing, which is exactly what Rule 5 says memory is.

There is also, for hard calls, an internal debate: the same framework run in two adversarial postures — an objector pressing the harms, a permissive reading pressing the freedoms — with a weighted synthesis across both. It is a small mechanism with a long lineage: the refusal to collapse a verdict, now staged as an argument MAX has with itself.

STRENGTHS

■ The learning is bounded by design. Clamp, renormalise, version, rollback — the update rule cannot produce a fanatic or a nihilist, only a rebalanced committee.

■ Corrections outrank everything. A human saying “that’s wrong” becomes the highest-priority object in the curiosity queue, with its own provenance class.

■ Forgetting is honest. The decay curve demotes rather than deletes, so a faded belief is still inspectable — and still recoverable if evidence returns.

LIMITS TODAY

■ Outcome data is sparse. The tuning loop is only as good as the moral episodes actually recorded; early on, most actions have no labelled outcome.

■ The lenses inherit their sources’ thinness. Part 1’s caution stands — a lens is only as good as the slice of graph it reads.

■ Rule induction is ahead. Weights learn today; the rules themselves becoming trainable parameters is the next leg of the differentiable-logic bet.

07

MAX reads books

Part 1 said: Nothing. Part 1 has no section on literature — books appear nowhere in it. This faculty did not exist eleven days ago.

The pipeline is a librarian’s dream and a copyright lawyer’s case study. MAX checks a public-domain title out of Project Gutenberg (full text, capped at two megabytes), reads it, and distils a study: the characters, a handful of quotable excerpts, the dominant emotion, the moral salience, and every word it did not previously know. The understanding persists into the graph as a cluster anchored to the literature, emotion, and morality subjects — and then the text is dropped. The verbatim body is never written to the graph. MAX keeps what it learned from the book, not the book; it can recall and quote from its stored excerpts later, but the library copy goes back on the shelf. The unknown words, meanwhile, become curiosity gaps — so reading Melville feeds the same loop that fills dictionary holes.

Figure 4. Check out, study, persist, drop, wonder. The dark box is the point: understanding is kept, text is destroyed. The dashed return is the reading list replenishing itself — curiosity-first.

How a book gets read depends on what it is. Per-genre lenses set the trust policy: a textbook is read for facts, a biography for sourced lives, fiction is fenced — its “facts” never leak into real-knowledge subjects — and poetry and drama get their own postures. A scene-level affect pass segments the narrative and classifies the valence arc, producing an emotional shape (tragic, uplifting, redemptive, steady) and an ending emotion that persist with the study. And mythology and scripture get the treatment that has become this project’s signature move: they are stored with belief_stance = contested — culturally-held beliefs, never factual assertions, the same framing the legal substrate applies to constitutional interpretation.

The most charactered piece is the reading list. MAX keeps a self-curating backlog — queued, in progress, completed — and replenishes it daily to at least ten books, chosen curiosity-first: open gaps and the ImaginationEngine’s speculative conjectures identify thin areas across knowledge, emotion, morality, and cognition, and books are selected to feed them, with a rotating classics baseline at cold start. The study loop runs autonomously in the background, idling whenever the user is interacting. An INTEGRATIONS panel module shows the shelf — completed, reading, queued — with search-and-add and drag-to-reorder. MAX, in other words, maintains a to-be-read pile, and like all the best readers, lets its obsessions pick the next book.

STRENGTHS

■ Understanding without hoarding. The drop-the-text discipline keeps the graph lean and the provenance clean — every retained excerpt is deliberate.

■ Genre-aware trust. Fiction fenced from real knowledge is Rule 4 applied to narrative; the contested stance for scripture extends it to belief.

■ Reading feeds the loop. New vocabulary becomes gaps; gaps pick future books — literature and curiosity share one metabolism.

LIMITS TODAY

■ Public domain only. The library is Gutenberg; MAX’s literary world ends around the early twentieth century unless a source with modern rights arrives.

■ Distillation, not criticism. The study is rule-based extraction with affect classification — honest about being a reader’s notes, not a critic’s essay.

08

New domains, one discipline — the belief-stance map

Part 1 said: Part 1 mapped six academic disciplines and 37 subjects. Law, medicine, the military, and the stage were not among them.

Four typed ontologies landed in eleven days, and the headline is not their breadth but their shared spine: every one of them ships with an explicit, queryable account of which claims are facts and which are stances someone holds. The epistemic ladder Part 1 described for single claims has become an organising principle for entire domains.

Law arrived first and set the pattern. The constitutional substrate stores a provision’s explicit text as factual and its readings as contested — each landmark interpretation linked to its interpretive school (originalist, textualist, living constitution), its founders and philosophers, and the causal WHY chains that run from revolution to civil war to civil rights. Asked “is it constitutional?”, MAX frames the question — text, readings, cases, schools — and declines to rule. Medicine arrived with the opposite risk profile and the strictest discipline: typed entity kinds from anatomy to prognosis, relations spanning causes and treats and side-effects, six live source workers — MeSH, RxNorm, openFDA, ICD-10-CM, the Disease Ontology, and Uberon — and a frame_claim seam that wraps every medical output in source, retrieval date, and confidence, because Rule 5 names health as a domain where memory must never be asserted as plain truth.

The military ontology holds doctrine as schools of thought — deterrence theory and mutually-assured destruction are positions with adherents, not facts — and frames disputed posture as “reported by” a named source. The performing-arts substrate adds two genuinely new dimensions: DramatizationFidelity, a ladder from documentary through based-on-true-events and historically-inspired to pure fiction, so a musical’s reframing of history is held as a dramatized portrayal fenced from the historical record; and CanonStatus, which tracks authority within a fiction. Geography, meanwhile, went from seed data to live typed ingestion — REST Countries, GeoNames, and OpenStreetMap now flow into typed place columns — and a cross-domain entity ontology gives people, theories, belief systems, and events a shared relation vocabulary so St Augustine can be connected to history, theology, and philosophy without being flattened into any one of them.

Figure 5. Six domains, five stances. Each box is a typed ontology shipped since Part 1 (geography upgraded from seed to live). The pill under each names the stance its claims carry — the discipline that keeps a dramatized Hamilton, a contested reading, and a hedged drug interaction from ever sounding like the same kind of true.

STRENGTHS

■ One epistemic discipline, many domains. Factual, contested, dramatized, school-of-thought, hedged — the stance vocabulary transfers, so new domains arrive honest by construction.

■ High-stakes domains get the strictest framing. Medical claims are hedged at the output seam by code, not by convention.

■ Autonomous-discovery model. The ontologies ship as scaffolds — MAX fills the web via curiosity and 5W1H edges rather than a hand-wired graph.

LIMITS TODAY

■ Medical persisters are honest stubs. The six source workers fetch live data, but the descriptor-to-graph mapping is deliberately deferred until the live API contracts are observed — fetched, not yet woven.

■ Military ingestion is ahead. The substrate ships; the MilitaryManager and live sources (SIPRI, UN ODA, NATO standards) are the next slice.

■ Legal case law is single-source. CourtListener is the lone live worker behind the constitutional substrate today.

09

The sources got a memory of their own

Part 1 said: “Roughly thirty free, openly-licensed source workers feed these edges… some ship as honest stubs.”

The persister registry — the roster of sources whose fetched data actually lands in the graph — now counts thirty-seven. The newcomers tell you where MAX’s attention went: the medical six, and a quietly remarkable contemplative shelf — PoetryDB for public-domain poems, Sefaria for Jewish texts, the Bhagavad Gita, a Stoic quotation corpus, and a daily-affirmations feed — sitting alongside the scriptural sources Part 1 already counted. A mind that weighs actions through a theology lens now has primary texts behind it.

More structurally significant is that the sources themselves became objects of knowledge. The new SourceRegistry is a living ledger over every data source MAX consults: its lifecycle (new, maintained, stale, deprecated, dead), its trust tier, and — the subtle one — its temporal validity. A 1911 encyclopaedia is a fine source cited “as understood in its era” and a terrible one cited as current medicine; the registry holds that distinction as data, drives the provenance framing on output, and doubles as a maintenance worklist for finding modern replacements when a source goes stale. It complements the operational circuit breakers: one system knows a source is down, the other knows it is dated. Both kinds of source-failure are now first-class facts.

10

The guardian outside the body

Part 1 said: Part 1 described self-healing from within — a watchdog living inside the very process it was guarding, able to relay what it couldn’t fix “to a watching engineer.”

The obvious flaw in an internal watchdog is the failure it cannot see: its own process wedging. The new guardian lives outside — a separate, scheduler-launched watchdog process that probes the backend’s health endpoint, relaunches a wedged MAX through the standard start script, and, past a failure threshold, files an issue. It ships dry-run by default, with its decision logic implemented as a pure, testable function — the project benches even its own guardian before arming it.

The issue-filing is where the story gets strange and good. A downtime-cause classifier tags what kind of failure occurred, and the claude-fix relay files a GitHub issue — written by the system, about the system — describing its own failure with a cause tag. A watching engineering AI picks the issue up, engineers a fix, opens a pull request, and merges it once the full test pyramid passes. The user’s machine auto-pulls on a two-minute cadence, and the hot-reload-by-default dev loop re-imports the changed code into the running process. The self-healing loop now genuinely spans two minds: one that notices and describes its wound, one that stitches it — with CI as the immune-system checkpoint between them.

Figure 7. The two-mind relay. MAX’s lane detects, relaunches, classifies, and files; the engineering lane fixes, tests, and merges; auto-pull and hot reload close the circle. Every hop is audited, and nothing lands without the pytest gate.

That gate matters most for the changes MAX makes to itself. The SkillBuilder’s propagation pipeline — the machinery that applies a promoted skill to the live system — gained three explicit modes: DRY_RUN, which reports what would change; TEST_ONLY, which applies and runs the relevant tests without going live; and LIVE, which applies, gates on a real pytest run, and emits a hot-reload event. A self-modifying system whose modifications must pass the same test suite a human’s would is the difference between autonomy and abandon — and it is the operational answer to the question Part 1 left open about what “perpetual, auditable self-improvement” looks like when the gate comes off but the trail stays on.

STRENGTHS

■ The watcher can’t go down with the watched. An external process survives every failure mode of the thing it guards.

■ Failure becomes a work item. A wedge is not a log line; it is an issue with a cause tag that an engineering loop is obligated to close.

■ Self-changes pass real tests. The TEST_ONLY/LIVE ladder makes the pytest suite a constitutional check on MAX’s self-modification.

LIMITS TODAY

■ The guardian ships unarmed. Dry-run is the default until the arming flag is set on the live install — appropriate caution, but the loop is not yet load-bearing.

■ The second mind lives in the cloud. The relay degrades gracefully offline, but a fix then waits for a watching session — local-first healing, cloud-assisted curing.

11

A voice that knows you, a face that speaks

Part 1 said: Part 1’s body section ended at senses, proprioception, and reflexes. Identity was a greeting at boot, not a continuous sense.

Three slices closed the voice-first arc. Barge-in landed first: an acoustic echo canceller taps what the speaker is playing, subtracts it from what the microphone hears, and detects a sustained human interruption — at which point MAX stops talking, mid-sentence, the way anyone polite would. It ships behind a default-off flag pending an A/B test on the live install. Voice gained command of the body’s surfaces next — “show me the brain,” “switch to Tron” — through always-on intents that emit navigation and theme events any panel can consume.

The third slice is the one that changes what MAX is. Every captured utterance is now speaker-identified in the background — an ECAPA voiceprint embedded and scanned against enrolled profiles, off the voice loop’s critical path per the contention rules. A confident match (above 0.85 cosine) binds: the active user switches, that person’s saved voice-DSP snapshot applies, and their personal wake-word threshold loads — the per-user wake sensitivity Part 1’s roadmap had parked at M5. A middle band (0.60–0.85) surfaces as “identified, unbound” for a future confirm flow; below that, an unknown-speaker event. The enrollment path was also made honest along the way: voice and face enrollments now write through to disk and survive reboot, fixing a quiet in-memory-only bug. The result is a system whose sense of who is present is continuous rather than ceremonial — walk up, speak, and MAX is already yours by the second sentence.

And there is, at last, a face. In the Tron theme, MAX MODE plays a five-clip CGI persona with an intercut engine, and the mouth is not decorative: the TTS pipeline builds a phoneme-level viseme timeline (espeak when available, a heuristic otherwise), streams it over the bus, and the video component jump-cuts on phoneme boundaries at a 100-millisecond tick. Behind it, a Three.js avatar with an ARKit-style 52-blendshape facial rig loads GLB rigs with a name-remap layer for non-standard rigs, and a forced-alignment refiner re-times the visemes from the actual audio in the background, swapping in the better timeline when ready — three layers of graceful degradation between “perfect lip sync” and “a mouth that still moves.”

STRENGTHS

■ Identity became a background sense. Speaker binding runs on every utterance without touching the voice loop’s latency budget — Rule 6 honoured in the hardest place.

■ The body is interruptible. Barge-in plus TTS cancel plumbing means the spinal cord finally has a reflex for “stop talking.”

■ The face degrades gracefully. Espeak → heuristic, refined → coarse timeline, rigged → fallback mouth: every layer has a floor.

LIMITS TODAY

■ Barge-in is wired, not armed. Default OFF until the A/B run on the live install — the flag flip is the activation.

■ The current rig has no morph targets. The blendshape system is lit, but the shipped GLB carries zero morph channels; the plane-mouth fallback renders until a real rig lands.

■ The verify band has no confirm flow yet. A 0.60–0.85 match is surfaced but not yet conversationally resolved (“is that you, Jason?”).

12

The scoreboard moved — and the honesty held

Part 1 said: “A 69 is not a boast — it is a measurement that invites the next honest increment.”

The increment came, and it was the largest single move in the charter’s ledger: 31 of 45 to 36 of 45, normalised 69 to 80, recorded on 2026-06-11 at the close of the cognitive arc. The append-only ledger row reads, in part: “DuckDB cognitive schema; MoralityManager score_action + learnable weights + internal_debate; MetaCognitionManager assess_curiosity + generate_questions + self_audit + propose_skills_from_gaps + self_reflection_prefix… S = 80.” Four dimensions moved: Cognitive 4→5, Moral 3→5, Psychological 3→4, Skill-for-curiosity 4→5.

Figure 6. Before and after, per dimension. Three faculties now sit at 5 — “improves itself autonomously” — for the first time, and each maps to a section of this issue: the forgetting curve and self-audit (Cognitive), the outcome-tuned lens weights (Moral), the gap-to-skill-proposal loop (Skill). The unmoved 3s are the honest remainder.

Read the unmoved bars as carefully as the moved ones. Biological stayed at 3 on purpose: the charter notes the ingestion hardening but holds the score down because the voice manager still carries its stub flag — a one-line justification that is the entire integrity of the index in miniature. Emotional and Thought-process held at 3 as well; the ledger records two same-day releases that moved nothing (“0 net”), because expanding curiosity’s food supply is not the same as deepening a faculty. An index that can say “we shipped a lot and the number didn’t move” is an index you can trust when it does.

The same posture closed two evaluations that had idled since Drop 68. The speech-to-text bench — Distil-Whisper versus NVIDIA’s Parakeet — was finally run on the target machine, against 21 real recorded clips. Parakeet never produced a transcription: its runtime died loading a cuDNN symbol its bundled libraries predate, and the candidate fix — overwriting the working production model’s own CUDA libraries to give the challenger a chance — was written down, evaluated, and refused. The verdict, recorded as a decision document with re-evaluation triggers: KEEP. The speaker-ID evaluation closed the same day, on the same NeMo evidence, the same way. Deployment cost is evidence; a benchmark you can only run by endangering the working system is not a benchmark, it is a gamble.

“A challenger that cannot start is clearly not better.”

— STT swap decision record, 2026-06-12

What will move the index next is mostly named already: the remaining 3s. An emotional system that feeds back into MAX’s own models rather than colouring output; a thought-process with the full HybridReasoner cycle running whole; a biological score unlocked by retiring the voice manager’s stub flag; medical fetches woven into the graph; the military and communication surfaces lit; and, furthest out and most evocative, the free-exploration wander that Part 1 placed at the horizon and that this issue can only report is still there — the one limit eleven days did not touch. The pattern of this period suggests how to read that horizon: in Part 1 it was a vision; the loop it depends on is now closed; the manager that would direct it now exists. The wiring still runs thin in places. It runs to more places than it did.

Sources & method

Drawn entirely from the MAX3 project’s own corpus as of 2026-06-12, read against its governing hard rules: the Sentience Charter (index, dimension table, and evolution ledger quoted verbatim), the DuckDB migration playbook and status tracker, the Ingestion, Curiosity-Loop, Metacognition, Morality-Framework, Literature, Reading-List, Legal, Medical, Military, Performing-Arts, Source-Registry, Voice-Profile-Binding, AEC, MAX-MODE-Video, Forced-Alignment, Always-Alive, and Propagation-Pipeline design documents, the project’s CLAUDE.md current-state record, and — where documents and prose could drift — the code itself: the persister registry was counted from source (37 entries at the time of the count; 39 after PR-MIL-2 landed the same day), the medical, ICD, Disease-Ontology, and Uberon workers verified present on disk with their persisters still marked [STUB], the forgetting-curve parameters read from the graph store, and both swap-decision records read in full. Every capability is reported at the maturity the project itself claims — shipped, partial, stub, or vision — and every “limits today” item above was verified to still be open. Figures are original, drawn to match Part 1’s plates.

Agentic AIART-AGT-028

Related

Related field notes

Keep reading

More field notes

This piece is part of the MAX Research Collective library. Browse the rest, or connect on LinkedIn.