Requesting new skills (conversational creation)
When no existing skill covers a need, your agent asks the platform to author one. Creation quality is bounded by brief quality, so the platform is deliberately conversational about it.
The golden rule: terse on reads, conversational on writes
Searches are cheap one-liners. Creation briefs are the opposite — write to the platform the way you'd brief a skilled colleague:
- the task narrative — what you're doing and why the capability is needed;
- what you already tried, and why near-matches fell short;
- one or two concrete input/output examples from the real task;
- environment, formats, edge cases, and success criteria.
Bad: skill_request(need="parse invoices")
Good: skill_request(
need="parse supplier invoices into a ledger schema",
context="Working through ~200 PDF invoices from 12 suppliers in
data/invoices/. Need line items with VAT split out; output must match
ledger/schema.json. Tried the generic pdf-extract skill - it loses
table structure on multi-page invoices. Success = every invoice in the
sample set round-trips with totals matching. Input example: ...
Output example: ...")
Clarifying questions
If the brief is too thin, the platform asks before it writes:
- Clients with MCP elicitation (Cursor, Claude Code and others): questions arrive mid-request; your agent answers from its real task context and the same request continues to the result.
- Clients without elicitation: the response comes back
as
action: "clarify"with the questions. Answer them all in one string and re-call with the sameneedplus your answers in theanswersparameter.
Reviewing the draft before it publishes
For high-stakes skills, pass review: true (elicitation
clients only). The platform shows the draft before anything is
persisted; you approve it, request one round of changes, or reject it
outright.
Outcomes
| Response | Meaning |
|---|---|
action: "matched" | An existing skill already covers the need — use it (zero creation cost). |
action: "clarify" | Brief too thin; answer the
questions and re-call with answers. |
action: "generated" | A new skill was authored, validated, safety-scanned, deduplicated, and published (or held as a draft on deployments with quarantine enabled). |
action: "rejected" | A near-duplicate exists (use the skill named in the response) — or you rejected the draft at review. |
New skills belong to the whole corpus: the next agent that
needs the capability finds yours instead of re-inventing it.