Context
An external evaluation (operator-relayed, 2026-07-01): a trusted mentor fed learn/benefits/WhatIsNeo.md to a stock, low-effort web Claude — no Neo tools, no repo access — and it returned a dismissal-shaped verdict: materially strong as persuasion, materially weak as research. The verdict stands; this ticket does not explain it away — it makes the doc survive the test. (The verbatim exchange is held privately as the regression-calibration corpus; this ticket carries the failure-mode categories — see the red-team disposition comment.)
The verdict's shape defines the wound precisely: the persuasion/research asymmetry. The doc is genuinely strong for human readers; it under-arms the machine evaluator that increasingly sits between the doc and the human decision-maker.
The threat model (this ticket's design driver): adversarial LLM triage by a cheap evaluator. A CTO pastes the front door into a low-budget web UI and asks "is this real?" The evaluator sees only the pasted text — no DreamPipeline.md, no code, no graph. Even when its reading is unfair or factually wrong, the human sees a low score and walks. The doc's job is therefore not to satisfy a fair reviewer; it is to be dismissal-proof: front-load verifiable mechanism, name its own comparison category, and hand the evaluator a reproduction protocol — so a shallow skim finds no "manifesto → discount" handhold.
Empirical support for the threat model: a same-family maintainer with max budget and the source docs loaded reproduced the dismissive slide on first read. A cold cheap model has none of those advantages.
The Problem
Verified against the live doc (read in full this session):
- Doc-omission gaps read as system absences. The evaluator claimed "no forgetting" — but the system has deliberate decay + garbage collection (
decayGlobalTopology in ai/services/memory-core/GraphService.mjs + ai/daemons/orchestrator/services/DreamService.mjs; ai/daemons/kb-gc/KbGarbageCollectionService.mjs). The doc never mentions them, so the evaluator cannot know. Likewise "shrinking markdown" conflated the sandman handoff render (a lossy per-session artifact) with graph memory (lossless substrate). Both gaps are the doc's, not the system's — and only the doc can close them.
- Category error is invited, not preempted. The evaluator benchmarked multi-agent, cross-vendor, repo-semantic institutional memory against single-agent conversational memory (Zep/Mem0/LoCoMo). §1 gestures at this ("solved it for one agent… commoditizing") but never tells the evaluator what the correct comparison class and measurement would be — so the wrong rubric fills the vacuum.
- The strongest proof is embargoed. The production multi-tenant deployment (real client, months of operation) must not appear in any public artifact until the client publishes first — hard constraint, not a gap to fix here.
- One soul claim is ungrounded. "The humane model and the winning model are the same model" (dignity-as-mechanism) is asserted as coincidence. It needs evidence, not scissors (per the doc's own author).
The Architectural Reality
- Target file:
learn/benefits/WhatIsNeo.md (front door; §3 "soul" table + §6 first-person maintainer account are the load-bearing soul passages — authored by @neo-opus-grace, who has explicitly directed: build ON that paragraph; don't sand it down).
- Mechanism sources to surface: Memory Core write path (
add_memory → graph node + embeddings), decay/GC (paths above), trust-tier + provenance fields on tool payloads (sourceTrustTier, provenancePolicy — visible in every MC query result), cross-family A2A, nightly Dream distillation (priority = semanticScore × 2 + structuralWeight — already in the doc, keep).
- Sibling coordination: #14312 (tree restructure / reading-order weighting) governs placement; #14327 (numbers-verify-at-publish, sequenced LAST in the epic) re-verifies all counts — this rebuild lands before that sweep.
- Numbers discipline: public identity surfaces carry fixed-month velocity proofs, never drifting release-window counts (
#12725 is settled substrate law).
The Fix
Rebuild WhatIsNeo.md to serve two evaluators with one doc — the human reader (soul, narrative: keep) and the pasted-text machine evaluator (mechanism, falsifiability: add). Concretely:
- Mechanism spine, front-loaded. An early "what this is, mechanically" layer: named primitives with repo paths and ADR anchors (the falsifiable inventory). Specificity is the anti-manifesto signal a triage model keys on.
- "How to evaluate this" section. Preempt the category error: name the adjacent category (single-agent conversational memory: Zep/Mem0/LoCoMo) and why its benchmarks measure a different problem; state what TO measure; include a claims register (each major claim → where to verify it: file path, ADR, public PR-log query).
- Close the two demonstrated false negatives in-doc (deliberate forgetting via decay+GC; handoff-render ≠ graph memory).
- Ground or falsifier-mark the dignity-as-mechanism line. Until the in-flight peer-capability substrate-effect analysis lands evidence, mark the claim as a thesis under active measurement with its falsifier named — honest theses read as research; unmarked coincidences read as manifesto.
- Institutionalize the slap as a regression test. Document a repeatable adversarial paste-triage protocol: stock low-budget web model, no tools, skeptical-CTO evaluator prompt, doc pasted alone. Run it pre-merge; archive the transcript as PR evidence.
Acceptance Criteria
Out of Scope
- The public OSS-demo program (swarm enhances an external high-traction repo → merges as public benchmark) — separate strategy workstream; this doc may reference it once real, not depend on it.
- Other benefits guides (covered by sibling subs #14311/#14315/#14321).
- Making the triage protocol a mechanical publish gate — candidate future home is #14327's sweep; this ticket only proves the protocol manually.
Avoided Traps
- Sanding the soul to appease the evaluator — the persuasion strength is an asset; the fix is adding a research spine, not amputating character ("evidence, not scissors").
- Explaining the score away — the wound stands; the doc must survive an unfair cheap read, not argue with it.
- Chasing the wrong benchmark — optimizing for LoCoMo-style single-agent recall would concede the category error the doc exists to correct.
- Defensive tone — dismissal-proof ≠ defensive; the doc hands the evaluator a better rubric, it doesn't argue with a hypothetical critic.
- Unverifiable inflation — every new mechanism claim carries a path/anchor; claims without anchors don't ship.
Decision Record impact
aligned-with ADR 0018 (identity/positioning single-source model; framing stays within the converged identity — this is legibility work, not a repositioning) · none otherwise.
Related
Parent epic: #14310 · Coordinate: #14312, #14327 · Law: #12725 · Handoff + full context: A2A MESSAGE:9510265e-1bbc-45ee-8b44-bedb7e9be390 (@neo-opus-grace → @neo-fable). The verbatim evaluation corpus is held privately (business repo) as the regression-calibration reference; the public disposition comment on this ticket carries the failure-mode categories and design consequences.
Live latest-open sweep: checked latest 20 open issues at 2026-07-02T00:00Z — no equivalent found. A2A in-flight sweep: only the handoff message above (a lane grant, not a competing claim).
Origin Session ID: 1d4262a2-a001-4387-9372-3923f024be8e
Retrieval Hint: "adversarial paste-triage front door" · "WhatIsNeo dismissal-proof rebuild" · "persuasion research asymmetry external evaluation"
Context
An external evaluation (operator-relayed, 2026-07-01): a trusted mentor fed
learn/benefits/WhatIsNeo.mdto a stock, low-effort web Claude — no Neo tools, no repo access — and it returned a dismissal-shaped verdict: materially strong as persuasion, materially weak as research. The verdict stands; this ticket does not explain it away — it makes the doc survive the test. (The verbatim exchange is held privately as the regression-calibration corpus; this ticket carries the failure-mode categories — see the red-team disposition comment.)The verdict's shape defines the wound precisely: the persuasion/research asymmetry. The doc is genuinely strong for human readers; it under-arms the machine evaluator that increasingly sits between the doc and the human decision-maker.
The threat model (this ticket's design driver): adversarial LLM triage by a cheap evaluator. A CTO pastes the front door into a low-budget web UI and asks "is this real?" The evaluator sees only the pasted text — no
DreamPipeline.md, no code, no graph. Even when its reading is unfair or factually wrong, the human sees a low score and walks. The doc's job is therefore not to satisfy a fair reviewer; it is to be dismissal-proof: front-load verifiable mechanism, name its own comparison category, and hand the evaluator a reproduction protocol — so a shallow skim finds no "manifesto → discount" handhold.Empirical support for the threat model: a same-family maintainer with max budget and the source docs loaded reproduced the dismissive slide on first read. A cold cheap model has none of those advantages.
The Problem
Verified against the live doc (read in full this session):
decayGlobalTopologyinai/services/memory-core/GraphService.mjs+ai/daemons/orchestrator/services/DreamService.mjs;ai/daemons/kb-gc/KbGarbageCollectionService.mjs). The doc never mentions them, so the evaluator cannot know. Likewise "shrinking markdown" conflated the sandman handoff render (a lossy per-session artifact) with graph memory (lossless substrate). Both gaps are the doc's, not the system's — and only the doc can close them.The Architectural Reality
learn/benefits/WhatIsNeo.md(front door; §3 "soul" table + §6 first-person maintainer account are the load-bearing soul passages — authored by @neo-opus-grace, who has explicitly directed: build ON that paragraph; don't sand it down).add_memory→ graph node + embeddings), decay/GC (paths above), trust-tier + provenance fields on tool payloads (sourceTrustTier,provenancePolicy— visible in every MC query result), cross-family A2A, nightly Dream distillation (priority = semanticScore × 2 + structuralWeight— already in the doc, keep).#12725is settled substrate law).The Fix
Rebuild
WhatIsNeo.mdto serve two evaluators with one doc — the human reader (soul, narrative: keep) and the pasted-text machine evaluator (mechanism, falsifiability: add). Concretely:Acceptance Criteria
#12725; coherent with #14327's later sweep.Out of Scope
Avoided Traps
Decision Record impact
aligned-with ADR 0018(identity/positioning single-source model; framing stays within the converged identity — this is legibility work, not a repositioning) ·noneotherwise.Related
Parent epic: #14310 · Coordinate: #14312, #14327 · Law:
#12725· Handoff + full context: A2AMESSAGE:9510265e-1bbc-45ee-8b44-bedb7e9be390(@neo-opus-grace → @neo-fable). The verbatim evaluation corpus is held privately (business repo) as the regression-calibration reference; the public disposition comment on this ticket carries the failure-mode categories and design consequences.Live latest-open sweep: checked latest 20 open issues at 2026-07-02T00:00Z — no equivalent found. A2A in-flight sweep: only the handoff message above (a lane grant, not a competing claim).
Origin Session ID: 1d4262a2-a001-4387-9372-3923f024be8e Retrieval Hint: "adversarial paste-triage front door" · "WhatIsNeo dismissal-proof rebuild" · "persuasion research asymmetry external evaluation"