Switchyard Implementation Checklist
April 17, 2026 ยท View on GitHub
Status: baseline delivered; execution-plane unification delivered on 2026-04-16 Scope: current workspace architecture, Workbench framework extraction, execution-plane unification, Switchyard TUI rewrite, integration migration, and delivery verification
Required Reading
Read these before making structural changes:
README.mdguides/index.mdguides/current_state.mdguides/vision.mdguides/monorepo_strategy.mdguides/package_boundaries.mdguides/runtime_model.mdguides/workspace_workflow.mdguides/testing_and_delivery.mdbuild_support/workspace_contract.exsbuild_support/dependency_resolver.exsbuild_support/weld.exscore/workbench_node_ir/README.mdcore/workbench_tui_framework/README.mdcore/workbench_widgets/README.mdcore/workbench_devtools/README.mdapps/terminal_workbench_tui/README.mdapps/terminal_workbench_tui/lib/switchyard/tui/root.exapps/terminal_workbench_tui/lib/switchyard/tui/state.excore/workbench_tui_framework/lib/workbench/runtime.excore/workbench_tui_framework/lib/workbench/effects.excore/workbench_process_runtime/README.mdcore/workbench_process_runtime/lib/switchyard/process_runtime.excore/workbench_daemon/README.mdcore/workbench_daemon/lib/switchyard/daemon/server.exapps/terminal_workbench_cli/README.mdapps/terminal_workbench_cli/lib/switchyard/cli.exapps/terminal_workbench_tui/README.mdapps/terminal_workbench_tui/lib/switchyard/tui.exapps/terminal_workbench_tui/lib/switchyard/tui/cli.exapps/terminal_workbench_tui/lib/switchyard/tui/root.exsites/site_local/README.mdsites/site_local/lib/switchyard/site/local.exsites/site_execution_plane/README.mdsites/site_execution_plane/lib/switchyard/site/execution_plane.exsites/site_jido/README.mdsites/site_jido/lib/switchyard/site/jido.ex../ex_ratatui/lib/ex_ratatui/command.ex../ex_ratatui/lib/ex_ratatui/subscription.ex
Invariants
- The root is a workspace and docs layer, not a true umbrella.
- The daemon owns durable local operational state.
- The execution plane owns command placement and sandbox honesty.
- The shell owns pure product navigation state.
- The Workbench runtime owns generic terminal execution concerns.
- Sites own domain mapping and actions.
ex_ratatuitransport serves the UI layer, not managed process execution.- Greenfield solutions only: no workarounds, no compatibility shims, no backwards-compatibility layers.
Live Checklist
Phase 0: Baseline
- Confirm repo state with
git status --short --branch. - Confirm required reading against the current codebase.
- Confirm root
mix ciis green after the current implementation run.
Phase 1: Framework Packages
- Add
core/workbench_tui_framework. - Add
core/workbench_node_ir. - Add
core/workbench_widgets. - Add
core/workbench_devtools. - Update dependency resolution and Weld roots for the new packages.
- Keep package docs and READMEs aligned with the delivered public surface.
Phase 2: Framework Runtime
- Add the Workbench component contract.
- Add context, screen, capability, node, and runtime index structures.
- Add render tree, focus tree, and region map structures.
- Add keymap, action, effect, transcript, and renderer seams.
- Add the thin runtime bridge to
ex_ratatui. - Expand runtime tests as the public surface grows.
Phase 3: Product TUI Rewrite
- Replace the legacy mounted-app path with framework-native components.
- Introduce a thin product app bridge over
Workbench.Runtime. - Add a Switchyard root component and product state module.
- Delete the old
Command,Controller,Keymap,Model,Mount,Renderer, andScreenUImodules. - Keep the daemon as the operational authority.
Phase 4: Integration Migration
- Migrate Jido Hive to
AppDescriptor.tui_component. - Replace
RoomsMountwith a framework-native component. - Move room/runtime/view integration to Workbench widgets and commands.
- Re-prove the integration seam with tests.
Phase 5: Docs And Delivery
- Update all repo guides and package READMEs to match the delivered architecture.
- Run
mix mr.format --check-formatted. - Run
mix mr.compile. - Run
mix mr.test. - Run
mix mr.credo --strict. - Run
mix mr.dialyzer. - Run
mix mr.docs --warnings-as-errors. - Run
mix weld.verify. - Run root
mix ci.
Final Validation Record
-
mix ci -
mix weld.verify -
mix mr.compile -
mix testinjido_hive_switchyard_site -
mix testinjido_hive_switchyard_tui -
mix mr.compilein~/p/g/n/jido_hive
Packaging Note
The welded switchyard_foundation monolith remains an internal artifact and
keeps hex_build: false in the Weld manifest.
That does not change the repo's publication posture:
- the runtime is designed against the published
ex_ratatuiHex package - the welded artifact is still tracked internally through bundle, projection, and archive steps
release.publishremains out of scope for this repo
Current internal artifact operations therefore run through:
mix release.preparemix release.trackmix release.archive
mix release.track updates the orphan-backed
projection/switchyard_foundation branch so downstream repos can pin a real
generated-source ref before any formal release boundary exists.
Keep the committed workspace dependency on the released Hex Weld line. If a coordinated prerelease Weld validation run is needed, do it through a normal prerelease version bump rather than through committed path or git overrides.
Recontextualization Instructions
If work resumes after compaction:
- Read this file top to bottom.
- Re-read the required reading list.
- Confirm current repo state with
git status --short --branch. - Confirm workspace state with
mix mr.compile,mix mr.test, andmix ci. - Resume from the earliest unchecked item.
TDD / RGR Rule
Wherever behavior is being introduced, use:
- red: write the failing test
- green: implement the minimum coherent behavior
- refactor: improve names, structure, and documentation without weakening the seam
The framework and product TUI should continue to grow by proving the seam first and only then broadening the surface.