From yux-linear
Start working on a Linear issue with worktree isolation. Triggers on "start task", "linear start", "work on LIN-123", "begin task", "开始任务".
npx claudepluginhub wuyuxiangx/yux-claude-hub --plugin yux-linearThis skill is limited to using the following tools:
Start a new task with Linear issue tracking. Every task runs in its own worktree for isolation.
Creates git worktree from main for Linear issues. Parses URLs (https://linear.app/.../issue/ABC-58), copy prompts, or IDs to derive ISSUE_ID/BRANCH and sets up sibling directory.
Manages Linear issues via CLI: list by team/state, view details/comments, create/update title/desc/state/priority/labels/assign, start with git branch, delete.
Query and manage Linear issues, projects, and teams via bash CLI scripts. List issues, create new ones, update status/priority/assign, generate GitHub branches, daily standups.
Share bugs, ideas, or general feedback.
Start a new task with Linear issue tracking. Every task runs in its own worktree for isolation.
Usage: /yux-linear-start [LIN-xxx | task description]
LIN-xxx: Directly start working on a specific issuegh auth status must passmcp__linear__list_teams()
If fails: show error and stop. Do NOT proceed without Linear.
.claude/linear-config.json:
team and project fields: use cached values/yux-linear-init first to set up your project."LIN-\d+: directly call mcp__linear__get_issue(), skip dialogmcp__linear__list_issues(query: "<text>"), suggest best matchSearch path: Display results, let user pick or create new
Create path: Collect title/description/priority, call mcp__linear__create_issue(), verify with mcp__linear__get_issue()
Auto-detect branch type from issue labels/title:
fix/docs/refactor/feat/Detect if already in a worktree:
git rev-parse --is-inside-work-tree && git rev-parse --git-common-dir
Compare --git-common-dir with --git-dir. If they differ, we're inside a worktree.
If NOT in a worktree (normal case — starting from main repo):
EnterWorktree(name: "<type>-LIN-<id>-<short-description>")
The name mirrors the branch name (e.g., feat-LIN-321-speaker-mode).
Session automatically switches to .claude/worktrees/<name>/
If already in a worktree (e.g., user resumed a kept worktree session, or opened Claude Code inside one): Skip EnterWorktree. Work directly in current directory.
Create and switch to proper branch:
git checkout -b <type>/LIN-<id>-<short-description> origin/main
If the branch already exists (e.g., from a prior incomplete run), ask the user: switch to the existing branch or create a fresh one with a suffix.
Push branch to remote:
git push -u origin <branch-name>
mcp__linear__update_issue(id: "<uuid>", state: "In Progress")
mcp__linear__create_comment(issueId: "<uuid>", body: "Started working.\nBranch: `<branch>`")
Write to .claude/linear-tasks.json (resolved relative to main repo root via git rev-parse --git-common-dir). See ../../references/linear-tasks-schema.json for the full schema.
Set active_task to the new issue ID, add the task entry with status: "in_progress".
Note: tasks.json is shared across all worktrees (lives in main repo's .claude/ directory).
=== Task Started ===
Issue: LIN-456 - <title>
Branch: feat/LIN-456-<desc>
Worktree: .claude/worktrees/feat-LIN-456-<desc>/
Status: In Progress
URL: <linear-url>
You are now working in an isolated worktree.