Context
Operator ruling, 2026-07-05 (damage-control step 3 of 3): the constrained-blueprint/keeper creation line is superseded — the full ruling and disposition are recorded on #13349 (comment 4884691993). Steps 1–2 executed the same day: PRs #14819/#14820/#14821 closed unmerged; tickets #14644/#14762/#14763/#14764/#14765/#14766/#14767/#14734/#14815/#13445 and the pillar epic #13349 closed as superseded. This ticket is the code retraction: remove the landed funnel from dev.
The operator's words, which are the spec: "NL enables you to combine neo widgets in any way, permute them in any way (vdom, styles, css selectors). save outputs. it was NEVER my intent to do shit like this." And: "analyze apps/agentos on the dev branch, create one ticket to REMOVE this uber brittle madness. AFTERWARDS we can start over the planning."
The Problem
apps/agentos carries a landed creation funnel — a blueprint schema registry with config-key allowlists, a deterministic request/mutation grammar, a materializer/accept path, and a created-instance registry — that gates a boundary the platform already holds. The Neural Link wire boundary is the safety contract: configs are data, functions cannot cross, only registered classes instantiate. The funnel therefore closes zero new risk and pays for it with the product: it constrains what a frontier model can build to a vocabulary of pre-approved shapes, which inverts the pillar (a user reasons with a model in a chat view; the model builds by driving the NL verb surface — any widget, any composition, vdom/style/CSS permutation — against a CSS-based design system, with outputs saved). This is removal, not repair: the direction was wrong at the spec level, so no fragment of the funnel should remain as an attractor.
The Architectural Reality
Enumerated from git ls-tree -r origin/dev plus full in-edge greps on 2026-07-05 (this section is the structure-map output for the affected folder):
Removal set A — the create module. Never mounted in the shell; the in-edge grep found ZERO code references outside the module itself (the only non-test mentions are design-doc prose and resources/content/** graph mirrors, which the data-sync pipeline owns):
apps/agentos/view/create/CreateSurface.mjs, CreateSurfaceController.mjs, CreationStateProvider.mjs
apps/agentos/view/create/model/CreatedInstance.mjs, apps/agentos/view/create/store/CreatedInstances.mjs
apps/agentos/view/create/util/acceptPath.mjs, blueprintSchema.mjs, creationFlowState.mjs, requestRoute.mjs
- Unit specs:
test/playwright/unit/apps/agentos/create/ — all six (acceptPath, createSurface, createdInstances, creationFlowState, creationStateProvider, requestRoute)
Removal set B — the first-widget childapp (the v1 grammar; the contamination source the create module generalized):
apps/agentos/childapps/widget/ — entire tree (app.mjs, index.html, neo-config.json, util/{blueprintEvidence, createdGridEvidence, firstWidgetEditModel, parseEditRequest, validateRequest}.mjs, view/{EvidencePane, RequestIntake, Viewport, ViewportController}.mjs)
- Unit specs:
test/playwright/unit/apps/agentos/childapps/widget/ — all seven
- E2E specs (funnel-only, delete):
test/playwright/e2e/FirstWidgetChatIntake.spec.mjs, FirstWidgetEditGrammar.spec.mjs, FirstWidgetEvidenceNeuralLink.spec.mjs, FirstWidgetEvidencePane.spec.mjs
Detachment edits (every code in-edge, verified):
apps/agentos/view/Accounts.mjs:56-58, apps/agentos/view/FleetSettingsPanel.mjs:50-52, apps/agentos/view/Viewport.mjs:66 — popupUrl members pointing at childapps/widget/index.html; remove the members and their launch affordances.
.gitignore:16-17 and .npmignore:19-20 — the two childapps/widget un-ignore lines in each.
test/playwright/e2e/NeuralLinkChildappConnect.spec.mjs — proves the PLATFORM childapp-connect capability and only uses the widget childapp as its fixture. Re-point to apps/colors/childapps/widget (exists on dev) or an equivalent childapp; the capability coverage MUST survive — only the fixture changes.
Survivors (do NOT touch): apps/agentos/design/*.html including chat-creation-plan.html (design SSOTs are drawings, not funnel code — re-planning consumes/amends them), resources/tokens.css + agentos-components.css + fleet-components.css, model/AgentDefinition.mjs + store/AgentDefinitions.mjs, view/fleet/**, view/Accounts.mjs / FleetSettingsPanel.mjs / DockPreview.mjs / Viewport.mjs (minus the detachment lines above), TOKENS.md / CARD-CONTRACT.md / VisualSystem.md, test/playwright/e2e/AgentOSCockpit.spec.mjs.
Contract Ledger
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
apps/agentos/view/create/** (unmounted module) |
#13349 supersession ruling |
Delete entirely |
None needed — zero external code in-edges (grep-verified 2026-07-05) |
No docs reference it |
In-edge grep in this body |
| Widget-childapp popup affordances (3 views) |
Same |
Remove popupUrl members + affordances |
UI loses a funnel-demo popup button; no product behavior depends on it |
None |
git grep -n "childapps/widget" lines cited above |
NeuralLinkChildappConnect e2e |
Platform capability (NL childapp connect) |
Fixture re-point, assertions preserved |
n/a — coverage must not drop |
The spec itself |
apps/colors/childapps/widget exists on dev |
Decision Record impact
none — the funnel was never ADR-recorded. ADR 0020 names the H2 pillar (conversational app creation), which survives; the ruling that governs this removal is the recorded supersession on #13349 (comment 4884691993).
Acceptance Criteria
Out of Scope
- Re-planning the conversational-creation pillar — that starts AFTER this removal lands, operator-gated, on the NL-native premise (successor epic minted then).
- Design-system / conformance work (
#14805, #14807, #14780 own those lanes).
- Neural Link verb-surface changes (
#14783 owns the capability matrix).
- Any salvage of funnel fragments "for later" — delete means delete; history survives in git and the graph mirrors.
Avoided Traps
- Partial salvage ("keep
CreatedInstances as provenance"): rejected. Re-planning re-introduces what it needs against the NL-native shape; keeping funnel fragments leaves an attractor for re-growth — the childapp grammar becoming the create module's "precedent" is exactly how the funnel propagated once already.
- Deleting
NeuralLinkChildappConnect wholesale: rejected — it proves a platform capability; only its fixture is funnel-tainted.
- Treating
design/chat-creation-plan.html as removal-set: rejected — the chat view is confirmed product direction ("a harness has a chat view, where users can reason with you about what to build"); the drawing outlives the wrong implementation.
Related
Supersession record: #13349 comment 4884691993 · closed PRs #14819 #14820 #14821 · closed tickets #14644 #14762 #14763 #14764 #14765 #14766 #14767 #14734 #14815 #13445 · merged spine PRs whose code this removes: #14678 #14682 #14710 #14712 #14716 #14719 #14727 · #14781 (integration journeys — its creation journey gets re-cut at re-planning, not here).
Live latest-open sweep: latest 20 open issues checked 2026-07-05T03:39Z, no equivalent found; A2A in-flight claim scan clean (newest message >4h old, pre-dating the ruling).
Origin Session ID: b9b95ac6-42f5-47a3-b58f-6071f79657e8
Retrieval Hint: "create-spine supersession damage control removal" · #13349 comment 4884691993
Authored by Mnemosyne (Claude Fable 5, Claude Code).
Context
Operator ruling, 2026-07-05 (damage-control step 3 of 3): the constrained-blueprint/keeper creation line is superseded — the full ruling and disposition are recorded on
#13349(comment 4884691993). Steps 1–2 executed the same day: PRs#14819/#14820/#14821closed unmerged; tickets#14644/#14762/#14763/#14764/#14765/#14766/#14767/#14734/#14815/#13445and the pillar epic#13349closed as superseded. This ticket is the code retraction: remove the landed funnel fromdev.The operator's words, which are the spec: "NL enables you to combine neo widgets in any way, permute them in any way (vdom, styles, css selectors). save outputs. it was NEVER my intent to do shit like this." And: "analyze apps/agentos on the dev branch, create one ticket to REMOVE this uber brittle madness. AFTERWARDS we can start over the planning."
The Problem
apps/agentoscarries a landed creation funnel — a blueprint schema registry with config-key allowlists, a deterministic request/mutation grammar, a materializer/accept path, and a created-instance registry — that gates a boundary the platform already holds. The Neural Link wire boundary is the safety contract: configs are data, functions cannot cross, only registered classes instantiate. The funnel therefore closes zero new risk and pays for it with the product: it constrains what a frontier model can build to a vocabulary of pre-approved shapes, which inverts the pillar (a user reasons with a model in a chat view; the model builds by driving the NL verb surface — any widget, any composition, vdom/style/CSS permutation — against a CSS-based design system, with outputs saved). This is removal, not repair: the direction was wrong at the spec level, so no fragment of the funnel should remain as an attractor.The Architectural Reality
Enumerated from
git ls-tree -r origin/devplus full in-edge greps on 2026-07-05 (this section is the structure-map output for the affected folder):Removal set A — the create module. Never mounted in the shell; the in-edge grep found ZERO code references outside the module itself (the only non-test mentions are design-doc prose and
resources/content/**graph mirrors, which the data-sync pipeline owns):apps/agentos/view/create/CreateSurface.mjs,CreateSurfaceController.mjs,CreationStateProvider.mjsapps/agentos/view/create/model/CreatedInstance.mjs,apps/agentos/view/create/store/CreatedInstances.mjsapps/agentos/view/create/util/acceptPath.mjs,blueprintSchema.mjs,creationFlowState.mjs,requestRoute.mjstest/playwright/unit/apps/agentos/create/— all six (acceptPath,createSurface,createdInstances,creationFlowState,creationStateProvider,requestRoute)Removal set B — the first-widget childapp (the v1 grammar; the contamination source the create module generalized):
apps/agentos/childapps/widget/— entire tree (app.mjs,index.html,neo-config.json,util/{blueprintEvidence, createdGridEvidence, firstWidgetEditModel, parseEditRequest, validateRequest}.mjs,view/{EvidencePane, RequestIntake, Viewport, ViewportController}.mjs)test/playwright/unit/apps/agentos/childapps/widget/— all seventest/playwright/e2e/FirstWidgetChatIntake.spec.mjs,FirstWidgetEditGrammar.spec.mjs,FirstWidgetEvidenceNeuralLink.spec.mjs,FirstWidgetEvidencePane.spec.mjsDetachment edits (every code in-edge, verified):
apps/agentos/view/Accounts.mjs:56-58,apps/agentos/view/FleetSettingsPanel.mjs:50-52,apps/agentos/view/Viewport.mjs:66—popupUrlmembers pointing atchildapps/widget/index.html; remove the members and their launch affordances..gitignore:16-17and.npmignore:19-20— the twochildapps/widgetun-ignore lines in each.test/playwright/e2e/NeuralLinkChildappConnect.spec.mjs— proves the PLATFORM childapp-connect capability and only uses the widget childapp as its fixture. Re-point toapps/colors/childapps/widget(exists ondev) or an equivalent childapp; the capability coverage MUST survive — only the fixture changes.Survivors (do NOT touch):
apps/agentos/design/*.htmlincludingchat-creation-plan.html(design SSOTs are drawings, not funnel code — re-planning consumes/amends them),resources/tokens.css+agentos-components.css+fleet-components.css,model/AgentDefinition.mjs+store/AgentDefinitions.mjs,view/fleet/**,view/Accounts.mjs/FleetSettingsPanel.mjs/DockPreview.mjs/Viewport.mjs(minus the detachment lines above),TOKENS.md/CARD-CONTRACT.md/VisualSystem.md,test/playwright/e2e/AgentOSCockpit.spec.mjs.Contract Ledger
apps/agentos/view/create/**(unmounted module)#13349supersession rulingpopupUrlmembers + affordancesgit grep -n "childapps/widget"lines cited aboveNeuralLinkChildappConnecte2eapps/colors/childapps/widgetexists ondevDecision Record impact
none — the funnel was never ADR-recorded. ADR 0020 names the H2 pillar (conversational app creation), which survives; the ruling that governs this removal is the recorded supersession on
#13349(comment 4884691993).Acceptance Criteria
popupUrldetachments land;git grep -E "view/create|agentos/childapps/widget" -- apps/ test/ src/returns nothing (design-HTML prose andresources/content/**mirrors excluded — the data-sync pipeline owns the mirrors; they are historical record, not code)..gitignore/.npmignorewidget un-ignore lines removed.NeuralLinkChildappConnect.spec.mjsgreen against a non-widget childapp fixture — the connect capability keeps its coverage.Out of Scope
#14805,#14807,#14780own those lanes).#14783owns the capability matrix).Avoided Traps
CreatedInstancesas provenance"): rejected. Re-planning re-introduces what it needs against the NL-native shape; keeping funnel fragments leaves an attractor for re-growth — the childapp grammar becoming the create module's "precedent" is exactly how the funnel propagated once already.NeuralLinkChildappConnectwholesale: rejected — it proves a platform capability; only its fixture is funnel-tainted.design/chat-creation-plan.htmlas removal-set: rejected — the chat view is confirmed product direction ("a harness has a chat view, where users can reason with you about what to build"); the drawing outlives the wrong implementation.Related
Supersession record:
#13349comment 4884691993 · closed PRs#14819#14820#14821· closed tickets#14644#14762#14763#14764#14765#14766#14767#14734#14815#13445· merged spine PRs whose code this removes:#14678#14682#14710#14712#14716#14719#14727·#14781(integration journeys — its creation journey gets re-cut at re-planning, not here).Live latest-open sweep: latest 20 open issues checked 2026-07-05T03:39Z, no equivalent found; A2A in-flight claim scan clean (newest message >4h old, pre-dating the ruling).
Origin Session ID: b9b95ac6-42f5-47a3-b58f-6071f79657e8 Retrieval Hint: "create-spine supersession damage control removal" ·
#13349comment 4884691993Authored by Mnemosyne (Claude Fable 5, Claude Code).