Plugin Creator
Turn the requested workflow into an organization-managed Canvas package. A plugin contains at least one complete skill, its purpose graphic, and any required connection declarations. A single independent skill can use Skill Creator instead. Existing separate skills and connections remain usable independently.
Establish the useful result
Use the conversation to determine purpose, inputs, output, new versus existing skills, required integrations, and intended users. Ask only for information that changes the result and cannot be inferred. A request to plan stays a plan; a request to create and make the plugin usable authorizes the necessary internal creation steps. Keep the target organization and intended access visible in the preview. Public marketplace submission and server hosting are separate workflows.
Use the existing canvas_extensions gateway: search for the needed operation, describe its exact schema, then call with that schema. A directly registered operation can be used directly. Tool names in this skill describe routes to discover, not permission or schema definitions. Missing operations or creation rights require an honest limitation; legacy personal installers are not an alternative organization-creation path.
Create or resume one draft
- New plugin:
create_canvas_package_draft with operation: "create", kind: "plugin", a stable lowercase name, and a fresh UUID requestId. Organization and actor come from the server; send no ownership, user ID, or server path.
- Resume: use the known
draftRef; otherwise list_canvas_package_drafts. Inspect its current files, revision and operation status before continuing. Link the returned draft in the chat so another chat can resume it.
- Edit: inspect the exact resource with
inspect_canvas_package, then create an edit draft using its current metadata, grants and package-head revisions. An existing read-only package may permit a differently named fork; keep its explicit source/target contract. Do not replace core content or mutate a published revision.
- Recover uncertain create/publish results with
inspect_canvas_package_operation using the original request ID or draft reference. For uncertain file/composition writes, inspect the current draft and affected files first. Never blindly create another draft, repeat publication, or overwrite a newer revision.
Use the common package file tools with relative paths, base64 content and the latest expectedDraftRevision. Preserve files not involved in the request. Draft files are private authoring content; do not execute them through workspace or runtime bypasses.
Compose the actual package
Load package-and-connections.md when writing the manifest or connection requirements. Start with a useful narrow skill; Skill Creator can author a new child directly in this draft when given its exact draft reference and child root. No preliminary standalone installation is needed.
For existing skills and integration requirements, call search_canvas_extensions with purpose: "authoring", a useful query and optional type filters. This is the same catalog as the Plugins page, using metadata only. A normal runtime search returns only the agent's current installed runtime selection and is not the complete authoring catalog. Account authorization, live reachability and tool schemas are not tested by this search.
Use inspect_canvas_package_authoring_source for the exact readable resource and chosen version. Select the returned verified source entries for compose_canvas_package_skills with the current draft revision. For a historical plugin child, select the parent resource, its exact revisionRef, parent checksum and declared childRelativeRoot. A direct child selection also requires the inspected parent checksum. The batch service copies complete content, resolves parent resources and hoists standalone MCP declarations. Review its reported reference/version changes and preserve license and author attribution. Resolve a conflict explicitly; do not silently rename, overwrite or copy a same-name skill from elsewhere. A Store offering must first use its explicit existing installation workflow before it is a readable copy source.
For one Composio or MCP requirement, use add_canvas_package_requirement with the current draft revision and selected catalog identity. Composio contributes the exact toolkit slug. An MCP needs an explicit portable connectorName for this package. The private selected connection, definition, profile or account is not saved in the manifest. Add the corresponding portable Workflow V1 capability if the skill needs it; the manifest and workflow must agree. Rich existing declarations are preserved; edit a conflicting declaration explicitly rather than replacing it silently.
Legacy managed workspace drafts can be inspected with inspect_canvas_package_workspace_draft and explicitly imported into an empty common draft with import_canvas_package_workspace_draft. Use the returned identity and checksum. Leave the original workspace draft intact.
Create the purpose graphic
Load the complete plugin-visual member of the system Plugin Creator through the exact authorized skill path supplied by plugin context or metadata discovery. With a legacy direct create-plugin reference, use its supplied visual dependency/read recipe. Do not guess an absolute filesystem path or install another illustration package.
Create an original small purpose illustration at assets/logo.svg; point interface.logo to ./assets/logo.svg. Follow that child skill's passive SVG, accessibility and preview rules. The image should explain this plugin's job, rather than repeat the generic Creator icon. Referenced external provider logos remain provider branding, not the generated purpose image.
Validate and make it usable
- Present graphic, name, organization, intended access, included skills and connection requirements first. Keep manifest/files, provenance and version details behind optional detail. Selected references stay inline in chat text.
- Call
validate_canvas_package_draft for the current revision. Repair the returned file/field errors and validate again. Do not call a structural check a successful provider or workflow test. A changed draft needs fresh validation; final publication validates again.
- When internal saving is requested, call
publish_canvas_package_draft using the current draft, metadata, grants and head revisions and a stable UUID request ID. Do not route through install_canvas_plugin_from_workspace or a public marketplace upload.
- Publication, use access and activation are distinct. Retain the actual published
resourceRef, publishedRevisionRef and checksum as its exact pin. Call inspect_canvas_package_provisioning for that pin. Use provision_canvas_package with fresh expected revisions for separate explicitly requested set_use_audience and activate steps. The audience is either explicitly selected users or all organization members (which can include external members); do not infer it from organization ownership. Empty users grants no Use. This flow changes only Use and preserves existing Edit/Manage rights. canManage and canEdit do not imply canUse. An optional organization policy additionally needs the user's own opt-in: when the request includes using the package, use enable_for_me with the inspected personal activation revision for the current actor only. Do not change other members' preferences or the organization's policy. If a later step fails or its reply is lost, inspect provisioning and resume only that step on the saved version; never publish a duplicate or silently switch to a newer head.
- Use existing requirement/setup and personal binding tools to choose each actual MCP definition or Composio profile/account. Display incomplete setup. Never copy the Creator's private bindings into the portable package or choose another account automatically.
- A behavior test uses the exact published organization revision through ordinary chat/agent context, after valid use access and activation. Use harmless authorized read operations or the requested example. Do not test a business mutation incidentally, or repeat an action with an uncertain outcome.
Finish with the draft or saved version link, precise version, included workflows, intended access, graphic and remaining connection/test state. After publication, further editing starts a new edit draft; prior pins and published files stay unchanged. A model that cannot visually inspect the result should say so rather than inventing a visual acceptance result.