linear について
linear は、エンジニアリングチーム向けの Linear API スキルです。GraphQL で課題、サイクル、プロジェクトロードマップ、SLA を扱い、Git のコミットを課題に関連付けられます。
主な機能
- 01課題の作成、更新、検索
- 02サイクルとロードマップの管理
- 03Git コミットと課題の関連付け
- 04課題の照会による SLA 追跡
- 05GraphQL API による操作
活用シーン
- 01コードレビューから追跡用課題を作成
- 02スプリント計画で未着手課題を検索
- 03Git コミットと Linear の課題を同期
- 04SLA 違反の課題を抽出して対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill linearインストール後、Claude Code で/linearを入力して読み込まれたか確認します。
詳細
linear
目的
このスキルを使うと、AI は Linear の API を利用して、課題の追跡、サイクルの管理、プロジェクトのロードマップ、Git との連携、SLA の監視、API を活用したワークフローを、特にエンジニアリングチーム向けに操作できます。
使用する場面
コード変更からの課題作成、プロジェクトのロードマップの更新、チケットの SLA の追跡、Git のコミットと Linear の課題の同期など、エンジニアリングのワークフローを自動化する場合にこのスキルを使用します。スプリント計画中の課題の検索や CI/CD パイプラインとの連携など、チームでの共同作業に関わる場面でも使用してください。
主な機能
- 課題管理:Linear の GraphQL API(https://api.linear.app/graphql)を使用して、課題の作成、更新、検索を行います。
- サイクルとプロジェクトの管理:
cycleCreateなどのミューテーションでサイクルを管理し、ロードマップ用のクエリでプロジェクトを管理します。 - Git 連携:Webhook または API を使用して Git のコミットを課題に関連付けます。たとえば、コミット SHA を課題 ID に関連付けます。
- SLA の追跡:課題の状態とタイムスタンプをクエリして、サービスレベル契約を監視します。
- API アクセス:個人用 API キーで認証し、フィルター(例:state: "todo")を指定して課題を取得するなどの操作を行います。
- 設定形式:API キーは
$LINEAR_API_KEYなどの環境変数に保存します。リクエストのペイロード構造には JSON を使用します。
使用パターン
タスクを実行する際は、まず環境で $LINEAR_API_KEY を設定して認証してください。データの検索には GraphQL クエリを、ミューテーションには入力オブジェクトを使用します。課題作成の手順は、認証 → ミューテーションのペイロードを準備 → リクエストを送信 → レスポンスを処理、です。連携では、コミットメッセージを解析して Linear の課題に対応付けるなど、Git ツールと組み合わせます。リクエストを送信する前に、課題のタイトルが 255 文字未満であることを確認するなど、入力を必ず検証してください。
主なコマンド/API
- 課題の検索:未完了の課題を取得するには、次の GraphQL クエリを使用します。
query { issues(filter: { state: { name: { eq: "todo" } } }) { nodes { id title } } }curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "above query"}'で送信します。 - 課題の作成:新しい課題を追加するには、次のミューテーションを実行します。
コマンド:mutation { issueCreate(input: { title: "Fix bug in login", description: "Details here" }) { issue { id } } }curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "above mutation"}' - プロジェクトのロードマップを更新:まずプロジェクトを検索してから、ミューテーションを実行します:
mutation { projectUpdate(id: "proj_123", name: "Updated Roadmap") { project { id } } } - Git 連携コマンド:Git のコミットを関連付けるには、次を使用します:
git log --format="%H %s" | awk '{print $1}' | xargs -I {} curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "mutation { issueUpdate(id: \"iss_456\", branch: \"{}\") { issue { id } } }"}' - SLA の確認:クエリ:
query { issues(filter: { createdAt: { gt: "2023-01-01" } }) { nodes { id slaViolated } } }
連携に関する注意事項
Linear アカウントの設定から $LINEAR_API_KEY をエクスポートして、認証を設定します。Git と連携するには、Linear で課題の更新時に起動する Webhook を設定し、スクリプト(例:Python の requests ライブラリを使用)でペイロードを解析します。設定形式:.env ファイルに LINEAR_API_KEY=your_key_here を記述し、スクリプトで os.environ.get('LINEAR_API_KEY') を使って読み込みます。他のツールと連携するには、API 呼び出しを連鎖させます。たとえば、Git のプッシュ後に Linear の課題を検索して更新するスクリプトを実行します。ループに遅延を追加するなどして、レート制限(例:100 リクエスト/分)を必ず守ってください。
エラー処理
リクエストの前に $LINEAR_API_KEY を確認し、401 ステータスなどの認証エラーがないか確認してください。認証に失敗した場合は、環境変数を設定するようユーザーに促します。GraphQL エラーについては、レスポンスの「errors」フィールドを解析してください(たとえば、「message」に「Invalid input」が含まれている場合は、必須フィールドが存在することを確認するなど、ペイロードを検証します)。ネットワークの問題には、リトライで対処します。たとえば、指数バックオフを使うループを使用します。for i in 1..3; do curl ...; if [ $? -ne 0 ]; then sleep $((2**i)); fi; done。SLA 違反については、クエリで問題が発生した場合に課題が null 値を返すかどうかを確認して記録します。コードでは、API 呼び出しを必ず try-catch ブロックで囲んでください。例:
try { response = requests.post('https://api.linear.app/graphql', headers={'Authorization': f'Bearer {os.environ["LINEAR_API_KEY"]}'}, json={'query': '...'}) } catch e { print(f'Error: {e}') }
具体的な使用例
- コードレビューから課題を自動作成する:GitHub でプルリクエストが作成されたら、このスクリプトを使って Linear の課題を作成します。
$LINEAR_API_KEYを設定してから、curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "mutation { issueCreate(input: { title: \"Review PR #123\", description: \"Fixes in branch main\" }) { issue { id } } }"}'を実行します。これにより、追跡用の新しい課題にプルリクエストが関連付けられます。 - 期限超過の課題の SLA を追跡する:SLA 違反を検索して通知します。まず、
$LINEAR_API_KEYをエクスポートし、curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "query { issues(filter: { slaViolated: true }) { nodes { id title } } }"}' | jq '.data.issues.nodes' > overdue_issues.jsonを実行します。JSON を処理してアラートを送信し、48 時間を超過した課題にフラグが付くようにします。
グラフの関係
- 関連項目:「git」(コミット連携用)、「issues」(ワークフロー追跡用)、「engineering」(チーム管理用)、「project」(ロードマップ同期用)。
- 接続:このスキルは、API 呼び出しを介して「git」スキルと連携し、関連付けを自動化できます。また、より幅広いツールエコシステムを実現するため、「engineering」とも連携します。