mcpField
L
linear

linear

github.com/nodnarbnitram生産性1641 回インストール27 週間前に更新
リポジトリ

linear について

linearは、Linear GraphQL APIを使ってプロジェクト、チケット、マイルストーン、ドキュメントを管理するスキルです。一般的な操作用スクリプトを備え、GraphQLエンドポイントのみを使用します。

主な機能

  1. 01チケットの一覧・検索・読み取り
  2. 02チケットとプロジェクトの作成・更新
  3. 03マイルストーンとチケットの管理
  4. 04プロジェクト文書の作成・一覧・読み取り
  5. 05GraphQLエンドポイントでの操作

活用シーン

  1. 01チームやステータスでチケットを絞り込む
  2. 02チケットをプロジェクトやマイルストーンに追加
  3. 03プロジェクトのマイルストーンと期日を整理
  4. 04プロジェクト文書を作成または確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nodnarbnitram/claude-code-extensions --skill linear

インストール後、Claude Code で/linearを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
graphql-reference.md
scripts/
add-comment.py
add-issues-to-milestone.py
add-issues-to-project.py
create-document.py
create-milestone.py
create-project.py
create-ticket.py
linear_graphql.py
list-documents.py
list-issues.py
read-document.py
read-ticket.py
search-issues.py
update-ticket.py

詳細

Linear プロジェクトとチケットの管理

このスキルでは、GraphQL エンドポイントのみを通じて Linear を管理します。linearis やその他の CLI ラッパーは使用しないでください。.claude/skills/linear/scripts/ 内のプロジェクトスクリプトは、単一の GraphQL クライアントを共有し、https://api.linear.app/graphql に直接アクセスします。

前提条件

必須:API トークン
export LINEAR_API_TOKEN='lin_api_xxxxx'

Linear → Settings → Security & Access → Personal API keys からトークンを取得してください。

セットアップの確認
uv run .claude/skills/linear/scripts/read-ticket.py ICE-2041

チケットの JSON が返されれば、認証と GraphQL アクセスは正常に動作しています。

重要:まずスクリプトを使用する

その場しのぎの curl 呼び出しよりも、.claude/skills/linear/scripts/ 内のスクリプトを優先してください。スクリプトは名前を ID に解決し、エラーを正規化して、エージェントのワークフローで扱いやすい JSON 形式の出力を維持します。デバッグや、未対応の操作のために生のクエリが必要な場合は、references/graphql-reference.md を使用してください。

このスキルを使用する場面

  • 機能開発、バグ修正、または修正作業のチケットを作成・更新する
  • 作業を整理するためにプロジェクトとマイルストーンを作成する
  • 進捗やレビューに関するコメントを追加する
  • プロジェクトドキュメントを作成、一覧表示、または読み込む
  • イシューをプロジェクトやマイルストーンに移動する

スクリプトの概要

スクリプト用途
list-issues.pyチーム、ステータス、プロジェクトで任意に絞り込んでイシューを一覧表示する
search-issues.pyイシューを全文検索する
create-ticket.pyチケットを作成する
read-ticket.py識別子または UUID でチケットの詳細を読み込む
update-ticket.pyチケットのフィールドを更新する
add-comment.pyチケットにコメントを追加する
create-project.pyプロジェクトを作成する
add-issues-to-project.pyチケットをプロジェクトに追加する
create-milestone.pyプロジェクトのマイルストーンを作成する
add-issues-to-milestone.pyチケットをマイルストーンに追加する
create-document.pyプロジェクトドキュメントを作成する
list-documents.pyドキュメントを一覧表示する。プロジェクトでの絞り込みも可能
read-document.pyUUID でドキュメントを読み込む

チケット操作

イシューの一覧表示
uv run .claude/skills/linear/scripts/list-issues.py --team ICE-T
uv run .claude/skills/linear/scripts/list-issues.py --team ICE-T --limit 100
uv run .claude/skills/linear/scripts/list-issues.py --team ICE-T --status "Todo,In Progress"
uv run .claude/skills/linear/scripts/list-issues.py --team ICE-T --project "Orca Security Remediation"

