Reaktor UI/UX Audit — 8 September 2026
Current status: Reaktor now has working local developer flows, but the full BestBuds development loop is still incomplete. The native app can load the BestBuds workspace, inspect the mounted application graph and its source declarations, render the live Compose preview, discover devices, execute reviewed device commands, query local SQLite, browse Memgraph through registered reads, read live schema and statistics, inspect declared worker/storage/Kubernetes relationships, read the configured Kubernetes cluster, and expose workspace facts through MCP. Auth now has directories for principals, memberships, sessions, refresh tokens, PATs, service accounts, grants and issuance/audit events. Remote reads require a configured connection with suitable authority; a directory UI alone does not establish that the deployed identity plane has been inspected.
Graph, auth, database, DevTools, compute/cloud and MCP are all top priority. This supersedes the earlier instruction in this document to defer cloud and agent tools until the four original pillars were finished. The acceptance criterion is a completed developer workflow against BestBuds, including useful results and a retained operation reference. A mounted pane, a configuration count, a screenshot or a compiled button is insufficient.
This is a living implementation ledger. Earlier captures, measurements and assessments are retained as historical evidence. In particular, the initial finding that twelve modes rendered pictures was repaired in F24–F27; it is not the state of the current window. The new developer workflow pass records the subsequent feature builds and remaining load-bearing gaps. The Living Graph atlas and north star remain design references.
Distance from the full design and vision
Graph architecture proposal — updated 9 September: Data-oriented Substrate and Typed Maps specifies the pure-data kernel, capabilities, maps, traversal/visitors, services/FFI, async channels, distributed ownership, portable Kotlin logic, modification protocol and verification/migration gates. Its complete ecosystem integration contract now maps all 34 framework module/build directories, 13 desktop modes and 74 authored subpanes to owned definitions, hooks, observations, maps, operations and presentation. It includes shared Workbench context, integration release gates, HLD diagrams, a compiled Kotlin contract specimen and a downloadable source inventory. This is design progress; the proposed runtime and operational flows are not recorded as implemented fixes. The seven-journey readiness assessment below remains unchanged by publication of the proposal.
Current readiness: a useful inspection alpha, with substantial operational work remaining. None of the seven broad end-to-end journeys in the current P0 queue has met its complete acceptance bar yet; all seven have working parts and blocking gaps. This is a workflow count, not a feature-completion percentage. Passing tests, mounted tabs and authored boards do not measure how much of the product vision has shipped.
The desktop can already save time finding source, exploring the client graph, inspecting local SQL and bounded Memgraph results, reading Kubernetes state, and giving an agent the same local workspace facts. The available evidence does not establish support for the complete BestBuds change → reproduce → diagnose → fix → test → deploy → verify loop, or measured a developer shipping-speed improvement. It does not yet replace DataGrip, Chrome DevTools or the existing deployment/observability tools.
| Area | Useful capability available now | Load-bearing capability still needed for acceptance |
|---|---|---|
| Graph | Mounted client graph, hierarchy disclosure, exact node/port/connection selection, source lookup and Compose preview | A stable identity path through client → route → worker/server → auth decision → store → trace; remote runtime sessions, semantic zoom and large-graph interaction qualification |
| Compute/cloud | Declared worker/binding/store topology plus observed Kubernetes inventory, events and bounded logs | Observed worker versions/routes/health, source-versus-deployed drift, trace correlation and a dependency-aware deploy/reconcile workflow |
| Database | SQL read sessions, local SQLite operations, schema/stats/EXPLAIN adapters and bounded Memgraph table/graph browsing | Qualified remote provider coverage, arbitrary authorized queries, graph neighborhood loading, Durable Object/device object-store inspection, reviewed data/schema edits and migrations |
| Auth | Searchable, paged metadata directories and linked identities, expiry/scope/audience evidence, policy simulation | Qualified deployed directory reads joined to actual enforcement, role/membership administration, session/PAT revocation, credential issuance and signing-key lifecycle |
| DevTools | JVM Compose preview, device discovery, device-scoped command plans, adb browsing and accessibility-tree geometry | Physical Android/iOS qualification, screenshot-to-element correlation, complete file/database inspection and editing, deploy receipts, useful network/performance debugging |
| MCP/agents | Nine local read tools, three resources, discovery and shared workspace/control-plane reads | Authenticated attachment/session transport, shared entity/run references, governed execution/cancellation and an actual agent conversation loop |
| Incident/debug loop | Local operation output, Kubernetes observations, runnable test/build gates | Worker tails, telemetry queries and trace-to-graph/source links, parsed test reports, failure-to-fix-to-deploy verification |
The remaining distance is several major integrations and complete operational workflows, followed by qualification across real providers, devices and display configurations. It is not just a visual-polish backlog. A calendar estimate would require estimating and validating the open provider/operation contracts; this audit does not invent one.
The delivery gates are:
- Connect the real system. Qualify the configured BestBuds remote databases and auth inspector, attach physical/simulated devices and observed worker runtimes, and preserve stable identities across panes.
- Complete everyday operations. Review, execute and reconcile database edits/migrations, identity changes/revocation, app installation and cloud deployment against explicit targets, retaining results and operation references.
- Close the developer and agent loop. Carry an observed failure through trace, graph, source, reproduction, test, change and verified deployment; expose the same references and governed actions through MCP and agent sessions.
- Qualify the experience. Prove adaptive behavior, accessible input, failure/recovery states, large-graph performance and physical-device workflows. Close the remaining authored interaction contracts, including testing, telemetry and agent surfaces.
These gates describe completion criteria, not a reason to postpone usability repairs. The viewport-orientation correction below is one concrete graph repair; it does not close the broader graph journey.
Scope and evidence
The audit covers the complete source catalog structurally and representative native workspaces visually and behaviorally. It does not establish that every possible interaction, display configuration or future provider attachment is bug-free.
| Evidence | Coverage | What it establishes |
|---|---|---|
| Original Pencil source census | 122 roots; 39,942 visible nodes | Catalog coverage, layout properties, primitive inventory and containment diagnostics |
| Source classes | 46 current workspaces, 15 current states, 58 retained references, 3 libraries | Which boards are current handoffs and which remain reference material |
| Native resized captures | 11 boards at 1024 × 720 and 3360 × 1418; 22 captures | Concrete narrow and ultrawide behavior of Data, Auth, AI, Develop, UI Preview, Cloud, Devices and four new map states |
| Authored-size host comparison | Seven representative primary boards, independent repeated renders | Native host/navigation bindings introduce zero decoded RGBA differences relative to the native board at its authored viewport |
| Native regression suite | 248 engine tests run; every studio, workbench, layout, navigation, host-parity and pinned-shell test passes | Covered navigation, keyboard input, close-hit isolation, icons, tooltip geometry, scroll behavior, retained state and actual desktop navigation |
| Compact-layout pass | Five new native tests, two new layout-kernel tests, and a re-rendered resized review compared against the previous pass | The narrow-window repairs F22 and F23, and the evidence that they change nothing at authored or ultrawide size |
| Live-shell renders | ReaktorWorkbenchContent — the composable the desktop window mounts — rendered for eight modes at 1600 × 1000 and for the four pillars at 1024 × 720 and 3360 × 1418 | What the running product looks like per mode, as opposed to what the boards look like |
| Subpane sheets and measurement | All 74 authored subpanes rendered; last-painted-row and ink measured per sheet | X01: 64 of 74 stop above half their height, median 30 % |
| Reachability scan | Every composable in render/compose/panes/ checked for callers outside the package | W02: five are referenced; every domain pane has none |
| Design-file pane contract | pen-truth.json → panes.modes and panes.families, compared against ReaktorMode and WorkbenchPaneCatalog | W06 mode/shortcut disagreement, GR08 missing graph family, DB06 subpane/board coverage |
| Framework regressions | Ten tests pass | Shared flexible layout and graph selection/editor-state behavior |
| Exact Pencil comparison | Separate acceptance gate | Native-host identity does not imply Pencil raster identity; current result is recorded in the verification section |
| Design coherence review | Structural scan of all 122 boards (chrome components, text sizes, fixture identifiers, panel names, verbs) plus five reviewer passes that read 106 exported boards at full size | The cross-board inconsistencies in the CO section: information architecture, shell generations, vocabulary, fixture identity, colour and provenance encodings, states, noise and redundancy |
The native captures use logical pixels, density 1 and font scale 1. A browser displaying a 3360-pixel image at a smaller width makes its text look smaller; that is not evidence that the native app changed its font size.
Evidence is preserved locally under reaktor-context/compose-parity/ui-consistency-2026-09-07/. The source snapshot contains resolved specifications, exact icon exports, PNG references and SHA-256 hashes. The native rendering tests additionally write modules/engine/build/reports/studio-responsive-review/ and studio-host-parity/. Screenshots reproduced below are authored examples, not live provider observations.
Status
- Fixed / verified: implemented in a repair pass and covered by the stated evidence.
- Open / observed: directly visible in a capture or established by the reviewed implementation.
- Integration gap: the surface exists, but its intended operation is not attached.
- Qualification gap: more testing is required; this is not a claim that an untested feature is broken.
Priority
The historical bands below organize issue families. The current P0 workflow queue takes precedence across bands; an unavailable database, device or compute flow must not wait for graph polish.
Band is the product order. It decides what is worked on:
| Band | Contents | Why here |
|---|---|---|
| 0 · The window | Defects that block every pillar at once — mode routing, mounted panes, one application identity, one shell | Nothing in bands 1–4 can be finished while the window still swaps applications and mounts pictures |
| 1 · Graph | The system map, its instruments, its inspector and its design contract | The owner's first surface; also the substrate the other three read from |
| 2 · Database | Connections, query, schema, results, migrations, history | Second |
| 3 · Auth | Principals, providers, roles, sessions, policy explanation, audit | Third |
| 4 · Device tools | Console, network, elements, preview, devices, traces, logs — the Chrome-DevTools job | Fourth |
| 5 · One vocabulary | The coherence work the four pillars all inherit: identifiers, counts, provenance, colour, states, shells | Not a surface, but the four pillars cannot be consistent without it |
| 6 · Supporting surfaces | AI and UI library reference work | Compute/cloud, MCP, deploy, testing and observation now join the P0 workflow queue below |
| 7 · Qualification and polish | Accessibility, performance, resize matrices, raster parity, onboarding | Gates before release, not the path to usable |
Severity decides the order inside a band:
- S0 — not usable. The surface cannot do its job at all: the operation is absent, or what is shown is a picture of the operation.
- S1 — blocks the task. The surface works but a normal workflow cannot be completed, or a decision is made on information that is wrong or hidden.
- S2 — friction. Repeated cost, weak discoverability, avoidable confusion.
- S3 — polish.
Severity expresses consequence, not an assertion that a dangerous operation currently executes. The complete ranking is in Order of work; the older P0–P3 labels on individual issues are kept so links and history still resolve, but the band-and-severity queue is what sequences the work.
Decision order
- Keep the current native implementation, repaired source constraints and real graph.
- Mount the panes. Route every mode to a tool instead of a board, on one application identity and one shell. Until this is done, work in bands 1–4 lands in code the window never shows.
- Make the graph usable at every scale and window size, then attach its instruments to the live session.
- Make the database surface a database tool: connections, an editor, results, schema.
- Make auth an inspector over real principals and policy, with an honest simulation boundary.
- Build the device-tools surface Reaktor is missing — console, network, elements — rather than renaming the build surface.
- In the same P0 delivery sequence: compute topology and operations, MCP parity, delivery and observation through shared commands and receipts. AI and reference-library polish follow working developer flows.
Do not optimize this into fewer features. Reaktor needs more power with better organization: progressive detail, docked tools, contextual actions, inspectable state and reversible navigation.
Developer workflow pass · 8 September
This pass inspected the running packaged macOS application with the BestBuds workspace, alongside reaktor.pen (including FsQx4, LODux, yawya, T51iyD and GaN4a), the module code, SQL, Wrangler configurations, Kubernetes manifests and developer documentation. All thirteen primary modes were opened in the native application: Graph, UI preview, DevTools, Database, Auth, Cloud, Deploy, Testing, Telemetry, Analytics, Agent, AI and UI. This is primary-mode coverage, not a claim that every subpane or provider operation was exercised.
| ID | Implemented behavior | Evidence and limits |
|---|---|---|
| F36 | Finder launch opens the real workspace. Explicit workspace selection wins; otherwise a valid remembered workspace or an ancestor of the packaged application is used. The selected directory is remembered. Header DevTools navigation now mounts the real pane | The earlier packaged app launched in / and showed zero tasks. The rebuilt native app discovered 481 BestBuds tasks and 253 resources; session device/query tasks increase the task count |
| F37 | Graph navigation and source. Node measurement no longer pins every node and prevents relayout. Reset layout releases manual positions. Scope expansion/collapse frames its target; the later F47–F54 follow-through preserves the inspected subject during disclosure. Compound region packing uses measured child bounds. Source resolves exact Kotlin declarations, preserves ambiguity, shows bounded excerpts and opens the declaration in the IDE | Editor-state regression tests and native wide-window inspection. F57 supersedes the width-only expansion layout; full semantic zoom, relationship routing and cross-runtime identity are still open |
| F38 | Device Lab. adb, simctl and idb discovery retain device identity, availability and runtime. Actions use the selected serial/UDID: apps, logs, files, databases, view tree, install, launch, stop, uninstall, clear data and simulator boot where supported. Writes use the existing reviewed operation plan and retained run. Install plans seal artifact content and app-bundle membership | Native adb and simctl discovery succeeded. This Mac had zero attached adb devices and zero configured simulators; idb was unavailable. Command/identity and installation-seal tests cover the adapters. Physical device execution is not claimed. simctl file/database discovery currently locates the app container; full browsing remains open |
| F39 | Mounted Compose preview. UI preview and the DevTools app surface render the actual graph application with Phone/Tablet/Desktop viewports and in-process composition inspection | Native BestBuds welcome screen and composition tree were inspected. This is the JVM Compose preview, not a physical Android/iOS viewport |
| F40 | Database work. Query documents and sessions survive mode changes. A table browser issues bounded paged reads. Source schema is searchable and engine-scoped, with table-to-query navigation. Live schema, statistics and real EXPLAIN use sealed query plans and engine-specific read brokers | Native active Desktop SQLite returned query rows, live schema and storage statistics (3 pages × 4096 bytes = 12,288 allocated bytes in that run). A real SQLite EXPLAIN broker test verifies the query plan. Postgres/ClickHouse/D1 adapters need their connection/CLI authority. Memgraph Cypher, per-instance Durable Object queries and reviewed data/schema mutations remain open |
| F41 | Auth directories and connection setup. Principals, memberships, sessions, refresh-token families/expiry/rotation/revocation, PAT scope/audience/last use, service accounts, grants and audit/issuance events have explicit bounded SQL projections. Secret/hash/profile columns are excluded. Auth opens on directories and exposes environment selection. Auth and Database share an environment-scoped, process-memory Postgres connection form | Nine directory queries execute against the framework auth schema in H2 tests. The native directory controls were inspected; no remote principal/token read is claimed. Access JWTs are stateless: issuance events are not an inventory of currently valid bearer tokens. The broker verifies inspector-role privileges before each Postgres query. Session credentials are not serialized into the workbench snapshot |
| F42 | Interactive compute graph. Workers and shared stores form selectable nodes with binding edges, incoming/outgoing dependency navigation and a connection inspector. Default and dev configurations are separate. Same-named Durable Object classes in separate workers stay separate. Kubernetes Service selectors connect to matching workloads in the same namespace; explicit host declarations connect workloads to Services. Image, replicas, ports, resource requests/limits and secret/config-map reference names are inspectable | Source parsing and graph-contract tests. Source is labelled as configuration throughout; neither a declared route nor a Kubernetes manifest proves deployed health. Invalid files produce issues. Wrangler named-environment bindings are non-inheritable, following the Wrangler configuration contract |
| F43 | MCP is discoverable in the desktop. The MCP tab connects to this process's bound loopback server, discovers tools and resources, accepts tool arguments, executes advertised read tools, reads resources and copies client configuration/results. Added source topology, schema, declaration and device-observation tools use the same workspace data as the panes | Loopback protocol E2E covers discovery, each added read, resources, environment selection and rejection of unadvertised execution. The process chooses its own port instead of silently attaching to another running Reaktor. Remote MCP attachment/OAuth and operational execution through MCP are still separate gaps |
| F44 | Continuity and useful space. Database drafts, auth directory selection, compute selection and Device Lab inputs live above the mode branch. Empty resource catalogs no longer reserve most of the Testing pane. Domain run cards no longer show an unrelated database run. Renderer refactors remove the oversized files; DevTools/Database labels match the authored mode vocabulary | Focused architecture/navigation tests. Global drawer history remains global by design. Complete workspace/session documents and every subpane's retained scroll/selection remain qualification work |
| F45 | Database result workbench. Query, schema, auth directories and table reads share one result grid with filtering, text sorting, full-cell inspection and JSON/CSV copying. SQL NULL stays distinct from an empty string and the text NULL. Duplicate column names survive JSON export. Table/page selection survives mode navigation; Previous/Next issue the read immediately, and results from a different statement are hidden | Export regression covers duplicate names, NULL, empty values, commas, quotes and multiline cells. Paging uses offsets; stable ordering under concurrent writes still requires an explicit ORDER BY in Query. Copy controls export only the returned, filtered rows; this is not an unbounded database export |
| F46 | Compute navigation at workspace scale. The graph packs resource groups across both axes and uses the available pane height. A searchable worker/store/server navigator selects the graph subject and reveals its dependencies; dependency focus and frame controls operate on the same graph | Shared layout tests cover 51 elements, non-overlapping groups and retained peer edges under focus. The native Compose desktop flow exercises workspace search, selection, dependency focus and MCP read execution. This does not replace physical pointer qualification |
Operational and adaptive follow-through — 8 September
These are additional implementation changes, not a declaration that every atlas interaction is complete.
| ID | Implemented behavior | Evidence and limits |
|---|---|---|
| F47 | Resizable working panes. Graph explorer and inspector, database connection navigator, query/results, Compute topology, MCP inventory and the new device/auth/Kubernetes inspectors use adjustable working areas. Database results can sit below or beside the SQL document. Shared dividers support drag, keyboard arrows, accessible actions, Home reset and double-click reset | Compose pointer-event tests exercise content resizing at 1512 and 2560 logical pixels. Minimum sizes compress without negative dimensions; resizing the window preserves the preferred split. Compact database rendering exposed and fixed an invalid minimum-width clamp |
| F48 | Measured graph canvas and targeted reveal. The graph lays out against the actual measured canvas after panel collapse/resize. Disclosure changes visibility while retaining the exact selected node, port or connection. Reveal clears filters and expands only selected owner paths. A cross-scope relation widens focus only to the needed common ancestor | Scope tests preserve folded siblings and pre-existing expansion. The rendered BestBuds regression covers port selection → fold Chat → retained hidden subject → Reveal, with sibling scopes still folded. The directional Reaktor performance report profiles the actual BestBuds graph at 900, 1600, 2400 and 3200 pixel canvas widths, with 29-node overviews and 172-node fully expanded projections. These measurements concern projection cost, not native frame rate |
| F49 | Auth identity drill-down. Sessions opens the session directory. Previous/Next issue the requested read immediately. Selecting a result row opens its full metadata in a resizable inspector, with principal links to users, sessions, refresh tokens, PATs, grants and access issuance; links issue the corresponding filtered read | Uses the existing explicit-column SQL and environment-scoped Postgres session. Old results disappear when target, filters or session credentials change. Remote directory reads still require an actual inspector connection; administrative writes/revocation are not implemented by these read controls |
| F50 | Operational device inspectors. adb/idb accessibility captures become searchable trees with expand/collapse, text/resource-ID filtering and attribute selection. adb file rows navigate directories and preview text through an exact-device, exact-app bounded command. Device logs and command output are virtualized and filterable | XML/JSON capture parsers, nesting/size limits, file permissions/symlink handling, shell-argument validation and actual rendered tree interactions are tested. simctl still resolves the app container; full Apple sandbox browsing remains open. File previews are bounded text, not a database or binary editor |
| F51 | Native element geometry. A device element inspector plots the rectangles reported by the capture and highlights selection. Clicking an outline selects the smallest captured element underneath it | Geometry comes from Android bounds/idb frames. It is explicitly labeled accessibility geometry; it does not claim a pixel screenshot, Compose semantics completeness, or an attached physical device |
| F52 | Observed Kubernetes operations. Compute → Kubernetes reads namespace resources using the workspace kubeconfig. It shows pod readiness/restarts, workload replica state, node/address/image/owner/condition facts and service ports, with selected-resource events and bounded pod logs, cancellation and operation receipts | The configured cluster returned 21 objects: 6 pods, 2 deployments, 2 stateful sets, 1 daemon set, 3 services, 3 jobs, 1 cron job and 3 endpoint objects. Five pods reported ready containers; the completed probe job reported Succeeded. Native package reads also retrieved a selected running server pod’s events and 300 lines of logs, with successful receipts. The pane does not infer deployment health from the source graph |
| F53 | Complete structured command capture. The process executor now supports bounded complete stdout capture. Kubernetes and device readers use it instead of consuming the tail of an operator log | The end-to-end cluster test exposed that the old 1,000-event retention dropped the beginning of JSON; the 16,384-character line limit could truncate Android XML. Capture tests cover multiline and long single-line documents, overflow failing without a partial payload, and secret redaction. Ordinary long-running task output retains its streaming behavior |
| F54 | Design and adaptive substrate. The responsive helper now publishes and uses its parent size; responsive modifiers actually select their breakpoint. Pencil Data has resizable stacked query/results and an ultrawide variant; Auth's main pane fills its parent; a device inspection board documents the working tree/file/log flows | Pencil roots yawya and T51iyD were updated. New roots FjJmy (09.04a Data ultrawide) and G5Lsup (07.01a Device inspection) are design specifications, not runtime assets. All revised boards were visually reviewed in Pencil. These two additions extended the earlier 122-root census to 124 at F54; subsequent design additions are tracked separately |
| F55 | Memgraph inspection and browsing. The Database pane now runs six registered reads against the configured cluster: labels/counts, node property keys, nodes/properties, relationships/endpoints/properties, relationship types/counts and node totals. Query presets execute immediately; Data pages browse nodes or relationships in internal-ID order; Schema and Statistics share the sealed query/result broker. The old health probe’s unsupported console flag was replaced with CSV over stdin | All six reads passed against the real Memgraph instance through the Desktop control plane and database session. A separate broker test runs every shared catalog template and proves injected or unregistered statements never reach the transport. The console receives a fixed catalog query with validated bounds, not arbitrary editor text. F56 adds bounded graphical result exploration. Free-form Cypher, parameterized graph search, property-value types and writes remain open. yawya records this operational contract |
| F56 | Inspect returned Memgraph records as a graph. Data switches between the table and graph of the same succeeded node/relationship page. Nodes and directed relationships are selectable; the inspector follows exact source/target identities, displays returned properties and copies their full values. Focus shows only neighbors present in the returned page; restore brings the whole page back. Selecting a returned record outside the focused neighborhood reveals it, with the focus anchor labeled. The shared grouped layout now adjusts columns to canvas aspect instead of imposing a four-column ceiling | Shared MemgraphReadPage preserves parallel relationships and self-loops, rejects malformed/duplicate identities and never invents endpoint labels or properties. A relationship page explicitly identifies its nodes as unloaded endpoints. Rendered pointer tests exercise node → relationship → target → focus → offscreen-record reveal → restore at 1512 and 2560 logical pixels. Directional reports profile bounded 100/500-relationship fixtures with flame frames; these are projection measurements, not native FPS. New Pencil root fjJt2 (09.04b) specifies the implemented result/inspector flow and was visually reviewed. Loading new neighborhoods, joining database IDs to Reaktor entity IDs and graph writes remain open |
| F57 | Graph expansion follows the actual canvas orientation. The mounted typed graph receives both measured canvas dimensions, excluding navigator, inspector and toolbars. Landscape/square canvases place expanded descendants to the right; portrait canvases place them below. Compound packing uses measured cards and subtree areas to avoid turning full expansion into an extreme strip | Real BestBuds shape tests include the same 900-pixel width at both 600- and 1600-pixel heights. Shared tests check stable node/scope/edge identities, exact route/screen adjacency, sibling non-overlap, nested folded-summary containment and density scaling. Rendered disclosure/reveal tests use 1512 × 982, 900 × 1600 and 2560 × 1080 workspaces and preserve the exact selected port. The Pencil ZCxzu board and atlas now state this contract. Distributed runtime joins and full semantic zoom remain open |
The complete-output repair is part of the operational acceptance bar: a command exiting successfully is insufficient if the UI receives only a truncated suffix of its response. The Kubernetes integration test goes through the actual Desktop control plane, supervised process, retained receipt, parser and rendered inspector, with an explicit live-read opt-in.
Verification ledger for F47–F54: the full :engine:jvmTest suite ran 282 tests, zero failures, one skipped, including the real configured-cluster integration and the rendered graph disclosure/reveal regression. Shared suites passed: reaktor-flow 49, reaktor-tooling 19, and reaktor-ui 7 tests. The full :reaktorDesktop:test run passed all 37 tests, including physical port selection and all three reference-window input/focus checks. The native input harness now binds Robot to the test window’s graphics device and measures its port after foreground layout settles; it still sends actual OS pointer events and asserts the exact port inspector. No native assertion was disabled or replaced with semantic clicking. The additional three adaptive tests passed after adding smallest-element hit testing in the device bounds viewport.
Verification ledger for F55: the subsequent full :engine:jvmTest run passed 284 tests, zero failures, one skipped, with both live Kubernetes and Memgraph reads enabled. The shared reaktor-db suite passed all 32 tests. desktopMcpE2e passed against its actual loopback server and createDistributable rebuilt the packaged app. All six Memgraph catalog reads returned real column/row results through DatabaseStudioSession; the ten-row test limit correctly reported truncation for properties, nodes, relationships and relationship types. The separate broker regression executes each catalog template and rejects injected/unregistered text before invoking the console. The packaged app then read ten labels, 100 nodes on page one, 100 nodes on page two, and 100 relationships after switching record kind, resetting to page one. Every native read had a successful operation receipt. The repaired health probe also succeeded and changed the Memgraph connection to connected. Native 37-test qualification above preceded F55; these additional Memgraph flows were verified manually in the rebuilt app.
Verification ledger through F56 (before the orientation correction): :engine:jvmTest passed 287 tests, zero failures, one skipped; :reaktorDesktop:test passed all 37 tests; shared reaktor-db passed 34 and reaktor-flow 50 tests. Both live-read opt-ins were enabled. The real returned Memgraph node and relationship rows also passed the new typed page parser. MCP loopback E2E and packaging succeeded. New rendered pointer regressions preserve exact endpoint identity through selection, relationship inspection and local neighbor focus at laptop and ultrawide sizes. The projection benchmark and flame frames are written to modules/engine/build/reports/memgraph-results/performance.json; its 100/500-relationship input is an explicitly generated fixture, not production traffic or an FPS claim.
Native Memgraph graph review: the packaged application executed the production-target registered relationship read and drew 105 endpoint identities / 100 returned relationships. Selecting Node #15 and focusing its returned neighbors produced 2 nodes / 1 relationship. The HAS_RESOURCE relationship inspector identified source Node #1 and target Node #15 and exposed its returned properties. Target navigation selected Node #15; restoring the page returned to 105/100; clicking the Node #1 card directly on the native canvas opened its exact inspector. No additional database query was issued by those local navigation actions. The subsequent offscreen-selection regression checks that selecting a different component reveals it. The paging controls now disable Next at the supported bound and validate a destination before changing page state.
desktopMcpE2e passed against the actual loopback server, and createDistributable rebuilt Reaktor.app. Native computer control exercised Compute → Kubernetes → Read cluster (21 objects) → server pod → events → 300 log lines, with successful operation receipts. Database executed a local SQLite query in the new side-by-side layout, returned two schema rows and retained them after window restoration. The native graph changed between 48 cards/66 relations and 29/29 on Chat expansion/collapse, and a consumer port opened its exact inspector. That manual pass caught and fixed scope disclosure replacing the selected subject; the new rendered regression verifies retention and targeted Reveal.
Adaptive rendering and splitter input are exercised at 1512 and 2560 logical pixels; responsive helpers also cover 390 and 768. Native wide-window inspection is additional evidence, not exhaustive qualification of every MacBook/Dell resolution, scale or window arrangement. The pre-F57 graph projection report covered 900/1600/2400/3200-pixel canvas widths: median overview projection was 0.1–0.2 ms and fully expanded projection 0.5–0.8 ms in that run (worst sample 3.3 ms). The viewport-orientation pass below replaces width-only input with width and height. This measures projection work only, not display frame rate. Physical mobile-device qualification and the P0 operations below remain open.
Current P0 workflow queue
| Developer question / workflow | Current useful behavior | What still prevents completion |
|---|---|---|
| Which screen, graph node and source declaration owns this behavior? | Mounted client graph, port/connection inspection, exact Kotlin source and live Compose preview | Stable joins to workers/routes/stores, semantic zoom, rich inspector continuity and observed remote graph sessions |
| Which workers, servers and stores are involved in a failure? | Source worker/storage graph, reverse bindings, source Kubernetes connections, observed Kubernetes inventory/log/event reads, environment variants and receipts | Live worker deployment/version/health and drift; endpoint-level route contracts; trace correlation; changed-worker deploy plan |
| What rows and schema are in this database? | SQL read sessions, table browsing, source schema/relationships, live schema/stats/EXPLAIN on supported adapters; session Postgres connection setup; registered Memgraph reads with table/graph result inspection and local neighbor focus | Live qualification for other remote stores, free-form Cypher authority and parameterized neighborhood loading, target-specific Durable Object inspection, typed object-store browser and reviewed writes/migrations |
| Which principal/session/token caused this auth behavior? | Metadata directories, immediate pagination, linked identity inspector, UUID/environment filters, scope/audience/expiry/rotation evidence and graph policy simulator | An observed enforcement decision joined to those identities; principal/role administration, session/PAT revocation, mint-once credentials, signing-key lifecycle |
| Can I reproduce the mobile failure on this device? | Explicit device discovery and identity, supported commands, reviewed app lifecycle, adb file/text browsing, accessibility trees/geometry and Compose viewports | An attached device/simulator qualification pass; Apple file content and device database editing; pixel screenshot correlation; physical iOS transport and app deployment receipts |
| Can my agent inspect the same state and act through a reviewable workflow? | Local MCP discovery, graph/control-plane reads, source topology/schema/source/device reads, operation-plan inspection | Remote attachment/auth, task execution/cancellation policy through MCP, shared selection/run references, agent session transport |
| Can I see why the deployed request failed? | Local operation output, observed Kubernetes inventory/logs/events and run/task catalogs | Live worker tail, telemetry queries, freshness and trace-to-graph links. Telemetry and Analytics are still largely configuration surfaces |
Native review defects still open: Agent Chat has no session transport. AI Models shows binding inventory under authored model/prompt headings, and its "retrieved context" can contain unrelated operation runs. The UI mode is a component catalog. Testing has runnable gates but does not yet parse their reports into a useful result tree. These are functional integration gaps; they must not be counted as delivered workflows because the tabs render.
Earlier verification ledger (before F47–F54): :engine:jvmTest ran 274 tests, zero failures, one skipped. Shared suites passed: reaktor-flow 47, reaktor-tooling 11, and reaktor-auth 67 tests. The full desktop suite ran 37 tests: 33 passed and four native-focus tests failed. Their diagnostics show no focused window; the computer-control tool independently reported that the Mac had locked at the verification snapshot. The three reference-window focus/close tests and the physical graph-port click test remain an explicit qualification gate. They were not disabled or changed to bypass native input.
The new DesktopFeatureFlowsTest passed through the real Compose shell: source topology → search messaging-service → select worker → focus dependencies → Agent/MCP → discover this process → execute system_topology. desktopMcpE2e also passed against the actual loopback HTTP server, covering the nine-tool registry, resources, arguments, environment selection and source/device read contracts. createDistributable produced the rebuilt Reaktor.app. All thirteen primary modes had been opened in the packaged app earlier in the pass, including live local SQLite query/schema/statistics and explicit adb/simctl discovery. This earlier native-focus failure is superseded by the follow-through verification record above.
These screenshots come from the desktop integration harness with its explicitly labelled E2E operation catalog, the actual BestBuds repository topology, and the real loopback MCP server. They show the implemented Compose flows, not a live deployment observation or Pencil raster-parity result.


