SuperAPI AI 工具集

pp-linear

办公与效率

查看项目

更新于 10-15 15:00

技能介绍

用途

pp-linear 是一个面向智能体(agent)的 Linear 命令行工具,由 Printing Press 库提供,核心可执行文件为 linear-pp-cli。它用于在命令行中读取和修改 Linear 工作区数据,并支持离线场景。该工具强调智能体原生(agent-native)设计,适合需要跨 issue、周期(cycle)、项目(project)和里程碑(milestone)进行联合查询的任务,这些查询在 Linear 界面中往往需要切换多个标签页,在 API 中需要多次往返。

主要能力

  • 本地状态累积:提供 today(按优先级和周期截止日期排序的跨团队个人工作队列)、bottleneck(识别过载成员与阻塞 issue)、stale(按团队和项目分组查找 N 天未更新的 issue)等命令。
  • 全文搜索:issues search 与 similar 使用本地 FTS5 搜索查找疑似重复的 issue,支持 --team 限定范围,并在数据陈旧时自动刷新或返回类型化错误。
  • 跨实体汇总:projects burndown(基于团队速度线性回归预测项目落地日期)、cycles compare(两个周期的完成率、范围增减、结转、平均周期时间对比)、slipped(上一周期结转项)、velocity(最近 N 个周期的完成率趋势)、initiatives health(倡议级组合视图)、milestones at-risk(按滑移幅度排序的风险里程碑)。
  • 个人队列:blocking 显示你正在阻塞的 issue,按下游影响排序。
  • 智能体原生管道:pp-test list 列出当前或指定会话中由本 CLI 创建的 issue,便于用 pp-cleanup 归档;issues create --trust-mode strict 在严格模式下拒绝对不在本地 pp_created 账本中的 issue 进行变更。
  • 父子 issue 链接:创建子 issue 并设置、更改或清除父链接,无需手写 GraphQL。
  • 团队安全的标签:labels list 发现目标团队有效标签(含全局标签),支持按 UUID(--label)或精确名称(--label-name)附加,写入前会预检归属并拒绝跨团队标签。
  • 项目与倡议名称解析:--project-name 与倡议名称解析在写入前实时读取 Linear 解析 UUID,支持 projects search 与 initiatives search 辅助查找。
  • Shell 安全的写入与媒体:通过 --description-file、--body-file、--content-file 等文件或 stdin 方式写入 Markdown 正文,避免多行内容、反引号、$() 展开等直接出现在命令行;支持 --media 上传图片或文件,图片转为 Markdown 图片嵌入,非图片转为链接。
  • 当前 issue 读取与评论:issues <id> 支持 --data-source live 读取完整正文,comments list 读取讨论。
  • 状态流转:workflow-states list(别名 states list)列出团队状态,issues edit --state 传入 UUID 切换状态,或使用 --state-name / --state-type 一步转换。
  • 文档读取:documents <ref> 接受文档 UUID、裸 slugId、完整 URL slug 或完整文档 URL。

使用方式

前置条件:安装 CLI。本技能驱动 linear-pp-cli 二进制,激活时不要调用名为 linear 的命令。若缺失,先安装:

npx -y @mvanhorn/printing-press-library install linear --cli-only

验证:linear-pp-cli --version

确保安装目录在调用该技能的 agent/运行时的 $PATH 中。若 npx 安装失败(无 Node、离线等),可回退到 Go 直接安装(需要 Go 1.26.6 或更新版本):

go install github.com/mvanhorn/printing-press-library/library/project-management/linear/cmd/linear-pp-cli@latest

若安装后 --version 报“command not found”,说明运行时无法在 $PATH 中看到二进制目录,在验证成功前不要继续执行技能命令。

智能体契约:除非明确需要人类可读表格,否则在命令中添加 --agent。它隐含 JSON、紧凑输出、非交互模式、无颜色和确认安全脚本。在需要当前真实状态的场景(如收尾、状态、描述检查)使用 --data-source live;重复检查使用 issues search,它会刷新陈旧的 issue 搜索数据或显式失败;仅在有意使用陈旧/离线本地重复搜索时使用 --data-source local 或类似选项。紧凑输出中省略的字段并不代表 issue 中不存在,需显式请求,包括嵌套标签:linear-pp-cli issues ENG-123 --agent --data-source live --select identifier,title,description,state.name,labels.nodes.id,labels.nodes.name,url。可用逗号分隔标识符一次获取多个已知 issue:linear-pp-cli issues ENG-123,ENG-124 --agent,结果数组保持调用顺序并去重,缺失成员会导致整个读取失败而非返回部分集合。优先使用此处展示的规范读取与评论形式;常见智能体措辞(如 issues get|view|show ENG-123、documents get|view <ref>、comments create)作为兼容别名被接受,行为不变。--label 仅接受 UUID;--label-name 在写入时解析精确标签名(团队所有或工作区全局)。在向 issues create 或 issues edit 传递 UUID 前,先运行 linear-pp-cli labels list --team ENG --agent --select id,name,global,team.key。CLI 会预检归属并在变更前拒绝跨团队标签。切勿将多行 Markdown、shell 片段、GraphQL、日志、反引号、$() 展开或富媒体内容作为内联 shell 参数传递,应将正文写入文件或 stdin 并使用 *-file / *-stdin 标志。

适用场景

  • 需要跨 issue、周期、项目和里程碑的联合查询时。
  • 智能体通过 MCP 驱动 Linear(编排对加命名意图以约 1K token 覆盖完整表面)。
  • 工程经理准备周五更新(周期对比、结转、燃尽、阻塞队列)。
  • 任何必须在 pp_created 夹具生命周期契约下变更真实工作区的智能体。

限制

  • 本技能驱动 linear-pp-cli 二进制,激活时不要调用名为 linear 的命令。
  • 安装后需确保二进制目录在 $PATH 中,否则无法继续。
  • --label 仅接受 UUID;--label-name 需要精确名称匹配。
  • --project 仅接受 UUID;--project-name 需要精确项目名匹配。
  • --state 需要 UUID,非 UUID 值会报用法错误并指向 --state-name。
  • 不要使用 linear-pp-cli api 或 linear-pp-cli sql 处理工作流状态;api 仅暴露生成的 REST 形状接口(当前为 integrations),不包含 Linear GraphQL 对象。
  • 多行 Markdown、shell 片段、GraphQL、日志、反引号、$() 展开或富媒体内容不得作为内联 shell 参数传递。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。