オプション:

  • --team チームキーまたはチーム名で絞り込む
  • --limit、-l 取得するイシューの最大数。既定値は 50
  • --status、-s ワークフローの状態をカンマ区切りで指定する
  • --project プロジェクト名または UUID
イシューの検索
uv run .claude/skills/linear/scripts/search-issues.py "Orca Security"
uv run .claude/skills/linear/scripts/search-issues.py "CVE" --team ICE-T
uv run .claude/skills/linear/scripts/search-issues.py "Privileged Role" --status "Todo,Triage"
uv run .claude/skills/linear/scripts/search-issues.py "Docker" --team ICE-T --limit 20

オプション:

  • query 必須の検索テキスト
  • --team チームキーまたはチーム名で絞り込む
  • --status、-s ワークフローの状態をカンマ区切りで指定する
  • --project プロジェクト名または UUID
  • --assignee、-a 担当者のユーザー ID
  • --limit、-l 結果の最大数。既定値は 25
チケットの作成
uv run .claude/skills/linear/scripts/create-ticket.py "Fix CVE-2024-1234" \
  --team ICE-T \
  --description "Critical vulnerability in production" \
  --priority 1 \
  --labels "security" \
  --json

オプション:

  • title 必須のチケットタイトル
  • --team 必須のチームキーまたはチーム名
  • --description、-d 説明
  • --priority、-p 1=緊急、2=高、3=通常、4=低
  • --labels ラベル名または UUID をカンマ区切りで指定する
  • --json 識別子のみではなく、構造化 JSON を出力する
チケットの読み込み
uv run .claude/skills/linear/scripts/read-ticket.py ICE-2021
uv run .claude/skills/linear/scripts/read-ticket.py 9e05263f-ed01-4b85-9c74-569fd1a0ce13
チケットの更新
uv run .claude/skills/linear/scripts/update-ticket.py ICE-2021 --status "In Progress"
uv run .claude/skills/linear/scripts/update-ticket.py ICE-2021 --status "Done" --priority 2
uv run .claude/skills/linear/scripts/update-ticket.py ICE-2021 --labels "security,urgent"

オプション。少なくとも 1 つ必須:

  • --status 新しいステータス名または UUID
  • --priority 1=緊急、2=高、3=通常、4=低
  • --assignee 担当者のユーザー ID
  • --labels ラベル名または UUID をカンマ区切りで指定する。ラベルは既存のセットに追加されます
  • --project プロジェクト名または UUID
  • --project-milestone マイルストーン名または UUID
  • --title 新しいタイトル
  • --description 新しい説明
コメントの追加
uv run .claude/skills/linear/scripts/add-comment.py ICE-2021 "Fixed in PR #123"

プロジェクト操作

プロジェクトの作成
uv run .claude/skills/linear/scripts/create-project.py "Security Remediation Q1" \
  --team ICE-T \
  --description "Eliminate all High severity alerts" \
  --priority 1 \
  --json

オプション:

  • name 必須のプロジェクト名
  • --team 必須のチームキーまたはチーム名
  • --description 簡単な概要。最大 255 文字
  • --content プロジェクトページの完全な Markdown コンテンツ
  • --priority 0=なし、1=緊急、2=高、3=通常、4=低
  • --target-date YYYY-MM-DD
  • --json プロジェクトの完全な JSON を出力する
イシューをプロジェクトに追加
uv run .claude/skills/linear/scripts/add-issues-to-project.py PROJECT_UUID ICE-2027
uv run .claude/skills/linear/scripts/add-issues-to-project.py PROJECT_UUID ICE-2027 ICE-2028 ICE-2029
uv run .claude/skills/linear/scripts/add-issues-to-project.py PROJECT_UUID --issues ICE-2027,ICE-2028