Viewport-orientation correction · 8 September
Latest verification ledger — F57: the full :engine:jvmTest run passed 288 tests, zero failures, one skipped, with both live Kubernetes and Memgraph read opt-ins enabled. Shared reaktor-flow passed 53 tests, and :reaktorDesktop:test passed all 37 tests, including actual OS port input. desktopMcpE2e passed on its loopback server and createDistributable rebuilt the native app. The first full run exposed a preview test reading the previous status before Compose applied its state update; explicitly delivering snapshot notifications and advancing the existing frame clock fixed the harness, with the same runtime-status and viewport-identity assertions retained. The complete rerun passed.
The current directional projection benchmark measured overview medians of 0.1–0.2 ms and fully expanded medians of 0.8–0.9 ms across portrait, laptop and ultrawide canvas dimensions; the worst expanded sample was 4.9 ms. These measurements include projection and flame-frame reporting, not native FPS or a large-production-graph performance qualification.
F57 fixes the mounted application graph, not only the Compute or Memgraph result layouts. F34 passed canvas width into the typed strategy but still wrapped expanded scopes underneath their parents. The shell now measures the actual canvas width and height, and the shared flow layer places descendants along its longer axis. Changing panes, navigator/inspector sizes or window orientation triggers a new projection; graph identities and the inspected subject remain stable.
The following focused-run measurements are graph-coordinate bounds from the real BestBuds runtime projection at density 1, not screenshot dimensions or promises that every card fits on screen. Fully expanded includes all 172 cards. Dense layouts deliberately grow on both axes; their dominant direction follows the canvas. The width-only F34 measurements below are retained as history.
| Canvas width × height | Collapsed content | Fully expanded content | Dominant expansion |
|---|---|---|---|
| 900 × 1600 | 902 × 2186 | 2402 × 8614 | Vertical |
| 900 × 600 | 2126 × 1038 | 6814 × 3128 | Horizontal |
| 1600 × 900 | 2126 × 908 | 8314 × 2864 | Horizontal |
| 2400 × 1000 | 2126 × 908 | 9006 × 2292 | Horizontal |
| 3200 × 1200 | 1826 × 1082 | 9398 × 2094 | Horizontal |
The shared tests also relocate an expanded child containing a nested expanded region and a folded descendant, checking the whole subtree remains contained and non-overlapping. The rendered workspace tests obtain dimensions through the real canvas measurement callback and exercise fold → hidden selected port → targeted reveal at laptop, portrait and ultrawide sizes. Their captures are under modules/engine/build/reports/graph-orientation/; the projection benchmark and flame frames are under modules/engine/build/reports/graph-navigation/performance.json. Projection timings are directional CPU measurements, not native display FPS.
Native follow-through: the rebuilt packaged application was resized from the wide desktop to a tall graph canvas and back. Chat collapsed from 48 nodes / 66 edges to 29 / 29, then expanded back to 48 / 66 in both orientations. Frame all showed descendants below in portrait and to the right in landscape; the OnboardingScreen inspector stayed selected through resize and disclosure. This is a concrete native window check, not exhaustive display qualification.
The following capture is the actual rendered graph workspace with BestBuds and Chat expanded. The portrait capture and ultrawide capture show the same selected port and scope state. These are native Compose test renders, not observations of a remote runtime or proof of whole-Pencil parity.

Schema and layout pass · 8 September
| ID | Previous defect | Correction | Verification |
|---|---|---|---|
| F33 | The auth pane could take the window down. Two hazards: AuthSourceTruth cached in a plain map read from composition, and the pane re-walked the reaktor-auth checkout on every port event because the read was keyed on the event counter | The cache is concurrent, and reading the checkout is keyed on the workspace and an explicit Refresh rather than on port traffic. A missing checkout degrades to an empty truth instead of throwing | A new test composes and clicks all six auth subpanes in one scene; the suite previously only ever drew the tab the pane opens on |
| F34 | The graph was still a tall column in a wide window. The earlier width-aware packing had been written into BlueprintReaktorGraphLayoutStrategy — the strategy the editor does not use. The editor sets a typed node style, which selects TypedReaktorGraphLayoutStrategy, whose column counts were fixed constants and whose expanded child regions "stack down the left" by construction | Column counts are derived from the canvas width, expanded scope regions wrap across the band on a predicted width, and collapsed summaries spread instead of sitting in two fixed columns | A layout-shape test measures the composition at four canvas widths |
| F35 | The Data pane listed eighteen connections and could not answer "what columns does refresh_token have". The answer was checked in: 22 SQL files across the Supabase dump, scripts/migrations, cloud/k3s/clickhouse and each worker's migrations | BestBudsSchemaReader reads 105 tables, 89 foreign keys and 157 indexes — Postgres across auth, heimdall, public, realtime and storage, plus ClickHouse and D1 — into the Schema and Relationships subpanes, with columns, types, nullability, defaults, primary keys, inheritance and the file each came from | Five tests asserting against this repository's own SQL, including the identity plane's token tables |
Historical F34 measurements (width-only layout, superseded by the viewport-orientation correction): these show the earlier improvement over fixed columns, and also the remaining vertical-expansion defect. They are not current orientation-qualified results:
| Canvas | Before | After, collapsed | After, expanded |
|---|---|---|---|
| 900 | 1802 × 1486 | 902 × 2256 | 966 × 13,346 |
| 1600 | 1802 × 1486 | 1502 × 1388 | 1580 × 8,366 |
| 2400 | 1802 × 1486 | 2402 × 910 | 2466 × 5,182 |
| 3200 | 1802 × 1486 | 3002 × 564 | 6504 × 3,632 |
F34 used width alone and continued wrapping expanded scopes underneath one another, even in landscape. The follow-up uses both dimensions of the actual graph canvas and places expanded descendants along its longer axis. Dense graphs may grow on both axes; landscape expansion must remain horizontally dominant and portrait expansion vertically dominant.
Compute topology pass · 8 September
| ID | Previous defect | Correction | Verification |
|---|---|---|---|
| F32 | The workbench knew one client application's dependency graph and a flat list of commands. It did not know that BestBuds is 21 workers, a JVM server plane and a shared Postgres — facts declared in files already checked in | BestBudsSystemTopologyReader reads every wrangler configuration and the k3s manifests into a typed topology: workers with routes, crons and observability; typed bindings to Postgres, VPC services, D1, Durable Objects, R2, KV, Workers AI, Browser Rendering, Workflows and assets; the worker-to-worker service graph; every store with the workers that bind it; and a deploy order computed from the bindings. The Cloud mode is now that surface | Seven tests that assert against this repository, not a fixture: the fleet size, the shared Hyperdrive and its 16 consumers, the VPC path to the analytical stores, providers-before-consumers in the computed order, unresolved bindings being reported, and the k3s Deployment's namespace, image and port |
The reader found C04 on its first run: the deploy order the repository documents contradicts the order its own service bindings require.
Pane anatomy pass · 8 September
Mounting the panes exposed the next problem: the panes were generic resource lists, and the design file specifies something much more particular. This pass reads reaktor.pen and builds what it actually draws.
| ID | Previous defect | Correction | Verification |
|---|---|---|---|
| F28 | Every pane was a generic inventory-and-catalog, so nothing looked like the boards | A pane anatomy kit taken from the boards rather than invented: the headline with its qualifier and risk chips, the four-tile summary strip, the caps section eyebrow, the ledger row (severity dot, name, detail, right-aligned measurements, severity chip, outcome, per-row action), the verdict block, the numbered trace, the indented plan tree and the main-plus-aside split | Rendered against 09.02, 09.03, 09.05 and 09.06 |
| F29 | Auth rendered three prose sections over one hard-coded explanation | Rebuilt to 09.03 · Trust · Security Simulator: the six authored subtabs, a stat strip, a Security posture ledger whose every row is a fact the workspace can prove from the selected scope and the reaktor-auth checkout, and a permission simulator whose verdict is a real LocalAuthorizer decision over a declared secured port, with the trace that produced it | Rendered; every row derives from inspectAuthBinding, inspectAuthPorts, authRuntimeCapabilities and AuthSourceTruth |
| F30 | Data offered four tabs of its own invention | The seven subpanes reaktor.pen authors for the State surface — Query, Schema, Data, Relationships, Query Plan, History, Migrations — with Query Plan built as 09.05's indented plan tree, History as 09.06's activity ledger with its slow lane and backup/restore evidence, and Migrations carrying source state and observed state as two separate columns | The tab contract test now asserts the strip is WorkbenchPaneCatalog.labels("database") |
| F31 | The graph grew tall and left the right half of the canvas empty: lane counts were fixed ladders that ignored the window | The layout takes a target content width and packs peers across it. A wide window now gets a wide graph | The BestBuds root packs six columns instead of four at 1600 × 1000 |
Honesty about F29 and F30. Neither pane invents data. Where a provider is not attached the pane says UNKNOWN and names what is missing — a backup adapter, a catalog read, an EXPLAIN adapter, a live heimdall connection — which is what the boards themselves do. That pass labelled the plan inferred from the statement. F40 replaces the active Query Plan surface with a real EXPLAIN result; it does not claim measured execution cost.

Pane routing pass · 8 September
| ID | Previous defect | Correction | Verification |
|---|---|---|---|
| F24 | W01 — the workbench branched once, and every mode except Graph composed a full-bleed authored board that painted its own menu bar, toolbar, tabs, left panel, tool strip and status bar | A third destination, ReaktorWorkspaceDestination.ModePane, is what a mode navigates to. It composes the same header, tool rail, document strip, tool dock and status bar as the graph, with the mode's pane in the editor slot. The authored board keeps its full-bleed reference view, reached deliberately from the surface chooser | Desktop end-to-end: every one of the twelve non-graph destinations opens its pane inside the shell, and the same twelve open as references from the chooser, in both cases without touching the operational control plane or rebuilding the graph |
| F25 | W02 — eleven domain panes were implemented, read real data, were covered by tests, and had no caller | ReaktorModeWorkspace maps mode to pane: Data, Auth, Develop, Cloud, Agent, Telemetry, Analytics, AI, UI, Testing and Deploy. UI preview has no pane yet and says so, naming what is missing, rather than drawing a preview that is not attached | 35 desktop tests pass, including new assertions that Data mounts database-studio, Auth mounts reaktor-auth-workspace, and UI preview mounts its unavailable state |
| F26 | W03 — the title bar named three different applications across eight modes, and the branch, target and perspective chips changed with them | The shell owns all of them in every mounted mode, so they come from the live application | Every rendered mode sheet reads bestbuds — BestBuds on the same branch and target |
| F27 | W08 — ⌘K opened the command palette in Graph and the surface chooser everywhere else | Search is the command palette everywhere; the surface chooser has its own action in the Window menu | Chrome-action and navigation tests |
Selection now belongs to a mode rather than to a composition: leaving Develop for the graph and coming back returns to the subpane and row you left.

