关于 Linear Automation
Linear Automation 是用于自动化 Linear 问题跟踪和工程工作流的技能,涵盖问题模板、触发规则、周期规划、GitHub 同步、报告及 API 操作示例。
主要功能
- 01问题生命周期与自动化触发器
- 02缺陷、功能和子问题模板
- 03周期规划与进度看板
- 04GitHub 分支和 PR 同步
- 05速度与团队分析示例
- 06GraphQL 创建问题示例
适用场景
- 01为新问题应用一致的模板
- 02自动执行分配和状态变更
- 03协调 Linear 问题与 GitHub 分支及 PR
- 04查看周期进度和团队速度
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ claude-office-skills/ skills --skill linear-automation安装后在 Claude Code 中输入/linear-automation确认已加载。
详细介绍
Linear 自动化
用于自动化 Linear 问题跟踪和工程工作流的综合技能。
核心工作流
1. 问题生命周期
LINEAR ISSUE FLOW:
┌─────────────────┐
│ Triage │
│ (Backlog) │
└────────┬────────┘
▼
┌─────────────────┐
│ Todo │
│ (Prioritized) │
└────────┬────────┘
▼
┌─────────────────┐
│ In Progress │
│ (Active) │
└────────┬────────┘
▼
┌─────────────────┐
│ In Review │
│ (PR Created) │
└────────┬────────┘
▼
┌─────────────────┐
│ Done │
│ (Merged) │
└────────┬────────┘
▼
┌─────────────────┐
│ Cancelled │
│ (If needed) │
└─────────────────┘
2. 自动化触发器
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"
问题模板
Bug 报告
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_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}}"
子问题结构
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_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 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 集成
分支与 PR 同步
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 集成
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:
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"
报告
速度跟踪
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 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 示例
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
}
}
}
}
最佳实践
- 快速分诊:每天处理新问题
- 一致的估算:使用计划扑克
- 关联所有内容:关联 PR、提交和文档
- 使用项目:组织相关工作
- 周期承诺:保护冲刺范围
- 定期梳理:保持待办事项健康
- 自动更新状态:让集成自动更新
- 衡量速度:跟踪团队产能
评论
支持 Markdown