マイルストーン操作

マイルストーンの作成
uv run .claude/skills/linear/scripts/create-milestone.py "P1: Critical Fixes" \
  --project PROJECT_UUID \
  --description "RCE and exposed secrets" \
  --target-date 2026-02-09 \
  --json

オプション:

  • name 必須のマイルストーン名
  • --project 必須のプロジェクト UUID
  • --description マイルストーンの説明
  • --target-date YYYY-MM-DD 形式の期限
  • --json マイルストーンの完全な JSON を出力する
イシューをマイルストーンに追加
uv run .claude/skills/linear/scripts/add-issues-to-milestone.py MILESTONE_UUID ICE-2027 ICE-2028

ドキュメント操作

ドキュメントの作成
uv run .claude/skills/linear/scripts/create-document.py \
  --title "Security Findings Report" \
  --project PROJECT_UUID \
  --content-file ./report.md \
  --json

オプション:

  • --title 必須のドキュメントタイトル
  • --project 必須のプロジェクト名または UUID
  • --content Markdown コンテンツ
  • --content-file ファイルからコンテンツを読み込みます
  • --json 構造化 JSON を出力します
ドキュメントの一覧表示
uv run .claude/skills/linear/scripts/list-documents.py --project PROJECT_UUID
uv run .claude/skills/linear/scripts/list-documents.py --project "Security Remediation" --limit 100
ドキュメントの読み取り
uv run .claude/skills/linear/scripts/read-document.py DOCUMENT_UUID

共通のワークフロー

# 1. Create project
PROJECT_ID=$(uv run .claude/skills/linear/scripts/create-project.py \
  "Security Remediation" \
  --team ICE-T \
  --description "Eliminate all security vulnerabilities")

# 2. Create milestone
MILESTONE_ID=$(uv run .claude/skills/linear/scripts/create-milestone.py \
  "P1: Critical" \
  --project "$PROJECT_ID" \
  --target-date 2026-02-09)

# 3. Create ticket
TICKET_ID=$(uv run .claude/skills/linear/scripts/create-ticket.py \
  "Patch CVE-2024-1234" \
  --team ICE-T \
  --priority 1)

# 4. Link ticket into the plan
uv run .claude/skills/linear/scripts/add-issues-to-project.py "$PROJECT_ID" "$TICKET_ID"
uv run .claude/skills/linear/scripts/add-issues-to-milestone.py "$MILESTONE_ID" "$TICKET_ID"

# 5. Attach supporting documentation
uv run .claude/skills/linear/scripts/create-document.py \
  --title "Findings Report" \
  --project "$PROJECT_ID" \
  --content-file ./report.md

GraphQL の直接利用

必要な操作にまだラッパーがない場合は、CLI 依存を導入せずに GraphQL エンドポイントを直接呼び出してください。

curl -X POST https://api.linear.app/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: $LINEAR_API_TOKEN" \
  -d '{"query":"{ viewer { id name } }"}'

Bearer プレフィックスは使用しないでください。Linear では生のトークンが必要です。

再利用可能なクエリとリゾルバーの例については、references/graphql-reference.md を参照してください。


既知の制限事項

  • 現在のプロジェクトラッパーでは期限日を扱えません。ここで公開されていないフィールドが必要な場合は、UI を使用してください
  • ラベルはワークスペースにすでに存在している必要があります
  • プロジェクトの description は 255 文字までです。長文のプロジェクトドキュメントには content を使用してください

エラー処理

すべてのスクリプトは、エラー時にコード 1 で終了します。

よくあるエラー:

  • Error: LINEAR_API_TOKEN not set and ~/.linear_api_token not found
  • Error: Ticket ICE-9999 not found
  • Error: Team 'INVALID' not found
  • Error: Milestone 'Release 1' matched multiple projects (...)

バージョン

  • スキルのバージョン:3.0
  • トランスポート:Linear GraphQL endpoint only

コメント