Does this help a BestBuds developer ship?
Historical baseline, before F36–F46. The current answer and remaining gates are in the developer workflow pass above. The initial answer was: on one requirement, yes. On the load-bearing ones, no. This section is the 8 September re-read of the four pillars against the application they exist for, because the passes before it improved how the panes look without asking whether a developer could use them.
What BestBuds actually is
339,000 lines of Kotlin in modules/, 42,000 lines of TypeScript in targets/, 26 targets of which 25 are Cloudflare workers, 275 npm scripts, fastlane for both mobile stores, Maestro and Playwright end-to-end suites, a k3s JVM server, and three declared shared stores — Postgres, Memgraph, ClickHouse — beside per-worker D1, Durable Objects and R2.
What a developer does in a day
Taken from the repo's own guide (AGENTS.md §8–9) and its scripts, not invented:
| Requirement | |
|---|---|
| R1 | Change Kotlin in a 339k-line KMP codebase and know what the change affects |
| R2 | Run the smallest meaningful gate — one module compile, one targeted test — and act on the failure |
| R3 | Run the app on a target and see the change |
| R4 | Query a store while debugging: Postgres, Memgraph, ClickHouse, D1, a Durable Object, R2 |
| R5 | Explain and debug an authorization decision across the app and 25 workers |
| R6 | Deploy the right subset of workers, in the required binding order, reviewed |
| R7 | Read logs and traces from a running target or a deployed worker |
| R8 | Run mobile and web end-to-end suites and read their evidence |
| R9 | Know the system: which module, worker and store serve a feature |
| R10 | Do the above without leaving the tool |
What the desktop does with them
| State | Evidence | |
|---|---|---|
| R2 | Partly | The control plane discovers the repo's own commands, classifies each by effect, gates the dangerous ones behind an approval, runs them, records events and artifacts, and supports cancel and retry. 481 tasks and 253 resources are discovered for BestBuds and 12 runs are recorded. This is real and it is the tool's best feature. What is missing is everything after the failure: no file, no line, no test tree, no way to open the code that failed |
| R6 | Partly, and the missing half is the dangerous half | Every worker deploy is a discovered, gated task. But AGENTS.md states a required binding order — text-moderator → image-moderator → chat → messaging → media → campaign-engagement — and deploy.sh deploys only the workers whose source changed. The desktop encodes neither. It offers 25 equally-weighted deploy buttons with no order and no change scope, which is the one thing a developer must not get wrong |
| R8 | Partly | The suites run as tasks; their reports are files on disk the tool does not open |
| R9 | Partly, and misleadingly | The graph shows 48 nodes and 66 relations. That is the client app's dependency graph — one of 26 targets. No worker, queue, store or deployment appears in it |
| R1, R3, R4, R5, R7, R10 | No | See below |
Three structural reasons, not twelve small ones
1. There are two unrelated models of BestBuds. The graph knows 48 client nodes. The operational catalog knows 481 tasks and 253 resources. The overlay that claims to join them mints its own identifiers — task:, resource:, provider:, target:, run: — and attaches all 814 of them to the root scope, never to a node. So no node knows the command that builds it, the worker that serves it, the store it reads or the run that last touched it. Every question a developer actually asks crosses that gap.
2. There is no source plane. The graph inspector's Source tab prints a fully-qualified class name. Nothing in the workbench opens a file, shows a line, renders a diff, or reveals a symbol. In a 339k-line codebase, a tool that can point at a component but not at its code cannot participate in a change.
3. There is no observation plane. There is no log stream, no wrangler tail, no trace, no attach to a running target. Of the 18 database connections the Data pane discovers, one can be read — the desktop's own SQLite. The other seventeen, including all three declared shared stores, report disconnected or broker required. Auth can read declarations and simulate against them; it has never observed an enforcement.
The honest verdict
A BestBuds developer today would open the desktop to run a gated command and read its receipt, and to look at the client app's graph. Everything else in their day happens in IntelliJ, a terminal, wrangler, Supabase Studio and Grafana. The tool does not yet make them ship faster, because it does not touch the loop where their time goes: change → gate → observe → deploy.
The four pillars are not short of features. They are short of one join, one source plane and one live connection — and every pane gets more valuable the moment those exist, including the ones this document has already spent two passes polishing.
What would change the answer
In the owner's priority order, and each stated as the smallest thing that makes the pillar load-bearing:
- Graph — join the two models. A graph node resolves to its target, its worker, its store, its commands and its last run. This is not a rendering change; it is a correlation key. It makes the graph the system rather than one target of it, and it is the precondition for the other three.
- Database — one real connection. Reach Postgres, Memgraph and ClickHouse the way the workers already do, through the
reaktorServer/_graphgateway and the Cloudflare VPC bindings that are already proven from an edge worker. One live read against the three declared stores is worth more than seven authored subpanes. - Auth — one observed decision. Capture one real
AuthDecisionfrom a running worker and show it beside the simulated one. The simulator is already real; what it lacks is something observed to disagree with. - Device tools — logs from something running. A log stream from one target and one deployed worker, attributed to a graph node. This is the first thing anyone opens when something breaks, and Reaktor has none.
- Cloud — deploy what changed, in order. Read the changed workers the way
deploy.shdoes, apply the documented binding order, and produce one receipt for the set. This is a day-to-day, high-consequence action the tool is already 80 % of the way to owning.
None of these is a pane. Each is a plane the panes then draw.
The capability inventory
Historical inventory from F32–F35. F36–F46 above supersede the state column where a capability has since been implemented. This section remains as the before-state and source context.
The assessment above says the pillars are short of three planes. This section names the capabilities each pillar owes a BestBuds developer, one row at a time, and says which are built. It is the working list for bands 1–4.
Source-derived implementation: the compute topology. Every fact in it is declared in a file already checked in — 21 wrangler configurations and the k3s manifests — so it needs no credential, no network and no adapter, and it is labelled as source truth about the deployed shape rather than an observation of it.

Compute
| Capability | State |
|---|---|
| Worker topology — every worker, its entry, its workspace | Built · 21 read from wrangler configuration |
| Routes | Built · public routes and workers.dev per worker |
| Cron triggers | Built |
| Bindings to databases and resources | Built · Postgres via Hyperdrive, ClickHouse and the app server over VPC services, D1, Durable Objects, R2, KV, Workers AI, Browser Rendering, Workflows, static assets |
| Worker → worker service graph | Built · with unresolved bindings reported rather than dropped |
| Deploy order | Built · computed from the service bindings, providers before consumers, and compared with the documented order |
| Server topology | Built · Deployments, Services and Ingresses from cloud/k3s/manifests, with image, namespace, replicas and ports |
| Which workers changed | Missing · deploy.sh computes it from git; the workbench does not read git |
| Deployed version and binding drift | Missing · needs an account read |
| Live health, invocations, errors, CPU time | Missing · needs the Cloudflare API and wrangler tail |
| Live cluster state | Missing · needs kubectl |
Data
| Capability | State |
|---|---|
| Which worker reaches which store | Built · every store lists the workers that bind it |
| Connection inventory | Built earlier · 18 discovered |
| Query and results | Built earlier · one connection is live, the desktop's own SQLite |
| Schema per database | Built · 105 tables with columns, types, nullability, defaults, primary keys and inheritance, from 22 checked-in SQL files |
| Table list | Built · per engine, with the file each declaration came from |
| Row counts, sizes, statistics | Missing · these are a live catalog read |
| Relationships | Built · 89 declared foreign keys with their delete rules, and 157 indexes |
| Modify a table, edit a graph | Missing |
| Object databases on device | Missing |
Auth
The schema is real and checked in: identity, provider_account, principal, tenant, membership, principal_role, auth_provider_client, refresh_token, service_account, signing_key, plus the preserved role, permission, role_permissions, session and personal_access_token.
| Capability | State |
|---|---|
| Explain one decision from declarations | Built earlier · with a real kernel verdict and trace |
| Users and principals | Missing |
| Tokens by type — access, refresh, service account, PAT | Missing · every type has a table |
| Who holds a token, and its expiry | Missing · refresh_token.expires_at, family and reuse detection are in the schema |
| Roles, permissions, tenants, memberships | Missing |
| Signing keys and rotation | Missing |
| Auth ↔ graph integration | Missing · the port inspection exists; the directory does not |
Device tools
| Capability | State |
|---|---|
| List devices on adb / idb | Missing |
| Common device commands — install, uninstall, launch, clear, logcat | Missing |
| Inspect a view tree on device, or inside Compose / JVM | Partly · a Compose semantics probe exists and is not mounted |
| Viewports | Partly · the preview has viewport modes and no attachment |
| Deploy or delete an app on a device | Missing |
| Inspect a device's databases and files | Missing |
C04 — The documented deploy order contradicts the service bindings · S0 · Observed
AGENTS.md §9 requires text-moderator-service → image-moderator-service → chat-service → messaging-service → media-service → campaign-engagement-service when bindings change. The configurations say text-moderator-service and image-moderator-service each bind chat-service, and a service binding must resolve at deploy time, so chat-service has to exist before either. The computed order is chat-service → image-moderator-service → text-moderator-service → media-service → messaging-service → campaign-engagement-service.
One of the two is wrong, and both are load-bearing for a production deploy. The workbench now shows them side by side and says which constraint it derived; a developer decides which is right. This is the first defect the tool has found in the repository rather than in itself.
The four pillars at the initial audit
This section is the 8 September discovery pass over the four surfaces the owner ranked. It reads the running window, not the boards: WorkbenchShellRenderTest renders ReaktorWorkbenchContent — the same composable the desktop window mounts — for eight modes at the authored 1600 × 1000, and for the four pillars at 1024 × 720 and 3360 × 1418. Sheets are in modules/engine/build/reports/machinesignal-shell/; the per-subpane sheets are in machinesignal-panes/.

The window · Band 0
W01 — Only Graph opened a tool; twelve modes opened a picture · S0 · Fixed / verified (F24)
Was: Workbench.kt branched once. If the destination was the application graph it composed the real editor; otherwise it composed ReaktorDesignWorkspace(boardId = …) at fillMaxSize(), and that authored board painted its own menu bar, toolbar, tabs, left panel, tool strip and status bar. Data, Auth, Develop, Cloud, Agent, Telemetry, Analytics, AI, Testing, Deploy, UI and UI preview all took that second branch, so in eleven of thirteen modes every control the user could see was a drawing.
Now: a mode navigates to ReaktorWorkspaceDestination.ModePane, which composes the shell around the mode's pane. The authored board is reached from the surface chooser and keeps its full-bleed reference view, which is what it is for.
W02 — The domain panes were implemented, tested, and unreachable · S0 · Fixed / verified (F25)
workbench/render/compose/panes/ is 9,075 lines across 34 files. Exactly five of its composables are referenced anywhere outside that package: ReaktorCommandPalette, ReaktorWorkbenchBottomDrawer, ReaktorEditorDrawerStrip, ReaktorInspectionComposerProbe and one table helper. DatabaseStudioPane, ReaktorAuthWorkspace, AuthPane, DatabasePane, DevToolsOperationsPane, CloudPane, TelemetryPane, AnalyticsPane, AgentPane, TestingPane, DeployPane, AiPane, UiPane, DomainNavigator, AuthoredSubpane and the whole subpane layer have zero callers outside the package.
This changes how one existing number should be read. MachineSignalPaneCoverageTest reports 31 of 74 subpanes render real data — database 7/7, devtools 9/9, cloud 4/6, agent 4/9, auth 3/6, telemetry 2/9, analytics 2/8, ui 0/8, ai 0/12. That is true of the implementations and false of the product: the window never mounts them, so no user has ever reached a single one.
Now: eleven of the twelve non-graph modes mount their pane. Data opens a connection inventory that discovers 18 connections across Postgres/Supabase, ClickHouse, Memgraph, Cloudflare D1, Durable Objects and local stores, each with its environment and state, beside a query document with Test and Run read and a result panel that says Run a read to view results instead of showing a fixture. Auth opens an inspector bound to the current graph selection that reports exactly what is missing — no context provider, no secured ports declared, no AuthPolicyNode in scope. Develop opens its nine subpanes over real run history and runnable tasks. UI preview had no pane at F25; F39 subsequently mounts the live graph application.
Still open: the coverage gate still counts implementations rather than reachable subpanes, and the 43 pending subpanes are still pending. Acceptance: the gate fails when a subpane counted as wired is not reachable from the window in at most two interactions.

W03 — The window disagreed about which application is open · S0 · Fixed / verified (F26)
Across eight rendered modes the title bar reads three different applications: bestbuds — BestBuds (Graph), BestBuds — media messaging (Cloud), Fieldwork — site-capture (Data, Auth, Develop, Agent, Telemetry, AI). The project chip, the branch chip (wo…, truncated from the real workbench-foundation, versus a fixture main), the target chip (All · Local / All targets / Web · Local / System targets) and the perspective chip (Develop / Compose) change with it.
Switching mode therefore switched project, branch, target and perspective, and no selection, revision or environment could survive it.
Now: the shell owns the header in every mounted mode, so the application, branch, target and perspective are the live ones everywhere. The authored reference view still carries its own fixture identity, which is correct for a design board and is what N05 and CO21 remain about.
W04 — Two tool strips, and two counts that count something else · S1 · Partly repaired (F24) · Open
Repaired by F24: every mounted mode now shows the live drawer — Runs · Logs · Traces · Network · Tests · Build · Diagnostics, with counts from the operational snapshot. The drawn strip Terminal · Problems · Build · Debug · Tests · Profiler · Conductor now appears only on an authored reference board, where a drawing is what it should be.
Still open: BottomDrawerTab declares Command Queue, Code Agent and CodeDiff, which never render and whose last name is not a label; and the drawer still has no active-tab state.
Two of the live counts do not count what their name says: Network counts cloud-domain resources, and Traces counts resources tagged traces. There is no network panel behind either.
Required fix: one tool strip, defined once, with counts whose source matches the name. Acceptance: the strip is identical in every mode, has an active tab, and every count links to the collection it counted.
W05 — The left panel is named four ways · S1 · Observed
Before F24 the running product showed APPLICATION EXPLORER (Graph, ~280 px), Project (Auth, Develop, Agent, Telemetry, AI, ~224 px), System explorer with a Features ▾ selector (Cloud) and, in Data, no panel at all. Mounting the panes did not fix this and was not expected to: each pane brings its own navigator and its own header grammar — Data bestbuds / local, Auth local · OnboardingScreen, BESTBUDS / DEVTOOLS / PREVIEW. The shell's explorer now exists only in Graph.
Required fix: one navigator and one header contract in the shell, which the pane fills. This is CO14 as a live product defect and is the next thing standing between the four pillars and looking like one tool.
W06 — The design file and the app disagree about what the modes are · S1 · Observed
reaktor.pen authors ten mode tabs: Graph (no shortcut, no icon), UI ⌘2, DevTools ⌘3, Analytics ⌘4, Telemetry ⌘5, AI ⌘6, Agent ⌘7, Database ⌘8, Auth ⌘9, Cloud ⌘0. The app ships thirteen: Graph 1, UI preview (none), Develop 2, Agent 3, UI 4, Data 5, Auth 6, AI 7, Testing 8, Deploy 9, Cloud ⇧C, Telemetry 0, Analytics ⇧A.
Two labels differ (DevTools/Develop, Database/Data), three modes exist only in the app, and not one shortcut agrees. MachineSignalPaneCoverageTest.everyAuthoredModeTabHasAWorkbenchMode has been failing on exactly this. The design file also carries two contradictory subpane sets for the single Cloud tab, which its own notes record as unresolved.
Required fix: one mode list and one keymap, authored once and read by both. Acceptance: the coverage test passes without an exception list, and a shortcut printed in the design file works in the app.
W07 — The live shell has no compact-layout contract · S1 · Observed
F22 and F23 gave the authored boards a content floor and a visible overflow. The live shell got neither. At 1024 × 720 the graph canvas is about 380 px wide between a fixed 280 px explorer and a fixed 320 px inspector, and renders the map at 17 %; the C4 preset row (Detail · System · Container · Component · Code · Everything · Neighbors · Reset layers) clips after Co…; the drawer strip clips after Build; neither offers an overflow menu. At 3360 × 1418 the two panels stay fixed and the extra 1,700 px becomes empty canvas.
Acceptance: the resize matrix in V05 covers the live shell, not only the boards.

