Collect the document’s content from whatever is available — in order of priority:
/create-linear-document write up the migration plan)If none of the above provide enough signal, ask the human what the document should cover.
A Linear document requires exactly one parent: a team, project, initiative, cycle, or issue. Ask the human which one this document belongs to, unless it’s obvious from context (e.g. they were just discussing a specific project).
Use the Linear MCP to resolve the parent to its ID — never pass a human-readable name straight into save_document:
mcp__linear__list_teams, use the resolved team IDmcp__linear__list_projects, use the resolved project IDmcp__linear__list_initiatives, use the resolved initiative IDmcp__linear__list_cycles (scoped to that team) to resolve the specific cycle; cycle names/numbers alone are ambiguous across teamsmcp__linear__get_issue with the identifier they gave you (e.g. LIN-123) to confirm it exists and obtain its ID; do not assume the human-readable identifier is accepted by save_document without confirming via get_issue firstPass exactly one parent field to save_document — never more than one. If context makes more than one parent plausible (e.g. the human mentions both an issue and its project), ask which one the document should attach to; do not guess or pass both.
If the Linear MCP connector is not configured (i.e., LINEAR_API_KEY is not set in mcp.env), prompt the human to add it before proceeding.
Construct a draft with:
_Drafted by {your identity} on behalf of @<handle>._
<the actual document content, structured with headings as appropriate>
Rocket or :eagle:), not a raw Unicode emojiPresent the full draft — title, parent, and content — clearly. Remind the human that this will post the drafted content to Linear where it may be visible to the whole team. Do not create the document until explicitly approved.
Once approved, call mcp__linear__save_document with title, content, and exactly one parent field (team, project, initiative, cycle, or issue) resolved in Step 2.
Report back:
save_document response actually contains — report only what the tool returned; do not construct or guess a URL if it isn’t present in the responseIf the human wants to edit a document instead of creating one, resolve it via mcp__linear__get_document or mcp__linear__list_documents, then call mcp__linear__save_document with its id set. title is only required when creating — when updating, you may pass just id and the fields you’re changing (e.g. content) and omit title and the parent entirely. Passing a parent on update reparents the document — only do this if the human explicitly asks to move it.