Skip to main content
ClaudeWave
Skill467 estrellas del repoactualizado 7mo ago

Linear Automation

Automate Linear issue tracking, cycle planning, roadmap management, and engineering workflows

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/claude-office-skills/skills /tmp/linear-automation && cp -r /tmp/linear-automation/linear-automation ~/.claude/skills/linear-automation
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# 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"