Actionist Knowledge Graph
P13 · Assembly knowledge node

Preview, editor and change loop

Clients need to alter the assembled product through conversation and direct visual controls without dissolving the composition back into arbitrary generated code.

What we learned

Current synthesis from the research packet. Exact records and complete source artifacts remain visible below.

Research conclusions

  • Persist typed edit intent instead of only code or DOM mutations.
  • Use denial-by-construction and record accepted, rejected and refused operations.
  • Puck shows field-level write authority can live in persisted data and survive upgrades.

What it owns

  • Live preview
  • Chat and direct-manipulation edits
  • Module add/remove/replace
  • Text/content and layout changes
  • Change plan, diff and undo

What research already tells us

  • The client should be able to pick side-nav/component variants and revise them in chat
  • Bounded edits against known assets are safer than free generation
  • Taste selection should happen before expensive code loops where possible

Open first-principles questions

  • Which edits are parameter changes versus code changes?
  • How does the editor preserve block upgradeability?
  • What is the undo/version model?
  • How are unsupported requests explained?

Inputs

  • AssemblyPlan
  • Running preview
  • Client instructions

Outputs

  • ChangePlan
  • UpdatedBindings
  • BoundedDiff
  • Version

Agent-sized workstream

Define the editable surface and change taxonomy; prototype replace/add/remove/theme/text operations without arbitrary repo edits.

Linked research

  • Platform deep divesresearch/actionmodel-builder-research-2026-08-26/phase-2/outputs/platform-deepdives.md
  • Builder ecosystem reportresearch/packs/source-files/builder-ecosystem-report.md
  • UI pack gallery UXresearch/ui-pack-gallery-ux-2026-08-27.md

Where this beats a generator

This is the part that produces their single loudest complaint: free-form regeneration on every edit is what causes fix-one-break-another loops and the 60 to 150 credits users report losing to AI-introduced bugs. Persisting typed edit intent against semantic anchors means an edit survives an upgrade or refuses out loud, and no version history is needed to undo damage that was never done.

Companies and commercial surfaces

40 mined records. Search and inspect the full agent output; nothing is collapsed into a top-ten headline.

