linear について
linearは、Linear GraphQL APIを使ってプロジェクト、チケット、マイルストーン、ドキュメントを管理するスキルです。一般的な操作用スクリプトを備え、GraphQLエンドポイントのみを使用します。
主な機能
- 01チケットの一覧・検索・読み取り
- 02チケットとプロジェクトの作成・更新
- 03マイルストーンとチケットの管理
- 04プロジェクト文書の作成・一覧・読み取り
- 05GraphQLエンドポイントでの操作
活用シーン
- 01チームやステータスでチケットを絞り込む
- 02チケットをプロジェクトやマイルストーンに追加
- 03プロジェクトのマイルストーンと期日を整理
- 04プロジェクト文書を作成または確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nodnarbnitram/ claude-code-extensions --skill linearインストール後、Claude Code で/linearを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/graphql-reference.mdscripts/add-comment.pyadd-issues-to-milestone.pyadd-issues-to-project.pycreate-document.pycreate-milestone.pycreate-project.pycreate-ticket.pylinear_graphql.pylist-documents.pylist-issues.pyread-document.pyread-ticket.pysearch-issues.pyupdate-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.py | UUID でドキュメントを読み込む |
チケット操作
イシューの一覧表示
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、-p1=緊急、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--priority1=緊急、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 コンテンツ--priority0=なし、1=緊急、2=高、3=通常、4=低--target-dateYYYY-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-dateYYYY-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--contentMarkdown コンテンツ--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 foundError: Ticket ICE-9999 not foundError: Team 'INVALID' not foundError: Milestone 'Release 1' matched multiple projects (...)
バージョン
- スキルのバージョン:
3.0 - トランスポート:
Linear GraphQL endpoint only