一键导入
onex-plan-to-tickets
Parse a plan file and batch-create Linear tickets — one per `## Task N:` section.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Parse a plan file and batch-create Linear tickets — one per `## Task N:` section.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use this skill when the user has a rough idea, wants to explore a feature, or says "let's brainstorm" or "help me design." The goal is to refine an idea into a validated design doc before any code is written.
Use this skill when ending a session and you want the next session to pick up where you left off. The goal is to capture enough context for seamless session continuity.
Use this skill when starting feature work that needs isolation from the current workspace, or when you need to work on multiple branches simultaneously. The goal is to create an isolated worktree with a verified clean baseline.
Use this skill when fixing a bug caused by invalid data reaching deep into execution. The goal is to add validation at every layer the data passes through, making the bug structurally impossible to reproduce.
Use this skill when documentation has drifted from the codebase, needs an inventory, or should be archived.
Autonomous implementation pipeline. Reads a plan file, reviews it adversarially,
| name | onex-plan-to-tickets |
| description | Parse a plan file and batch-create Linear tickets — one per `## Task N:` section. |
| disable-model-invocation | true |
Parse a plan file and batch-create Linear tickets — one per ## Task N: section.
Called automatically by execute_plan, or invoked directly.
Announce at start: "I'm using the onex-plan-to-tickets skill."
/plan-to-tickets docs/plans/my-plan.md [--dry-run] [--skip-existing]
Read the plan file. Find all ## Task N: headings (H2 level). Each heading = one ticket.
Example:
## Task 1: Write failing test for webhook handler
## Task 2: Implement webhook handler
## Task 3: Add integration test
→ 3 tickets will be created.
Call tracker.list_teams. If multiple teams exist, ask the user which to use.
Cache the team ID for all subsequent calls.
Call tracker.create_issue with:
title: plan filename without date prefix and .md suffix (e.g., "Execute Plan Pipeline")teamId: from step 2description: first paragraph of the plan (Goal + Architecture lines)Record the epic's ticket ID (e.g., OMN-100).
For each ## Task N: section:
title: the task heading text (e.g., "Write failing test for webhook handler")teamId: from step 2parentId: epic ID from step 3description: full task body (Files, Steps, Acceptance criteria)blockedBy: parse "Depends on Task N" or "after Task N" notes → list of earlier ticket IDsWith --skip-existing: search for an existing ticket with the same title under the same epic first.
If found, skip creation and use its ID.
Output:
Epic: OMN-100
Task 1 → OMN-101
Task 2 → OMN-102 (blocked by OMN-101)
Task 3 → OMN-103 (blocked by OMN-101, OMN-102)
Return this mapping to the caller (execute_plan uses it for ordered implementation).
Downstream, onex-execute-plan invokes the Omnimarket MCP tool run_ticket_pipeline with ticket_id set to each Linear identifier from this mapping (e.g. "OMN-101").
With --dry-run: parse the plan and print what would be created, but make no MCP calls.
[dry-run] Would create parent epic: "Execute Plan Pipeline"
[dry-run] Would create 3 tickets:
Task 1: Write failing test for webhook handler
Task 2: Implement webhook handler (blocked by Task 1)
Task 3: Add integration test (blocked by Task 1, Task 2)
tracker.list_teams fails: stop and report "Linear MCP not available. See QUICKSTART.md Linear MCP Setup section."