$npx -y skills add testdouble/han --skill work-items-to-linearTurn a work-items.md file (produced by /plan-work-items) into Linear issues, one per slice, in a single target Linear team. Use when you want to publish work items as Linear issues, create implementation tickets to track in Linear, or push a broken-down plan into a Linear team. R
| 1 | # Work Items to Linear Issues |
| 2 | |
| 3 | Take an already-broken-down `work-items.md` file (produced by `/plan-work-items`) and publish each slice as a Linear issue in a single target team. |
| 4 | |
| 5 | The breakdown work — drafting slices, assigning symbolic IDs, specifying dependencies, inventorying references — has already been done upstream. This skill validates the format, confirms the target against the live team, creates one issue per slice through the Linear MCP server, links the within-file dependencies as native "blocked by" relations, and reports. |
| 6 | |
| 7 | ## Rules |
| 8 | |
| 9 | - **Every slice posts into one Linear team.** This skill does not split work across teams or repos. A `work-items.md` that names multiple code repos still produces issues in the single team you name; the repo prose is informational only. |
| 10 | - **Dependencies are within-file only.** Every SYM named in a `Depends on` line must resolve to another slice in the same file. A `Depends on` that names an unknown SYM, names the slice itself, or forms a cycle is a format error to surface for repair, never published. |
| 11 | - **Symbolic-ID prefixes:** accept whatever the input uses. Any uppercase prefix shape is valid (`W-N`, `V2-N`, `EV-N`, ...); the prefix has no effect on team placement. |
| 12 | - **Resolve against the live team before writing.** Read the team's real workflow states, labels, Projects, and members, and resolve every named option against them before creating any issue. Nothing is assigned, categorized, grouped, or moved unless asked. |
| 13 | - **No issue types.** Linear has no issue-type concept. The skill never asks for or sets one. Categorization is via the team's real labels, chosen by the user. |
| 14 | - **Every slice issue MUST carry the reference artifacts an implementer needs** — API/event contracts, design references, schema docs, runbooks, ADRs, coding standards. Full include/exclude list in [references/reference-artifact-inventory.md](references/reference-artifact-inventory.md). |
| 15 | - **NEVER include process artifacts in issue descriptions.** Excluded: iteration histories, decision logs, review findings, team findings, facilitation summaries, gap analyses, and anything under an `artifacts/` subfolder of the plan that is not a contract or design reference. |
| 16 | - **No image upload or embedding.** Design references are carried as links, not uploaded into Linear. See [references/linear-issue-template.md](references/linear-issue-template.md). |
| 17 | |
| 18 | ## Process |
| 19 | |
| 20 | ### 0. Linear MCP preflight (hard requirement) |
| 21 | |
| 22 | This skill cannot run without a configured and connected Linear MCP server. Confirm it is reachable by calling `mcp__plugin_linear_linear__list_teams`. If the tool is unavailable, the call errors, or no workspace is accessible, **stop immediately** and tell the user the skill requires the Linear MCP server to be installed, configured, and authenticated. Do not fall back to any other publishing target. |
| 23 | |
| 24 | If the integration exposes more than one Linear workspace, note which are available and confirm which one to use before resolving the team. |
| 25 | |
| 26 | ### 1. Locate the work-items file |
| 27 | |
| 28 | If the path is not provided, ask for it. The input is a single `work-items.md` produced by `/plan-work-items`. Read it. Its format is described in [references/work-items-file-format.md](references/work-items-file-format.md). |
| 29 | |
| 30 | ### 2. Gather the run options |
| 31 | |
| 32 | Read these from the arguments and conversation; do not guess defaults the user did not ask for: |
| 33 | |
| 34 | - **Target team** — `--team <name or key>`. **Required.** If |