Linear 技能用于从终端操作 Linear,通过 Linear 公开的 GraphQL API 实现。它提供一个位于技能目录下的小型、无依赖包装脚本 scripts/linear,并非 MCP 服务器。使用时建议通过命令特定的 --help 查看用法,而不是把完整命令参考复制到回复中。
用途
该技能面向需要从命令行管理 Linear 数据的任务,涵盖团队、项目、周期、问题、评论、工作流状态和文档。它适合在终端环境中进行有边界的读取与受控的写入操作。
主要能力
命令覆盖身份确认、团队发现、工作流状态列表、问题列表与搜索、问题读取(含项目、周期、层级、评论和关系)、问题创建与更新、问题归档与取消归档、项目列表与读取、项目更新、周期列表与读取、文档搜索与读取,以及通过 raw 执行文档中支持的 GraphQL 操作。
使用方式
首先查看可用命令和相关名词的帮助,例如 scripts/linear --help 和 scripts/linear issue --help。进行实际请求时,在进程环境中仅设置一个凭据:个人密钥使用 LINEAR_API_KEY,OAuth 使用 LINEAR_ACCESS_TOKEN。切勿打印、持久化或将任一凭据放入命令记录中。读取默认 --limit 10,最大 100。输出始终为 JSON:加 --json 为紧凑格式,不加为缩进格式。--dry-run 不发起网络请求,仅预览操作。
对于状态变更(问题创建、更新、移动、评论、归档、取消归档,项目更新,以及 raw GraphQL 变更),应先确认目标、范围和回滚路径。只读发现无需确认。流程为:用读取命令识别问题/团队/项目/状态;向用户说明确切的预期变更和恢复路径;用 --dry-run --json 运行同一命令(无需凭据或网络);确认后加 --confirm --json 重新运行;报告返回的标识符和结果,不暴露凭据。
--team 过滤器要求精确的团队键。问题创建会先解析团队键或精确名称;评论、更新或归档前会解析问题标识符;项目按 UUID 或精确名称解析;负责人按精确名称或邮箱解析;标签在问题所属团队内解析;目标工作流状态仅在该问题所属团队内解析。项目更新按 UUID 或精确名称解析项目,按名称或类型解析状态。它不会猜测 ID、工作流状态、标签或项目状态。
错误与恢复
缺少凭据时,仅为命令会话导出一个受支持的环境变量,或使用 --dry-run 检查请求。GraphQL 错误时,CLI 将 Linear 的第一条有用错误消息写入 stderr 并以非零退出,即使 HTTP 状态为 200。团队歧义时,使用 team list 选择精确的键/名称,不要通过猜测 ID 重试。状态查找失败时,先用 state list --team 列出团队状态,再使用精确名称。标签查找失败时,错误会列出问题所属团队的可用标签。项目状态查找失败时,错误会列出可用状态,使用精确名称或类型(如 planned、started、paused、completed、canceled)。项目描述被拒绝时,Linear 的 projectUpdate 拒绝超过 255 字符的描述,应保持在 255 字符以内。限制失败时,选择 1 到 100 之间的值,CLI 故意不自动分页。速率限制或传输失败时,等待并重试相同的有限读取,遵循 Linear 的速率限制指南,而不是添加重试循环。
适用场景
适合从终端读取或修改 Linear 数据,例如确认当前身份、发现团队、列出工作流状态、按条件筛选问题、按词语搜索问题或文档、读取单个问题及其关联信息、创建或更新问题、管理项目与周期、检索文档,以及在需要时使用 raw 执行文档中支持的 GraphQL 操作。
限制
该技能不是 MCP 服务器。当任务是将实时代理嵌入 Linear 内部,而不是从终端操作 Linear 时,应使用 Linear 原生的 MCP 或 agent-session/webhook API。raw 是逃生通道,不是常规命令的替代品,应保持查询狭窄,并使用官方 GraphQL 文档确认字段名和权限。CLI 不自动分页。项目描述长度限制为 255 字符。