Agent skill

Linear

by team-mirai in team-mirai/mirai-gikai

Linear と対話するためのスキル。Linear MCP サーバー(mcplinear ツール)を 優先的に使用し、MCP でカバーされない生の GraphQL 操作(イントロスペクション、 ファイルアップロードなど)は lineargraphql クライアントツールにフォールバックする。

AGPL-3.0Auto-check passedBackend & APIs

Install Linear

skills CLI
$ npx skills add team-mirai/mirai-gikai --skill linear -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install team-mirai/mirai-gikai linear --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/team-mirai/mirai-gikai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/linear .claude/skills/linear && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
linear
GitHub stars
212
Token cost
~1.9k tokens
SKILL.md length
309 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Linear と対話するためのスキル。Linear MCP サーバー(mcplinear ツール)を 優先的に使用し、MCP でカバーされない生の GraphQL 操作(イントロスペクション、 ファイルアップロードなど)は lineargraphql クライアントツールにフォールバックする。

  • Works in 2 steps: Linear MCP サーバー — mcplinear*… → linear_graphql クライアントツール — Symphony の…
  • Tasks that involve GraphQL
  • SKILL.md covers ツール選択ルール, MCP の使用上の注意, linear_graphql の使用上の注意 and 一般的なワークフロー, plus 1 more section
  • Calls curl

What it does

Linear is an agent skill from team-mirai/mirai-gikai. Linear と対話するためのスキル。Linear MCP サーバー(mcplinear ツール)を 優先的に使用し、MCP でカバーされない生の GraphQL 操作(イントロスペクション、 ファイルアップロードなど)は lineargraphql クライアントツールにフォールバックする。

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering GraphQL. It works with GraphQL, Linear and Model Context Protocol. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve GraphQL

Example prompts

  • “/linear”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Linear MCP サーバー — mcplinear* 系の高レベルツール(list_issues、get_issue、save_comment など)。通常はこちらを優先する。
  2. linear_graphql クライアントツール — Symphony の app-server セッションが公開する生の GraphQL クライアント。MCP に存在しない操作(ファイルアップロード、イントロスペクション、新しい mutation の試行)に使う。

What it can do on your machine

Read from SKILL.md and the folder at commit 00b649b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Linear loads about 1.9k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 309 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~41
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from team-mirai/mirai-gikai at commit 00b649b, republished under its AGPL-3.0 licence (© team-mirai). 309 words, ~1,894 tokens.