W08 — One gesture, two meanings · S2 · Fixed / verified (F27)
Was: ⌘K opened the command palette in Graph and the surface chooser everywhere else. Now: search is the command palette everywhere; the surface chooser is its own action in the Window menu. The wider scoping work is still N06.
X01 — The subpanes are skeletons, measured · S1 · Measured
Across the 74 rendered subpane sheets, the last painted row sits at or above half the pane height in 64 of 74; the median subpane stops at 30 % of its height. Most of the painted area is empty section frames — a Rows band containing —, a Detail band containing one truncated sentence. Parity with the authored anatomy was the goal of the August passes and it was reached; content was not part of it. This is the honest baseline for bands 1–4.
Graph · Band 1
The one pillar that is a real tool. Its defects are therefore about legibility, scale and identity rather than existence.
GR01 — No semantic zoom, so the map is unreadable at every useful scale · S0 · Observed
Node cards paint their full port list at every zoom. At 1600 × 1000 the graph sits at 38 % and the card bodies are grey texture; at 1024 × 720 it sits at 17 %; at 3360 × 1418 it reaches 61 % and is still small, because the layout is wider than any window. There is no scale at which a user can both see the system and read it.
Required fix: a render contract per zoom band — what folds, what expands, the label budget — as CO13 already demands for the design file, applied to the live canvas. Acceptance: at every band the visible labels are legible at normal viewing distance, and the band is named in the UI.
GR02 — The layout is a fixed grid, and it is not saved · S0 · Observed
Nodes are placed on a uniform grid with scope bands; the panel states Dragging changes layout only. There is no saved position, no layout document and no persistence anywhere in the graph workspace. A user cannot arrange the map they work in, and the arrangement they are given carries no meaning.
Required fix: a real layout — hierarchical or force-directed, with pinning — persisted per graph and per user. Acceptance: move a node, switch mode, come back; the node is where it was left, and the position is part of a document that can be shared and reviewed.
GR03 — One window, five disagreeing counts · S1 · Observed
The explorer lists Graph 172. The topology bar says 48/48 nodes · 66/66 relations · 17 scopes. VISIBLE NODES · 48. SOURCE + CONTEXT says 48 cards · 66 relations. The status bar says local · 481 tasks · 253 resources. The layer Resources / operations is unchecked and reads 814, with no statement of what turning it on would add or why it is off. This is CO12 in the live product.
GR04 — The inspector tab row is clipped at every window size · S1 · Observed
Inspect · Ports · Source · Runtime · Telemetry · A… — the sixth tab is cut at 1024, at 1600 and at 3360, because the inspector is a fixed 320 px carrying six tabs. A tab the user can never see is a feature the user never finds.
GR05 — No selection or authoring gestures · S1 · Observed
The graph workspace has no marquee, no multi-select, no alignment, no drag-from-pin wiring and no undo of a graph edit. L8el1 in the design file is the only Blueprint-grade gesture specification in the project and nothing renders it. Related: G07, CO23.
GR06 — The graph toolbar mixes four kinds of control in one row · S2 · Observed
Filter symbols and ports… (a filter), Frame all – 38 % + (a camera), Detail (a bare label), System · Container · Component · Code (C4 presets), Everything · Neighbors (a scope mode drawn as two buttons), Reset layers (an action on a different panel). Nothing groups or separates them, and Neighbors shows selected state that the presets do not.
GR07 — The graph is not a document like everything else · S2 · Observed
The document strip shows a Graph tab and immediately below it a second Graph title. The tab has no close affordance, cannot be pinned or reordered, and there is only ever one. Related: N03.
GR08 — The design file has no graph pane contract at all · S1 · Observed
reaktor.pen defines a subpane family for ui, devtools, agent, auth, database, telemetry, analytics, ai and cloud. There is no graph family, and the Graph mode tab is the only one authored with no shortcut and no icon. The 14 graph boards are system-map states, not a tool contract. So the highest-priority surface is the one surface the design file never specified as a tool — which is why its instruments (layers, saved views, inspector tabs, camera) differ on every board.
Required fix: author the Graph family — its subpanes, its instrument set, its inspector tabs — the way the other nine are authored. Acceptance: WorkbenchPaneCatalog gains a graph family checked against the design file, and the live instruments are instances of it.
GR10 — Relations are drawn but not readable · S1 · Observed
The layer panel counts 6 route attachments, 6 navigation, 45 dependencies and 9 containment relations, and the canvas draws them, but at every zoom the lines disappear into the card grid: there is no routing, no bundling, no label, no direction marker and no emphasis on the selected path. 16.00 · Reaktor Graph · Living graph instruments specifies six typed relations with their own endpoint roles — CALL → request/result, VALUE → immutable data, FLOW → demand/cancellation, BINDS → consumer/provider, OBSERVES → origin/time, DEPENDS → build/evidence — and says explicitly that "labels and line patterns supplement colour". None of that is rendered. Related: CO18.
GR11 — Expand and collapse do not behave as one gesture · S1 · Observed
Expanding a scope also expands its ancestors and clears the architecture level, and the C4 preset buttons rewrite the whole expansion set. The two controls therefore fight: a preset discards hand-drilled state, and one manual toggle drops out of the preset. There is also no expand affordance on a collapsed scope summary on the canvas — the only way to open a scope is the navigator — and the camera does not follow the scope that was just opened, so on a large graph a successful expand looks like nothing happening.
GR12 — The navigator is a list of sections, not an instrument · S1 · Design gap
16.00 specifies a layer stack of five independently composable layers — Structure, Contracts, Auth / effects, Runtime, Telemetry — each with its own count and settings control, and a view contract that separates hiding a layer from disconnecting a relation. The shipped navigator instead lists the four ReaktorEdgeKind values plus a Resources / operations toggle, has no per-layer settings, no saved views, no search scoping and no way to act on a node from the tree. The node card is also short of 16.00's anatomy: a kind chip and module / symbol on the header line, port rows carrying their own handles, and an activation footer.
GR09 — The minimap is an unlabelled blob · S2 · Observed
Bottom-right, no viewport rectangle, no scale, no click-to-move at 1600; at 1024 it overlaps the little canvas that is left.
Database · Band 2
Two implementations, neither usable: an authored board in the mode slot, and an unreachable skeleton behind it.
DB01 — There is no connection · S0 · Observed
The mode lists seven providers — Supabase Postgres, ClickHouse, Memgraph, Cloudflare D1, Durable Objects, SQLite / ObjectDatabase — as static text with a one-line subtitle each. None can be selected, connected, disconnected, added or removed. There is no status, no credential state, no environment and no error. The list is a drawing of a list.
DB02 — There is no query editor · S0 · Observed
The SQL is BasicText. No caret, no editing, no execute, no cancel, no elapsed time, no error location, no history. Run in the toolbar is the application's Run. The result below it is labelled Result = fixture.
DB03 — The implemented Query subpane is an empty frame · S0 · Observed
The pane that would replace it has an Editor band containing a sentence about editors, a Rows band containing —, a Schema band containing —, and three empty cards labelled memgraph, durable objects, r2. It also carries a different context format (BESTBUDS / DATABASE / LOCAL) from the board in the mode slot (Fieldwork / Postgres / demo / query.sql), so the two implementations do not even agree on which application or which breadcrumb grammar they belong to.
DB04 — Schema, Migrations and History are pictures · S1 · Observed
Named in the board's tab row, drawn, and not attached. Related: N02.
DB05 — The result grid is not a grid · S1 · Observed
No copy, export, sort, filter, pagination, column resize, type display, null-versus-missing distinction, or large-cell inspection. Two rows of fixture data with no way to act on them.
DB06 — The design file draws one screen for seven tabs · S1 · Observed
The database family authors seven subpanes — Query, Schema, Data, Relationships, Query Plan, History, Migrations — and the design file contains one board for them (09.04 · State · Query & Schema) plus two variants that omit Query. Schema, Data, Relationships and Migrations exist only as tab labels. Auth and devtools have the same shape of gap: auth authors six subpanes across three boards, with Providers, Audit and Simulator never the active tab; devtools authors nine across seven, with Logs and Source never active.
Required fix: a board per subpane, or an explicit decision that a subpane is a state of another and its tab is removed. Acceptance: every subpane in the catalog has one authored screen where it is the active tab.
DB07 — The pane defers to a database tool that is elsewhere · S2 · Observed
Open source query in database tool is the primary action. A database mode whose main affordance is to leave for the real database tool is stating the problem rather than solving it.
DB08 — The chrome contradicts the document · S1 · Observed
A .sql document with Kotlin 12:4 in the status bar, the Files icon lit in the tool rail, Problems with no count, and no active tool tab. CO03, live.
Auth · Band 3
The weakest of the four on the coverage gate: 3 of 6 subpanes read real data, and none of them are reachable.
AU01 — The mode promises six surfaces and shows one paragraph · S0 · Observed
ReaktorMode.Auth describes "provider, user, session, role, token, and audit surfaces". What renders is a single fixed explanation of one hard-coded decision — principal technician/meera, resource report/42, policy report-share@v4, result denied — with no principal picker, no resource picker, no policy list, no environment and no way to ask a second question.
AU02 — The implemented Providers subpane is an empty list · S0 · Observed
One empty Providers list, one Detail card holding a truncated sentence (Turns on with: a read-only heimdall adap…), and 78 % of the pane blank — the emptiest of the four pillars' panes.
AU03 — The simulation boundary is a paragraph, not a control · S1 · Observed
Simulated decision · no effect executed is a callout. There is no switch between simulated and observed enforcement, no statement of which binding is missing in a form the user can act on, and no way to see what evidence would change the answer. Related: A02 in the integration backlog below.
AU04 — Auth has no navigation · S1 · Observed
The left panel in Auth mode is the file tree. There is no list of principals, roles, sessions, tokens or audit entries anywhere in the mode.
AU05 — Three of six auth subpanes are never drawn as active · S1 · Observed
See DB06. Providers, Audit and Simulator have tab labels and no authored screen.
Device tools · Band 4
DT01 — Reaktor has no developer tools · S0 · Observed
There is no console, no network panel, no element tree, no computed styles, no breakpoints and no stepping anywhere in the product. Console appears exactly once in the whole engine source: as a text label inside the design-system board LzukO. Network exists only as a drawer tab in the graph shell, counting cloud resources. The Develop mode is a source-plus-preview-plus-property-inspector surface — closer to a design tool than to a browser's dev tools.
Required fix: decide what "device tools" means for a KMP product — an element tree over the rendered surface tree, a console over the running target, a network panel over the real transport, and stepping — and build it. Acceptance: a developer can select a rendered element, read its computed properties, see the requests it caused, read its logs and stop it, on a real running target.
DT02 — The property inspector looks editable and is not · S1 · Observed
Width: Fill container ▾, Height: 175 px, Padding: 18 px, Enabled: state.canCapture, onCapture: interactor.capture — dropdowns and fields drawn at full contrast, none of them attached.
DT03 — Every result says fixture · S1 · Observed
Fixture: completed, Fixture: r18 preview ready, 5 selected · not run. The build panel reports on a build that did not happen.
DT04 — Two different jobs share one mode · S1 · Design gap
The devtools family is Preview · Devices · Testing · Pipeline · Releases · Recorder · Traces · Logs · Source — a build-and-ship family. The mode is labelled Develop in the app and DevTools in the design file, and the owner's fourth pillar is a third thing again: browser-style device tools. One mode currently stands for all three.
Required fix: separate the inner-loop debugging surface from the ship surface, and name each after what it does.
DT05 — Logs and Source are never drawn as active · S2 · Observed
See DB06.
Recorded repairs
| ID | Previous defect | Correction | Verification |
|---|---|---|---|
| F01 | Authored workspaces scaled their entire screen to fit, shrinking controls relative to the live graph and leaving a large unused strip on wide windows | Current boards adapt their flexible slots while retaining authored text, icon and chrome sizes; Fit and 100% remain explicit choices | All 122 authored geometries retain exact native bounds; current layouts tested across four viewport sizes |
| F02 | The first responsive implementation scrolled the entire application, moving menus and status offscreen | Menus, footer and docking shell stay anchored; overflowing columns scroll independently | Native wheel-input test verifies fixed shell coordinates and a click at the scrolled content location |
| F03 | Nine docking bodies had fixed heights even though the surrounding shell was flexible | Updated those Pencil constraints to fill available height and regenerated native sizing metadata | Authored bounds remain unchanged; all current shells pass the narrow-layout test |
| F04 | Presentation and scroll state were recreated when switching workspaces | State belongs to each board in the persistent workbench owner, including independent column scroll positions | View-state and independent-scroll identity tests |
| F05 | File, Help and other menu pictures navigated to unrelated workspaces | Common unsupported menus explain their unavailable state; View opens presentation, Window opens the surface navigator | Reviewed action-map tests |
| F06 | The mode selector always opened Develop, including map boards labelled Graph | The selector now opens the workspace/surface chooser | Destination regression assertion |
| F07 | Clicking the close glyph inside a pictured source/preview tab could activate the enclosing navigation action | Only the audited title area navigates; close glyphs are separately unavailable | Real Compose pointer events on all three Data close glyphs and both title targets |
| F08 | Search did not provide complete keyboard selection behavior | Initial focus, multi-term search, arrow movement, Enter, Escape, highlighted row and result count | Picker search and keyboard tests |
| F09 | The real application graph and authored Graph references were easy to confuse in navigation | A distinct application-graph entry is pinned in the surface chooser | Picker and desktop tests |
| F10 | Some shortcuts were missing or accepted unintended modifier combinations | Added missing mode shortcuts, Back/Forward handling and strict modifier checks; preserved ordinary Select All | Shortcut regression tests and desktop navigation |
| F11 | Multiple navigation overlays could remain open together | Opening a picker or navigating dismisses the competing overlay | Shared workbench navigation path and desktop checks |
| F12 | Small icon-only and unavailable actions had inconsistent explanations | Shared Machine Signal tooltips for live chrome and reviewed authored actions | Exact passive anchor bounds and PNGs at densities 1 and 2; disabled hover remains non-operative |
| F13 | New dialogs inherited unrelated default styling | Picker and presentation controls explicitly use Machine Signal colors and workbench typography | Source review and native rendering |
| F14 | Reveal could leave a selected port or relation hidden behind a folded owner | Reveal resolves the owning scopes for exact element selections | Graph editor-state tests |
| F15 | Expanded scopes could be reported as hidden selections; framing did not consistently handle regions | Visibility checks include regions, pins and relations; region framing retains zoom | Graph selection and editor-state tests |
| F16 | Inspector scroll position could carry over to a different subject or tab | Inspector scroll is keyed to its inspected subject/tab | Source-level state ownership review |
| F17 | Ledger evidence headings and values did not share a stable column width | Evidence uses the same fixed-width column in header and rows | Geometry/source review |
| F18 | Missing workspace names painted dangling punctuation | Labels fall back to the application name; an unobserved branch is labelled Git with an explanation | Context-label tests |
| F19 | Four current map states were absent from the native catalog | Added district DBc14, feature pxsmW, exact port Pu9Sf and realtime/durability W9V37c, with nine exact missing icon outlines | 122-board catalog coverage, 196-icon coverage and reviewed map navigation |
| F20 | Source labels, port detail cards and the decision table were clipped or overlapped | Repaired the source and regenerated native boards together; refreshed 19 changed/new PNG references | 39,942-node containment audit; only two intentional neighboring cards remain cropped |
| F21 | Responsive text could paint into adjacent rows; a first truncation fix hid an authored SQL line | Truncation is limited to compressed text boxes and preserves explicit authored lines, with full text available through tooltips | Resized Data capture; exact authored-size comparison remains unchanged |
F03 affects Pr3Pv, Nm5QX, GaN4a, O0ZFq9, GqUVw, OYUup, Yb00x, Wx6KI and nXDMm. It changes their resize contract, not their original pixels. The source audit's two intentional clipped cards are on Pu9Sf; they illustrate neighboring graph context and should remain cropped.
Compact-layout pass · 8 September
| ID | Previous defect | Correction | Verification |
|---|---|---|---|
| F22 | A narrow window compressed identity-bearing cards until their names became ellipsis. The cause was in the layout kernel: a flexible slot with no children of its own contributed a minimum of zero, so a card could be squeezed to its padding while the label inside it truncated | The kernel now accepts a declared content floor, always clamped to the authored size. A label the boards mark as a name — weight 500 or above, or 15 px and above, and short enough to be a name — measures itself with the renderer that paints it and declares the width it needs in the lines its authored box allows. Description text keeps compressing. A column that cannot honour every floor overflows into its own scroll region instead of truncating a name | Five compact-layout tests, including a measured-not-modelled check on the real responsive board and a sibling-overlap invariant over every current board at four viewports; both behavioural tests fail when the policy is disabled |
| F23 | Overflow was invisible. The desktop default scrollbar paints a 12 % black thumb, which is about 3 of 255 in contrast on the Machine Signal canvas, so a clipped column read as the end of its content | Studio scroll regions and the workspace viewport use an explicit Machine Signal scrollbar style | A rendered-pixel test over the overflowing editor column, plus a token assertion against the desktop default |
F22 is a floor, not a size. Every board still resolves to its exact authored geometry at its authored viewport, including boards whose every node claims an impossible floor, and the ultrawide captures are byte-identical to the previous pass on all eleven reviewed boards. The change is confined to windows narrow enough to compress a name.
Remaining visual and layout issues
V01 — Exact Pencil raster parity remains unqualified · P0 · Open
Affected: all native boards. Evidence: the existing strict comparison has native text coverage, baseline and edge-sampling differences. Matching dimensions, bounds, fonts and native-host pixels is insufficient.
Reproduce: render the current source manifest through the exact RGBA harness and inspect its per-board masks. Required fix: resolve the remaining renderer differences against unchanged, hash-identified references; treat a source correction as a new reference revision. Acceptance: every required board has matching dimensions, a deterministic repeat and zero differing RGBA pixels. A low mean error is diagnostic information, not a percentage-complete claim.
V02 — Narrow layouts truncate primary identities · P1 · Fixed / verified (F22)
Was: at 1024 × 720, AI stage names became “01 · Inve…” and “02 · Cha…”, cloud module and service names collapsed into fragments, and the Devices board dropped its whole Run / observation column to keep the rest on screen. Ellipsis prevented overlap but hid the very identity a developer needs to select.
Now: identity labels declare a measured content floor and the owning column overflows instead — one of the three routes this issue asked for, and the one that needs no per-board authoring. Stage, module, service, provider and card identities are readable at the supported minimum window size on AI L9r7am, Cloud P29oV8, Auth j8If5 and Devices GaN4a, and the authored source lines the Devices board shows are complete rather than clipped. Full text remains available through the existing tooltips.
Residue: the identity of a selected object in a right-hand inspector can now sit behind the column's horizontal scroll rather than being truncated in place. Which panel should yield first is V05, and the layout exposes that unresolved decision.


V03 — Narrow decision flows lose their outcome offscreen · P1 · Partly repaired (F23) · Open
Affected: Auth j8If5 and Cloud P29oV8. The Auth principal/capability/decision/resolution chain extends beyond the narrow editor viewport; the resolution and parts of its contextual detail need horizontal navigation.
Repaired: the acceptance clause “horizontal scrolling is acceptable for detailed evidence, but its extent must be visible” is now met. The overflow was always real; it was the indicator that was invisible, so a clipped column read as the end of its content. Both the column scroll and the workspace viewport now state their extent in the shell's own colours.
Still required: a responsive decision-flow layout with a readable, always-discoverable result and next action. A compact chain may wrap into a vertical sequence while retaining arrow semantics. Acceptance: the reason, outcome and next step can be understood without guessing that a hidden panel exists.

V04 — Ultrawide layouts stretch relationships too far apart · P2 · Observed
Affected: Data, Auth, AI and Cloud. Panels now fill the window, but many tables and cards expand across nearly the entire display while their useful content stays at an edge. Auth checks and their results become far apart; Data leaves a large empty area below a short result.
Required fix: use intentional docking proportions, bounded reading widths and user-resizable groups. Use extra width for a related inspector, source, plan, result comparison or pinned evidence when the user chooses it. Do not manufacture filler metrics. Acceptance: common comparisons can be scanned without traversing the whole screen; empty space is a deliberate workspace choice.

