linear-pm

v2026.09.24

Linear project management - issues, projects, cycles, and roadmaps. Use for Linear-related tasks like managing issues, tracking sprints, and organizing projects.

GitHub
Install command
npx skhub add oimiragieo/linear-pm
Markdown
SKILL.md

Mode: Cognitive/Prompt-Driven - No standalone utility script; use via agent context.

Linear PM Skill

Overview

This skill provides comprehensive Linear project management capabilities with progressive disclosure for optimal context usage.

Context Savings: ~92% reduction

  • Direct API Mode: ~15,000 tokens for full API documentation
  • Skill Mode: ~300 tokens metadata + on-demand loading

Requirements

  • LINEAR_API_KEY environment variable set
  • Internet connectivity for Linear API access

Toolsets

ToolsetDescription
issuesIssue creation, updates, comments, state changes
projectsProject management and issue association
cyclesSprint/cycle management and planning
teamsTeam structure and member management
labelsLabel and workflow state management

Tools by Category

Issue Operations (Confirmation Required for Mutations)

ToolDescriptionConfirmation
list-issuesList issues with filters (state, assignee, label)No
get-issueGet detailed issue informationNo
create-issueCreate new issue with title, description, teamYes
update-issueUpdate issue fields (state, assignee, priority)Yes
add-commentAdd comment to an issueYes
search-issuesSearch issues by text queryNo
assign-issueAssign issue to team memberYes
set-prioritySet issue priority (urgent, high, medium, low)Yes
add-labelAdd label to issueYes

Project Operations

ToolDescriptionConfirmation
list-projectsList all projects for a teamNo
get-projectGet project details and metadataNo
project-issuesGet all issues in a projectNo
create-projectCreate new projectYes
update-projectUpdate project detailsYes

Cycle Operations (Sprints)

ToolDescriptionConfirmation
list-cyclesList cycles for a teamNo
current-cycleGet current active cycleNo
cycle-issuesGet issues in a specific cycleNo
cycle-progressGet cycle completion metricsNo

Team Operations

ToolDescriptionConfirmation
list-teamsList all teams in workspaceNo
get-teamGet team detailsNo
team-membersList team membersNo

Label & State Operations

ToolDescriptionConfirmation
list-labelsList all labels for a teamNo
list-statesList workflow states (backlog, to-do, in-progress, done)No
create-labelCreate new labelYes

Security

  • Never expose LINEAR_API_KEY in logs or output
  • API key should have minimal required permissions
  • All tools that modify data require confirmation

Error Handling

  1. Verify API Key: Check LINEAR_API_KEY is set correctly
  2. Check API Rate Limits: GraphQL 1500 requests/hour; REST 500 requests/hour
  3. Validate Query Syntax: Ensure GraphQL queries are well-formed
  4. Check Team/Issue IDs: Verify IDs exist and are accessible

Agent Integration

  • planner: Project management and backlog prioritization
  • developer: Issue tracking during development

Common Workflows

Sprint Planning

  1. current-cycle - Get current sprint
  2. list-issues --state Backlog - Get backlog items
  3. update-issue --cycle-id ... - Assign issues to sprint

Issue Triage

  1. list-issues --state Backlog - Get unplanned issues
  2. set-priority --issue-id ... --priority 2 - Set priority
  3. add-label --issue-id ... --label bug - Categorize

Project Tracking

  1. list-projects --team-id ... - Get all projects
  2. project-issues --project-id ... - Get project issues
  3. cycle-progress --cycle-id ... - Check sprint progress

Related

Iron Laws

  1. ALWAYS verify 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.
  2. NEVER create duplicate issues without first searching by title — Linear doesn't deduplicate issues automatically; running the skill twice without a search creates duplicate work items that confuse team tracking.
  3. ALWAYS use issue state IDs (not state names) when transitioning issues — state names are case-sensitive, locale-dependent, and change when teams rename states; IDs are stable.
  4. NEVER fetch all team issues without a filter — unbounded team queries return thousands of issues, exhaust the API rate limit, and produce unusable context dumps.
  5. ALWAYS cache team and project metadata within a session — team IDs and project keys don't change during a session; re-fetching on every operation wastes API quota and slows workflows.

Anti-Patterns

Anti-PatternWhy It FailsCorrect Approach
Creating issues without deduplication checkDuplicate issues split tracking; team velocity metrics skewedSearch with a title filter (issues query with filter.title.eq field) before creating
Using state names in transitionsCase-sensitive; breaks when team renames state; locale issuesUse workflowState { id } query to get stable IDs; transition by ID
Fetching all team issues without filterThousands of results; rate limit hit; unusable outputFilter by state, assignee, cycle, or label in GraphQL query
Re-fetching team/project metadata per operationMultiple identical API calls; rate limit waste; slow executionFetch team and project IDs once at session start; reuse for all subsequent calls
Ignoring pagination cursorsOnly first page returned; missed issues cause incomplete reportsUse pageInfo { hasNextPage, endCursor } and paginate until hasNextPage: false

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md
  • Issue found -> .claude/context/memory/issues.md
  • Decision made -> .claude/context/memory/decisions.md

ASSUME INTERRUPTION: If it is not in memory, it did not happen.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

.claude/skills/linear-pm

Default branch

main

Latest commit

64b580e

Tree SHA

42a1df4