Linear Automation
Claude Office SkillsAutomate Linear issue tracking, cycles, and project workflows.
linearproject-managementautomation
# Linear Automation
Comprehensive skill for automating Linear issue tracking and engineering workflows.
## Core Workflows
### 1. Issue Lifecycle
```
LINEAR ISSUE FLOW:
โโโโโโโโโโโโโโโโโโโ
โ Triage โ
โ (Backlog) โ
โโโโโโโโโโฌโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Todo โ
โ (Prioritized) โ
โโโโโโโโโโฌโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโ
โ In Progress โ
โ (Active) โ
โโโโโโโโโโฌโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโ
โ In Review โ
โ (PR Created) โ
โโโโโโโโโโฌโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Done โ
โ (Merged) โ
โโโโโโโโโโฌโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Cancelled โ
โ (If needed) โ
โโโโโโโโโโโโโโโโโโโ
```
### 2. Automation Triggers
```yaml
automations:
- name: auto_assign_on_start
trigger:
type: status_changed
to: "In Progress"
condition:
assignee: null
action:
set_assignee: "{{trigger_user}}"
- name: add_to_cycle
trigger:
type: issue_created
labels: ["sprint-ready"]
action:
add_to_cycle: current
set_priority: urgent
- name: create_pr_reminder
trigger:
type: status_changed
to: "In Progress"
duration: "48 hours"
condition:
no_linked_pr: true
action:
add_comment: "@{{assignee}} Please link your PR"
- name: close_on_merge
trigger:
type: github_pr_merged
action:
set_status: "Done"
add_comment: "Closed via PR merge"
```
## Issue Templates
### Bug Report
```yaml
bug_template:
title: "[Bug] {{summary}}"
team: "Engineering"
description: |
## Description
{{description}}
## Steps to Reproduce
1. {{step1}}
2. {{step2}}
3. {{step3}}
## Expected Behavior
{{expected}}
## Actual Behavior
{{actual}}
## Environment
- OS: {{os}}
- Browser: {{browser}}
- Version: {{version}}
## Logs/Screenshots
{{attachments}}
labels: ["bug", "needs-triage"]
priority: "{{severity}}"
estimate: null
```
### Feature Request
```yaml
feature_template:
title: "[Feature] {{summary}}"
team: "Product"
description: |
## Overview
{{overview}}
## User Story
As a {{user_type}}, I want to {{action}} so that {{benefit}}.
## Acceptance Criteria
- [ ] {{criteria1}}
- [ ] {{criteria2}}
- [ ] {{criteria3}}
## Design
{{design_link}}
## Technical Considerations
{{tech_notes}}
labels: ["feature", "needs-refinement"]
project: "{{roadmap_project}}"
```
### Sub-Issue Structure
```yaml
epic_breakdown:
parent:
title: "{{epic_name}}"
type: "Project"
sub_issues:
- title: "Design: {{epic_name}}"
labels: ["design"]
estimate: 3
- title: "Backend: {{epic_name}}"
labels: ["backend"]
estimate: 5
- title: "Frontend: {{epic_name}}"
labels: ["frontend"]
estimate: 5
- title: "Testing: {{epic_name}}"
labels: ["qa"]
estimate: 2
- title: "Documentation: {{epic_name}}"
labels: ["docs"]
estimate: 1
```
## Cycle Management
### Cycle Planning
```yaml
cycle_config:
duration: 2_weeks
planning:
capacity_per_engineer: 8 # points
buffer_percentage: 20
milestones:
- day: 1
event: "Cycle Start"
- day: 10
event: "Feature Freeze"
- day: 12
event: "Code Freeze"
- day: 14
event: "Release"
auto_rollover:
enabled: true
statuses: ["Backlog", "Todo"]
exclude_labels: ["blocked"]
```
### Cycle Dashboard
```
CYCLE 24 - WEEK 2/2
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Progress:
โโโโโโโโโโโโโโโโโโโโ 78% Complete
Story Points:
Planned: 42
Completed: 33 โโโโโโโโโโโโโโโโโโโโ
Remaining: 9 โโโโโโโโโโโโโโโโโโโโ
BY STATUS:
Done โโโโโโโโโโโโโโโโ 18
In Review โโโโโโโโโโโโโโโโ 5
In Progress โโโโโโโโโโโโโโโโ 3
Todo โโโโโโโโโโโโโโโโ 2
TEAM PROGRESS:
Sarah โโโโโโโโโโโโโโโโ 8/10 pts
Mike โโโโโโโโโโโโโโโโ 12/12 pts
Alex โโโโโโโโโโโโโโโโ 7/10 pts
Lisa โโโโโโโโโโโโโโโโ 6/10 pts
BLOCKERS:
โข LIN-234: Waiting for API access
โข LIN-256: Design review pending
```
## GitHub Integration
### Branch & PR Sync
```yaml
github_sync:
branch_format: "{{username}}/lin-{{issue_number}}-{{issue_slug}}"
on_branch_created:
- set_status: "In Progress"
- add_assignee: branch_creator
on_pr_opened:
- set_status: "In Review"
- add_link: pr_url
- add_comment: "PR opened: {{pr_url}}"
on_pr_merged:
- set_status: "Done"
- add_comment: "Merged in {{pr_url}}"
on_pr_closed:
- add_comment: "PR closed without merge"
commit_linking:
patterns:
- "LIN-{{number}}"
- "lin-{{number}}"
- "Fixes LIN-{{number}}"
```
### CI/CD Integration
```yaml
cicd_integration:
on_build_failed:
- add_label: "ci-failed"
- add_comment: |
โ Build failed
{{build_url}}
on_build_passed:
- remove_label: "ci-failed"
on_deploy_staging:
- add_label: "on-staging"
- add_comment: "Deployed to staging: {{staging_url}}"
on_deploy_production:
- add_label: "released"
- add_comment: "Released to production ๐"
```
## Labels & Organization
### Label System
```yaml
labels:
type:
- name: "bug"
color: "#eb5757"
- name: "feature"
color: "#5e6ad2"
- name: "improvement"
color: "#26b5ce"
- name: "chore"
color: "#bec2c8"
priority:
- name: "urgent"
color: "#eb5757"
- name: "high"
color: "#f2994a"
- name: "medium"
color: "#f2c94c"
- name: "low"
color: "#bec2c8"
area:
- name: "frontend"
color: "#5e6ad2"
- name: "backend"
color: "#26b5ce"
- name: "infrastructure"
color: "#bb87fc"
- name: "design"
color: "#f7b500"
status:
- name: "blocked"
color: "#eb5757"
- name: "needs-review"
color: "#f2994a"
- name: "ready"
color: "#0e7a42"
```
## Reporting
### Velocity Tracking
```yaml
velocity_report:
metrics:
- completed_points_per_cycle
- issues_closed_per_cycle
- cycle_completion_rate
- carryover_percentage
chart_data:
cycles: last_6
show_trend: true
show_commitment: true
```
### Team Analytics
```
TEAM VELOCITY - LAST 6 CYCLES
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 50 โค
โ โ โโ
โ 40 โค โโ โโ โโ โโ
โ โ โโ โโ โโ โโ โโ
โ 30 โค โโ โโ โโ โโ โโ โโ โโ
โ โ โโ โโ โโ โโ โโ โโ โโ
โ 20 โค โโ โโ โโ โโ โโ โโ โโ
โ โ โโ โโ โโ โโ โโ โโ โโ
โ 10 โค โโ โโ โโ โโ โโ โโ โโ
โ โ โโ โโ โโ โโ โโ โโ โโ
โ 0 โดโโโโโโโโโโโโโโโโโโโโโโโโโ
C19 C20 C21 C22 C23 C24
Average: 38 pts | Trend: +8%
Completion Rate: 92%
```
## API Examples
### GraphQL Queries
```graphql
# Create Issue
mutation CreateIssue {
issueCreate(input: {
teamId: "team-id"
title: "New Feature Request"
description: "Description here"
priority: 2
labelIds: ["label-id"]
}) {
success
issue {
id
identifier
url
}
}
}
# Update Issue Status
mutation UpdateIssue {
issueUpdate(
id: "issue-id"
input: {
stateId: "state-id"
assigneeId: "user-id"
}
) {
success
}
}
# Query Cycle Issues
query CycleIssues {
cycle(id: "cycle-id") {
name
issues {
nodes {
identifier
title
state {
name
}
assignee {
name
}
estimate
}
}
}
}
```
## Best Practices
1. **Quick Triage**: Process new issues daily
2. **Consistent Estimates**: Use planning poker
3. **Link Everything**: Connect PRs, commits, docs
4. **Use Projects**: Organize related work
5. **Cycle Commitment**: Protect sprint scope
6. **Regular Grooming**: Keep backlog healthy
7. **Automate Status**: Let integrations update
8. **Measure Velocity**: Track team capacity๐งช Found this useful?
The $SKILL experiment is building the agent skill distribution layer. Every skill you discover through this directory is part of the experiment.