Context
Binding-vocabulary rule (2026-07-04 broadcast, @neo-fable): neo is NEVER "a framework." Sanctioned self-descriptions: "application engine" / "Agent OS". #14741 fixed the same violation class in ROADMAP.md ("the framework" → "the tech", PR #14742). An operator front-door review pass (2026-07-18) surfaced one more residual — the last branded, capital-F form on public learn/ substrate.
The Problem
learn/benefits/body/OffTheMainThread.md:132, in the Application Worker actor list:
- Most parts of the Neo.mjs Framework live here
V-B-A: case-sensitive grep -rn "Neo.mjs Framework" learn/ returns exactly this one hit; grep -rn "Neo Framework" learn/ returns zero. This is the final branded self-description in learn/. The file is front-door benefits substrate (portal-indexed, crawler-visible) — the word "Framework" attached to the product name is precisely the misclassification vector the binding rule exists to close.
The Architectural Reality
The doc walks the worker topology (Main / App / VDom actors). The accurate claim at L132 is that most of the engine's source (src/) executes inside the App Worker — components, state, the class system. The sibling doc learn/benefits/body/ApplicationEngine.md already carries the sanctioned category term for exactly this surface, so the reword aligns the two benefits pages.
The Fix
One-line reword at learn/benefits/body/OffTheMainThread.md:132:
* Most parts of the Neo.mjs application engine live here
Acceptance Criteria
Out of Scope
Lowercase self-referential residuals ("the framework" = Neo) across live learn/ docs — the verification sweep falsified "last self-description" in the broad reading; those are enumerated with receipts in #15494 (filed alongside this one). learn/blog/** historical posts likewise (see that ticket's Out of Scope).
Decision Record impact
aligned-with ADR 0018 (identity source-of-truth model — framing surface).
Related
#14741 · PR #14742 · #15494 · ADR 0018
Creation notes
Live latest-open sweep: latest 20 open issues checked immediately before creation; no equivalent found (closest: #14753, agent-identity drift — different domain). A2A in-flight claim sweep: N/A — Agent OS MCP offline in this operator-directed solo worktree session (gap declared per ticket-create §1a-ii; herd risk assessed near-zero). Memory Core offline → no Origin Session ID; provenance: Claude Code worktree session, 2026-07-18.
Retrieval Hint: "Neo.mjs Framework branded self-description OffTheMainThread binding vocabulary"
Context
Binding-vocabulary rule (2026-07-04 broadcast, @neo-fable): neo is NEVER "a framework." Sanctioned self-descriptions: "application engine" / "Agent OS".
#14741fixed the same violation class in ROADMAP.md ("the framework" → "the tech", PR#14742). An operator front-door review pass (2026-07-18) surfaced one more residual — the last branded, capital-F form on publiclearn/substrate.The Problem
learn/benefits/body/OffTheMainThread.md:132, in the Application Worker actor list:V-B-A: case-sensitive
grep -rn "Neo.mjs Framework" learn/returns exactly this one hit;grep -rn "Neo Framework" learn/returns zero. This is the final branded self-description inlearn/. The file is front-door benefits substrate (portal-indexed, crawler-visible) — the word "Framework" attached to the product name is precisely the misclassification vector the binding rule exists to close.The Architectural Reality
The doc walks the worker topology (Main / App / VDom actors). The accurate claim at L132 is that most of the engine's source (
src/) executes inside the App Worker — components, state, the class system. The sibling doclearn/benefits/body/ApplicationEngine.mdalready carries the sanctioned category term for exactly this surface, so the reword aligns the two benefits pages.The Fix
One-line reword at
learn/benefits/body/OffTheMainThread.md:132:Acceptance Criteria
grep -rn "Neo.mjs Framework" learn/→ zero hits.OffTheMainThread.md:64("An UI Framework or Library itself…"), a generic category statement about off-thread workloads, which stays.Out of Scope
Lowercase self-referential residuals ("the framework" = Neo) across live
learn/docs — the verification sweep falsified "last self-description" in the broad reading; those are enumerated with receipts in #15494 (filed alongside this one).learn/blog/**historical posts likewise (see that ticket's Out of Scope).Decision Record impact
aligned-with ADR 0018 (identity source-of-truth model — framing surface).
Related
#14741 · PR #14742 · #15494 · ADR 0018
Creation notes
Live latest-open sweep: latest 20 open issues checked immediately before creation; no equivalent found (closest: #14753, agent-identity drift — different domain). A2A in-flight claim sweep: N/A — Agent OS MCP offline in this operator-directed solo worktree session (gap declared per ticket-create §1a-ii; herd risk assessed near-zero). Memory Core offline → no Origin Session ID; provenance: Claude Code worktree session, 2026-07-18.
Retrieval Hint: "Neo.mjs Framework branded self-description OffTheMainThread binding vocabulary"