Workbench Definition owns template create; Code review onboards in an empty channel with no host - #421
Merged
TheGreatAxios merged 3 commits intoAug 29, 2026
Conversation
… 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 oldWorkbenchTemplateManifestnames.Create-from-template instantiates the definition, then runs its onboarding steps.
instantiateWorkbenchTemplategains a typedbeginOnboarding(steps)port and drops its "todo" notes about webhook triggers. The web flow mints an emptykind: "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/chatgainsPOST /workbenches/:id/onboarding, which posts aconnect-githubblock from asystem@<workbenchId>sender carrying the definition's title, promise, and step labels. ThetemplatePromise/connectGithubRequiredForcreate-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 checkgreen (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 tobeginOnboardingin order and never invites Myra, web create flow POSTs/onboardingwith GitHub disconnected and connected alike.Notes for review
apps/webcopy says "workbench template" rather than "definition" in one throw becausecheck:ui-vocabularybans the word in user-visible strings.