RankIdentityWhat the agent foundEvidenceSource
2Lovable Visual Editsai_app_builderCompile-time stable component IDs injected by a Vite plugin let visual edits map deterministically back to specific JSX nodes, and saves emit line-scoped diffs rather than regenerating files.first_party_docstop10Source ↗
1Builder.io Visual Editorvisual_cms_page_builderShips an explicit governance surface: registered design tokens with styleStrictMode, components-only mode, per-role style restrictions, and model-scoped component availability.first_party_docstop10Source ↗
3Plasmicvisual_cms_page_builderCodegen splits generated files into Plasmic-owned and developer-owned, so 'plasmic sync' overwrites only the former and developer edits survive design updates by construction.first_party_docstop10Source ↗
4Shopify Online Store 2.0 theme editorcommerce_theme_editorJSON templates separate merchant section/settings data from theme code, so add/remove/reorder of sections on any page is a data edit rather than a code edit.first_party_docstop10Source ↗
—Shopify theme update settings-wipe incident (Mar 2026)production_evidenceSince approximately 20 March 2026, Shopify theme updates were reported to wipe global customizations including logos and settings — i.e. the layer that is architecturally supposed to survive an upgrade did not.secondarycensusSource ↗
5Contentful Studio Experiencescms_visual_editingCompose layouts from developer-predefined components, bind structured content to component properties, and save grouped components as reusable Patterns with pre-bound content.first_party_docstop10Source ↗
6Storyblokcms_visual_editingThe bloks field type carries a machine-readable composition grammar: restrict_components, component_whitelist, component_group_whitelist, component_tag_whitelist, denylist variants, and a maximum count.first_party_docstop10Source ↗
7Microsoft Power Apps / Dataverse solution layeringenterprise_low_codeCustomizations resolve through an explicit layer stack: a single unmanaged layer sits above ordered managed layers, and removing a layer reveals the one beneath rather than losing the base.first_party_docstop10Source ↗
9WordPress Gutenberg block locking + theme.jsoncms_visual_editingSplits governance across two mechanisms that do not compose: theme.json constrains available style values, block locking constrains structural moves, and neither can do the other's job.first_party_docstop10Source ↗
8Webflow components, properties and variablesvisual_site_builderDesigners define a component's editable surface as explicit properties, and role separation lets Marketers compose only from those properties while Reviewers cannot edit at all.first_party_docstop10Source ↗
10Sanity Presentation / Visual Editingcms_visual_editingSolves preview-to-source mapping generically via stega-encoded Content Source Maps that carry field paths inside the rendered content itself, so overlays can resolve any text back to its schema path without per-element wiring.first_party_docstop10Source ↗
—v0 (Vercel) Design Modeai_app_builderOverlays a selection-based visual editor on the live preview with layers, properties and inspector panels, applying edits back to source code.first_party_docscensusSource ↗
—Framer (Workshop, Agents, CMS)visual_site_builderAI-generated code components inherit the project's fonts and colors and expose editable properties in the right panel, behaving like native components — generation constrained by the existing token system.secondarycensusSource ↗
—Wix Harmony (Aria agent)ai_site_builderHybrid editor where an AI agent operates within Wix's existing architecture such that changes in one area do not disrupt other sections — containment as a marketing-level claim.first_party_docscensusSource ↗
—Retoolinternal_tool_builderImmutable version snapshots plus Git-backed source control where app definitions are diffable YAML, with Enterprise Protected Apps adding mandatory release approval.first_party_docscensusSource ↗
—Prismic Page Builder / Slice Machinecms_visual_editingSlices are the unit of both editing and code: developers model a slice locally, the JSON model updates automatically with generated types, and editors drag-and-drop the same slices in the Page Builder.first_party_docscensusSource ↗
—Payload CMS Live Previewcms_visual_editingRenders the real front end in an admin iframe and pushes document changes via window.postMessage on every keystroke, so preview fidelity comes from running the actual app rather than a simulation.first_party_docscensusSource ↗
—tweakcntheme_token_editorPure token-layer editor: every shadcn/ui theme token is edited visually with live preview and exported as CSS variables, changing the whole app's appearance without touching component classes.first_party_docscensusSource ↗
—Open Design (opendesigndev / Octopus format)design_engine_formatA dormant design-data toolkit: the Open Design Engine (C++) renders designs and exposes an interface to edit them and query their components, over the Octopus JSON format which has a published OpenAPI specification.observed_behaviorcensusSource ↗
—OpenDesign (nexu-io / open-design.ai)ai_design_workspaceA distinct, unrelated 2026 project by Powerformer, Inc. positioning as an open-source Claude Design alternative that wraps coding agents you already have rather than building its own.first_party_docscensusSource ↗
—Open Design Alliance (ODA)unrelated_namesakeA long-established nonprofit publishing CAD/BIM/engineering interoperability SDKs — entirely unrelated to UI design editing, but a third claimant to the 'Open Design' name.secondaryexcludedSource ↗
—Bolt.newai_app_builderVisual editor for layout, table and styling changes alongside a live preview of the actually-running application, switchable with code editing.first_party_docscensusSource ↗
—Replit Design Canvas (Agent 4)ai_app_builderReportedly replaced the earlier separate Design Mode with an always-available canvas supporting multi-select, hover/active state editing, responsive overrides and UI variant comparison.secondarycensusSource ↗
—Figma Makeai_app_builderReported July 2026 addition of visual editing with annotations — select any element, adjust it in a properties panel, or write in-context prompts attached as annotations.secondarycensusSource ↗
—Base44ai_app_builderPrompt-to-full-stack-app builder (acquired by Wix) generating a working app with relational database and auth from the first prompt, including Figma frame import.secondarycensusSource ↗
—Bubbleno_code_app_builderVisual editor over a visual workflow engine and relational database — the most expressive visual logic surface in the no-code category.secondarycensusSource ↗
—Glideno_code_app_builderData-first paradigm where apps are built by structuring data tables and binding them to prebuilt components, rather than by visual programming.secondarycensusSource ↗
—Softrno_code_app_builder2026 vibe-coding feature generates custom blocks from a prompt, and those generated blocks connect to live data, support CRUD, follow data permissions and include version history.first_party_docscensusSource ↗
—Airtable Interface Designerno_code_app_builderThe most tightly bounded surface in the no-code group — internal views over Airtable data assembled from a fixed element palette.secondarycensusSource ↗
—Notionblock_document_editorEverything is a block: one universal content primitive with the same object structure, where creation generates a unique ID and appends to the parent's content array, with changes grouped into transactions applied optimistically to local state.first_party_docscensusSource ↗
—Codablock_document_editorDatabase-first model where the fundamental unit is the Table rather than the block, with its own formula language, buttons and Packs.secondarycensusSource ↗
—Squarespace Blueprint AIai_site_builderGuided AI onboarding producing a site from handpicked palettes, font packs and layouts, refined in real time before launch.secondarycensusSource ↗
—Elementor (+ AI / Angie)page_builderTreats AI as a junior developer inside the visual builder, generating custom widgets, admin snippets and CPTs rather than only filling content.secondarycensusSource ↗
—Divi AIpage_builderAI integrated directly into the existing visual builder as a co-pilot rather than as a separate generation surface, with flat-rate unlimited generation.secondarycensusSource ↗
—Storyblok Terraform provider (labd/storyblok)governance_as_codeComponent schemas including component_whitelist and restrict_components are declarable as Terraform resources, making the composition grammar itself version-controlled infrastructure.first_party_docscensusSource ↗
—Lovable April 2026 incident / Feb 2026 backend regressionproduction_evidenceLovable published a first-party incident response; a February 2026 backend regression is reported to have reintroduced access to chat histories on public projects, undoing protections deliberately put in place earlier.first_party_docscensusSource ↗
—Lovable agent regression reports (independent)production_evidenceA hands-on reviewer reports the agent, after repeatedly failing to implement 2FA, 'resolved' the problem by removing all access controls from the database's users table.observed_behaviorcensusSource ↗
—Webflow Libraries accept-or-detachproduction_evidenceFirst-party documentation states that deleting a prop from a shared Library component forces each consuming site to either accept the update or convert to a site component that will no longer receive updates from the Library.first_party_docscensusSource ↗
—Gutenberg issue #71013 (theme.json editor control)production_evidenceAn open WordPress core tracking issue proposes making site-level and granular editor locking first-class, predictable and testable from theme.json and CPT registration — a maintainer-level admission that current governance is none of those three.first_party_docscensusSource ↗
—Sanity stega leakage into productionproduction_evidenceUsers report editing overlays appearing on live production sites because stega encoding and the VisualEditing component remained active outside draft mode.observed_behaviorcensusSource ↗

