Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

linearLinear 项目管理

Agent Skill

用于处理 Linear 项目、Issue、团队、周期和产品开发任务流。它适合让 Agent 辅助查询任务状态、整理需求队列、创建缺陷或汇总迭代进展。使用时需要确认 workspace、team、label、assignee 和状态流转规则;涉及批量创建或修改任务时,应先核对字段和目标团队,避免把草稿需求直接写入正式项目。

总安装

336

周安装

14

GitHub Stars

公开资料未说明

下载量

112
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:linear(Linear 项目管理)
来源仓库:https://github.com/fluid-commerce/open-agents
仓库路径:skills/linear
安装命令:
npx skills add https://github.com/fluid-commerce/open-agents --skill linear
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/fluid-commerce/open-agents --skill linear

简介

linear 用于处理 Linear 项目、Issue、团队、周期和产品开发任务流。

  • 适合让 Agent 辅助查询任务状态、整理需求队列、创建缺陷或汇总迭代进展。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 使用时需确认 workspace、team、label、assignee 和状态流转规则;涉及批量操作时应先核对字段和目标团队。
  • 安装前需确认权限范围、维护状态,注意是否触发联网、命令执行或文件读写。

SKILL.md

You can interact with Linear by calling its GraphQL API directly via curl. Authentication is automatic — the sandbox network proxy replaces the Authorization header with the real token on any request to api.linear.app.

Request pattern

curl -s https://api.linear.app/graphql \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer sandbox-injected' \
  -d '{"query": "<GRAPHQL>", "variables": {}}' | jq .data

Always use Authorization: Bearer sandbox-injected exactly — the proxy swaps it for the real token.

Queries

Fetch an issue by identifier

issue(id:) accepts both UUIDs and human-readable identifiers (e.g. CURRENT-370).

{
  issue(id: "CURRENT-370") {
    id identifier title description url priority
    state { name type }
    assignee { displayName }
    labels { nodes { name } }
    team { key name }
    parent { identifier title }
    children { nodes { identifier title state { name type } } }
    relations { nodes { type relatedIssue { identifier title } } }
  }
}

List issues assigned to the authenticated user

{
  viewer {
    assignedIssues(
      filter: { state: { type: { nin: ["completed", "canceled"] } } }
      first: 50
      orderBy: updatedAt
    ) {
      nodes {
        identifier title url priority
        state { name type }
        team { key name }
      }
    }
  }
}

Search issues with filters

query($filter: IssueFilter) {
  issues(filter: $filter, first: 50, orderBy: updatedAt) {
    nodes {
      identifier title url priority
      state { name type }
      assignee { displayName }
    }
    pageInfo { hasNextPage endCursor }
  }
}

Filter examples (pass as variables.filter):

  • By team: {"team": {"name": {"containsIgnoreCase": "Engineering"}}}
  • By project: {"project": {"id": {"eq": "<project-uuid>"}}}
  • By state type: {"state": {"type": {"in": ["unstarted", "started"]}}}
  • Combine with "and" / "or" arrays

Resolve a project by name

{
  projects(filter: { name: { containsIgnoreCase: "My Project" } }, first: 10) {
    nodes { id name }
  }
}

List teams

{
  teams(first: 50) { nodes { id key name } }
}

Mutations

Create an issue

mutation($input: IssueCreateInput!) {
  issueCreate(input: $input) {
    success
    issue { identifier title url }
  }
}

Variables: {"input": {"teamId": "<team-uuid>", "title": "Title", "description": "Details"}}

Resolve the team UUID from the teams query above using the team key.

Comment on an issue

mutation($input: CommentCreateInput!) {
  commentCreate(input: $input) {
    success
    comment { id body }
  }
}

Variables: {"input": {"issueId": "<issue-uuid>", "body": "Comment text"}}

The issueId field requires the UUID, not the identifier. Fetch the issue first to get its id.

Update workflow state

First, resolve the target state within the issue's team:

{
  workflowStates(filter: { team: { key: { eq: "CURRENT" } } }, first: 50) {
    nodes { id name type }
  }
}

Then update:

mutation {
  issueUpdate(id: "<issue-uuid>", input: { stateId: "<state-uuid>" }) {
    success
    issue { identifier state { name } }
  }
}

Important notes

  • Identifiers vs UUIDs: issue(id:) accepts identifiers like CURRENT-370. Most mutations require UUIDs — fetch the issue first to get its id field.
  • Pagination: List queries return pageInfo {hasNextPage endCursor}. Pass after: "<endCursor>" for the next page.
  • Auth errors: If you get a 401, the user hasn't connected Linear. Direct them to /settings/accounts.
  • Confirm before mutating: Don't create or modify Linear data without the user's confirmation.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.05%
按下载量换算40

Claude

30.44%
按下载量换算34

Cursor

17.01%
按下载量换算19

Gemini CLI

8.37%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills