How should my skill ask the user for missing arguments?
When your skill is invoked, the host injects an instruction telling the model to collect anything it still needs through an inline elicitation form rather than through AskUserQuestion, and the answers come back as bullet points in the next message instead of as a tool result. Declaring an argument-hint is what makes that path work well. This is a steer, not a wall: AskUserQuestion still exists and still functions.
Do not build your skill's argument collection around AskUserQuestion in Cowork.
On every top-level skill invocation (not inside sub-agents) the host injects an instruction telling the model to gather missing context through the elicitation form — pills, free text, dates, a file dropzone — and explicitly not through AskUserQuestion, which it reserves for one-off clarifications mid-task. The answers arrive as bullet points in the model's next message, not as a tool result, so a skill written to wait for a tool result is waiting for something that will not come. Declaring argument-hint in your frontmatter is what makes this path work: the hint is passed through verbatim, and a skill without one leaves the model told to infer what to collect from your SKILL.md.
What is not established
- The instruction is injected text, not an enforcement boundary. Whether a model follows it in any given run has not been observed here — only that Cowork sends it, and that the flag delivering it read on at the last capture.