Spec
agentSpec
A versioned, validated draft of the agent: capabilities, tools, prompts, slots. Source of truth for every pass downstream.
the builder · agentic
spec → code → typecheck → smoke → ship.
Describe the agent you need. Talk to it while it’s still wet. The builder writes the code, runs the typechecker, fixes its own ESLint errors, smoke-tests at runtime, and only ships when green. Output is a signed ZIP plugin with the same install path as every other omadia plugin.
01 · the honest pitch
They ask you to pick from a dropdown, swap a few placeholders, and call it generation. We did the other thing. The omadia builder is an agent in its own right. It writes the TypeScript. It runs `tsc`. It runs ESLint with auto-fix. It boots the plugin in a sandbox and pokes it with synthetic input. If a pass fails, it reads the error and tries again. You see every step.
If your generator doesn’t run the typechecker, it isn’t generating code; it’s generating wishes.
02 · pipeline
Every plugin draft moves through the same gated pipeline. Each pass has a structured failure mode, with a repair loop the builder agent drives itself.
agentSpec
A versioned, validated draft of the agent: capabilities, tools, prompts, slots. Source of truth for every pass downstream.
codegen + boilerplate
Spec is rendered into a working plugin tree on top of the live boilerplate. No string-template black box. Every emitted file is reviewable.
slotTypecheckPipeline · eslintAutoFix
TypeScript strict-mode compile plus ESLint with auto-fix. Errors are parsed, fed back to the builder agent, and patched in place.
runtimeSmokeOrchestrator
The plugin is loaded in a sandbox, given synthetic input, and observed end-to-end. Crash, timeout, schema-mismatch. All caught here, not in production.
installCommit
Green plugin gets sealed into a signed ZIP and committed to the Plugin Store. Same install surface as any other plugin. Uninstall is clean.
spec
agent: hr-time-off · capabilities: chat · tools: list_pto, request_leave · channel: teams
03 · what you get
Each one ships in the box. Each one is the reason we built our own.
Live preview chat with the half-finished agent. Tweak the prompt, watch the next turn change. No build–wait–test loop.
Typecheck and lint failures feed back into the builder agent as structured hints. It patches, recompiles, retries, and shows you the diff.
Synthetic input, sandboxed boot, end-to-end observation. A plugin that ships, ran. A plugin that didn't, doesn't.
Clone any installed plugin back into an editable draft. Modify, retest, reinstall. The bundle is the spec, the spec is the bundle.
Builds run in an isolated worker. No host-process access, no internal-package leakage, manifest linted before install.
Output is a normal signed ZIP plugin. It goes through the same Plugin Store, the same signature check, the same Capability matrix as any third-party plugin.
04 · next
Today the builder ships agent plugins. Next, it ships their operator dashboards too. A single ui_routes block in the spec compiles to a React-SSR dashboard route mounted by the middleware. Same pipeline, same passes, same signed-ZIP output. Currently in flight. uiRouteSchema landed on main today.
05 · pilot
Pick a 30-minute slot. We open the builder live, spec out an agent that fits a real workflow on your side, and you walk away with a draft you can install on your infrastructure.