SuperAPI AI 工具集

pulumi-neo-handoff

部署与运维

查看项目

更新于 10-16 08:14

技能介绍

用途

Pulumi Neo Handoff 用于将当前线程中正在进行的工作,以单向交接的方式转移给一个新的 Pulumi Neo 任务。控制权交给 Neo 后不会返回调用方代理。

主要能力

该技能在激活时,调用方代理扮演交接协调者而非操作者:不逐轮叙述交接过程,不把组装好的提示正文粘贴到聊天中(只显示临时文件路径供用户按需查看),启动后不再继续处理该任务,在返回任务 URL 后干净退出。

Neo 任务会收到一份包含三个部分的开场提示:

  • Goal:一句话描述 Neo 接下来应该做什么。
  • Repository pointers:仓库根目录、分支、工作目录、工作树状态,以及与进行中工作最相关的 3 到 5 个文件。
  • Conversation summary:对已讨论、已决定和未决事项的紧凑记录。

提示中不包含 diff、完整文件内容或工具输出,因为 Neo 会直接看到本地工作树(包括未提交的更改),重复这些内容会浪费 Neo 的开场上下文。

使用方式

工作流程分为以下步骤:

  1. 预检:在起草任何内容前验证 CLI 是否可用。使用 command -v pulumi 检查 pulumi CLI 是否安装,使用 pulumi neo --help 检查 pulumi neo 是否可用(可能需要运行 pulumi login 或升级 CLI)。预检失败时向用户显示错误并停止。

  2. 确定目标:目标是一句话描述 Neo 接下来应该做什么。如果用户的交接消息中包含该目标,直接使用;否则询问一次“What would you like Neo to do next?”。不重复目标以确认。

  3. 收集仓库上下文:使用 git rev-parse --show-toplevel 获取仓库根目录,git rev-parse --abbrev-ref HEAD 获取分支(分离头指针时返回 HEAD),git status --short 获取工作树摘要。如果不是 git 仓库,则省略 Repository 部分并仅记录工作目录。如果分支显示 HEAD,记录提交 SHA 并标注为“detached at <sha>”。从对话中识别 3 到 5 个最相关的文件;如果对话未明确识别文件,则列出空而不是猜测。

  4. 起草对话摘要:按结构撰写紧凑摘要,包括 What's been done(已做出的决定、更改的代码、排除的死胡同)、Open questions(用户未解决的问题)、Next step(Neo 首先应做什么的一两句话)。目标约 400 词,积极压缩。没有有用内容的章节应省略而非填充。

  5. 组装提示并写入临时文件:将三个部分合并为单个 markdown 文档,使用 mktemp 创建可移植的临时路径,例如 PROMPT_FILE="$(mktemp -t neo-handoff.XXXXXX.md)"。文档结构为 # Goal、# Repository(Root、Branch、Working directory、Working tree、Files in play)、# Conversation summary。

  6. 启动:打印临时文件路径及一行大小摘要,然后调用 pulumi neo "$(cat "$PROMPT_FILE")"。pulumi neo 接受提示作为单个位置参数,没有 --file 标志,stdin 重定向会启动 TUI 而不是消费提示。"$(cat ...)" 形式将文件字节作为数据捕获并作为单个参数传递。不要改成 pulumi neo --file ... 或 pulumi neo < ...,这两种形式对当前 CLI 都是无效的。如果 CLI 以非零退出,原样显示其 stderr 并保留提示文件以便用户重试。

  7. 显示任务 URL:CLI 成功时会打印任务 URL,原样回显后停止。

适用场景

当用户明确要求交接、发送、转移或继续当前工作时使用。检测到基础设施相关工作不是触发条件;像“Neo 能做 X 吗”这样的能力问题也不是交接。

限制

  • 单向交接:控制权交给 Neo 任务后不会返回调用方代理。
  • Neo 任务可中断:如果摘要有误,用户可以在 Neo 任务内重定向。
  • 显示任务 URL 是该技能的成功标准,而非底层工作成功完成。Neo 可能在任务内拒绝或重定向请求。
  • 不要代替用户提交、推送或修改工作树;用户拥有自己的 git 状态,该技能是上下文交接而非工作流控制器。
  • 不要在提示中包含 diff、文件内容或命令输出。
  • 不要把组装好的提示粘贴到聊天中以供确认。