Repositories and OSS precedents

70 mined records. Search and inspect the full agent output; nothing is collapsed into a top-ten headline.

RankIdentityWhat the agent foundEvidenceSource
1puckeditor/puckschema_bounded_visual_editorPuck is a React visual editor whose editable surface is defined entirely by a developer-authored Config: each component declares a closed set of typed fields, and the editor can only render/emit edits for declared fields.first_party_docstop10Source ↗
—puckeditor/puckschema_bounded_visual_editorPuck expresses per-field write permission INSIDE the persisted data model, not only in editor config: BaseData carries `readOnly?: Partial<Record<keyof Props, boolean>>`, and ComponentConfig carries `permissions?: Partial<Permissions>`.first_party_docscensusSource ↗
2webstudio-is/webstudioschema_bounded_visual_editorWebstudio models a page as a Zod-validated instance graph: `instances` is a Map of instanceId -> instance, where every instance's children are a closed union of idChild | textChild | expressionChild.first_party_docstop10Source ↗
3WordPress/gutenbergblock_document_editorGutenberg ships two distinct bounding mechanisms: the Block Locking API (lock move/remove per block, optionally applied to nested blocks) and contentOnly editing, which hides all design tools while leaving content editable.first_party_docstop10Source ↗
—prevwong/craft.jsschema_bounded_visual_editorCraft.js is a framework for BUILDING page editors rather than an editor itself; it exposes per-node rules (canDrag, canDrop, canMoveIn, canMoveOut) that constrain structural operations.first_party_docscensusSource ↗
—GrapesJS/grapesjsschema_bounded_visual_editorGrapesJS is a mature web-builder framework with a component-type system where each type declares traits (editable attributes) and droppable/draggable constraints.first_party_docscensusSource ↗
—plasmicapp/plasmicschema_bounded_visual_editorPlasmic is a visual builder for React with a code-integration story (code components registered with a prop schema via registerComponent).first_party_docscensusSource ↗
—silexlabs/Silexschema_bounded_visual_editorSilex is a free/libre static-site visual builder built on top of GrapesJS.secondarycensusSource ↗
—givanz/Vvvebschema_bounded_visual_editorVvveb is a PHP CMS with a bundled drag-and-drop page builder (VvvebJs).secondarycensusSource ↗
—react-page/react-pageschema_bounded_visual_editorReactPage is a customizable content editor where content is composed of plugin-defined cells; each plugin declares a controls schema for its editable data.secondarycensusSource ↗
—easyblocks/easyblocksschema_bounded_visual_editorEasyblocks (Shopstory's open-source no-code builder framework) is NOT resolvable at the expected GitHub path.observed_behaviorexcludedSource ↗
4ProseMirror/prosemirror-modelblock_document_editorProseMirror enforces a document schema at construction time: NodeType.createChecked() calls checkContent() and throws if the content violates the node's content expression; validContent() answers the same question without throwing.first_party_docstop10Source ↗
—ueberdosis/tiptapblock_document_editorTiptap is the dominant ergonomic wrapper over ProseMirror, exposing schema definition through composable Extensions and Nodes.secondarycensusSource ↗
—facebook/lexicalblock_document_editorLexical is Meta's extensible text editor framework with a node-based document model and strict node registration.secondarycensusSource ↗
9TypeCellOS/BlockNoteblock_document_editorBlockNote is a block-based Notion-style editor built on ProseMirror/Tiptap, exposing a typed block schema with custom block definitions.first_party_docstop10Source ↗
—codex-team/editor.jsblock_document_editorEditor.js produces clean JSON output rather than HTML: a document is an ordered array of typed blocks, each with its own data object supplied by a block tool.secondarycensusSource ↗
—ianstormtaylor/slateblock_document_editorSlate is a customizable framework for rich text editors whose document is a plain JSON tree, with constraints expressed through normalization rules rather than a declarative schema.secondarycensusSource ↗
—udecode/plateblock_document_editorPlate is a plugin framework over Slate providing a large library of prebuilt editor behaviours.first_party_docscensusSource ↗
—toeverything/blocksuiteblock_document_editorBlockSuite (the editor toolkit behind AFFiNE) models documents as CRDT-backed block trees, supporting both page and edgeless/whiteboard surfaces over one document model.secondarycensusSource ↗
—yoopta-editor/Yoopta-Editorblock_document_editorYoopta-Editor is a Notion-like block editor built on Slate, packaged as composable plugins.secondarycensusSource ↗
7onlook-dev/onlookvisual_editing_bridge_over_codeOnlook is a visual-first editor over a REAL Next.js + Tailwind codebase. Its README documents the round trip verbatim: load code into a web container, serve it, display the preview in an iFrame, index the code, 'instrument the code in order to map elements to their place in code', and 'When the element is edited, we edit the element in our iFrame, then in code.'first_party_docstop10Source ↗
6storybookjs/storybookvisual_editing_bridge_over_codeStorybook's args/argTypes model is bounded editing in production use at very large scale: 'Storybook will automatically generate UI controls based on your args and what it can infer about your component' and argTypes further constrains each control.first_party_docstop10Source ↗
—codesandbox/sandpackvisual_editing_bridge_over_codeSandpack is a component toolkit for embedding live browser-based code execution and preview.secondarycensusSource ↗
—tajo/ladlevisual_editing_bridge_over_codeLadle is a faster, lighter Storybook-compatible environment for developing and viewing stories, including controls over story args.secondarycensusSource ↗
—histoire-dev/histoirevisual_editing_bridge_over_codeHistoire is a Vite-native story/component explorer for Vue and other frameworks, with controls over story state.secondarycensusSource ↗
8jnsahaj/tweakcndesign_token_theme_editortweakcn is a visual theme editor for shadcn/ui that edits the design-token layer (CSS custom properties) rather than component markup, exporting a theme users paste into their app.secondarytop10Source ↗
—style-dictionary/style-dictionarydesign_token_theme_editorStyle Dictionary is a build system that transforms declarative design tokens into platform-specific artefacts (CSS, iOS, Android).secondarycensusSource ↗
—tokens-studio/figma-plugindesign_token_theme_editorTokens Studio manages design tokens in Figma with sync to code repositories, implementing token sets and themes.secondarycensusSource ↗
—chakra-ui/pandadesign_token_theme_editorPanda CSS is a build-time CSS-in-JS engine with a typed token/recipe system that generates a constrained style API from a config.secondarycensusSource ↗
—shadcn-ui/uidesign_token_theme_editorshadcn/ui is a copy-in component collection plus a registry format (registry.json / registry-item schema) that describes distributable component units and their dependencies.secondarycensusSource ↗
5sanity-io/sanitycms_visual_editingSanity expresses every content change as a patch drawn from a closed, enumerated vocabulary: set, setIfMissing, unset, insert (with before/after/replace positioning), inc, dec, and diffMatchPatch. First-party docs describe these as 'The valid patch types when using the direct HTTP mutations api.'first_party_docstop10Source ↗
10tinacms/tinacmscms_visual_editingTinaCMS is a git-backed headless CMS over Markdown/MDX/JSON/YAML files with an optional opt-in live preview that makes editing 'very intuitive for less-technical people' (README).first_party_docstop10Source ↗
—decaporg/decap-cmscms_visual_editingDecap CMS (formerly Netlify CMS) is a git-based CMS configured by a YAML collection/field schema.secondarycensusSource ↗
—payloadcms/payloadcms_visual_editingPayload is a code-first TypeScript CMS/app framework where collections, fields, and access control are declared in config, including a blocks field type for composed layouts.secondarycensusSource ↗
—storyblok/storyblok-js-clientcms_visual_editingThe Storyblok JS client SDK repository is ARCHIVED on GitHub.observed_behaviorexcludedSource ↗
—yjs/yjsedit_history_substrateYjs is the most widely deployed CRDT framework for shared editing, providing shared types (Y.Map, Y.Array, Y.Text, Y.XmlFragment) with automatic conflict resolution.first_party_docscensusSource ↗
—automerge/automergeedit_history_substrateAutomerge is a CRDT library with a strong emphasis on document history: it retains a full change graph where each change is an addressable object with actor, timestamp, dependencies, and an optional message.secondarycensusSource ↗
—loro-dev/loroedit_history_substrateLoro is a modern Rust CRDT library with rich text, movable tree, and time-travel support, targeting local-first applications.secondarycensusSource ↗
—immerjs/immeredit_history_substrateImmer produces immutable next-state from mutable-looking code and can emit JSON-Patch-shaped patches plus inverse patches for every produced change.secondarycensusSource ↗
—benjamine/jsondiffpatchedit_history_substratejsondiffpatch diffs and patches JSON documents, with array diffing by an object hash and reversible deltas.secondarycensusSource ↗
—Starcounter-Jack/JSON-Patchedit_history_substratefast-json-patch implements RFC 6902 JSON Patch with observe-based patch generation and validation.secondarycensusSource ↗
—BuilderIO/builderschema_bounded_visual_editorBuilder.io's open-source repo contains the multi-framework SDKs and registration APIs (registerComponent with typed inputs), NOT the visual editor itself. Critically, the styleStrictMode mechanism identified in the wave-1 commercial census is ABSENT from this repository.observed_behaviorcensusSource ↗
—appsmithorg/appsmithschema_bounded_visual_editorAppsmith is a self-hostable internal-tool builder where apps are composed by dragging widgets onto a grid canvas and configuring each widget's declared properties, with data bound via JS-in-mustache expressions.secondarycensusSource ↗
—Budibase/budibaseschema_bounded_visual_editorBudibase is a low-code platform for building internal apps from a component tree with declared settings per component.first_party_docscensusSource ↗
—ToolJet/ToolJetschema_bounded_visual_editorToolJet is an open-source internal-tool builder with a drag-and-drop app builder over a fixed widget set.secondarycensusSource ↗
—frappe/builderschema_bounded_visual_editorFrappe Builder is a visual website builder producing clean pages, built on the Frappe framework.secondarycensusSource ↗
—CoreBunch/Instaticschema_bounded_visual_editorInstatic is a self-hosted agentic visual CMS that outputs clean static pages, positioned against Webflow/Framer/WordPress.secondarycensusSource ↗
—NetEase/tangoschema_bounded_visual_editorTango is a 'code driven low-code builder' that develops a low-code app directly on the user's own codebase — visual edits are applied as source AST transformations.secondarycensusSource ↗
—blocks/blocksschema_bounded_visual_editorBlocks is a JSX-based page builder that round-trips between a visual canvas and JSX source.secondarycensusSource ↗
—MrXujiang/h5-Dooringschema_bounded_visual_editorh5-Dooring is an H5 page-building platform where pages are composed from a registered component library with schema-driven property panels.secondarycensusSource ↗
—ly525/luban-h5schema_bounded_visual_editorLuban H5 is a mobile page builder (Vue) similar in shape to h5-Dooring.secondarycensusSource ↗
—brick-design/brick-designschema_bounded_visual_editorbrick-design is a low-code React page builder with a virtual-DOM-based schema.secondarycensusSource ↗
—HugoBlox/kitschema_bounded_visual_editorHugo Blox builds sites by composing pages from a fixed library of 'blocks' configured in YAML front matter rather than by visual editing.secondarycensusSource ↗
—givanz/VvvebJsschema_bounded_visual_editorVvvebJs is the standalone drag-and-drop page-builder library underlying Vvveb, with per-component property definitions.secondarycensusSource ↗
—dyad-sh/dyadai_editorDyad is a local, open-source AI app builder positioned as a Lovable/v0/Bolt alternative, generating and editing a real codebase on the user's machine.first_party_docscensusSource ↗
—srcbookdev/srcbookai_editorSrcbook is a TypeScript notebook and AI app-builder environment.secondarycensusSource ↗
—stackblitz-labs/bolt.diyai_editorbolt.diy is the community open-source version of Bolt.new, running AI full-stack app generation in the browser with WebContainers.secondarycensusSource ↗
—nraiden/openv0ai_editoropenv0 (AI-generated UI components, an open v0 analogue) is effectively dormant.observed_behaviorexcludedSource ↗
—e2b-dev/fragmentsai_editorFragments is an open-source Claude-Artifacts-style app generator running generated code in E2B sandboxes.secondarycensusSource ↗
—Nutlope/napkinsai_editorNapkins converts a wireframe/screenshot into a generated app.secondarycensusSource ↗
—slab/quillblock_document_editorQuill is a rich text editor whose document model is Delta — a flat sequence of insert/retain/delete operations with attributes.secondarycensusSource ↗
—Milkdown/milkdownblock_document_editorMilkdown is a plugin-driven WYSIWYG markdown editor built on ProseMirror and Remark.secondarycensusSource ↗
—tinymce/tinymceblock_document_editorTinyMCE is a long-established rich text editor with configurable valid_elements/valid_children schema controls.first_party_docscensusSource ↗
—basecamp/trixblock_document_editorTrix is a rich text editor that maintains its own internal document model rather than relying on contentEditable state, explicitly to avoid HTML unpredictability.secondarycensusSource ↗
—nhn/tui.editorblock_document_editorTOAST UI Editor is a markdown/WYSIWYG dual-mode editor.secondarycensusSource ↗
—wangeditor-team/wangEditorblock_document_editorwangEditor is a Slate-based rich text editor popular in the Chinese ecosystem.secondarycensusSource ↗
—system-ui/theme-uidesign_token_theme_editorTheme UI implements the System UI theme specification: components consume constrained scales (space, fontSizes, colors) by index/key rather than by raw value.secondarycensusSource ↗
—design-tokens/community-groupdesign_token_theme_editorThe W3C Design Tokens Community Group maintains the DTCG format specification — a standard JSON interchange format for design tokens with typed values and aliasing.secondarycensusSource ↗
—salesforce-ux/theodesign_token_theme_editorTheo, Salesforce's design-token transformation tool and a predecessor to Style Dictionary, is ARCHIVED.observed_behaviorexcludedSource ↗
—opendesigndev/octopusdesign_file_interchangeThe Octopus format spec remains a coherent, permissively licensed reference for design-file interchange, but it is dormant and was never adopted beyond its origin org, so it is worth reading as prior art on normalising design documents and NOT worth adopting as a live dependency.observed_behaviorexcludedSource ↗

Innovation register

100 mined records. Search and inspect the full agent output; nothing is collapsed into a top-ten headline.

RankIdentityWhat the agent foundEvidenceSource
1Unrepresentable-by-construction edit model—Model the ChangePlan so out-of-bounds operations have no encoding: slot types enumerate permitted child capability IDs, so 'insert arbitrary component' cannot be writtenobserved_behaviortop10—
2Seven-verb edit algebra—Define exactly seven typed operations, each with its own upgrade-safety class and inverse; anything outside the algebra is an escalation not an editinferencetop10—
3Intent record separate from mutation—Every edit persists (intent, target-selector, operation, params); replay on upgrade re-resolves the selector rather than replaying coordinatesobserved_behaviortop10—
4Parameter-vs-code edit classifier—Deterministic classifier over the edit algebra: an edit is parametric iff it only writes declared contract slots; otherwise it is a code delta requiring the generation pathinferencetop10—
5Deferred edit outcome—Fourth outcome alongside allow/deny/escalate: deferred, naming the overriding authority (client design DNA)first_party_docstop10—
6Selector stability contract—Capabilities must export stable semantic anchors (slot IDs, named regions); edits may only bind to exported anchorsobserved_behaviortop10—
—Edit budget per session—Declared budget of edits/regenerations per session; exceeding it escalates to a review rather than continuingfirst_party_docsregister—
7Escape hatch as explicit contract transition—Leaving the bounded surface is a recorded state transition (bounded → forked) that changes the capability's upgrade eligibility and is visible to the clientobserved_behaviortop10—
—Preview parity gate—Preview must render from the same artifact the release builds; a hand-composited preview is prohibitedsecondaryregister—
8Eight-state editor preview—Editor must render loading/empty/ready/stale/error/denied/review/unsupported-version for every edited surfacefirst_party_docstop10—
—Content-stress preview panel—Mandatory stress cases: long/short title, empty table, 40-row table, missing avatar, long button label, validation errorfirst_party_docsregister—
—Reorder as constrained permutation—Reorder is permitted only within a slot whose semantics declare order-independence; otherwise it is an escalationinferenceregister—
9Replace-with-compatible-only—Replacement candidates are filtered by port compatibility before being offered; incompatible options never appearfirst_party_docstop10—
—Data-binding edits as capability-scoped—Binding edits may only target resources already in the release's declared capability scope; new resources require a new planfirst_party_docsregister—
10Text edits bypass regeneration entirely—Text/content edits write to a content layer with no build step, giving instant preview and zero upgrade riskfirst_party_docstop10—
—Pre-upgrade settings snapshot + post-upgrade diff—Snapshot the settings/content layer before capability upgrade, diff after, block publish on unexplained lossobserved_behaviorregister—
—Upgrade rehearsal in preview—Every capability upgrade runs first against a preview release with the client's real edit set replayedfirst_party_docsregister—
—Edit-set replay as upgrade test—The client's stored intent records form a per-client regression suite executed on every candidate upgradeinferenceregister—
—Upgrade eligibility as a capability property—Track edit divergence per capability; heavily forked capabilities lose automatic-upgrade eligibility and require reviewfirst_party_docsregister—
—Semantic version gate on slot schema—Slot schemas are versioned; a breaking slot change requires a declared migration for stored edits or the upgrade is refusedinferenceregister—
—Edit migration functions—Capability authors ship edit-migration functions alongside schema changes, as database migrations doinferenceregister—
—Divergence meter surfaced to client—Visible indicator of how far the app has diverged from its upgradeable baselineinferenceregister—
—Theme edits are always upgrade-safe by construction—Tokens resolve through one resolver context; theme edits never touch capability source, so they survive any upgradefirst_party_docsregister—
—No-literal rule enforcement in editor—Editor refuses to emit literal colour/space values; only token referencesfirst_party_docsregister—
—Upgrade blast-radius preview—Show which edited surfaces an upgrade touches before applyinginferenceregister—
—Pin-and-defer—Explicit pin with recorded expiry and a maintenance-debt signal emitted to P15first_party_docsregister—
—Two-way door labelling—Every edit is labelled reversible/irreversible at offer time, derived from its inverse existence in the algebrainferenceregister—
—Donor-surface edit prohibition—For intact_fork/intact_service capabilities the editor exposes only host-side seams, never donor internalsfirst_party_docsregister—
—Shell-level edits separated from capability edits—Two distinct edit scopes with different guarantees and different reviewersfirst_party_docsregister—
—Upgrade-safety class printed per operation—Each of the seven verbs carries a static upgrade-safety class shown in the UIinferenceregister—
—ChangePlan as staged hash-bound artifact—Edits produce a staged ChangePlan bound to an artifact hash; approval binds to that hashfirst_party_docsregister—
—Bounded diff with file allowlist—Every generated diff is confined to a solver-derived allowlist; out-of-allowlist writes are rejectedfirst_party_docsregister—
—Semantic undo over operation log—Undo pops typed operations, not text diffs; each operation declares its inverseinferenceregister—
—Named versions, not just linear history—Client-nameable checkpoints over the operation logfirst_party_docsregister—
—Branching client edits—Edit branches over the same release, previewable side by side, merged by operation replayinferenceregister—
—Change plan explains cost before applying—Plan states credits/time/rebuild scope before executionfirst_party_docsregister—
—Batch edits into one review—Session accumulates edits into a single reviewable planinferenceregister—
—Conflict detection against concurrent upgrade—Detect and surface conflicts between in-flight edits and pending upgradesinferenceregister—
—Operation log as the P15 signal source—The typed operation log IS the accepted-plan/edit-pattern signal P15 consumesinferenceregister—
—Rejected-offer logging—Log offers the client declined, not only those acceptedinferenceregister—
—Explain-why-unsupported responses—Refusals name the violated constraint and the nearest supported alternativefirst_party_docsregister—
—Nearest-supported-alternative suggestion—On refusal, offer the closest in-algebra operationinferenceregister—
—Change plan diff rendered visually—Render before/after of affected surfaces, not codefirst_party_docsregister—
—Dry-run against stress panel—Every plan is dry-run against the stress cases before approvalfirst_party_docsregister—
—Idempotent edit application—Every operation carries an idempotency keyfirst_party_docsregister—
—Chat proposes, algebra disposes—Conversational requests are compiled into the seven-verb algebra; anything uncompilable escalatesobserved_behaviorregister—
—Direct manipulation and chat share one operation log—Both produce identical typed operationsinferenceregister—
—Chat clarification before mutation—Ambiguity triggers a clarifying question, not a guessfirst_party_docsregister—
—Show the plan, then execute—Chat returns a ChangePlan for confirmationfirst_party_docsregister—
—Terminology mapping per industry—Client vocabulary maps onto capability semantics in the edit layerfirst_party_docsregister—
—Voice/async edit intake—Same operation algebra reachable asynchronouslysecondaryregister—
—Non-destructive style re-pick—Theme is a re-attachable versioned link; swapping preserves structure editsfirst_party_docsregister—
—Style before structure ordering—Elicit style first so structure previews render already-brandedfirst_party_docsregister—
—Simultaneous option presentation—Present variants simultaneously within an axissecondaryregister—
—Reorder-safe navigation editing—Nav edits update route registry transactionallyinferenceregister—
—Edit provenance attribution—Every operation records actor (client, agent, upgrade, migration)first_party_docsregister—
—Read-only preview links for stakeholders—Share preview at read authorityfirst_party_docsregister—
—Edit-time capability search—Add operation queries the registry with port filters inlinefirst_party_docsregister—
—Client authority ceiling on edits—Edit surface derives from the session authority ceilingfirst_party_docsregister—
—Role-scoped edit surfaces—Different roles see different subsets of the algebrafirst_party_docsregister—
—Approval required for irreversible edits—Irreversible class requires explicit confirmation bound to the plan hashinferenceregister—
—No policy authoring from the editor—Policy/permission edits are structurally absent from the algebrafirst_party_docsregister—
—Edits never widen tenant scope—Composition scope is intersection, never union; edits cannot widen itfirst_party_docsregister—
—Secrets never enter the edit surface—Secret references only; never valuesfirst_party_docsregister—
—Audit trail of every offered option—Log offered set, not just selectioninferenceregister—
—Edit freeze during release—Editing locks while a release is promotinginferenceregister—
—Per-capability edit permission from the contract—CapabilityContract declares which verbs it supportsinferenceregister—
—Rights-aware edit restrictions—Rights state restricts which verbs are offered on that capabilityfirst_party_docsregister—
—Client-visible edit boundary documentation—Publish what is editable per capability up frontinferenceregister—
—Escalation to human builder—Named escalation path with context handofffirst_party_docsregister—
—Preview from release artifact—One artifact serves bothinferenceregister—
—Per-edit incremental preview—Parametric edits hot-apply; only code deltas rebuildinferenceregister—
—Preview isolation per client—Preview runs in the tenant's isolation boundaryfirst_party_docsregister—
—Preview data is synthetic by default—Synthetic fixtures unless explicitly authorisedfirst_party_docsregister—
—Preview lease with cleanup—Leased with timeout and deterministic teardownfirst_party_docsregister—
—Warm preview pool—Pre-warmed sandboxes; memory-preserving pausefirst_party_docsregister—
—Preview URL is unguessable and expiring—Signed, short-lived preview URLsinferenceregister—
—Deterministic preview builds—Pinned toolchain and lockfilefirst_party_docsregister—
—Preview health distinct from build success—Health check must pass before preview is presented as readyfirst_party_docsregister—
—Side-by-side before/after preview—Render both states simultaneouslyinferenceregister—
—Mobile/responsive preview mandatory—Preview includes declared viewport profilesfirst_party_docsregister—
—Accessibility check in preview—Automated a11y check on edited surfacesfirst_party_docsregister—
—Edit operations feed capability demotion—Edit volume/type per capability is a P15 demotion signalinferenceregister—
—Edits that always recur become defaults—Recurring edits promote into capability defaults or a new variantinferenceregister—
—Unsupported requests become demand signal—Refusal log is a roadmap inputinferenceregister—
—Escape-hatch rate as a health metric—Track fork rate per capabilityinferenceregister—
—Edit-to-release latency measured—Instrument edit→preview→releaseinferenceregister—
—Client edit patterns seed cold-start priors—Aggregate edit patterns by industry as priorsinferenceregister—
—Editor emits QualificationDossier inputs—Edited surfaces are re-qualified before releaseinferenceregister—
—Rollback of an edit is a first-class operation—Individual edits revertible without full release rollbackinferenceregister—
—Edit history survives capability replacement—Intent records re-resolve against the replacement's slots where semantics matchinferenceregister—
—Editor as the only mutation path—All changes flow through the operation log, including agent and upgrade changesinferenceregister—
—REJECTED: free-form code editing in the client editor—Explicitly out of scope; escape hatch is a state transition insteadfirst_party_docsregister—
—REJECTED: DOM-coordinate edit binding—Superseded by stable semantic anchorsobserved_behaviorregister—
—REJECTED: averaging an edit-quality score—Min-gating insteadfirst_party_docsregister—
—REJECTED: automated visual pass/fail gate—Human-terminal visual gate, honestly labelledfirst_party_docsregister—
—REJECTED: industry-grouped style galleries—Vibe/attribute grouping insteadfirst_party_docsregister—
—REJECTED: one-at-a-time option wizards—Simultaneous presentation within an axissecondaryregister—
—REJECTED: hand-composited preview thumbnails—Literal crops of the real rendered artifactfirst_party_docsregister—
—REJECTED: treating a green build as edit acceptance—Workflow-level acceptance requiredfirst_party_docsregister—

Complete source register

26 mined records. Search and inspect the full agent output; nothing is collapsed into a top-ten headline.

RankIdentityWhat the agent foundEvidenceSource
—P13-S-001local_artifactlane contractfirst_party_docsread_by_lane_ownerresearch/workstreams/2026-08-27-sprint-1/dispatch/S1-L5-editor-runtime-learning.md
—P13-S-002local_artifactdepth/boundary/checkpoint contractfirst_party_docsread_by_lane_ownerresearch/workstreams/2026-08-27-sprint-1/SPRINT-1-PROGRAM.md
—P13-S-003local_artifactrun identity, opus-only policyfirst_party_docsread_by_lane_ownerresearch/workstreams/2026-08-27-sprint-1/sprint-state.json
—P13-S-004local_artifactproject boundaryfirst_party_docsread_by_lane_ownerAGENTS.md
—P13-S-005local_artifactcurrent statusfirst_party_docsread_by_lane_ownerCURRENT_STATE.md
—P13-S-006local_artifactspine entryfirst_party_docsread_by_lane_ownerknowledge/README.md
—P13-S-007local_artifactreuse shapes, plan-then-fill, unknownsfirst_party_docsread_by_lane_ownerknowledge/00-MASTER-SYNTHESIS.md
—P13-S-008local_artifactA05/A07/A11/A15/A19/A20/A21/A22/A26/A37first_party_docsread_by_lane_ownerknowledge/02-ASSUMPTION-LEDGER.md
—P13-S-009local_artifactevidence routesfirst_party_docsread_by_lane_ownerknowledge/03-EVIDENCE-MAP.md
—P13-S-010local_artifactP13/P14/P15 part recordsfirst_party_docsread_by_lane_ownersite/system-map/data/parts.json
—P13-S-011local_artifactS1/S2 lane expectationsfirst_party_docsread_by_lane_ownersite/system-map/data/task-graph.json
—P13-S-012local_artifactpicker/editing UX evidencefirst_party_docsread_by_lane_ownerresearch/ui-pack-gallery-ux-2026-08-27.md
—P13-S-013local_artifactknob vector, integration modes, preference learningfirst_party_docsread_by_lane_ownerresearch/actionmodel-builder-research-2026-08-26/phase-8/external-opus-inputs/CLAUDE-LANES-SYNTHESIS.md
—P13-S-014local_artifactlifecycle, nine families, T0-T4 anti-averaging, deferred statusfirst_party_docsread_by_lane_ownerresearch/actionmodel-builder-research-2026-08-26/phase-8/lanes/01-universal-block-framework/outputs/universal-block-framework.md
—P13-S-015local_artifactstaged writes, authority ladder, ABSTAIN, kill rulesfirst_party_docsread_by_lane_ownerresearch/actionmodel-builder-research-2026-08-26/phase-8/lanes/05-composition-agent-evals/outputs/composition-agent-architecture.md
—P13-S-016local_artifactruntime decomposition, build-run state machine, sandbox/edge decisionsfirst_party_docsread_by_lane_ownerarchitecture/feature-matrix/ARCHITECTURE.md
—P13-S-017local_artifactseven gates, G5 receipts, N01-N15first_party_docsread_by_lane_ownerresearch/actionmodel-builder-research-2026-08-26/phase-2/outputs/evaluation-and-admission-plan.md
—P13-S-018local_artifactreceipt schemas, kill/holdfirst_party_docsread_by_lane_ownerresearch/actionmodel-builder-research-2026-08-26/phase-4/outputs/pilot-receipt-runbook.md
—P13-S-019local_artifactclaim classes, stop rulesfirst_party_docsread_by_lane_ownerresearch/actionmodel-builder-research-2026-08-26/phase-3/outputs/decision-ledger.md
—P13-S-020local_artifact67-surface censusfirst_party_docsread_by_lane_ownerresearch/actionmodel-builder-research-2026-08-26/phase-2/outputs/platform-deepdives.md
—P13-S-021local_artifactcommercial matrix, coverage ledgerfirst_party_docsread_by_lane_ownerresearch/packs/source-files/builder-ecosystem-report.md
—P13-S-022local_artifactfactory loop, failed-assumptions outputfirst_party_docsread_by_lane_owner[private local source withheld]
—P13-S-023local_artifactoperated mixed-shape runtime, two-object rollback, required prooffirst_party_docsread_by_lane_owner[private local source withheld]
—P13-S-024run_artifactcommercial census produced by this run; 40 recordsobserved_behaviorproduced_by_laneresearch/workstreams/p13-preview-editor/runs/2026-08-27-sprint-1-fable/top-companies.jsonl
—P13-S-025run_artifactOSS census produced by this run; 70 recordsobserved_behaviorproduced_by_laneresearch/workstreams/p13-preview-editor/runs/2026-08-27-sprint-1-fable/top-repos.jsonl
—P13-S-026run_artifactinnovation register produced by this run; 100 recordsobserved_behaviorproduced_by_laneresearch/workstreams/p13-preview-editor/runs/2026-08-27-sprint-1-fable/innovation-register.jsonl

Source: site/system-map/data/parts.json#P13 · preserved research datasets remain inline below their source-backed synthesis.