
Linear Pm
- 43 installs
- 36 repo stars
- Updated July 14, 2026
- oimiragieo/agent-studio
Helps with ai & agent building tasks.
About
linear-pm is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- linear-pm
- AI & Agent Building
- AI-coding skill
Linear Pm by the numbers
- 43 all-time installs (skills.sh)
- Ranked #7,972 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/oimiragieo/agent-studio --skill linear-pmAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 43 |
|---|---|
| repo stars | ★ 36 |
| Last updated | July 14, 2026 |
| Repository | oimiragieo/agent-studio ↗ |
What it does
Helps with ai & agent building tasks.
Files
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
| 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 |
Tools by Category
Issue Operations (Confirmation Required for Mutations)
| 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 |
Project Operations
| 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 |
Cycle Operations (Sprints)
| 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 |
Team Operations
| Tool | Description | Confirmation |
|---|---|---|
| list-teams | List all teams in workspace | No |
| get-team | Get team details | No |
| team-members | List team members | No |
Label & State Operations
| 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 |
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
- Official Linear API Documentation: <https://developers.linear.app/docs/graphql/working-with-the-graphql-api>
- Linear GraphQL Explorer: <https://studio.apollographql.com/public/Linear-API/home>
- Linear Webhook Documentation: <https://developers.linear.app/docs/graphql/webhooks>
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-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 |
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.
Invoke the linear-pm skill and follow it exactly as presented to you
'use strict';
/**
* Post-execute hook for linear-pm
* Auto-generated by enterprise-bundle-scaffolder
*
* Records metrics after skill execution.
*/
function postExecute(_context) {
// Record execution metrics
return { ok: true, skill: 'linear-pm' };
}
module.exports = { postExecute };
'use strict';
/**
* Pre-execute hook for linear-pm
* Auto-generated by enterprise-bundle-scaffolder
*
* Validates inputs before skill execution.
*/
function preExecute(context) {
// Validate skill invocation context
if (!context || typeof context !== 'object') {
return { allow: true, message: 'linear-pm: no context to validate' };
}
return { allow: true };
}
module.exports = { preExecute };
linear-pm Research Requirements
Generated: 2026-02-28
Skill Description
Linear project management - issues, projects, cycles, and roadmaps. Use for Linear-related tasks like managing issues, tracking sprints, and organizing projects.
Research Areas
- Current best practices for linear-pm
- Industry standards and tooling
- Integration patterns
Source References
- To be populated by skill-updater research phase
linear-pm Rules
Purpose
Linear project management - issues, projects, cycles, and roadmaps. Use for Linear-related tasks like managing issues, tracking sprints, and organizing projects.
Best Practices
- Verify LINEAR_API_KEY is set
- Use filters to reduce API calls
- Cache team and project metadata
Integration Points
See SKILL.md for complete documentation.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "linear-pmInput",
"description": "Input schema for Linear project management - issues, projects, cycles, and roadmaps. Use for Linear-related tasks like managing issues, tracking sprints, and organizing projects.",
"type": "object",
"additionalProperties": true,
"properties": {
"target": {
"type": "string",
"description": "Target file or path for the skill to operate on"
},
"options": {
"type": "object",
"description": "Additional options for skill execution",
"additionalProperties": true
}
}
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "linear-pmOutput",
"type": "object",
"additionalProperties": true,
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
}
}
}
#!/usr/bin/env node
'use strict';
/**
* linear-pm - Enterprise Skill Script
* Auto-generated by enterprise-bundle-scaffolder
*/
const fs = require('fs');
const path = require('path');
// Parse arguments
const args = process.argv.slice(2);
const options = {};
for (let i = 0; i < args.length; i++) {
if (args[i].startsWith('--')) {
const key = args[i].slice(2);
const value = args[i + 1] && !args[i + 1].startsWith('--') ? args[++i] : true;
options[key] = value;
}
}
if (options.help) {
console.log(`
linear-pm - Enterprise Skill
Usage:
node main.cjs --check <file> Check a file against guidelines
node main.cjs --list List all guidelines
node main.cjs --help Show this help
Description:
Linear project management - issues, projects, cycles, and roadmaps. Use for Linear-related tasks like managing issues, tracking sprints, and organizing projects.
`);
process.exit(0);
}
if (options.list) {
console.log('Guidelines for linear-pm:');
console.log('See SKILL.md for full guidelines');
process.exit(0);
}
console.log('linear-pm skill loaded. Use with Claude for code review.');
linear-pm Implementation Template
Goal
- Define target outcome and acceptance criteria.
TDD
1. Red 2. Green 3. Refactor
Verification
- lint
- format
- targeted tests