Download SKILL.mdSave it as .claude/skills/linear/SKILL.md (or your agent's skills folder).
name
linear
description
Linear と対話するためのスキル。Linear MCP サーバー(`mcp__linear__*` ツール)を 優先的に使用し、MCP でカバーされない生の GraphQL 操作(イントロスペクション、 ファイルアップロードなど)は `linear_graphql` クライアントツールにフォールバックする。

Linear

Linear との対話には 2 つの経路がある:

  1. Linear MCP サーバー — mcp__linear__* 系の高レベルツール(list_issues、get_issue、save_comment など)。通常はこちらを優先する。
  2. linear_graphql クライアントツール — Symphony の app-server セッションが公開する生の GraphQL クライアント。MCP に存在しない操作(ファイルアップロード、イントロスペクション、新しい mutation の試行)に使う。

どちらも利用できない場合は停止し、ユーザーに Linear の設定を依頼する。

ツール選択ルール

以下の順で経路を選ぶ:

  1. MCP に対応するツールがあれば MCP を使う(issue/コメント/プロジェクト/チームの CRUD はほぼ MCP でカバーされる)。
  2. MCP に対応する操作がない、または下記の限定ケースでは linear_graphql を使う:
    • ファイル/動画アップロード(fileUpload mutation)
    • スキーマイントロスペクション(__type クエリ)
    • MCP がまだサポートしていない新しい/未知の mutation
    • レアな input 型のフィールド構造を確認する必要があるとき

MCP の使用上の注意

  • 文字列値を渡すときは、エスケープシーケンスを含めず内容をそのまま送る。たとえば markdown 本文の改行はリテラル \n ではなく実際の改行を使う。
  • 1 回のツール呼び出しにつき 1 つの操作を行う。
  • 必要なフィールド/引数のみを渡し、不要な更新を避ける。

linear_graphql の使用上の注意

ツール入力:

json
{
  "query": "query or mutation document",
  "variables": {
    "optional": "graphql variables object"
  }
}

挙動:

  • 1 回のツール呼び出しにつき 1 つの GraphQL オペレーションを送る。
  • ツール呼び出し自体は完了していても、トップレベルの errors 配列がある場合は失敗した GraphQL オペレーションとして扱う。
  • query/mutation は狭くスコープし、必要なフィールドのみを要求する。

一般的なワークフロー

各ワークフローで、MCP 経路を優先し、linear_graphql 経路はフォールバックとして示す。

key・identifier・id で issue をクエリする

ルックアップは段階的に使う: key -> identifier 検索 -> 内部 id。

MCP 経路:

  • チケットキー(例: MT-686)から取得: mcp__linear__get_issue に id: "MT-686" を渡す(識別子も受け付ける)。
  • フィルタ検索: mcp__linear__list_issues を使って team、project、assignee、state、label、createdAt などで絞り込む。
  • issue の詳細/添付/コメントが必要なら、get_issue の応答や個別 API(list_comments、get_attachment)を組み合わせる。

linear_graphql フォールバック:

issue キーで検索:

graphql
query IssueByKey($key: String!) {
  issue(id: $key) {
    id
    identifier
    title
    state {
      id
      name
      type
    }
    project {
      id
      name
    }
    branchName
    url
    description
    updatedAt
    links {
      nodes {
        id
        url
        title
      }
    }
  }
}

identifier フィルタで検索:

graphql
query IssueByIdentifier($identifier: String!) {
  issues(filter: { identifier: { eq: $identifier } }, first: 1) {
    nodes {
      id
      identifier
      title
      state {
        id
        name
        type
      }
      project {
        id
        name
      }
      branchName
      url
      description
      updatedAt
    }
  }
}

内部 id がわかったら issue を読む:

graphql
query IssueDetails($id: String!) {
  issue(id: $id) {
    id
    identifier
    title
    url
    description
    state {
      id
      name
      type
    }
    project {
      id
      name
    }
    attachments {
      nodes {
        id
        title
        url
        sourceType
      }
    }
  }
}
issue のチームのワークフロー状態をクエリする

issue 状態を変更する前に、正確な状態 ID/名前が必要なときに使う。

MCP 経路:

  • mcp__linear__get_issue で team 情報を取得し、mcp__linear__list_issue_statuses にその teamId を渡してそのチームのワークフロー状態一覧を得る。
  • 個別の状態を取りたい場合は mcp__linear__get_issue_status。

linear_graphql フォールバック:

graphql
query IssueTeamStates($id: String!) {
  issue(id: $id) {
    id
    team {
      id
      key
      name
      states {
        nodes {
          id
          name
          type
        }
      }
    }
  }
}
コメントを作成する

MCP 経路:

  • mcp__linear__save_comment を使う。issueId と body を渡す。
  • スレッドへの返信は parentId を指定する。
  • 本文の改行はそのまま実改行で記述する(リテラル \n を書かない)。

linear_graphql フォールバック:

graphql
mutation CreateComment($issueId: String!, $body: String!) {
  commentCreate(input: { issueId: $issueId, body: $body }) {
    success
    comment {
      id
      url
    }
  }
}
既存のコメントを編集する

MCP 経路:

  • mcp__linear__save_comment に id を含めて呼ぶと既存コメントの更新になる(同じ "save" API で create/update を兼ねる)。

linear_graphql フォールバック:

graphql
mutation UpdateComment($id: String!, $body: String!) {
  commentUpdate(id: $id, input: { body: $body }) {
    success
    comment {
      id
      body
    }
  }
}
issue を別の状態に移動する

MCP 経路:

  1. mcp__linear__get_issue でチームを特定する。
  2. mcp__linear__list_issue_statuses で目的の状態 ID を取得する。
  3. mcp__linear__save_issue に id と stateId(または対応するフィールド)を渡して更新する。

linear_graphql フォールバック:

graphql
mutation MoveIssueToState($id: String!, $stateId: String!) {
  issueUpdate(id: $id, input: { stateId: $stateId }) {
    success
    issue {
      id
      identifier
      state {
        id
        name
      }
    }
  }
}
GitHub PR を issue にアタッチする

MCP 経路:

  • mcp__linear__create_attachment に issueId、url、title を渡す。
  • GitHub PR 用のリッチなプレビュー(PR の状態など)が必要で MCP がそれをサポートしない場合のみ、フォールバックの attachmentLinkGitHubPR を使う。

linear_graphql フォールバック:

GitHub 固有のリンクメタデータが欲しい場合:

graphql
mutation AttachGitHubPR($issueId: String!, $url: String!, $title: String) {
  attachmentLinkGitHubPR(
    issueId: $issueId
    url: $url
    title: $title
    linkKind: links
  ) {
    success
    attachment {
      id
      title
      url
    }
  }
}

プレーンな URL アタッチメントで足りる場合:

graphql
mutation AttachURL($issueId: String!, $url: String!, $title: String) {
  attachmentLinkURL(issueId: $issueId, url: $url, title: $title) {
    success
    attachment {
      id
      title
      url
    }
  }
}
コメントに動画/ファイルをアップロードする

MCP には現状アップロード API がない。linear_graphql 経路を使う。

3 ステップで行う:

  1. linear_graphql を fileUpload で呼び出して、uploadUrl、assetUrl、必要なアップロードヘッダーを取得する。
  2. ローカルファイルのバイトを curl -X PUT と fileUpload から返された正確なヘッダーで uploadUrl にアップロードする。
  3. 再び操作する: mcp__linear__save_comment(または linear_graphql の commentCreate/commentUpdate)を呼び、結果の assetUrl をコメント本文に埋め込む。
graphql
mutation FileUpload(
  $filename: String!
  $contentType: String!
  $size: Int!
  $makePublic: Boolean
) {
  fileUpload(
    filename: $filename
    contentType: $contentType
    size: $size
    makePublic: $makePublic
  ) {
    success
    uploadFile {
      uploadUrl
      assetUrl
      headers {
        key
        value
      }
    }
  }
}
不慣れなオペレーション/スキーマの探索

MCP では露出していない mutation・input 型・object フィールドが必要なときは、linear_graphql 経由でターゲットされたイントロスペクションを使う。

mutation 名一覧:

graphql
query ListMutations {
  __type(name: "Mutation") {
    fields {
      name
    }
  }
}

特定の input オブジェクトを調査:

graphql
query CommentCreateInputShape {
  __type(name: "CommentCreateInput") {
    inputFields {
      name
      type {
        kind
        name
        ofType {
          kind
          name
        }
      }
    }
  }
}
graphql
query QueryFields {
  __type(name: "Query") {
    fields {
      name
    }
  }
}
graphql
query IssueFieldArgs {
  __type(name: "Query") {
    fields {
      name
      args {
        name
        type {
          kind
          name
          ofType {
            kind
            name
            ofType {
              kind
              name
            }
          }
        }
      }
    }
  }
}

使用ルール

  • 通常の CRUD(issue/コメント/プロジェクト/チーム/ステータス/添付)は MCP を優先する。
  • アップロード、イントロスペクション、未対応の mutation には linear_graphql を使う。
  • 既知の情報に合わせて最も狭い issue ルックアップを優先する: key -> identifier 検索 -> 内部 id。
  • 状態遷移では、まずチームの状態を取得し、ID を文字列リテラルでハードコードしない。
  • GitHub PR を Linear issue にリンクするときは、リッチなプレビューが必要なら attachmentLinkGitHubPR を、それ以外は MCP の create_attachment を優先する。
  • GraphQL アクセス用の新しい raw-token シェルヘルパーを導入しない。
  • アップロード用のシェル作業は fileUpload から返された署名済みアップロード URL にのみ使用する。これらの URL は既に必要な認可情報を持っている。
  • MCP のツールに文字列を渡すときは、エスケープシーケンスを書かずそのまま渡す(実改行を含む markdown など)。

© team-mirai, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/linear of team-mirai/mirai-gikai.

Open the folder on GitHubat commit 00b649b

Compare with similar skills

Linear next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Linear compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Linear this skillteam-mirai/mirai-gikai212—~1.9kAutomated safety check: PassAGPL-3.0
Spider Kingaoyunyang/spider-king-skill507—~7.3kAutomated safety check: PassMIT
Cuga GitHub Issuescuga-project/cuga-agent895—~1.2kAutomated safety check: PassCustom licence
Linearletta-ai/lettabot326—~583Automated safety check: PassApache-2.0
SpikardGoldziher/spikard123—~799Automated safety check: PassMIT
Executor Usagejeremyosih/pi-executor104—~1.4kAutomated safety check: PassMIT

Similar skills

  • Spider King

    aoyunyang/spider-king-skill

    Pure-web protocol reverse skill: turn hostile browser clients into browser-free Python collectors.

    507 GitHub stars~7.3k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Cuga GitHub Issues

    cuga-project/cuga-agent

    Create GitHub issues for cuga-agent (bugs, features, epics, designs, and related work) against origin using gh, with epic → feature → issue hierarchy and GraphQL sub-issue linking.

    895 GitHub stars~1.2k tokensUpdated today
    Backend & APIsAuto-check passed
  • Linear

    letta-ai/lettabot

    Manage Linear issues via GraphQL API. An agent skill from letta-ai/lettabot.

    326 GitHub stars~583 tokensUpdated 4 mo ago
    Backend & APIsAuto-check passed
  • Spikard

    Goldziher/spikard

    Scaffold Spikard projects and generate code from OpenAPI, AsyncAPI, OpenRPC, GraphQL, and Protobuf schemas using the Spikard CLI or its MCP server.

    123 GitHub stars~799 tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Executor Usage

    jeremyosih/pi-executor

    Load this skill before using the execute tool. An agent skill from jeremyosih/pi-executor.

    104 GitHub stars~1.4k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed
  • Linear API

    nesszer/linear-cli

    Execute raw GraphQL queries and mutations against the Linear API.

    138 GitHub stars~213 tokensUpdated 25 days ago
    Backend & APIsAuto-check: notes

More from team-mirai/mirai-gikai

All 10 skills in this repo
  • Agent Browser

    team-mirai/mirai-gikai

    agent-browser CLIを使ったブラウザ操作のガイド。Webページの操作、スクレイピング、スクリーンショット取得などブラウザ自動化が必要なときに参照する。「ブラウザで開いて」「Webページを操作して」「スクリーンショットを撮って」と言われたらこのスキルを使う。

    212 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Land

    team-mirai/mirai-gikai

    PR をランディングする。コンフリクトを監視・解決し、チェックを待ち、グリーンに なったら squash-merge する。land、merge、PR を完了まで導くことを依頼された ときに使用する。

    212 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Linear

    team-mirai/mirai-gikai

    Linearタスクのステータス管理(In Progress / In Review への自動遷移). An agent skill from team-mirai/mirai-gikai.

    212 GitHub stars~407 tokensUpdated yesterday
    Auto-check passed
  • Parallel PR

    team-mirai/mirai-gikai

    複数の独立PRをチーム×worktreeで並列作成する。タスク一覧を受け取り、worktree準備→チーム組成→エージェント起動→CI確認→クリーンアップまで一気に実行する。

    212 GitHub stars~767 tokensUpdated yesterday
    Auto-check passed
  • PR Screenshot

    team-mirai/mirai-gikai

    UI変更を含むPRで、agent-browserでスクリーンショットを撮影し、R2にアップロードしてPR本文に貼り付ける

    212 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check: notes
  • Push

    team-mirai/mirai-gikai

    現在のブランチの変更を origin に push し、対応する pull request を作成 または更新する。push、更新の公開、pull request の作成を依頼されたときに使用する。

    212 GitHub stars~724 tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Linear

What does Linear do?

Linear と対話するためのスキル。Linear MCP サーバー(mcplinear ツール)を 優先的に使用し、MCP でカバーされない生の GraphQL 操作(イントロスペクション、 ファイルアップロードなど)は lineargraphql クライアントツールにフォールバックする。. Linear is an agent skill from team-mirai/mirai-gikai.

When should I use Linear?

Linear fits situations like: tasks that involve GraphQL.

How do I install Linear in Claude Code?

Run `npx skills add team-mirai/mirai-gikai --skill linear -a claude-code`. Or copy the skill folder (.agents/skills/linear in team-mirai/mirai-gikai) into .claude/skills/linear in your project. Claude Code loads it when a task matches its description.

How do I install Linear in Codex?

Run `npx skills add team-mirai/mirai-gikai --skill linear -a codex`. Or copy the skill folder (.agents/skills/linear in team-mirai/mirai-gikai) into .agents/skills/linear in your project. Codex loads it when a task matches its description.

Can I use Linear in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add team-mirai/mirai-gikai --skill linear -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/linear, .gemini/skills/linear, .github/skills/linear and .opencode/skills/linear in your project.

What does Linear need to run?

Going by SKILL.md and its folder, Linear needs the command-line tools its instructions call (curl).

Does Linear access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Linear safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Linear use?

Linear is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Linear use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Linear?

Skills that share tags, products or a category with Linear: Spider King (aoyunyang/spider-king-skill, 507 stars), Cuga GitHub Issues (cuga-project/cuga-agent, 895 stars), Linear (letta-ai/lettabot, 326 stars) and Spikard (Goldziher/spikard, 123 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Linear?

team-mirai (a GitHub organization) maintains it in team-mirai/mirai-gikai, which has 212 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.

Source: team-mirai/mirai-gikai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.