From yux-linear-workflow
Start working on a Linear issue with automatic worktree isolation. Use when user says "start task", "linear start", "work on issue", "new task", "begin task", "LIN-xxx", or "/yux-linear-start". Creates isolated worktree via EnterWorktree, sets up branch, and syncs with Linear.
npx claudepluginhub wuyuxiangx/yux-claude-hubThis 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.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
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/yux-config.json for language preference.claude/linear-config.json for cached team/project:
mcp__linear__list_teams(), save to .claude/linear-config.jsonLIN-\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: "LIN-<id>")
Session automatically switches to .claude/worktrees/LIN-<id>/
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
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):
{
"version": 1,
"active_task": "LIN-456",
"tasks": {
"LIN-456": {
"issue_id": "LIN-456",
"issue_uuid": "<uuid>",
"title": "<title>",
"branch": "<branch>",
"status": "in_progress",
"linear_status": "In Progress",
"pr_number": null,
"started_at": "<ISO timestamp>",
"last_active_at": "<ISO timestamp>"
}
}
}
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/LIN-456/
Status: In Progress
URL: <linear-url>
You are now working in an isolated worktree.