V05 — There is no product-wide compact-layout contract · P1 · Observed
The new layout kernel preserves intrinsic controls and manages overflow. It does not decide which navigator, inspector, editor group or dock should collapse first. Those choices vary implicitly with authored constraints.
F22 supplies one of these pieces — a per-label content floor with a measured value — and by doing so makes the missing one obvious: every column now answers compression the same way, by overflowing, because nothing says which panel should yield first.
Required fix: define supported window sizes, compact/comfortable density, panel minimums, collapse priorities, independent scroll boundaries and a Reset layout command. Acceptance: a single resize matrix covers every current workspace at 1024 × 720, 1440 × 900, 1920 × 1080 and 3360 × 1418, plus density/font-scale changes. If 1024 is unsupported, the native minimum must enforce that openly.
V06 — Graph wires and annotations still compete with text · P1 · Observed
Affected: district DBc14, feature pxsmW and realtime W9V37c. Return routes and annotation labels run close to region headings and descriptions. The district capture shows dense route labels crossing the same band as folded summaries. This remains visible even where no child is outside its parent's bounds.
Required fix: reserve label lanes, apply edge-to-label collision avoidance, bundle secondary routes, and expose selected-route detail on demand. Acceptance: every primary node/port label has a clear reading area, selected paths stay continuous, and secondary wires cannot obscure selected evidence. Add screenshot cases for dense crossings. A containment-only audit cannot detect these collisions.
V07 — Toolbars can overflow without a clear overflow menu · P2 · Partly repaired (F23) · Open
Affected: map instruments, Devices, source/preview and cloud boards. At narrow widths, right-side actions and context strings continue beyond the editor boundary.
Repaired: the overflow is at least visible now, so the trial-and-error is bounded rather than blind.
Still required: preserve primary actions, collapse secondary actions into a labelled overflow menu and keep current target/selection visible. Acceptance: all supported actions remain discoverable by pointer and keyboard without trial-and-error horizontal scrolling.
V08 — Tiny metadata and map labels need readability qualification · P2 · Measured
The source contains 65 visible text instances below 10 logical pixels, including 9-pixel map scale labels and smaller embedded-preview labels. There are 1,141 instances at 10 pixels; repeated component instances are counted. This is not by itself an accessibility failure, but it identifies a concrete test population.
Required fix: classify product text, embedded-preview text and optional map metadata separately. Provide semantic zoom or an accessible detail view for identifiers and state. Acceptance: the primary task remains usable at normal viewing distance and with increased UI text scale; no essential fact exists only in a tiny canvas label.
V09 — Fit, UI presentation scale and graph camera zoom can be confused · P2 · Observed
The workbench now has Responsive/Fit/100% presentation, while the pictured graph contains its own Fit/100%/zoom instruments and UI Preview has a separate preview scale.
Required fix: label these scopes explicitly: workspace presentation, graph camera, product preview. Avoid changing two scopes with one command. Acceptance: keyboard help and visible controls identify the affected viewport; Back restores the intended camera without resetting presentation.
V10 — “No overlap” currently has incomplete test coverage · P1 · Qualification gap
Containment checks pass except for intentional map context. Native layout tests check geometry and scrolling, and host tests check raster identity. They do not exhaustively test sibling text collisions, edge/label intersections, popup placement, expanded dropdowns or every font scale.
The compact-layout pass adds two of the missing classes: a sibling-overlap invariant over every current board at three viewports, and a rendered-pixel case for an overflow indicator, which no geometry check could have caught.
Required fix: add targeted assertions and rendered cases for the remaining failure classes — edge/label intersections, popup placement, expanded dropdowns and every font scale. Acceptance: every open V-series issue has a repeatable failing example before its fix and a passing check afterward. Do not weaken pixel acceptance to make layout tests pass.
Shell, navigation and everyday editing
N01 — The workbench still switches complete boards instead of sharing one document workspace · P1 · Integration gap
The atlas specifies persistent editor groups, docked tools and shared context. Current non-Graph navigation selects a full authored board. Source tabs, breadcrumbs, project trees and inspectors inside that board are largely authored examples.
Required fix: introduce the persistent document/dock model under the existing visuals. A source file, graph projection, query, auth explanation and run receipt should be documents or tools over one context. Acceptance: open source, graph and a query alongside each other; change one selection; verify the chosen linked tools follow it while pinned tools do not.
N02 — Visible local controls still have no behavior or unavailable state · P1 · Observed
Examples include Data's Schema/Migrations/History tabs and provider rows, authored action buttons such as “Create finding from row”, and numerous inspector dropdowns. The reviewed common shell bindings do not attach those operations. Several still look enabled.
Required fix now: inventory each intended control and render available, unavailable-with-reason, loading or failed state explicitly. Required fix later: attach the operation through the shared command model. Acceptance: every visible affordance either works or explains what is missing; no silent dead end. A global fixture footer alone is insufficient.
N03 — Pictured tabs do not yet behave as documents · P1 · Integration gap
The accidental close navigation is repaired. The close icons themselves remain unavailable, and the authored active/source/preview tabs do not support a complete document lifecycle.
Required fix: real tab identity, dirty state, pinning, close/reopen, reorder and editor-group movement. Acceptance: closing a tab affects only that document; closing a dirty document has a defined, recoverable outcome; navigation history is not used as a substitute for an open-document set.
N04 — Displayed source, queries and identifiers are not full editing/copy surfaces · P1 · Observed
Generated authored text uses native BasicText. The reviewed board host does not turn its pictured editors into editable documents or provide a universal selection/copy surface.
Required fix: retain typography and geometry while introducing appropriate editor/read-only selectable components. Offer Copy identifier, Copy query and Copy evidence even when execution is unavailable. Acceptance: users can copy the complete untruncated value by keyboard and pointer; editable state is explicit and backed by a real document.
N05 — Authored context does not follow active application context · P1 · Observed
Fieldwork and BestBuds examples carry their own project, branch, revision, target and run labels. Switching from the live graph to an authored workspace does not make these examples live context.
Required fix now: maintain an unmistakable example/reference state close to the workspace title and action areas. Required integration: one context tuple containing workspace, revision, environment, principal, selection, time and run. Acceptance: a context switch invalidates or rebinds dependent views visibly; no screenshot fixture becomes an apparent production observation.
N06 — Search has inconsistent scope between live and authored workspaces · P2 · Observed
Search opens the graph command experience in the live workspace and the surface chooser in authored workspaces. Both are useful, but the same gesture changes meaning with location.
Required fix: one command palette with explicit scopes for commands, symbols, nodes, resources, runs and design references. Acceptance: search results state their type and execution scope; unavailable commands include reasons; a command behaves consistently regardless of the current tool.
N07 — The surface chooser mixes product navigation and design review · P2 · Observed
It exposes 122 boards plus the live graph, including retained references and libraries. Classification and search help, but an ordinary developer should not need a source-board catalog to find a database or trace.
Required fix: task-oriented primary navigation, recent/pinned workspaces and a separate reference-review filter. Keep all reference boards accessible. Acceptance: a new user reaches Graph, Data, Auth, UI Preview and the active run without knowing a board ID or atlas numbering.
N08 — Layout control is incomplete · P2 · Integration gap
The current presentation chooser is real; most pictured dock controls are explicitly unavailable. There is no complete user-controlled split, resize, detach, restore or saved-perspective workflow.
Required fix: implement docking over one layout model with keyboard alternatives. Acceptance: source, graph, details and a run log can be arranged and restored without losing selection, scroll or unsaved work.
N09 — Status/context vocabulary is too compressed in some instruments · P2 · Observed
Map counters such as “4 / 4 / 61 · 1 port” and short provenance strings save space but require the user to recall the denominator and scope. “Graph” also names a primary mode, a source reference and an instrument.
Required fix: stable labelled counts, tooltips and an Explain view that states visible/scoped/known/unloaded categories. Preserve compact labels for expert use. Acceptance: users can explain what each count excludes and identify whether they are viewing a definition, activation, observation or authored example.
Living Graph interaction gaps
G01 — The continuous system map is still a set of authored states · P1 · Integration gap
Estate, district, feature and port references now exist in the native catalog, and reviewed navigation connects them. They are not yet a continuously navigable projection of the active application graph.
Required fix: attach the visual instruments to the real graph session, preserving stable node/port IDs, selection, layer query, time and camera history. Acceptance: traverse estate → district → feature → exact port and back on the same graph; no board replacement, synthetic runtime values or lost selection.
G02 — Layer controls need executable, inspectable query semantics · P1 · Integration gap
The source shows ordered layers and visitors, but the new authored layer stack is not a complete runtime query editor.
Required fix: enable/disable, reorder, scope and parameterize layers; show why a node is included or hidden, query budget, truncation and unknown regions. Acceptance: the same saved query gives equivalent results through the human UI and agent interface; toggling a layer changes the projection, not the underlying program.
G03 — Graph-wide selection linkage remains incomplete · P1 · Integration gap
UI element inspection, source following, query results, auth decisions, cloud placement and traces are designed to share graph identity. The new authored tools are not yet all attached to that selection.
Required fix: a selection envelope with entity ID, revision, activation and time, plus explicit Follow/Pinned behavior per tool. Acceptance: select from a UI element, port, database row, scheduled workflow or trace event and reveal the related flow without assuming every flow starts at a UI.
G04 — Route navigation needs a complete interaction contract · P1 · Integration gap
Painted corridors communicate request, result, error, actor, stream and delivery relationships. Runtime interaction still needs member picking, direction-aware traversal, branch selection and a clear distinction between reachability and observed causality.
Acceptance: select a bundled route, inspect exact member ports and their completion/failure contracts, choose a branch and follow it across FFI/service/provider boundaries. Unknown receipt must remain unknown.
G05 — Maps need scalable density and label management · P1 · Observed design gap
The current examples already contain dense crossings. Larger systems require aggregation, stable layouts, route isolation, label budgets and bounded expansion.
Required fix: semantic zoom, summarized regions, named boundary portals, priority labels and layout stability during observation updates. Acceptance: test realistic small, medium and large application graphs with measured interaction latency and readable selected routes. Do not claim scalability from the 172-node application fixture alone.
G06 — Camera, selection and execution history need separate visible controls · P2 · Integration gap
The port source correctly distinguishes a pinned activation from a changed working copy, but that interaction is not yet fully operational.
Required fix: independent camera history, selection history and execution cursor, with explicit follow/pin behavior. Acceptance: a source edit cannot silently retarget a pinned run; a new run does not move a camera unless Follow is enabled; Back restores the appropriate context.
G07 — Graph authoring needs complete pointer and keyboard workflows · P1 · Integration gap
The live graph is real, but the full new design implies more: port wiring, module insertion, Kotlin correspondence, validation, patch review and commit.
Acceptance: create a node, discover compatible ports, inspect incompatibility, connect or cancel, undo/redo and review the typed patch using both pointer and keyboard. A drawn wire is not evidence that a supported runtime connection was committed.
G08 — Compare and graph commits need legible change semantics · P1 · Integration gap
Required fix: separate structural, contract, placement, authority and observation changes; display affected routes, validation evidence and revision ownership. Acceptance: an agent or human proposal can be reviewed without interpreting an undifferentiated red/green graph; operations remain scoped to the reviewed revision and produce receipts.
G09 — Discovery and partial topology need actionable empty states · P2 · Design gap
The map depicts Manna as unloaded and several cloud members as unknown/designed. The next action should explain whether the user needs a workspace path, provider adapter, credentials, a target, or runtime observation.
Acceptance: “not found”, “not loaded”, “not authorized”, “unsupported”, “stale” and “failed to observe” remain distinct and each offers an appropriate, non-destructive recovery path.
Data, auth and the software value chain
The following are integration backlogs with concrete UX acceptance. They must retain the authored layouts rather than mount the retired panes.
| ID / priority | Surface and established gap | Required interaction and acceptance |
|---|---|---|
| D01 / P1 | Data yawya lists multiple engines but principally shows one SQL fixture | Each provider opens its own valid query/inspection profile with explicit connection, namespace and authority. A result cannot silently survive a database/environment switch |
| D02 / P1 | Supabase Postgres, ClickHouse and D1 need different query controls | Dialect, transaction/read-only behavior, limits, cancellation, elapsed time, explain support and error location reflect the selected engine; preserve query history per connection |
| D03 / P1 | Memgraph cannot be represented completely by a SQL results grid | Cypher editor, tabular/graph results, path selection, parameters and traversal limits; a selected graph result links to a stable Reaktor entity only when a mapping exists |
| D04 / P1 | Durable Objects is not a conventional globally queryable database | Account/namespace/instance identity, per-instance storage and supported SQL/KV/debug surfaces, attachment authority and unavailable-state explanations; never imply a global arbitrary query |
| D05 / P1 | Data result controls are incomplete | Copy/export, sort/filter, pagination, null versus missing, typed values, large-cell inspection and a preserved query/run reference; cancelled and stale results remain labelled |
| D06 / P1 | Schema, migration, relationship and query-plan surfaces are pictured but unconnected | Open each surface with its actual provider capability; show unsupported cases; migration preview and execution are distinct operations with reviewable targets |
| A01 / P1 | Auth j8If5 is an explanatory fixture, not a fully bound principal/resource inspector | Show the exact principal, capability, policy, effect, resource, revision and evidence. Distinguish simulation from observed enforcement and show missing bindings |
| A02 / P1 | Auth resolution and comparison buttons need a complete flow | Compare principals without granting authority; follow the actual rule/call site; explain denial and what evidence would change it; provide a visible simulation boundary |
| C01 / P1 | Cloud P29oV8 shows intended placement without live inventory | Workers, DO, R2, D1, Queues, Realtime, GCP/k3s, Pub/Sub, Supabase and derived stores retain provider identity, environment, observation time and capability. Intended placement and observed deployment remain separate |
| C02 / P1 | Provider handoff controls are largely authored | Open a dedicated tool with the exact resource/environment/query context and return with a correlated result. A link alone does not prove that a provider operation succeeded |
| C03 / P2 | Cloud resource scale, cost and failure domains are not yet a coherent working lens | Summaries expand into provider-specific detail; unknown cost stays unknown; moving work shows data movement, compatibility and failure consequences before execution |
| U01 / P1 | UI Preview ufhps/gVWV6/Devices depicts multiple targets but the pictured controls are not full attachments | Android, iOS, desktop and browser targets have explicit transport, build, device, capability and attachment states. Browser preview must not imply native execution |
| U02 / P1 | UI-to-graph inspection is demonstrated with a fixture | Inspect a real UI element, identify its source and relevant graph ports/routes, and preserve its runtime/build identity; provide “unmapped” rather than guessing |
| T01 / P1 | Testing, devices and harness surfaces need execution-backed state | Choose scenario/target, run/cancel, see failure evidence and replay boundaries; separate assertions, logs, screenshots and receipts instead of presenting one undifferentiated success badge |
| R01 / P1 | Pipeline, deploy, releases and stores are not one operational release journey | Build artifact → checks → environment → rollout → observation → store/device outcome carries one identity chain; partial completion and unknown external status are visible |
| R02 / P1 | Recovery and interruption require designed end states | Show cancelled, interrupted, failed, partially applied, rollback-supported and rollback-unavailable states; retain evidence and explain safe next actions |
| O01 / P1 | Telemetry, performance and analytics are separate authored views | Time range, environment, cohort, source revision and graph selection follow explicit linked/pinned rules; stale or missing observations cannot look healthy |
| O02 / P2 | Metrics lack a universally visible drill-down contract | A displayed metric opens its definition, dimensions, time window, provenance and related trace/query; product analytics does not silently substitute for runtime causality |
| AI01 / P1 | Mission/pipeline cards imply orchestratable agents but most new controls remain authored | Select a harness/model/tool profile, inspect the effective context packet, propose work, review a plan, run/cancel and inspect receipts through real commands |
| AI02 / P1 | Agent visibility, authority, budget and failure are not yet one usable control loop | Show tools, permissions, budget, current phase, approval boundary, partial output and recovery; a model response is not an execution receipt |
| AI03 / P2 | Agent-stage information compresses poorly and lacks strong execution focus | A compact stage summary retains name, status, owner and outcome; expansion exposes inputs/outputs/evidence; the current stage and blocked dependency remain obvious |
| L01 / P1 | The module/library/new-system experience is not a complete greenfield flow | Discover a module, inspect capability/platform requirements, compose it, generate a normal project and follow validation through run/preview/deployment; failures identify the missing contract or tool |
For the detailed system contracts, follow the graph foundation, graph interaction specification, agentic tooling, cloud pane and desktop master plan.
Accessibility, discoverability and failure qualification
These checks are required before release. Where no direct failure is recorded, retain the qualification gap label.
| ID / priority | Finding or unqualified area | Acceptance |
|---|---|---|
| Q01 / P1 | Full keyboard workflow is not qualified across all domain controls | Navigate, inspect, edit, open menus, scroll, run an available command, cancel and return without a pointer; no focus traps |
| Q02 / P1 | Focus visibility, traversal order and popup dismissal need broader verification | A clear focus indicator on every actual control; sensible order; Escape restores focus to the opener; disabled controls remain explainable |
| Q03 / P1 | Canvas meaning is not fully qualified for assistive technology | Nodes, ports, routes, selection, direction, state and actions have navigable semantics; provide a structured alternative to the canvas |
| Q04 / P2 | Color-independent differentiation is not fully qualified | Road class, selected path, failure, unknown, authority and freshness are distinguishable through labels, patterns or shapes as well as color |
| Q05 / P2 | Text scale and display density are only partially tested | Shared tooltip geometry is checked at densities 1 and 2; qualify the whole shell and domain tools at increased font scale and supported display settings |
| Q06 / P2 | Long names, Unicode, RTL content and localization expansion are unqualified | Long identifiers remain retrievable; user content renders correctly; UI layout does not overlap when labels expand; command shortcuts do not corrupt ordinary text input |
| Q07 / P1 | Empty/loading/error/offline states need a systematic inventory | Every provider/runtime attachment declares these states, retains appropriate context and offers a recovery action; no endless spinner or empty “healthy” table |
| Q08 / P1 | Large graph/table/trace interaction performance is unqualified | Measure panning, selection, search, expansion, cancellation and scrolling on realistic datasets; publish budgets and profiles rather than extrapolating from static rendering |
| Q09 / P2 | Hover help alone does not establish discoverability | Important actions have accessible names and keyboard help; touch/pen/focus alternatives are tested where supported; tooltips do not steal activation clicks |
| Q10 / P2 | Session restoration is incomplete at product level | Reopen the app with document/layout/selection state restored where valid; stale revisions and missing providers are explained, and secrets are not copied into navigation state |
| Q11 / P2 | First-use onboarding is not yet tested against ordinary developer tasks | A newcomer can open an existing app or create a new one, find the graph, identify what is real, select a target and understand the next step |
| Q12 / P2 | Human/agent command parity needs qualification | Both interfaces enumerate the same supported actions, arguments, availability, authority and receipts; the agent does not depend on guessing screen coordinates |
Design coherence: why the atlas still reads as separate tools
This section records the cross-board review completed on 8 September 2026 (Claude Fable 5.1). It looks at a different axis from the V, N and G issues: not whether one board renders or resizes correctly, but whether the 122 boards describe one tool. They do not yet. Each design wave — the Machine Signal fabric shell, the IDE chrome, the STATE storyboards, the system-map states and the retained references — brought its own shell, vocabulary, fixture, provenance style and scale model, and the documents describe yet another model. Nothing enforces a shared contract, so the same concept is drawn differently on almost every board. Evidence: a structural scan of every board in the source file and five reviewer passes over the exported images (15 + 15 + 25 + 29 + 22 boards read at full size). Several findings are defects introduced by the 7 September map iteration; they are marked as such.
The CO issues use the same status and priority scheme as the rest of this document. Most are design gaps: they are fixed in reaktor.pen, the shared component library and the canonical documents before any implementation, and they explain many of the N, G and Q items above.
CO01 — Five information architectures compete · P1 · Design gap
Evidence: the 29 retained boards carry a 14-tab bar (six lenses × eight homes, two lit at once, lens chosen arbitrarily); the design system and older graph boards use Map/Trace/Validate/Act movements; A0a5je and the toolbar use Develop/Compose/Debug/Operate perspectives (the perspective label reads "Develop" on IDE boards and "Graph" on map boards, which is not a perspective); 36 of 61 registry entries are categorized as "Homes · …", 18 as "Graph · Living Graph" and 7 as bare System/Runs/Evidence; the entrance yPKZB organizes by 13 chapters plus a 7-phase AUTHOR…IMPROVE band, cannot reach Hr7rV, LXase, ObFUi and oKbaW, and lists w4EWt twice; the tool rail has 9 unlabeled icons, the bottom strip 7 tools, the atlas text 13 tool windows, and the desktop code 12 modes. The same tab mission.reaktor hosts five unrelated screens (Gbwnj, Hzi6v, L9r7am, DOTHj, gddyF).
Required fix: one IA — perspectives × tool windows — written once, mirrored by the entrance, the registry categories, the rail (labelled, highlighted per perspective), the strip and the documents. Acceptance: every current board is reachable exactly once from the entrance; rail, strip and documented tool list are identical; no board is filed under a home, lens or movement.
CO02 — Three shell generations, and the proofs belong to the wrong one · P1 · Design gap
Evidence: shell A (Machine Signal fabric: movement and instrument strips, context bar, SAVED SCOPES explorer, Evidence & execution footer, nine-tab drawer) on 33 boards, including every responsive and theme proof (gt7MZ, v0bjJ, xqQrc, VLrsK, V2GduQ), the design system LzukO, the atomic catalog GiULy, the palette kvPHW and the drawer states wXLgg; shell B (CU5sk: Open project / Create app, vertical Missions…System rail, PINNED); shell C (IDE chrome: menu bar, run toolbar, tool rail, Project tree, Terminal…Conductor strip) on 61 boards, with a graph variant at 2200×1320 and a 280 px navigator. Inside shell C two templates coexist: instrumented screens and slide-like boards (Hr7rV, LXase, ObFUi, oKbaW, p4vwb) with no action row, floating cards and 40–55 % empty canvas. No Light, High-Contrast, 390 or 768 proof touches shell C; the responsive proofs open a different project (bestbuds/AuthService) and their main pane is a placeholder essay. LI1ng is a static copy of the chrome, not a component sheet; GiULy catalogs the consumer app's atoms, not the tool's.
Required fix: declare shell C the only shell; regenerate design system, catalog, palette, drawer, theme and responsive proofs from it (or declare desktop-only and delete 390/768); move shell A and B boards to an archive section with a line saying what replaced them. Acceptance: every proof board's chrome bands equal shell C's; the design system's composed screens are shell C screens.
CO03 — Shell C never reflects the document it shows · P1 · Observed
Evidence: the rail highlights Files on data, agent, auth and graph boards; the Structure panel is frozen at "Capture visit · inputs 2 / outputs 2" on 13 boards; the status bar says "UTF-8 LF Kotlin 12:4" on SQL, YAML, JSON, Markdown and graph documents; the bottom strip never has an active tab, even with the debugger open (w4EWt); Problems never carries a count although GaN4a logs FAIL, O0ZFq9 and Yb00x show failed gates and Nm5QX shows HOLD; the blue Run primary sits on Costs, Releases, Layouts, the state catalog and the system map; breadcrumbs end in a marketing question on eight boards and are a real path on one (yawya); tab names follow three grammars (real files, pseudo-files such as system.reaktor, and "Category · noun"). Related: N01, N02, N09.
Required fix: derive rail item, explorer view, tab grammar, breadcrumb path, active tool, status fields and the perspective label from the focused document, and check it per board like a lint. Acceptance: an automated check over the source file finds no board whose chrome contradicts its document.
CO04 — Slides wearing the shell instead of states of an instrument · P1 · Design gap
Evidence: the five slide boards above, the nine STATE boards with an unchanged preview image under nine different captions (oxhTK … ag6vT), "Workspace activity · Working copy r18 · selection retained" filler on nine boards, doctrine sentences on 13 of 15 workspace boards, roadmap copy inside product UI (p4vwb), design notes inside fixture code (O0ZFq9), "DESIGN TARGET … need implementation" inside a product table (DOTHj). LXase is oKbaW's "Unknown outcome" state promoted to a board; ObFUi is GqUVw's "no comparable measurement" state; Hr7rV and p4vwb are the Releases object at two steps.
Required fix: fold each slide into a state of its parent instrument; every board keeps an action row and one visible primary action; empty canvas must be a deliberate workspace choice. Acceptance: no current board lacks an action row; state variants change the instrument, not the narrative.
CO05 — Failure and progress are invisible; states exist only as breadcrumb text · P1 · Observed
Evidence: FAILED STAGE, BLOCKED and UNKNOWN OUTCOME (VsGDs, r7L5v, HfRjK) share the amber chip, blue Run, empty Problems and unchanged activity feed with DRAFT and RECONCILED; RUNNING (Ipum2) has no progress, no Stop and Run still highlighted; DRAFT (oxhTK) already has five source files open; ZqZ5F says "Continue building" two states before aFYsq says the build has not started; X45qZ shows attempt A-2 with no A-1; recovery (ag6vT → KWocx → HfRjK) has no trigger and rolls back to an r18 whose compatibility KWocx calls unknown; oKbaW defines eight states that the other boards paraphrase eleven other ways; no Loading, Running, Denied, Offline or No-project state exists for shell C (a 403 exists only in shell A). Related: Q07, G09.
Required fix: a written state table (state, trigger, outcome, next state, which panes change) that every STATE board is drawn from; failure changes the chrome (red chip, Problems count, Stop control, activity entry). Acceptance: each non-happy state changes at least three chrome elements relative to the happy path, and the transitions are visible.
CO06 — Two revision universes; r19 means three things · P1 · Observed
Evidence: graph boards use G42/G41; IDE boards use r17/r18/r19; shell A uses r1842, 8f41c2, v19; releases use rc-812, v812 and sdk v812 for one deploy (OhclB, cvqmo, DeFQh); r19 is a failed compile (VsGDs), a not-started release blocked by S-04 (r7L5v) and the currently deployed web build (KWocx, Xd3s4, of8K7) while every header says "Working copy · r18"; A0a5je and Nm5QX say r19 in the breadcrumb and r18 in the status bar; Hr7rV plans r19 under r18; Yb00x conflates semver, build number and revision ("0.1.18 (18) · fw-r18"); the map's Pu9Sf relates r18 and G42 in one caption without a definition. Version notation itself varies: @3, v3, / v3, /v2, "schema rev 3", "Contract v3", @1.
Required fix: one revision grammar (source rN, graph definition GN, release rc-N, artifact identity) with the relation between source and definition revisions written once, and one fixture timeline. Acceptance: every revision string on every board is in the fixture ledger; the same label never denotes two states.
CO07 — Identifier collisions across boards · P1 · Observed
Evidence: "42" names a visit, an upload, a capture, a change, an experiment, a notification, N-42, Upload-42, report-42 and visit-42; operation 42 has six spellings (capture/42, upload/42, upload-42, U42, upload27, accept(visit/42)); p95 is a latency percentile on ObFUi, Nm5QX, GqUVw, ZlHaI, L8el1, l4tkKY and LzukO and a port on Pu9Sf; S0x names route segments (nXDMm), fixture seeds (Wx6KI), a cohort (Nm5QX) and a scenario S-04 (r7L5v); P18 is a profile (GqUVw) and P-18 a patch (Hr7rV, LXase); B18 is a budget run and a baseline; T381 and trace-17 name the trace; events are E201, E101–E105, evt-M204, E03–E22 (edges on Pr3Pv) and bare 1–5 (A0KF5); C1 is a bundle, C07 a checkpoint, C-12 a context item; W17 a witness and w17 a watermark; run ids are #318, #322, B18, A-1, r204; local/7 and "activation epoch 7" are never related.
Required fix: one identifier grammar reserved per kind (ports pNN, runs run #N, operations kind/N, traces T-N, changes C-N, findings KIND-N, percentiles written "p95 latency"), enforced with a text lint over the source file. Acceptance: the lint reports zero cross-kind collisions.
CO08 — Port identifiers are not stable inside the new map family · P1 · Observed (introduced 7 September)
Evidence: p44 is MediaRepository.put on ZCxzu, DBc14 and pxsmW, VisitActor.put on W9V37c, and is replaced by a new p96 on Pu9Sf; p90/p91 name ImageProcessor on pxsmW and Domain records on W9V37c and ZCxzu; p140/p141 swap meaning between DBc14 and W9V37c; Pr3Pv numbers the same nodes p09–p33; every board footer still says "same stable IDs".
Required fix: make the fixture ledger authoritative and correct the boards against it. Acceptance: each pNN maps to exactly one node and port across all boards, and the ledger is the only place a new port is minted.
CO09 — Turn 12 of local/7 is recorded twice, incompatibly · P1 · Observed
Evidence: Pu9Sf, ufhps and pxsmW record E201–E202, 14 ms, media.put over HTTPS, uploadId 27; izozd records E101–E105, 8.1 ms, persistCapture to the local store and VisitState v18→v19 for the same turn; VisitActor.kt differs in text and line numbers (104–120 on Pu9Sf, 84–88 on izozd, CaptureGraph.kt:84 on IRQ5A); the G42 contract is VisitCommand v1 on izozd and "requires v2" on hqJ9u; timestamps 14:02:11.482 (map) and 14:03:02 (W9V37c) sit beside a gate failure logged at 14:02:14 (GaN4a) and at 14:06 (Yb00x).
Required fix: one recorded-activation file (events, timings, values, source lines) that every board quotes. Acceptance: any two boards showing local/7 agree on every event they share.
CO10 — Δ43, Δ44 and Δ45 each mean several changes; the compare row is boilerplate · P1 · Observed
Evidence: Δ43 is keyed retry and provider repair on five boards, an idempotent-upload proposal on IRQ5A and a typed-hole composition draft on aPU6J; Δ44 is a Postgres outbox (W9V37c, ZCxzu), a client ObjectStore outbox (pxsmW), UploadOutbox n30 (nXDMm, Wx6KI) and CaptureOutbox plus UploadWorker (hqJ9u); ZCxzu offers Compare Δ43 and Compare Δ44 side by side; the "Compare ΔNN · Attach runtime" row appears on all 17 graph boards in six label variants whether or not the Δ applies (copied with the shell during the 7 September iteration).
Required fix: one story per Δ in the ledger; remove the boilerplate row and show Compare only for the change a board is about. Acceptance: each Δ has one definition, one owner and one affected-node list.
CO11 — One role, many names · P1 · Observed
Evidence: Media Gateway / MediaService / UploadAdapter / Media Worker / UploadWorker; Domain service / VisitService / Media authorities / Domain records; ImageProcessor / ImagePipeline / ImageTransform / Native encoder / PrepareUpload; CaptureView / CaptureController / CaptureInput / PhotoCapture; PhotoRepository / PhotoService / Upload service / UploadRepository / upload_intents; A0KF5 names Media Gateway in its map chip and MediaService on the card; n17 is MediaService on nXDMm and UploadAdapter on Wx6KI; n01 is CaptureView on nXDMm and CaptureController on Pr3Pv; the offline-capture work item has five titles across Mmo0o, Gbwnj and the STATE boards; the human is "Operator" on Hzi6v and "Operator" is an agent identity on L9r7am and DOTHj; the user is ovd in every top bar and @shibasis in histories.
Required fix: a node and role registry with one canonical name each; boards abbreviate only through the registry. Acceptance: no fixture node has two names; no name denotes two nodes.
CO12 — Counts disagree for one scope · P1 · Observed
Evidence: the capture scope is 5 nodes / 12 scoped (pxsmW), 18 nodes / 24 relations (16.x boards, Wx6KI) and 8 + 14 + 6 (ufhps); the Cloudflare edge district is 5 in the navigator, 6 in the inspector and 14 scoped in the header of DBc14; BestBuds is 172 nodes on FsQx4 and L8el1 and 166 on l4tkKY; ZCxzu's inspector ends the route at p121 while its dock ends it at p45; okDnx says 60 nodes and draws 27; T51iyD's top-seven regions sum to more than its active total; jmEA1 says 12 policies and lists 11; wXLgg shows Build "0 errors" beside compile and wrangler errors. Related: N09.
Required fix: counts come from the ledger with visible / scoped / known denominators, and every count names its scope. Acceptance: any two counts of the same scope on any two boards agree.
CO13 — Seven scale ladders and a self-contradicting keymap · P1 · Design gap
Evidence: estate / district / feature / port at 18 / 65 / 140 / 260 % (map boards); L0 Landscape ≤25 %, L1 Island 25–50 %, L2 Standard 50–100 %, L3 Detail ≥100 % (L8el1); "L2 · FEATURE" with 36 % and 118 % (l4tkKY); World / System / Street at 64 % (ufhps); Scope · Root / Detail · Mixed / Auto zoom with no percentage (FsQx4); Scope / Layers / Detail: ports / Time at 100 % (Pr3Pv); L0–L4 landscape / island / subgraph / component / detail in Graph Navigation; System / Container / Component / Code plus Hierarchy / L1 / L2 / All in the desktop. The ladders contradict each other in practice: DBc14 at "65 %" shows full port lists, which L8el1's own 50–100 % rule forbids; W9V37c calls a two-boundary view "district"; Pu9Sf's 260 % lies beyond its scale bar. Keys: F means frame route, focus selection, fit route, frame selection or frame path depending on the board, and nXDMm binds two of them at once; fit is ⇧F, home or ⇧home; search is / reveal, / search graph, / filter graph, ⌘F, ⌘K or ⇧⇧; actions are ⌘K and ⌘P on the same board (Wx6KI); tier navigation is 1–4/0, 1–9/0 or Enter/Esc; the palette says "open in IDE" as if it lived elsewhere (kvPHW). Related: V09.
Required fix: one ladder with a render contract per band (what folds, what expands, label budget) and one keymap, both in Graph Navigation and in the viewport instrument component; retire L8el1's tiers or make the map obey them. Acceptance: every zoom percentage on a board falls inside its band's range and shows only what the band's contract allows; one key has one meaning.
CO14 — Panel names are invented per board · P2 · Observed
Evidence: the left tree is Project, System explorer, Explorer · sheet, SYSTEM OUTLINE, GRAPH NAVIGATOR (7 boards), ESTATE NAVIGATOR (5), APPLICATION EXPLORER, BESTBUDS · SYSTEM NAVIGATOR or LIVING GRAPH, at widths of 200, 224, 250, 280 and 295 px, and three boards add a second navigator inside the editor (Ruuut, fFimd, yawya); the layer control has eight variants (LAYER STACK · ordered query with Scope as a layer, LAYER STACK with another set, RELATION LAYERS, SELECTION LAYERS, FLOW LAYERS, Layer stack, VIEW COMPOSITION, BASE·STRUCTURE chips); saved state is Saved cameras + History, Saved views, a lone Save view button or Selection path; the inspector has more than ten titles and four tab sets (Ports/Source/Runtime/Telemetry/Auth; Inspect/Ports/Source/Runtime; closable Ports/Source/Runtime; Ports/State/Effects) and docks right, left (Ri7Es), floats or becomes a chat (Mmo0o); findings live in four places (aPU6J Problems, FsQx4 dock, IRQ5A tab, Wx6KI witness); "Evidence" is a tab, a card, a panel, a drawer, a button and a percentage.
Required fix: one name each (Project, Layers, Saved views, Details with Ports · Source · Runtime · Evidence · Agent), one width per altitude, Problems as the only findings surface. Acceptance: the shared shell component exposes these names and no board overrides them.
CO15 — Verbs and progress models drift · P2 · Observed
Evidence: the agent affordance has more than ten phrasings (Ask Conductor, Ask agent, Ask · Propose, Ask Codex about this route, Ask Claude to fix all, Fix with AI, Create scoped/repair/benchmark task, Create optimization mission, Attach selection to Conductor, Drive with Codex, Delegate) and four dock positions while A0a5je declares "Conductor · Right · auto-hide"; "open source" has ten variants, Compare seven, Preview seven names, Attach six; j8If5 says "Ask a dispatcher" and offers "Compare as dispatcher"; delivery has four progress models (O0ZFq9 four stages, Yb00x five readiness items, Hr7rV six steps, p4vwb four epochs), three run-id schemes and a lone HOLD (Nm5QX) with no promote anywhere; grey buttons carry nouns ("Required", "Changes", "Runs") on Hzi6v; blue-filled buttons serve both navigation and commitment.
Required fix: the command registry described below, with canonical labels, and design-file chips instanced from it; one delivery object with one stage model shared by Pipeline, Releases, Publish and Evolve. Acceptance: each command has one label, one icon and one shortcut across boards; each object has one progress vocabulary.
CO16 — Provenance is written in many registers and leaks into data · P1 · Observed
Evidence: shell A uses at least 14 spellings (SOURCE, OBSERVED, DESIRED + OBSERVED, Truth, EVIDENCE %, FIXTURE, DESIGN FIXTURE, authored fixture, Recorded, estimate · not observed, UNKNOWN, UNASSESSED, not wired, adapter not connected); shell C uses six registers (orange status stamp, caps banners, subtitles, callouts, code comments, roadmap copy) and puts fixture words in data cells ("Fixture: passed", "stage · fixture", "Fixture observation", "Result = fixture", "fixture receipt publish-web-19"); STATE boards carry three disclaimers each; the map boards use icon marks (pin, radio, pencil-ruler), chips and three status-bar phrasings ("Authored design fixture", "Design study", "Design specification"); the TruthMark family the design system defines (Live, Source, Fixture, Stale, Partial, Unknown, Failed) is not used by graph or IDE boards.
Required fix: one provenance register — the TruthMark family — with a fixed location (status stamp plus per-value marks), and no fixture words inside data cells. Acceptance: every "not real" statement on a board is a TruthMark instance; the status bar carries one stamp.
CO17 — Colours carry three to five meanings each · P1 · Design gap
Evidence: amber = stale (Pu9Sf), designed (W9V37c), simulated (route mode), the Work road, the Service and Repository families, a declared-only boundary (izozd) and "+ CHANGE" chips; blue = definition provenance, the state road, the attachment edge, selection, the Route/Actor/Container families and the selected path (ufhps); green = recorded, correlated route, the build road, the Screen/Agent families and a receipt; red = the error road, authority (IRQ5A), WRITE (A0KF5), stale base (hqJ9u) and the Auth family; purple = the Bus road, BINDS, the Interactor/Topic families, navigation (FsQx4) and FEATURE badges (DBc14); the map colours districts by node family; the new library palette collides with itself (Service and Repository both amber, Route/Actor/Container all blue, Interactor/Topic purple equal to the Bus road); on shell A the card-border colour leaks into provenance labels so "SOURCE · main" is red on one card and "OBSERVED · 3s" green beside "not wired". Related: Q04.
Required fix: reserve hue families — provenance (four), relation classes (pattern first, few hues), node families (distinct from both), status — and lint the tokens; districts and scopes use one neutral scope colour. Acceptance: no hue appears in more than one family; the legend and the token file agree.
CO18 — Two relation taxonomies and eight layer stacks for one graph · P2 · Design gap
Evidence: Wgw9w defines ten road classes; p0Fgf defines six relations (CALL/VALUE/FLOW/BINDS/OBSERVES/DEPENDS); FsQx4 uses four (dependency/attachment/navigation/containment); the desktop uses four relationship chips; layer stacks come in the eight variants listed under CO14, with different names, counts and orderings for the same graph.
Required fix: one relation taxonomy in Living Graph → one legend component → all boards; one layer stack component with one ordering rule. Acceptance: the legend on any graph board is the same component; layer names and counts derive from the taxonomy.
CO19 — Type-ramp regression and density · P1 · Measured (partly introduced 7 September)
Evidence: the 18 August pass cleared the file of text at or below 10 px; the map iteration reintroduced it (ZCxzu 61 of 192 texts, Pu9Sf 61 of 242, DBc14 36 of 140, pxsmW 32 of 143, W9V37c 31 of 152, Wgw9w 35 of 66), and nXDMm (38 of 160), L8el1 (45 of 127) and IRQ5A carry 9–10 px floaters and caps labels; shell A boards spend about 30 % of height on chrome and leave 75 % of their panels empty while truncating headers ("Constraint Optimiz", "Polyglot Boundary St"); Ri7Es, P29oV8 and GqUVw are the densest IDE boards; Light and High-Contrast variants fail contrast on mono captions and amber LOCAL on cream, and High Contrast is a hue swap with white outlines on every container. Related: V08.
Required fix: a ramp floor of 11 px for product text and 12 px for body text; map metadata behind semantic zoom or a detail view; a contrast pass on shell C rather than shell A. Acceptance: the census reports zero product text below the floor; contrast checks pass on shell C's own panels.
CO20 — Fake precision and constant evidence blocks · P1 · Observed
Evidence: seven template clones (Mw1gH, D0yQo, blRVd, ysUFy, qoZHY, AgsbM, ED2r5) share "12 findings · 3 blocking", "EVIDENCE · 94 %", "Confidence 1.0 / exact", "OBSERVED · 3s" and "LIVE · 2s" beside their own note that runtime observation is not wired, and "14 tests · 3 deploy targets" on auth, design tokens, a C++ ABI and AI traces alike; numbers contradict across boards (1,200 uploads in 30 minutes on GqUVw against 6,000 visits a week on OYUup; spans 8.4 M/24 h on ZlHaI against 42 k/s on DeFQh; AuthService p95 142 ms on okDnx and 400 ms on ZlHaI at the same commit; daily AI cost $118 on D3PIAz/Wjmfj and $124 on zJrBc whose rows sum to $122; moderation on three different models across ZV3fR, Wjmfj, zJrBc; budbot v7 "live" on ZV3fR and "not released" on qtbd3; D7 retention 41 % on i1enWz and 44 % on D3PIAz; kvPHW 92 ms and 210 ms on one screen); one number generator recurs (142, 412, 62 %, 5,236, 8,412, 8f41c2); read-only reference boards still expose Commit, Revoke all, Promote to 100 % and Restore.
Required fix: all numbers drawn from the fixture ledger; delete constant evidence blocks; reference boards lose live destructive controls. Acceptance: no numeric value on a board lacks a ledger entry; no two boards disagree on a shared value.
CO21 — Fixture universes and the example switch · P2 · Observed
Evidence: Fieldwork / Meera / r18 (shell C and B), bestbuds / AuthService / ovd / r1842 (shell A, GiULy), bestbuds / checkout (kvPHW), bestbuds / onboarding and chat (wXLgg), and the audited BestBuds application (FsQx4, LODux, P29oV8) with its own explorer header ("System explorer / Features"), target ("System targets") and stamp ("Architecture fixture"); the responsive proofs open a different project than the tool's states; P29oV8 reads as a different application. Related: N05.
Required fix: two fixtures only — Fieldwork (authored) and BestBuds (audited) — with an explicit switch in the shell and one user identity. Acceptance: every board names its fixture through the switch; no third project appears.
CO22 — Redundant boards and template clones · P2 · Observed
Evidence: gVWV6 ≈ Ruuut; n7tbP, pj1eK, a1cWFd are one board with states; i1enWz, ITreE, QMram, D3PIAz tell one product-analytics story with conflicting numbers; zJrBc, Wjmfj, ZV3fR overlap and contradict each other; the seven shell A clones swap card titles over identical fake findings; okDnx is superseded by ZCxzu; Wx6KI overlaps the map's explain view; w4EWt and A0a5je restate one paused turn with different labels; PERF-12, COST-7 and ObFUi are three proposals on one encode path with no cross-link; Pr3Pv and QPAyL carry on-board titles unrelated to their atlas names; boards come in 17 sizes. The retained-reference review recommends: keep T51iyD, jmEA1, z6gUa2, lN1J9, cvqmo, ZlHaI, YdwCE, W3npMV, ZV3fR; merge n7tbP+pj1eK+a1cWFd into the compose board, OhclB into the district map, DeFQh into ZlHaI, Wjmfj+qtbd3 into Conductor, i1enWz+ITreE+QMram into one analytics reference, qoZHY and AgsbM into document text; retire Mw1gH, D0yQo, blRVd, ysUFy, AgsbM, qoZHY, ED2r5, okDnx, zJrBc, D3PIAz.
Required fix: apply the keep / merge / retire list and turn merged boards into states; one board size per altitude. Acceptance: no two current boards answer the same question; every retained reference states what replaced it.
CO23 — Standard IDE and editor affordances are absent everywhere · P1 · Design gap
Evidence: no run-configuration picker (only target chips: Web · Local, All targets, Local JVM, System targets); no Problems counts or gutter markers; no undo/redo or dirty-tab markers on a "working copy"; no context menus or opened menus; docking claimed on LI1ng but never shown; no settings, help or keymap beyond one table on A0a5je; "changes.diff" without a diff; "Search everywhere" drawn as a bottom table rather than the toolbar search's popup; no Stop, cancel, background progress or notifications; on the graph, no marquee or multi-select, alignment, drag-from-pin pending-wire state (aPU6J shows a palette but no drag), breakpoints or watches outside izozd, and izozd's breakpoint "does not step or pause"; L8el1's gesture grammar (drag pin, ⌥ click, ⌃ drag, reroute, ⌘G extract) is the only Blueprint-grade specification and nothing renders it. Related: N02, N03, N08, G07.
Required fix: render the editor floor once — menus, context menu, run configurations, Problems with counts, docking, settings, keymap, undo, diff, graph selection and wiring states — as shell C proofs. Acceptance: each affordance has one authored proof board or state and one native test.
CO24 — Atlas, registry and document noise · P2 · Observed
Evidence: board names use 14 prefix conventions (Reaktor IDE 41, Reaktor Graph 20, AI 6, Graph 5, System Studio Shell 5, Interface 4, Observe 3, Learn 3 and eight others); 04.03A–04.03D are filed under the graph substrate but placed among the 16.x boards; registry categories mix three schemes; two registries were produced by two sessions on one day; the documents describe L0–L4 levels, 13 tool windows and four perspectives that the boards do not show; "Blueprint" appears only on A0a5je and yPKZB; the docs' "Source only" and the desktop's C4 presets appear on no board.
Required fix: one naming convention, one registry category scheme equal to the IA, and a documents-versus-boards check in the registry sync. Acceptance: the registry sync fails on a board whose prefix, category or size is outside the convention.
CO25 — The rendered subpane set is not the authored subpane set, and no gate compares them · P1 · Observed
Evidence: the Cloud pane renders eight subtabs in the running window — Topology, Kubernetes, Resources, Operations, Deploy, Pipeline, Runs, Cost — while WorkbenchPaneCatalog authors six; Topology and Kubernetes exist in neither the catalog nor pen-truth.json, and MachineSignalSubpaneRenderTest accordingly emits no cloud-topology.png or cloud-kubernetes.png. In the other direction, Deploy and Testing are two of the thirteen modes in the rail and have no pane family at all — the catalog lists only ui, devtools, agent, auth, database, telemetry, analytics, ai, cloud. MachineSignalPaneCoverageTest passes throughout, because every one of its assertions compares the catalog to pen-truth.json; nothing compares the rendered tab strip to either. So "13 modes" and "74 subpanes" are two taxonomies that overlap only partly, and the coverage gate is blind to the difference.
Required fix: assert the rendered subtab strip against WorkbenchPaneCatalog for every mode, the way devToolsStripLeadsWithTheAuthoredSubpanes already does for DevTools alone; then either author Topology and Kubernetes into the cloud family or fold them into Resources, and give Deploy and Testing a family or state in the catalog that they are mode-level tools outside the subpane taxonomy. Acceptance: a subtab that no family authors fails the build, and the count of rendered subtabs across all modes equals the count the catalog declares.
CO26 — One shell renders under six headings, twice under a heading that promises something else · P1 · Observed
Evidence: a single five-row run table — Discover Android devices, Android Maestro dev-login smoke, Workspace doctor twice, Discover Apple devices — is the body of devtools/pipeline, devtools/releases, devtools/recorder, devtools/traces and devtools/logs, and the same rows fill the bottom dock's run ledger in every mode. Two of those headings promise something the table is not: devtools/traces titles it "Port invocations · waterfall", and devtools/logs titles it "Live stream · every runtime, one timeline". Cloud repeats the pattern at a different scale: cloud/deploy and cloud/pipeline render byte-identical bodies (the "ORDERS DISAGREE" block plus Deploy order · 21). auth/simulator is a strict subset of auth/security — the same permission-simulator panel with the posture list removed. agent/audit and agent/runbooks both render a panel headed "Audit log · every actor, every command".
Required fix: a subpane that has no projection of its own must render its SubpaneSpec card, not a neighbour's table under a borrowed heading. Where two subpanes genuinely share a body, merge them. Acceptance: no two subpanes in a family render the same component with the same data, and no panel heading names a visualisation the pane does not draw.
CO27 — Panes are authored to fill a quarter of their height · P1 · Measured
Evidence: measured over all 74 sheets from MachineSignalSubpaneRenderTest (1180 × 840 each), the median pane paints content down to 25.4% of its height and covers 1.5% of its area in non-background pixels. Thirty-five of 74 fill under a quarter; 57 of 74 fill under 40%. There is a hard floor at 19.6% — breadcrumb, subtab row, one panel header — and only six panes clear 60%: cloud-operations 84.5%, agent-chat 76.8%, cloud-deploy 76.7%, database-query 74.4%, ai-models 70.0%, analytics-performance 66.4%. The full table is in the pane sweep below. This is a layout property, not only a data property: the panes place two or three cards in a top band and leave the remaining three quarters of a 1568-point window empty, so even a fully wired pane inherits the shape.
Required fix: give each pane a layout that grows with its content — the anatomy kit in panes/PaneAnatomy.kt already has the parts — and treat a pane whose authored layout cannot reach the fold as a design defect rather than a data gap. Acceptance: median vertical fill across the 74 sheets rises above 60% with the same snapshot, and no pane's authored layout stops before half the viewport.
CO28 — The coverage metric measures wiring, not what the pane shows · P2 · Observed
Evidence: reportPaneCoverage prints ui 0/8 and ai 0/12, but in the running window the AI mode shows 32 resources, 11 operations and 5 runs — real per-worker Cloudflare AI bindings — and the UI mode shows a live component canvas with the entity-hue palette and a metrics strip reading 253 resources / 483 tasks / 30 runs. Both render through the generic evidence-and-operations path rather than through a SubpaneReads entry, so the gate cannot see them. The converse also holds: devtools/source counts as wired solely because SubpaneReads maps it to the workspace domain, while the pane renders "Files | Source" with Source empty and Files reading "Turns on with: a source index keyed by graph node id". The number is therefore neither an upper nor a lower bound on what a user sees.
Required fix: report two numbers — subpanes with a declared SubpaneReads slice, and subpanes that paint a non-empty body against the live snapshot — and never quote the first alone. Acceptance: the coverage report distinguishes "wired to a named slice" from "renders content", and devtools/source appears in the second column only once it renders source.
Competing vocabularies at a glance
| Concept | Variants found | Boards |
|---|---|---|
| Information architecture | lenses × homes · movements · perspectives · homes categories · chapters + phases · modes | retained references · LzukO · A0a5je · registry · yPKZB · desktop |
| Shell | A fabric · B studio · C IDE (two templates, one graph variant) | 33 · 1 · 61 boards |
| Scale ladder | 7 (see CO13) | map · L8el1 · l4tkKY · ufhps · FsQx4 · Pr3Pv · docs/desktop |
| Left tree | 9 names, 5 widths | see CO14 |
| Layer control | 8 variants | see CO14 |
| Inspector tabs | 4 sets, >10 titles | Pu9Sf · FsQx4 · LODux · IRQ5A |
| Relation taxonomy | 10 roads · 6 relations · 4 edge kinds · 4 chips | Wgw9w · p0Fgf · FsQx4 · desktop |
| Revision | GN · rN · r1842/8f41c2/v19 · rc-N/vN | graph · IDE · shell A · releases |
| Provenance | ≥14 spellings (A) · 6 registers (C) · 3 phrasings (map) · TruthMark (defined, unused) | everywhere |
| Agent affordance | >10 phrasings, 4 dock positions | everywhere |
| Delivery progress | 4 stages · 5 items · 6 steps · 4 epochs | O0ZFq9 · Yb00x · Hr7rV · p4vwb |
| "Not real" | fixture · design fixture · authored · study · specification · simulated · demo · reference | everywhere |
What resolves the CO family
Most CO issues share five causes, which the architecture changes below address from the implementation side; the design side needs the same discipline in the source file. One shell contract checked per board (CO01–CO04, CO14, CO24); one object model with one identifier grammar and one written fixture ledger that every number, name and revision is drawn from (CO06–CO12, CO20, CO21); one IA that the entrance mirrors and one command registry that chips are instanced from (CO01, CO15, CO23); one provenance register and one colour and type ramp enforced by the component library (CO16–CO19); and states instead of slides, with failure that changes the chrome (CO04, CO05). Retiring shell A, shell B and the template clones removes most of the noise without losing any requirement, provided the unique requirements listed under CO22 are carried into documents or merged boards first.
Order of work
Historical issue-family ordering follows. The current P0 workflow queue above supersedes sequencing: graph, auth, database, DevTools, compute/cloud and MCP are worked toward completed BestBuds developer flows before supporting polish.
Band 0 · The window — do these first
| Order | ID | Sev | State | The problem in one line |
|---|---|---|---|---|
| 1 | W01 | S0 | Done (F24) | Twelve of thirteen modes composed an authored board instead of a tool |
| 2 | W02 | S0 | Done (F25) | Every domain pane was implemented, tested and unreachable from the window |
| 3 | W03 | S0 | Done (F26) | The window claimed three different applications depending on the mode |
| 4 | N01 | S0 | Open | No persistent document or dock model under the visuals |
| 5 | W05 | S1 | Open | No one navigator or header contract; each pane brings its own |
| 6 | W04 | S1 | Partly done | Network and Traces count something other than their name; drawer has no active tab |
| 7 | W06 | S1 | Open | Design file and app disagree on every mode label and every shortcut |
| 8 | W07 | S1 | Open | The live shell has no compact-layout contract; F22/F23 covered only boards |
| 9 | V05 | S1 | Open | No product-wide resize matrix, panel minimums or collapse priority |
| 10 | N02 | S1 | Open | Visible controls with no behaviour and no unavailable state |
| 11 | W08 | S2 | Done (F27) | ⌘K meant two different things depending on the mode |
W01, W02 and W03 were one change seen from three sides and they have landed: the four pillars now share one shell over one application, and bands 1–4 ship into code the window actually mounts. W05 remains open. With the panes mounted, one remaining reason the four pillars do not read as one tool is that each pane still brings its own navigator and its own header grammar.
Band 0.5 · The three planes
Does this help a BestBuds developer ship? establishes that the four pillars are short of three things, and that every pane below gets more valuable once they exist. These outrank the per-pillar items that follow them.
| Order | ID | Sev | The problem in one line |
|---|---|---|---|
| 1 | P01 | S0 | The graph's 48 nodes and the catalog's 481 tasks / 253 resources are two unrelated models; the overlay attaches all 814 elements to the root, never to a node |
| 2 | P02 | S0 | No source plane: nothing opens a file, shows a line, renders a diff or reveals a symbol in a 339k-line codebase |
| 3 | P03 | S0 | No observation plane: no log stream, no trace, no attach; 17 of 18 database connections cannot be read, including all three declared shared stores |
| 4 | P04 | S1 | Worker deploys carry neither the documented binding order nor the change scope deploy.sh computes — the dangerous half of the one high-consequence action the tool nearly owns |
Band 1 · Graph
| Order | ID | Sev | The problem in one line |
|---|---|---|---|
| 1 | GR01 | S0 | No semantic zoom: unreadable at 17 %, 38 % and 61 % alike |
| 2 | GR02 | S0 | Fixed grid layout, not persisted — "dragging changes layout only" |
| 2a | GR10 | S1 | Relations are drawn but unreadable: no routing, bundling, labels or direction |
| 2b | GR11 | S1 | Expand/collapse and the C4 presets overwrite each other; no canvas affordance; camera does not follow |
| 2c | GR12 | S1 | The navigator is a section list, not 16.00's layer stack; node cards lack the authored anatomy |
| 3 | G01 | S0 | The system map is a set of authored states, not a live projection |
| 4 | GR03 | S1 | Five disagreeing counts in one window |
| 5 | GR04 | S1 | Inspector tab row clipped at every window size |
| 6 | GR05 | S1 | No marquee, multi-select, alignment, wiring gesture or graph undo |
| 7 | GR08 | S1 | The design file never specified graph as a tool — no pane family, no icon, no shortcut |
| 8 | G03 | S1 | Graph-wide selection linkage incomplete |
| 9 | G02 | S1 | Layer controls are not an executable, inspectable query |
| 10 | G04 | S1 | Route navigation has no complete interaction contract |
| 11 | G07 | S1 | Graph authoring has no complete pointer/keyboard workflow |
| 12 | G05 | S1 | Maps need scalable density and label management |
| 13 | V06 | S1 | Wires and annotations still collide with text |
| 14 | G08 | S1 | Compare and graph commits have no legible change semantics |
| 15 | GR06 | S2 | The toolbar mixes filter, camera, C4 presets and a layer action |
| 16 | GR07 | S2 | The graph is not a document: duplicate title, no close, no pin |
| 17 | GR09 | S2 | The minimap is an unlabelled blob with no viewport rectangle |
| 18 | G06 | S2 | Camera, selection and execution history need separate visible controls |
| 19 | G09 | S2 | Discovery and partial topology need actionable empty states |
| 20 | N09 | S2 | Compressed status and count vocabulary in graph instruments |
Band 2 · Database
| Order | ID | Sev | The problem in one line |
|---|---|---|---|
| 1 | DB01 | S0 | Seven providers drawn as text; nothing can be connected |
| 2 | DB02 | S0 | There is no query editor and no execute |
| 3 | DB03 | S0 | The implemented Query subpane is an empty frame |
| 4 | D01 | S0 | One SQL fixture stands in for every engine |
| 5 | DB04 | S1 | Schema, Migrations and History are pictures |
| 6 | DB05 | S1 | The result grid has no copy, export, sort, filter or paging |
| 7 | DB06 | S1 | Seven authored subpanes, one authored screen |
| 8 | DB08 | S1 | Chrome contradicts the document (.sql reported as Kotlin) |
| 9 | D02 | S1 | Engines need different query controls, limits and cancellation |
| 10 | D03 | S1 | Memgraph needs Cypher and graph results, not a SQL grid |
| 11 | D04 | S1 | Durable Objects is not a globally queryable database |
| 12 | D05 | S1 | Result controls incomplete; stale and cancelled results unlabelled |
| 13 | D06 | S1 | Schema, migration, relationship and plan surfaces unconnected |
| 14 | DB07 | S2 | The pane's primary action is to leave for the real database tool |
Band 3 · Auth
| Order | ID | Sev | The problem in one line |
|---|---|---|---|
| 1 | AU01 | S0 | Six promised surfaces render as one fixed explanation |
| 2 | AU02 | S0 | The implemented Providers subpane is an empty list |
| 3 | A01 | S0 | Auth is an explanatory fixture, not a bound principal/resource inspector |
| 4 | AU03 | S1 | The simulation boundary is a paragraph, not a control |
| 5 | AU04 | S1 | Auth has no navigation of its own |
| 6 | AU05 | S1 | Providers, Audit and Simulator are never drawn as active |
| 7 | A02 | S1 | Resolution and comparison flows are incomplete |
Band 4 · Device tools
| Order | ID | Sev | The problem in one line |
|---|---|---|---|
| 1 | DT01 | S0 | No console, network panel, element tree, computed styles or stepping exist |
| 2 | DT04 | S1 | Inner-loop debugging, build-and-ship and device tools share one mode |
| 3 | U01 | S1 | Target attachments are pictured, not attached |
| 4 | DT02 | S1 | The property inspector looks editable and is not |
| 5 | DT03 | S1 | Every result is a fixture, including build results |
| 6 | U02 | S1 | UI-to-graph inspection is demonstrated on a fixture |
| 7 | T01 | S1 | Testing and device surfaces need execution-backed state |
| 8 | DT05 | S2 | Logs and Source are never drawn as active |
Band 5 · One vocabulary the four pillars inherit
Ordered by how much of bands 1–4 each unblocks, not by how visible it is.
| Order | ID | Sev | The problem in one line |
|---|---|---|---|
| 1 | CO03 | S1 | Shell C never reflects the document it shows |
| 2 | CO07 | S1 | Identifier collisions across boards |
| 3 | CO08 | S1 | Port identifiers unstable inside the new map family |
| 4 | CO11 | S1 | One role, many names |
| 5 | CO12 | S1 | Counts disagree for one scope |
| 6 | CO06 | S1 | Two revision universes; r19 means three things |
| 7 | CO16 | S1 | Provenance written in fourteen registers and leaking into data |
| 8 | CO17 | S1 | Colours carry three to five meanings each |
| 9 | CO13 | S1 | Seven scale ladders and a self-contradicting keymap |
| 10 | CO05 | S1 | Failure and progress are invisible; states exist only as breadcrumb text |
| 11 | CO23 | S1 | Standard IDE and editor affordances absent everywhere |
| 12 | CO19 | S1 | Type-ramp regression: text at or below 10 px reintroduced |
| 13 | CO20 | S1 | Fake precision and constant evidence blocks |
| 14 | X01 | S1 | 64 of 74 subpanes stop painting above half their height |
| 15 | N03 | S1 | Pictured tabs do not behave as documents |
| 16 | N04 | S1 | Source, queries and identifiers are not editable or copyable |
| 17 | N05 | S1 | Authored context does not follow active application context |
| 18 | CO01 | S1 | Five information architectures compete |
| 19 | CO02 | S1 | Three shell generations; the proofs belong to the wrong one |
| 20 | CO04 | S1 | Slides wearing the shell instead of states of an instrument |
| 21 | CO09 | S1 | One recorded activation logged twice, incompatibly |
| 22 | CO10 | S1 | Δ43–Δ45 each mean several changes; the compare row is boilerplate |
| 23 | CO14 | S2 | Panel names invented per board |
| 24 | CO15 | S2 | Verbs and progress models drift |
| 25 | CO18 | S2 | Two relation taxonomies, eight layer stacks, one graph |
| 26 | CO21 | S2 | Three fixture universes and no example switch |
| 27 | CO22 | S2 | Redundant boards and template clones |
| 28 | CO24 | S2 | Atlas, registry and document noise |
| 29 | N06 | S2 | Search scope differs between live and authored workspaces |
| 30 | N07 | S2 | The surface chooser mixes product navigation and design review |
| 31 | N08 | S2 | Layout control incomplete: no split, detach, restore or perspective |
| 32 | V09 | S2 | Fit, presentation scale and camera zoom are confusable |
Band 6 · Supporting surfaces
Cloud C01–C03, delivery R01–R02, observability O01–O02, agent and AI AI01–AI03, module composition L01. All real, all after the four pillars.
Band 7 · Qualification, accessibility and polish
Accessibility and failure qualification Q01–Q11 (Q01, Q02, Q03, Q07 first — keyboard, focus, canvas semantics and empty/error states are the ones the four pillars will need as they are built). Remaining visual items V03, V04, V07, V08, V10. Then V01, exact Pencil raster parity.
V01 is deliberately last, and that reverses an earlier "visual fidelity first" instruction. The reason is in this document: CO01–CO24 establish that the boards contradict each other on identifiers, counts, revisions, provenance, colour and scale. Reaching zero differing pixels against that set would lock the contradictions into the product and would have to be redone after band 5. The recommendation is to keep the exact-comparison harness running as a regression signal and to restore V01 as an acceptance gate once the boards are one design. If the owner wants pixel parity kept at the top regardless, that is a one-line change here — it is a sequencing decision, not a finding.
Architecture changes that resolve several issues together
One persistent workbench context
Promote workspace, source revision, environment, principal, selection, time and active mission/run into one typed context with explicit linked and pinned fields. Every document and tool declares what it follows. This resolves context drift across Graph, Data, Auth, UI Preview, Cloud and Evidence without coupling all panes to one arbitrary active tab.
One command registry with visible availability
Each action declares a stable ID, label, shortcut, arguments, target scope, availability/reason, effect category and completion/evidence contract. Human menus, command search, toolbars and agents use that registry. Unavailable commands remain discoverable with their prerequisites. Do not implement generic “success” for unconnected commands.
One document and docking model
Represent source, graph views, queries, traces and plans as typed documents with identity, dirty/pinned state and supported actions. Tools remain dockable projections over context. The source design then defines composition and presentation rather than standing in for the document lifecycle.
Responsive policies above the layout kernel
Keep the shared flexible-layout machinery small. Product-level policies decide minimum readable widths, docking priorities and optional secondary panels. The kernel should not infer whether a card's text is a critical auth result or decorative metadata. Give code, identifiers, evidence and decision chains appropriate overflow behavior.
Graph interaction as the common foundation
Connect real graph selection, scopes, layers, traversal, source identity, runtime activation and typed changes before multiplying new operational panes. The same mechanism should power UI inspection, headless workflows, data lineage, provider placement, auth explanations and agent proposals.
The source plane is a projection, not an embedded editor
Decision, 8 September. P02 is answered by an annotated read-only source projection with a language server behind it, not by embedding a web editor. Editing is allowed, bounded to a region, and leaves as a patch rather than as a write.
Why not Monaco. The desktop surface is Compose/Skia and the editor chrome is already native: render/compose/shell/ReaktorEditorChrome.kt implements the design's MG56E, and ReaktorEditorChromeGeometryTest locks its geometry. Monaco requires a browser embed (JCEF/KCEF) — a second process carrying its own input, IME, font and theme stack, 150–250 MB of runtime, and a pane that no longer renders under GoldenImage.render / ImageComposeScene, which is the mechanism every visual claim in this document rests on. Monaco also ships the VS Code keymap, so it does not return a JetBrains user's shortcuts; only the handoff below does that. Neither repository contains Monaco, CodeMirror or a CEF binding today.
What the design actually authors. Source appears as five- to ten-line excerpts, one text node per line at 12 px / 1.3, read-only, on Mmo0o, w4EWt, izozd and aPU6J. The value is in the marks around the line — the port it implements, its effect class, its truth and freshness, the graph node it binds to. That is a projection over a document, not a document.
The language server is not blocked on an editor. Semantic tokens, hover, go-to-definition, find references, diagnostics, inlay hints, document symbols and code lens all operate on a read-only buffer, and semantic tokens remove any need for a hand-written highlighter. Only completion, signature help, rename, quick-fixes and formatting need an editable buffer, and those stay scoped to the open region.
Where it lands. Two subpanes already author it: devtools/source ("The source behind the selected node or frame", needing a source index keyed by graph node id) and ui/source-diff ("The source behind the selected component", needing a source index keyed by composable name). devtools/source counts as wired only because SubpaneReads maps it to the workspace domain; it does not render source.
The escape hatch is missing, and it is the cheapest item here. The panes already offer "Open in source" three times and "Open rule and call site" once. Neither repository contains an idea://, vscode:// or equivalent handler, so none of those affordances can do anything. Wiring idea://open?file=…&line=…, vscode://file/…:line and an $EDITOR fallback is what returns a developer's own keymap, plugins and refactoring for everything past a minor edit — and it fixes the boundary the edit affordance must not cross.
Bounds on the edit affordance. A contiguous region, opened in place at the projection's own metrics; refused when the working copy has moved since the projection was taken; carrying the Local Write effect class the design already defines (k4qdzd); committed as a scoped patch through the review path 04.08 · Commit and semantic patch review already authors, never as a silent write. New files, rename and multi-file edits escalate to the handoff.
Order. The read-only projection with semantic tokens, hover and diagnostics first — that is most of P02's value. The deep links second; they are small and they set the boundary. The editable region and commit-as-patch third. Monaco only if a browser-only editing story is ever needed, and then in the React surface (render/react/panels) where it is native and costs nothing — never inside Compose.
Acceptance: devtools/source opens a file at a line from a graph selection and renders it with gutter marks and language-server diagnostics; "Open in source" launches the configured editor at that file and line; an in-region edit produces a reviewable patch and changes no file on disk until it is applied; the pane renders under the existing golden-image harness.
Acceptance journeys
| Journey | Required result |
|---|---|
| J01 — Existing project | Open BestBuds, inspect the real graph, open source and return; graph selection, layers and camera survive |
| J02 — Greenfield | Compose a small app from modules; inspect requirements; create editable source; preview a supported target; see actual run/deploy outcomes |
| J03 — Whole-system navigation | Estate → provider district → feature → exact port → source/activation → Back; same IDs and explicit history throughout |
| J04 — Non-UI orchestration | Begin at a schedule, webhook, queue, actor turn or agent task; follow request/result/error and durable completion across boundaries |
| J05 — UI inspection | Select a real UI element on each supported target; reveal corresponding source and graph routes; distinguish unmapped and stale builds |
| J06 — Database investigation | Select provider/namespace, author or inspect a query, run/cancel under stated limits, inspect typed results, copy evidence and reveal mapped graph context |
| J07 — Auth explanation | Inspect one action for two principals; identify capability/policy/effect; see the actual evidence and a clearly separated simulation |
| J08 — Agent change | Inspect a context packet and tools, propose a typed change, review validation and authority, execute a supported action, inspect its receipt and recover from interruption |
| J09 — Delivery investigation | Follow a build artifact through checks, deployment, runtime observation and store/device outcome; unknown external status stays unknown |
| J10 — Resize and accessibility | Perform core inspection and navigation at narrow/wide sizes, two densities, increased text scale and keyboard-only input without hidden primary information |
| J11 — One tool, not many | Walk estate map → district → feature → port → source → run → release → recovery across boards; every panel name, revision, identifier, colour meaning, provenance mark and shortcut encountered is the same one defined in the shell contract, fixture ledger and decision table (CO01–CO24) |
Implementation ownership and order
| Work package | Primary owner | Exit condition |
|---|---|---|
| Mounting the panes (band 0) | BestBuds engine workbench shell | W01–W08: every mode composes a pane, on one application identity and one shell; the pane coverage gate counts reachable subpanes |
| Graph as a usable tool (band 1) | engine graph workspace plus reaktor-flow and reaktor.pen | GR01–GR09: a zoom contract, a persisted layout, one set of counts, an inspector that fits, and an authored graph pane family |
| Database, auth and device tools (bands 2–4) | Existing database/auth modules, a new device-tools surface, and one authored screen per subpane | DB01–DB08, AU01–AU05, DT01–DT05; no mode ships a board in place of a tool |
| Visual acceptance and native primitives | reaktor-ui plus engine/studio generator and renderer | V01–V10 have measured outcomes; corrected source and native captures remain synchronized |
| Persistent shell, documents, commands and context | BestBuds engine workbench | N01–N09 and relevant Q checks have real journeys |
| Canvas mechanics | compose-flow | Pan, zoom, handles, hit testing and rendering are reusable and measured |
| Graph semantics and projections | reaktor-flow / reaktor-graph | G01–G09 operate over real sessions, IDs and typed changes |
| Data and auth integration | Existing database/auth modules plus new authored tool bindings | D01–D06, A01–A02; no return to legacy pane bodies |
| Cloud, delivery and observations | Provider adapters and domain tools | C/R/O journeys produce scoped evidence and usable failures |
| Harnesses and agents | Conductor / agentic tooling | AI01–AI03 and human/agent command parity |
| Design coherence | reaktor.pen shared component library, the atlas registry sync and the canonical documents (Living Graph, Graph Navigation, Visual Language) | CO01–CO24 closed by one shell contract, one fixture ledger, one IA, one provenance register and one colour/type ramp, each checked by the registry sync; shell A, shell B and the template clones archived |
The band order in Order of work governs sequencing; this table only says who owns each package. Prioritize shared causes over one-off board patches. A command registry fixes dozens of silent controls; a persistent context fixes repeated identity drift; a docking contract fixes repeated resize problems. Preserve the two-developer team's ability to qualify bounded slices without implying that the entire atlas is already operational.
Verification record
Full pane sweep · 8 September
Every one of the 74 authored subpanes was inspected, by two methods that check each other. All thirteen modes were driven in the running desktop window over an accessibility bridge — mode rail, subtab strips, breadcrumbs read back per capture — covering roughly fifty subpanes live. The remaining coverage, and the measurement below, comes from the project's own oracle: MachineSignalSubpaneRenderTest writes one 1180 × 840 sheet per authored subpane to modules/engine/build/reports/machinesignal-panes/, and that directory holds exactly 74 files whose names are precisely the catalog's family/id pairs. Where the two disagree the live window is the authority, because the harness renders with an empty operational snapshot: Cloud, Database, Deploy, Testing, AI and UI all carry real data in the window and none in the sheet. For the unwired subpanes the two agree exactly, because both render the same SubpaneSpec card.
What the live walk found that the sheets cannot show: Database runs a real Cypher statement against production Memgraph and returns real label counts (Chapter 3433, ChapterEdge 3853, Resource 321, Tenant 1) with 1 of 18 connections live; database/history holds 18 real queries with per-query durations from 53 ms to 754 ms; database/relationships lists 89 foreign keys — but reads them from the Postgres/heimdall schema while the selected connection is Memgraph, a graph store with no foreign keys; database/migrations reads 22 checked-in SQL files and states that applied state is not observed. Cloud reads 21 workers, 51 elements and 80 bindings from the repository's own wrangler and k3s configuration, and cloud/pipeline renders C04 live — "ORDERS DISAGREE", the documented deploy order against the order the service bindings require. Deploy exposes 78 operations behind 68 gates with real effect classes; Testing exposes 189 harness operations with their exact gradle and npm command lines. devtools/preview renders the actual BestBuds onboarding screen as a live Compose composition with a semantics tree. Auth is honest and nearly empty: two provider adapters read from source, "No AuthContextProvider is bound, so there are no effective grants to read", and a Roles & Permissions pane that is a credential-gated Postgres reader naming the six environment variables it needs.
Fill measurement, all 74 sheets. Vertical fill is the fraction of the sheet's height above the last row containing content; ink is the fraction of sampled pixels differing from the background. This is the evidence behind CO27.
| Subpane | Vertical fill | Ink |
|---|---|---|
agent-audit | 19.6% | 0.91% |
ai-ai-traces | 19.6% | 1.06% |
ai-notebooks | 19.6% | 1.05% |
ai-prompts | 19.6% | 1.09% |
ai-releases | 19.6% | 1.04% |
database-migrations | 19.6% | 0.92% |
telemetry-pipelines | 19.6% | 0.90% |
auth-audit | 19.8% | 1.15% |
ai-tools | 19.9% | 1.30% |
telemetry-spans | 19.9% | 1.21% |
agent-mcp | 20.0% | 1.31% |
cloud-runs | 21.2% | 1.20% |
telemetry-sources | 21.4% | 1.29% |
devtools-pipeline | 22.7% | 1.09% |
cloud-resources | 23.7% | 1.39% |
analytics-experiments | 24.2% | 1.26% |
cloud-cost | 24.2% | 1.14% |
cloud-pipeline | 24.2% | 1.03% |
ui-design-system | 24.2% | 1.20% |
agent-memory | 24.3% | 1.47% |
ai-evals | 24.3% | 1.60% |
ai-guardrails | 24.3% | 1.58% |
database-schema | 24.3% | 1.50% |
telemetry-ebpf | 24.3% | 1.44% |
telemetry-profiles | 24.3% | 1.51% |
ui-a11y | 24.3% | 1.63% |
agent-agents | 24.5% | 1.52% |
ai-chain-builder | 24.5% | 1.67% |
auth-simulator | 24.5% | 1.61% |
database-relationships | 24.5% | 1.48% |
devtools-source | 24.5% | 1.44% |
ui-flow | 24.5% | 1.40% |
ui-visual-tests | 24.5% | 1.55% |
devtools-logs | 24.6% | 4.90% |
database-data | 24.9% | 4.98% |
database-query-plan | 25.0% | 5.28% |
telemetry-logs | 25.0% | 5.02% |
ui-source-diff | 25.7% | 1.45% |
agent-pipeline | 25.8% | 1.60% |
ui-canvas | 26.1% | 1.65% |
ai-playground | 26.2% | 1.84% |
auth-providers | 26.2% | 1.40% |
telemetry-crashes | 26.2% | 1.46% |
auth-security | 28.3% | 1.86% |
agent-kanban | 29.8% | 1.70% |
analytics-costs | 31.9% | 1.27% |
devtools-recorder | 33.6% | 1.45% |
agent-tasks-dag | 35.2% | 1.57% |
agent-runbooks | 36.3% | 1.77% |
database-history | 36.3% | 1.31% |
analytics-reports | 36.4% | 1.55% |
ui-responsive | 36.7% | 1.75% |
auth-roles-permissions | 36.8% | 1.64% |
devtools-traces | 37.7% | 2.03% |
devtools-releases | 37.9% | 1.65% |
ai-routing-cost | 38.6% | 1.63% |
analytics-errors | 39.6% | 1.67% |
analytics-funnels | 40.8% | 1.58% |
auth-sessions | 40.8% | 1.66% |
devtools-devices | 40.8% | 2.21% |
ai-rag | 41.0% | 2.12% |
analytics-retention | 41.0% | 1.78% |
analytics-cohorts | 41.2% | 1.72% |
telemetry-metrics | 41.3% | 5.63% |
ui-workbench | 49.8% | 2.85% |
telemetry-alerts | 53.0% | 1.35% |
devtools-preview | 56.8% | 2.13% |
devtools-testing | 61.5% | 2.77% |
analytics-performance | 66.4% | 1.95% |
ai-models | 70.0% | 3.35% |
database-query | 74.4% | 6.16% |
cloud-deploy | 76.7% | 3.14% |
agent-chat | 76.8% | 2.51% |
cloud-operations | 84.5% | 4.54% |
Median vertical fill 25.4%, mean 33.1%, range 19.6%–84.5%. Median ink coverage 1.57%. Panes filling under a quarter of their height: 35 of 74. Under 40%: 57 of 74.
Perspectives pass · 8 September
The same sweep, read as six different users. These are readings of what the window affords, not new defects; each one points at issues already numbered above.
- Reaktor contributor. Best served. The graph carries 172 nodes and 153 edges with typed ports, an inspector spanning identity/ports/source/runtime/telemetry, and an explicit provenance line ("Origin: local Graph instance · Remote execution: not observed"). Testing and Deploy together are a real command plane. The irritant is CO26: six panes show him the same five runs, and the bottom dock's Traces, Tests and Build counters sit at zero in every mode.
- BestBuds developer. Three tools work — Cloud topology, the Memgraph query, the live Compose preview — and then the surface stops. Seventeen of eighteen database connections are disconnected, the device lab reports "Adb: not refreshed / Simctl: not refreshed / Idb: not refreshed", and the two artifacts he would actually ship, the Android release bundle and the web distribution, both read FAILED with "Expected build output is absent". He uses it to find a command, then leaves. This is P03 and P01.
- Vibe coder. Worst fit, and CO27 is why: the median pane is three-quarters empty, and every empty state is addressed to the implementer — "Turns on with: a ClickHouse analytics read; the events table is already partitioned for it" tells him nothing he can act on. With no source plane (P02) there is no way to do the one thing he came for.
- Product manager. Nothing usable. Analytics KPIs render "—"; funnels, cohorts, retention, experiments and reports are stub cards; Telemetry offers Grafana "configuration discovered; live signal freshness is not queried". The app never claims otherwise, which is to its credit, but a PM learns only that the plumbing exists.
- CTO. The strongest case in the building, and it is measurable:
cloud-operationsandcloud-deployare the two fullest panes in the file. Every operation carries an effect class — LocateArtifactWrite, ProductionReversibleWrite, DeviceWrite, Destructive — with a gate and a receipt, and dangerous ones are refused with a reason ("Production distribution is disabled until its app artifact/source closure is sealed"). Cloud→Pipeline catches a real contradiction in the repository. The gap he names immediately is reconciliation: "deployed state is not observed", "authenticated Cloudflare version reconciliation is not queried yet". It governs intent, not reality. - Big-tech developer. Two things read as unfinished on first launch. The application draws its own menu bar inside the window — File through Help are in-window buttons and the macOS menu bar carries only Apple and Reaktor — which on macOS reads as a port rather than a native app. And CO27's density collapse is the first visual impression, regardless of how honest the empty states are. He also finds
Diagnostics 220in the status bar with no route to those 220 items.
Pane inventory pass · 8 September
MachineSignalPaneCoverageTest now passes all eight of its tests, so W06 is closed on both sides: the app's mode labels and the design's mode tabs agree. reportPaneCoverage prints 31 of 74 subpanes rendering real data across the nine authored families — unchanged in total since the discovery pass — but the per-family split is where the gap actually sits.
| Family | Wired | Authored |
|---|---|---|
| devtools | 9 | 9 |
| database | 7 | 7 |
| cloud | 4 | 6 |
| agent | 4 | 9 |
| auth | 3 | 6 |
| telemetry | 2 | 9 |
| analytics | 2 | 8 |
| ui | 0 | 8 |
| ai | 0 | 12 |
Two families are complete and two report zero — but see CO28: ui and ai render live data through the generic evidence path, so the zero measures the absence of a SubpaneReads entry, not an empty pane. The 43 pending subpanes each name their own blocker in WorkbenchSubpanes, and three name nothing — they are one projection away from data the workspace already holds: agent/audit and cloud/runs render from the run ledger as soon as runs exist, and auth/security renders source-derived findings the pane already computes. Those are the cheapest coverage in the file.
The number is derived rather than asserted: backedByRealData is SubpaneReads.keys plus the two DevTools subpanes the shell routes to dedicated panes, so a subpane cannot be claimed as wired while showing nothing on screen.
One piece of dead code surfaced while reading: shell/WorkbenchModePanes.kt defines ReaktorModePaneUnavailable — the "states what is missing instead of drawing the tool that is missing" fallback — and nothing calls it. Every mode now maps to a pane, so the branch it was written for no longer exists. Delete it or give it a caller; a fallback that cannot be reached is not a safety net.
Pane anatomy pass · 8 September
:engine:jvmTest runs 249 tests and :reaktorDesktop:test runs 35. The pre-existing pair still fails, and the database tab-contract test was rewritten rather than patched: it now asserts the strip is the authored subpane list, so a rename in reaktor.pen fails the build instead of drifting quietly.
Renders are in machinesignal-shell/. Auth's security posture reads seven checks off the real BestBuds graph and the reaktor-auth checkout, finds one high-risk item — no AuthContextProvider is bound — and the simulator correctly reports that it has nothing to decide with rather than showing an invented verdict. Data now carries the seven authored subpanes over the same 18 discovered connections.
Pane routing pass · 8 September
:engine:jvmTest runs 249 tests and :reaktorDesktop:test runs 35. Everything passes except the same two pre-existing engine failures, one of which is W06 itself. The desktop suite is the meaningful gate here, because it drives the real window: ReaktorWorkbenchSmokeTest opens all twelve non-graph modes as panes inside the shell and then all twelve again as references from the surface chooser, asserting on each pass that the operational control plane is untouched and the mounted graph is not rebuilt; NewWorkbenchIntegrationTest checks that graph selection, search text, layer state and camera zoom survive every mode switch, and that Back and Forward still work across panes, references and the live graph.
Two desktop tests that had been failing on window focus before the recorded repairs — AstraStudioNavigationTest and TypedGraphPointerTest — now pass; they were flaky rather than broken.
One implementation detail worth keeping: two testTags on one modifier chain overwrite each other, so the mode slot is tagged on the slot and the pane keeps its own tag. The first version of this change silently lost database-studio.
Discovery pass · 8 September
This pass added no product code. It added one test — WorkbenchShellRenderTest.thePriorityModesRenderAtTheSupportedWindowSizes, which renders the four pillar modes at 1024 × 720 and 3360 × 1418 — and read the running window, the pane package and the design file's pane contract. Its claims are checkable in this order:
- W01 —
Workbench.ktcomposes the graph editor when the destination is the application graph andReaktorDesignWorkspace(boardId)otherwise.ReaktorWorkbench, the window entry, delegates to the sameReaktorWorkbenchContent, so the sheets are the product. - W02 — grep every composable in
render/compose/panes/for callers outside that package:ReaktorCommandPalette,ReaktorWorkbenchBottomDrawer,ReaktorEditorDrawerStrip,ReaktorInspectionComposerProbeand one table helper are referenced; nothing else is. - W03, W04, W05, GR03, GR04 — read the eight shell sheets side by side.
- W06, GR08, DB06, AU05, DT05 —
src/jvmTest/resources/machinesignal/pen-truth.json→panes, againstReaktorMode.entriesandWorkbenchPaneCatalog.families. - X01 — measure the last painted row of each sheet in
machinesignal-panes/. - 31/74 —
MachineSignalPaneCoverageTest.reportPaneCoverageprints it.
Two engine tests were already failing before this session and still are; both are now findings rather than noise. MachineSignalPaneCoverageTest.everyAuthoredModeTabHasAWorkbenchMode is W06 — it fails because reaktor.pen authors DevTools and Database while the app ships Develop and Data. EngineArchitectureTest.composeRendererUsesLayeredPackagesAndSmallFiles names three oversized renderer files (graph/ReaktorGraphWorkspace.kt 737 lines, panes/BottomDrawer.kt 644, panes/DevToolsPreview.kt 545), none of which this session edited.
Compact-layout pass · 8 September
:engine:jvmTest runs 248 tests. Every studio, workbench, layout, navigation, host-parity and pinned-shell test passes, including the five new compact-layout tests. Two failures remained at that historical checkpoint and were subsequently repaired in F37/F44: EngineArchitectureTest.composeRendererUsesLayeredPackagesAndSmallFiles reports three oversized renderer files (graph/ReaktorGraphWorkspace.kt, panes/DevToolsPreview.kt, panes/BottomDrawer.kt, none touched here), and MachineSignalPaneCoverageTest.everyAuthoredModeTabHasAWorkbenchMode reports two authored mode tabs — DevTools and Database — that the workbench has no mode for. :reaktor-ui:jvmTest passes, with two new kernel tests for the content floor.
The compression-only change is supported by comparison with the previous rendering: all eleven ultrawide captures at 3360 × 1418 differ by zero pixels, while the narrow captures change by 10–20 % on the four boards the audit named (Devices 19.6 %, Cloud 17.3 %, AI 14.0 %, Auth 10.5 %) and by 0.7–2 % elsewhere, which is the newly visible scrollbar. Exact host parity at the authored viewport is unchanged. Before and after captures are preserved under reaktor-context/compose-parity/ui-fixes-2026-09-08/.
Both behavioural compact-layout tests were confirmed to fail with the policy disabled, so they measure the fix rather than describing it.
Previous pass
The final focused run passed 28 native engine tests, five desktop tests and ten shared framework tests: 43 tests, zero failures. It includes actual desktop navigation, keyboard/picker behavior, native pointer input, graph state, exact icon coverage, native host parity and pinned-shell scrolling. Intermediate failures exposed a fixed-height source constraint in nine boards and a test that dispatched a pointer press before the preceding hover/layout frame had settled; the final pointer test exercises the visible settled target and retains the negative close-click assertions.
The seven-board host comparison passes exact decoded RGBA equality against the native board and an independent repeated host render. All 122 native board trees retain exact authored bounds, including intended overflow. These results validate the integration contract, not Pencil-reference raster acceptance.
The current 122-board Pencil run renders every board deterministically at matching dimensions, with zero capture errors. 0/122 pass exact RGBA comparison: 26,023,445 of 235,914,033 compared pixels differ; weighted mean absolute channel delta is 1.074828/255. The suite has changed from the previous 118-board oracle, so these totals are not a like-for-like trend claim. Per-board masks, heatmaps and hashes are in the pencil-comparison evidence directory. The application remains visually unqualified against the requested 100% requirement.
What this audit does not claim
- That all 122 authored boards are operational applications.
- That a containment pass proves absence of sibling or wire/text collisions.
- That a screenshot proves cloud discovery, execution, database access or authority.
- That keyboard, screen-reader, scale, performance or recovery qualification is complete.
- That every possible UI/UX issue has been discovered.
The inventory is complete with respect to the source catalog listed below; the coverage labels make the depth of inspection explicit. New failures belong in this document with evidence and stable issue IDs.
Full board coverage ledger
Every board below was included in the structural source census. Native resized review means a narrow and ultrawide capture was generated and reviewed for the issue classes described above. Other boards have source-level coverage and inherit applicable shared findings; they have not received a claim of exhaustive native interaction testing. Retained references and libraries remain accessible through the atlas and design navigator.
| Board | Source title | Classification | Inspection depth |
|---|---|---|---|
| LzukO | 05.00 · Interface System — Machine Signal Design System | Library | Source census |
| ZCxzu | 04.03 · Reaktor Graph · The distributed system map | CurrentWorkspace | Source census |
| okDnx | 04.04 · Graph · Launch | Reference | Source census |
| Pr3Pv | 04.05 · Reaktor Graph · Compose across every boundary | CurrentWorkspace | Source census |
| Ruuut | 06.01 · Reaktor IDE · Design the interaction, preserve the behavior | CurrentWorkspace | Source census |
| izozd | 06.04 · Reaktor Graph · Runtime and causal trace | CurrentWorkspace | Source census |
| sW0d1 | 08.01 · Reaktor IDE · Harness engineering | CurrentWorkspace | Source census |
| yawya | 09.04 · Reaktor IDE · Query data with its system context | CurrentWorkspace | Native resized review + source |
| Nm5QX | 11.01 · Trace + Product · Outcomes & Regressions | CurrentWorkspace | Source census |
| j8If5 | 09.01 · Reaktor IDE · Why is this action allowed? | CurrentWorkspace | Native resized review + source |
| A0KF5 | 06.05 · Reaktor Graph · Counterexample to reviewed repair | CurrentWorkspace | Source census |
| Hr7rV | 07.04 · Reaktor IDE · Publish the exact system you reviewed | CurrentWorkspace | Source census |
| w4EWt | 13.01 · Reaktor IDE · A visit, one owned turn at a time | CurrentWorkspace | Source census |
| GiULy | 05.01 · Interface · Atomic Catalog | Reference | Source census |
| zJrBc | 12.01 · AI · Models & Operators | Reference | Source census |
| kvPHW | 05.03 · Interface · Command Palette | Reference | Source census |
| aPU6J | 04.02 · Reaktor Graph · Compose ports, preserve source | CurrentWorkspace | Source census |
| ZlHaI | 10.01 · Trace + Runtime · Spans, eBPF & Evidence | Reference | Source census |
| l4tkKY | 04.01 · Graph · System Graph | Reference | Source census |
| Hzi6v | 08.02 · Reaktor IDE · Your team, your way of working | CurrentWorkspace | Source census |
| QPAyL | 08.04 · Reaktor Graph · One graph across runtime islands | CurrentWorkspace | Source census |
| wXLgg | 05.04 · Interface · Drawer States | Reference | Source census |
| n7tbP | 04.06 · Graph · Editing Connections | Reference | Source census |
| T51iyD | 09.02 · Trust · Auth Sessions | Reference | Source census |
| jmEA1 | 09.03 · Trust · Security Simulator | Reference | Source census |
| GaN4a | 07.01 · Reaktor IDE · Device Lab | CurrentWorkspace | Native resized review + source |
| O0ZFq9 | 07.02 · Reaktor IDE · Pipeline | CurrentWorkspace | Source census |
| YdwCE | 06.03 · Inner Loop · Recorder | Reference | Source census |
| cvqmo | 10.04 · Observe · Errors | Reference | Source census |
| i1enWz | 11.02 · Learn · Cohorts & Retention | Reference | Source census |
| ITreE | 11.03 · Learn · Experiments | Reference | Source census |
| GqUVw | 10.02 · Observe · Metrics | CurrentWorkspace | Source census |
| ObFUi | 10.03 · Reaktor IDE · Optimize the selected behavior | CurrentWorkspace | Source census |
| DeFQh | 10.05 · Observe · Alerts & Pipelines | Reference | Source census |
| qtbd3 | 12.03 · Map + Intelligence · Governed Chain Builder | Reference | Source census |
| ZV3fR | 12.05 · AI · Prompts & Evals | Reference | Source census |
| W3npMV | 12.04 · AI · RAG | Reference | Source census |
| L9r7am | 08.03 · Reaktor IDE · Compose how agents collaborate | CurrentWorkspace | Native resized review + source |
| DOTHj | 08.04 · Reaktor IDE · What will this agent know? | CurrentWorkspace | Source census |
| U4IpH | 05.02 · Interface · Responsive & Visual Tests | Reference | Source census |
| z6gUa2 | 09.05 · State · Query Plan & Governed Migrations | Reference | Source census |
| OYUup | 11.04 · Optimize · Costs | CurrentWorkspace | Source census |
| Yb00x | 07.03 · Reaktor IDE · Releases | CurrentWorkspace | Source census |
| Wjmfj | 12.02 · AI · Models & Routing | Reference | Source census |
| QMram | 12.06 · AI · Notebooks | Reference | Source census |
| ED2r5 | 12.07 · AI · Traces | Reference | Source census |
| LXase | 08.05 · Reaktor IDE · An attempt stopped. What actually happened? | CurrentWorkspace | Source census |
| lN1J9 | 09.06 · State · Data Evidence & History | Reference | Source census |
| D3PIAz | 11.05 · Learn · Reports | Reference | Source census |
| OhclB | 13.02 · Trace + Runtime · System Fabric Resource Explorer | Reference | Source census |
| iq3nC | 13.03 · Reaktor IDE · Inspect every boundary in a pipeline | CurrentWorkspace | Source census |
| AgsbM | 13.04 · Extend · Graph Projections | Reference | Source census |
| Gbwnj | 01.01 · Reaktor IDE · What will you build today? | CurrentWorkspace | Source census |
| Mw1gH | 01.02 · North Star · Auth System Slice | Reference | Source census |
| P29oV8 | 01.03 · Reaktor IDE · One system, explicit authorities | CurrentWorkspace | Native resized review + source |
| Mmo0o | 01.04 · Reaktor IDE · Make offline capture dependable | CurrentWorkspace | Source census |
| KM61m | 01.05 · Reaktor IDE · Find the reason, not just the answer | CurrentWorkspace | Source census |
| gVWV6 | 02.01 · Reaktor IDE · Fieldwork is taking shape | CurrentWorkspace | Native resized review + source |
| D0yQo | 02.02 · Create · Design System Graph | Reference | Source census |
| fFimd | 02.03 · Reaktor IDE · Compose from a small, powerful basis | CurrentWorkspace | Source census |
| blRVd | 02.04 · Create · BestBuds Feature Graph | Reference | Source census |
| Wx6KI | 03.01 · Reaktor Graph · Program the living graph | CurrentWorkspace | Source census |
| ysUFy | 03.02 · Extend · Polyglot Boundary Studio | Reference | Source census |
| gddyF | 03.03 · Reaktor IDE · Bring an existing system into focus | CurrentWorkspace | Source census |
| qoZHY | 03.04 · Scale · Constraint Optimizer | Reference | Source census |
| yPKZB | 00 · START HERE — Reaktor Product Atlas | Reference | Source census |
| uVvPE | SECTION 01 · NORTH STAR / UNDERSTAND | Reference | Source census |
| z2yKVY | SECTION 02 · CREATE / COMPOSE | Reference | Source census |
| fSDjL | SECTION 03 · GOVERN / EXTEND / SCALE | Reference | Source census |
| jvUo9 | SECTION 04 · GRAPH SUBSTRATE | Reference | Source census |
| Z2axVY | SECTION 05 · INTERFACE SYSTEM | Reference | Source census |
| wTkHR | SECTION 06 · INNER DEVELOPMENT LOOP | Reference | Source census |
| d1l54 | SECTION 07 · SHIP & RELEASE | Reference | Source census |
| O36J3u | SECTION 08 · AGENT OPERATIONS | Reference | Source census |
| H20qZ | SECTION 09 · STATE & TRUST | Reference | Source census |
| TtM5J | SECTION 10 · OBSERVE | Reference | Source census |
| uicyy | SECTION 11 · LEARN & OPTIMIZE | Reference | Source census |
| e2iRw | SECTION 12 · AI ENGINEERING | Reference | Source census |
| FzAEr | SECTION 13 · RUNTIME & EXTENSIBILITY | Reference | Source census |
| o1sWu8 | REFERENCE LIBRARY · MACHINE SIGNAL | Reference | Source census |
| oxhTK | STATE · Reaktor IDE · Start with the product brief | CurrentState | Source census |
| ZqZ5F | STATE · Reaktor IDE · Agree on the product shape | CurrentState | Source census |
| j7OsB | STATE · Reaktor IDE · Decide when a tradeoff matters | CurrentState | Source census |
| aFYsq | STATE · Reaktor IDE · Ready for the first working slice | CurrentState | Source census |
| Ipum2 | STATE · Reaktor IDE · Building the visit journey | CurrentState | Source census |
| j0RpiZ | STATE · Reaktor IDE · The first journey is ready to try | CurrentState | Source census |
| VsGDs | STATE · Reaktor IDE · The new build needs a repair | CurrentState | Source census |
| X45qZ | STATE · Reaktor IDE · Retry the failed work | CurrentState | Source census |
| ag6vT | STATE · Reaktor IDE · Restore a compatible preview | CurrentState | Source census |
| gt7MZ | STATE · System Studio Shell · Compact 390 | Reference | Source census |
| v0bjJ | STATE · System Studio Shell · Medium 768 | Reference | Source census |
| xqQrc | STATE · System Studio Shell · Expanded 1600 · Dark | Reference | Source census |
| r7L5v | STATE · Reaktor IDE · A release gate needs attention | CurrentState | Source census |
| KWocx | STATE · Reaktor IDE · Recovery has a compatibility boundary | CurrentState | Source census |
| Xd3s4 | STATE · Reaktor IDE · The release is progressing by target | CurrentState | Source census |
| of8K7 | STATE · Reaktor IDE · Release observations match the scoped plan | CurrentState | Source census |
| HfRjK | STATE · Reaktor IDE · Recovery still has an unresolved effect | CurrentState | Source census |
| pj1eK | 04.06A · Graph · Editing Connections — Connected | Reference | Source census |
| a1cWFd | 04.06B · Graph · Editing Connections — Rerouted | Reference | Source census |
| Ri7Es | STATE · Reaktor IDE · Choose behavior for each target | CurrentState | Source census |
| VLrsK | STATE · System Studio Shell · Expanded 1600 · Light | Reference | Source census |
| V2GduQ | STATE · System Studio Shell · Expanded 1600 · High Contrast | Reference | Source census |
| L8el1 | 04.07 · Map · Zoom & Level of Detail | Reference | Source census |
| hqJ9u | 04.08 · Reaktor Graph · Commit and semantic patch review | CurrentWorkspace | Source census |
| CU5sk | 14.00 · Reaktor · Machine Signal interaction kit | Reference | Source census |
| mmz92 | 14.01 · Reaktor · Fieldwork product preview component | Reference | Source census |
| p4vwb | 14.02 · Reaktor IDE · Evolve a marked runtime boundary | CurrentWorkspace | Source census |
| oKbaW | 14.03 · Reaktor IDE · A useful next step in every state | CurrentWorkspace | Source census |
| LI1ng | 15.00 · Reaktor IDE · Workbench components | Reference | Source census |
| A0a5je | 15.02 · Reaktor IDE · Workspace layouts and pinned context | CurrentWorkspace | Source census |
| IRQ5A | 15.03 · Reaktor Graph · One living system | CurrentWorkspace | Source census |
| p0Fgf | 16.00 · Reaktor Graph · Living graph instruments | Library | Source census |
| nXDMm | 16.02 · Reaktor Graph · Route and orchestrate an end-to-end flow | CurrentWorkspace | Source census |
| ufhps | 16.01 · Reaktor Graph · From UI element to the whole system | CurrentWorkspace | Native resized review + source |
| C2Cd7K | 16.03 · Reaktor Graph · Orchestrate from any event or intent | CurrentWorkspace | Source census |
| LODux | 17.02 · Reaktor Graph · BestBuds — follow a selection across tools | CurrentWorkspace | Source census |
| FsQx4 | 17.01 · Reaktor Graph · BestBuds — whole-application topology | CurrentWorkspace | Source census |
| Wgw9w | 16.05 · Reaktor Graph · Map viewport instruments | Library | Source census |
| DBc14 | 04.03A · Reaktor Graph · System map — Cloudflare edge district | CurrentWorkspace | Native resized review + source |
| pxsmW | 04.03B · Reaktor Graph · System map — capture feature and its boundary | CurrentWorkspace | Native resized review + source |
| Pu9Sf | 04.03C · Reaktor Graph · System map — exact port and selected execution | CurrentWorkspace | Native resized review + source |
| W9V37c | 04.03D · Reaktor Graph · System map — realtime session and durable delivery | CurrentWorkspace | Native resized review + source |