Submit Workflow (Admin)
Create or update a partner workflow submission in draft state. Returns Stage-1 lint inline. Requires an admin-scoped API key. Per spec §6.1, the response carries {submissionId, status: 'draft', validationSummary}. TIP: run the prepare_submission prompt first to assemble a review-ready payload in your own model (free), then submit and call admin_request_review.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
submissionId | string | - | |
name Required | string | - | |
slug Required | string | - | |
description Required | string | - | |
heroCopy Required | string | - | |
promptBody Required | string | - | |
requiredMcpServers | array | [] | |
recommendedSkills | array | [] | |
marketingUseCases Required | array | - | |
marketingUseCases[].title Required | string | - | |
marketingUseCases[].description Required | string | - | |
useCases | array | [] | |
preferredModel | string | anthropic/claude-sonnet-4.6 | |
allowedTools | array | [] | |
defaultParams | object | {} | |
meshCategory | string | - | |
screenshotUrl | string | - | |
version | integer | 1 | |
changelog | string | - | |
outputSchema | object | - |
Use Cases
- Create a new partner workflow submission in draft, with inline Stage-1 lint feedback
- Update an existing draft submission's payload (pass its submissionId)
- Prepare a workflow for the review gate — then call admin_request_review
Example Usage
Create a workflow draft
{
"tool": "admin_submit_workflow",
"arguments": {
"name": "Account Research Brief",
"slug": "account-research-brief",
"description": "Generates a one-page research brief for a target account.",
"heroCopy": "Turn a domain into a sales-ready brief.",
"promptBody": "---\nparameters:\n - name: domain\n required: true\n---\nResearch {{domain}} and produce a brief.",
"marketingUseCases": [
{
"title": "Sample output",
"description": "A formatted research brief for cisco.com."
}
]
}
}
Response Format
| Field | Type | Description |
|---|---|---|
submissionId | string | null | UUID of the created/updated submission. Null only on the pre-write slug_collision path (validationSummary carries a single slug_collision error). |
status | string | Submission state after this call. |
validationSummary | object | Stage-1 lint result (same shape as validate_submission output). Absent on the happy path when no issues surfaced. |
validationSummary.status | string | |
validationSummary.issues | array | |
validationSummary.issues[].code | string | Stable issue code (ISSUE_CODES). |
validationSummary.issues[].severity | string | |
validationSummary.issues[].field | string | |
validationSummary.issues[].message | string | |
validationSummary.issues[].fixHint | string | Actionable remediation hint for blocking issues. |