Linear project management - issues, projects, cycles, and roadmaps. Use for Linear-related tasks like managing issues, tracking sprints, and organizing projects.
Mode: Cognitive/Prompt-Driven - No standalone utility script; use via agent context.
This skill provides comprehensive Linear project management capabilities with progressive disclosure for optimal context usage.
Context Savings: ~92% reduction
| Toolset | Description |
|---|---|
| issues | Issue creation, updates, comments, state changes |
| projects | Project management and issue association |
| cycles | Sprint/cycle management and planning |
| teams | Team structure and member management |
| labels | Label and workflow state management |
| Tool | Description | Confirmation |
|---|---|---|
| list-issues | List issues with filters (state, assignee, label) | No |
| get-issue | Get detailed issue information | No |
| create-issue | Create new issue with title, description, team | Yes |
| update-issue | Update issue fields (state, assignee, priority) | Yes |
| add-comment | Add comment to an issue | Yes |
| search-issues | Search issues by text query | No |
| assign-issue | Assign issue to team member | Yes |
| set-priority | Set issue priority (urgent, high, medium, low) | Yes |
| add-label | Add label to issue | Yes |
| Tool | Description | Confirmation |
|---|---|---|
| list-projects | List all projects for a team | No |
| get-project | Get project details and metadata | No |
| project-issues | Get all issues in a project | No |
| create-project | Create new project | Yes |
| update-project | Update project details | Yes |
| Tool | Description | Confirmation |
|---|---|---|
| list-cycles | List cycles for a team | No |
| current-cycle | Get current active cycle | No |
| cycle-issues | Get issues in a specific cycle | No |
| cycle-progress | Get cycle completion metrics | No |
| Tool | Description | Confirmation |
|---|---|---|
| list-teams | List all teams in workspace | No |
| get-team | Get team details | No |
| team-members | List team members | No |
| Tool | Description | Confirmation |
|---|---|---|
| list-labels | List all labels for a team | No |
| list-states | List workflow states (backlog, to-do, in-progress, done) | No |
| create-label | Create new label | Yes |
LINEAR_API_KEY is set before any API call — Linear's API returns a 401 with a generic error message when the key is missing or expired; early validation produces a clear, actionable error.| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Creating issues without deduplication check | Duplicate issues split tracking; team velocity metrics skewed | Search with a title filter (issues query with filter.title.eq field) before creating |
| Using state names in transitions | Case-sensitive; breaks when team renames state; locale issues | Use workflowState { id } query to get stable IDs; transition by ID |
| Fetching all team issues without filter | Thousands of results; rate limit hit; unusable output | Filter by state, assignee, cycle, or label in GraphQL query |
| Re-fetching team/project metadata per operation | Multiple identical API calls; rate limit waste; slow execution | Fetch team and project IDs once at session start; reuse for all subsequent calls |
| Ignoring pagination cursors | Only first page returned; missed issues cause incomplete reports | Use pageInfo { hasNextPage, endCursor } and paginate until hasNextPage: false |
Before starting: Read .claude/context/memory/learnings.md
After completing:
ASSUME INTERRUPTION: If it is not in memory, it did not happen.