Skip to content

Workbench Definition owns template create; Code review onboards in an empty channel with no host - #421

Merged
TheGreatAxios merged 3 commits into
mainfrom
cl-7100-workbench-definition-owns-template-create
Aug 29, 2026
Merged

TheGreatAxios merged 3 commits into
mainfrom
cl-7100-workbench-definition-owns-template-create

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Closes CL-7100, CL-7099 (parent CL-7098).

What changed

One type describes a template. WorkbenchDefinition (arktype, @corbits/workflow-catalog) — default agents, routines, tools, plugins {required, optional}, and ordered onboarding steps (connect-plugin → pick-github-repos → start-webhook-trigger). Validation fails loud when a required plugin has no connect step, a step names something the definition doesn't carry, or the walkthrough is out of order. The three shipped manifests are that type; no aliases for the old WorkbenchTemplateManifest names.

Create-from-template instantiates the definition, then runs its onboarding steps. instantiateWorkbenchTemplate gains a typed beginOnboarding(steps) port and drops its "todo" notes about webhook triggers. The web flow mints an empty kind: "workbench" channel with no host, instantiates, then posts the walkthrough into the room.

The card is posted by a route, not as a side effect of hosting an agent. @corbits/chat gains POST /workbenches/:id/onboarding, which posts a connect-github block from a system@<workbenchId> sender carrying the definition's title, promise, and step labels. The templatePromise / connectGithubRequiredFor create-body fields and the greet-then-card branch of the hosted mint are removed. Settling a credential a template room waits on posts the connected event from the system address and never wakes an agent.

Code review is three reviewers and a GitHub walkthrough — no Myra. The /new "already connected → pick repos in a dialog" path is deleted: the in-room card reads connected state live and flips straight to the repo pick, so there is one walkthrough, not two.

Verification

bun run check green (typecheck, lint, 6518 tests, structural). New tests: empty-channel onboarding route (system sender, no agent launched), settle never wakes an agent for template-only matches, definition round-trip and every fail-loud rule, instantiation hands the three steps to beginOnboarding in order and never invites Myra, web create flow POSTs /onboarding with GitHub disconnected and connected alike.

Notes for review

  • GTM declares connect steps for attio/exa that the web binding cannot run yet; it is not offered by the picker and instantiation already throws for it — both throws are the honest state.
  • apps/web copy says "workbench template" rather than "definition" in one throw because check:ui-vocabulary bans the word in user-visible strings.

… hosting an agent

Add POST /workbenches/:id/onboarding, which posts a connect-github block
into a hostless channel from a system sender, so a template's walkthrough
runs in the empty room it creates. The card carries the definition's
title, promise, and ordered step labels.

Drop the templatePromise and connectGithubRequiredFor create-body fields
and the greet-then-card branch of the hosted mint; the canned greeting is
for agent DMs only. Settling a credential a template room is waiting on
posts the connected event from the system address and never wakes an
agent — a reviewer roster has no host to answer.
One arktype WorkbenchDefinition now describes what a template creates:
default agents, routines, tools, plugins, and ordered onboarding steps.
The shipped manifests are that type; validation fails loud when a
required plugin has no connect step, a step names something the
definition does not carry, or the walkthrough is out of order.

Instantiation gains a typed beginOnboarding port and no longer emits
"todo" notes about webhook triggers. The web create flow mints an empty
channel with no host, instantiates the definition, then posts its
walkthrough into the room — Code review is three reviewers and a GitHub
walkthrough, with no Myra. The /new repo dialog for an already-connected
GitHub is gone: the in-room card reads connected state live and flips
straight to the repo pick, so there is one walkthrough, not two.
@TheGreatAxios TheGreatAxios changed the title cl 7100 workbench definition owns template create Workbench Definition owns template create; Code review onboards in an empty channel with no host Aug 27, 2026
@TheGreatAxios
TheGreatAxios merged commit 5f9ef59 into main Aug 29, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant