@realqiyan/agent-task 0.1.0-rc.5 → 0.1.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,59 +2,71 @@
2
2
 
3
3
  **先安装接入包,再由 `using-agent-task` 引导安装、初始化和使用服务。** 插件名仍为 `agent-task`。skill 只指导使用现有 CLI/MCP,不增加任务 API、执行器或业务规则。
4
4
 
5
- 入口:[共享包](../hosts/agent-task/)、[使用引导](../hosts/agent-task/skills/using-agent-task/SKILL.md)、[Claude marketplace](../.claude-plugin/marketplace.json)、[Codex marketplace](../.agents/plugins/marketplace.json)。
5
+ 入口:[共享包](../plugin/)、[使用引导](../plugin/skills/using-agent-task/SKILL.md)、[Claude marketplace](../.claude-plugin/marketplace.json)、[Codex marketplace](../.agents/plugins/marketplace.json)。
6
6
 
7
7
  Agent Task 支持 Linux/macOS、Node.js 22.19+ 与 npm。Pi 需要 1.4.0+ 的原生 MCP;Claude Code 需要插件支持;Codex CLI 需要 `plugin marketplace add` 和 `plugin add`。不承诺 Codex IDE、云端或其他同名插件系统可用。核验版本与限制见[验证说明](validation.md#宿主接入包)。
8
8
 
9
- ## 不预装服务的本地入口
9
+ ## 一个仓库、两个 npm 包
10
10
 
11
- 当前源码可直接安装接入包,**不需要先执行服务的 `npm ci`、build、link 或 setup**。在包含本次接入资产的仓库根目录设置:
11
+ 服务与插件在同一仓库开发,分别打包。服务包 `@realqiyan/agent-task` 提供 CLI 和运行依赖;插件包 `@realqiyan/agent-task-plugin` 仅包含宿主接入资产,不依赖服务或 SDK,没有 npm 安装 hook。**不要用 `pi install npm:@realqiyan/agent-task` 安装插件。** 服务发行包不再携带插件副本。
12
12
 
13
- ```bash
14
- AGENT_TASK_SOURCE="$(pwd -P)"
15
- ```
16
-
17
- 然后只执行对应宿主的安装命令。保留被引用的本地目录;接入包与服务安装目录是两个概念。
13
+ 源码 marketplace 固定选择已审查的插件包版本,不跟随 npm latest。以下 npm 入口须在新包和对应 marketplace 发布后使用;当前改名不等于已发布,状态与限制见[验证说明](validation.md#宿主接入包)。不存在第二个分发仓库。
18
14
 
19
15
  ### Pi
20
16
 
21
17
  ```bash
22
- pi install "$AGENT_TASK_SOURCE/hosts/agent-task"
18
+ pi install npm:@realqiyan/agent-task-plugin
23
19
  ```
24
20
 
25
- 启动 Pi(已有会话先 `/reload`),调用 `/skill:using-agent-task`。Pi package 安装 skill 和只读启动检查扩展,首次引导会在 setup 完成并取得确认后,执行原生 `pi mcp add` 注册连接。已有同名连接时先核对,不盲目替换。需要项目作用域时,分别为 package 安装和 MCP 注册选择 `--local` 并审查项目信任设置。
21
+ 需要项目作用域时附加 `--local`。启动 Pi(已有会话先 `/reload`),调用 `/skill:using-agent-task`。插件安装 skill 和只读检查扩展;首次引导在 setup 完成并取得确认后用原生 `pi mcp add` 注册连接。MCP 注册的作用域须单独选择,不替换已有同名连接。
26
22
 
27
23
  ### Claude Code
28
24
 
25
+ 通过清单 URL 获取索引,不克隆服务仓库:
26
+
29
27
  ```bash
30
- claude plugin marketplace add "$AGENT_TASK_SOURCE"
28
+ claude plugin marketplace add https://raw.githubusercontent.com/realqiyan/agent-task/master/.claude-plugin/marketplace.json
31
29
  claude plugin install agent-task@agent-task --scope user
32
30
  ```
33
31
 
34
- 在新会话调用 `/agent-task:using-agent-task`。插件已声明 `agent-task mcp`,不要重复执行 `claude mcp add`。服务未安装或 setup 未完成时,MCP 连接失败是预期行为,不妨碍使用引导。初始化后重开会话或在 `/mcp` 重连。
32
+ marketplace 的 npm 来源让宿主下载插件包。需要项目级声明时选择 `--scope project`。新会话调用 `/agent-task:using-agent-task`。插件已声明 MCP,不要重复 `claude mcp add`。
35
33
 
36
34
  ### Codex CLI
37
35
 
36
+ 稀疏检出同仓的索引,然后从 npm 安装插件:
37
+
38
38
  ```bash
39
- codex plugin marketplace add "$AGENT_TASK_SOURCE"
39
+ codex plugin marketplace add realqiyan/agent-task --sparse .agents/plugins
40
40
  codex plugin add agent-task@agent-task
41
41
  ```
42
42
 
43
- 在新会话调用 `$using-agent-task`,或在 `/skills` 中选择它。支持原生 onboarding 的界面也指向同一 skill。插件已声明 `agent-task mcp`,不要重复执行 `codex mcp add`。初始化后开新会话,在 `/mcp` 检查连接;`codex mcp list` 的静态配置输出本身不证明连接成功。
43
+ 稀疏检出避免展开整个服务源码树,但不承诺完全不下载 Git 元数据或根目录文件。也可使用本地 marketplace 索引目录,无需 Git 克隆。新会话调用 `$using-agent-task`,或在 `/skills` 选择它。原生 onboarding 指向同一 skill;检查提醒需要先在 `/hooks` 中审查信任。
44
44
 
45
- 安装接入资产不需要服务凭据;让宿主模型执行 skill 仍需宿主自身的模型认证。
45
+ ### 服务与项目边界
46
46
 
47
- ## 分发入口与发布边界
47
+ Claude/Codex 都由宿主通过 npm 获取插件,不是运行 `npm install -g` 后就自动注册。服务未安装或 setup 未完成时 MCP 失败是预期行为,skill 仍可使用;初始化后重开会话或在宿主 MCP 界面重连。`codex mcp list` 的静态配置不是连接成功证据。
48
48
 
49
- 独立轻量 npm 包名为 `@realqiyan/agent-task-hosts`,不依赖服务或 SDK,也没有 npm 安装 hook。**维护者发布该包后**,Pi 可直接使用:
49
+ 插件通过 PATH 调用独立服务 `agent-task mcp`,不运行插件缓存里的服务源码。多个 workspace 的本地插件可共用服务;`--local` 或项目级安装只控制宿主配置,不隔离服务数据。需要独立后台时显式配置不同 `--home`。删除项目插件不删除服务或任务历史。
50
+
51
+ 安装接入资产不需要服务凭据;让模型执行 skill 需要宿主自身的模型认证。引导仍须先取得确认,才能安装服务或改配置。
52
+
53
+ ## 未发布资产的本地验收
54
+
55
+ 不需要服务的 npm ci、build、link 或 setup。仓库根目录执行:
50
56
 
51
57
  ```bash
52
- pi install npm:@realqiyan/agent-task-hosts
58
+ AGENT_TASK_SOURCE="$(pwd -P)"
59
+ pi install "$AGENT_TASK_SOURCE/plugin"
60
+
61
+ # Claude/Codex:生成只含插件及本地索引的独立临时快照
62
+ MARKETPLACE="$(node scripts/create-plugin-marketplace.mjs)"
63
+ claude plugin marketplace add "$MARKETPLACE"
64
+ claude plugin install agent-task@agent-task-dev --scope user
65
+ codex plugin marketplace add "$MARKETPLACE"
66
+ codex plugin add agent-task@agent-task-dev
53
67
  ```
54
68
 
55
- Claude Code/Codex 的 marketplace 文件进入远端后,可将上文 marketplace add 参数替换为 `realqiyan/agent-task`,无需预装服务或克隆源码。
56
-
57
- 这些入口的源码配置不等于已完成发布;当前改动可使用上述本地入口。独立包的打包、发布要求见[发布说明](release.md#独立接入包)。包含接入资产的服务 npm 发行版仍可提供同一目录,已安装服务的用户可将 `AGENT_TASK_SOURCE` 设为 `$(npm root -g)/@realqiyan/agent-task`;这不是首次接入的前提。
69
+ 只执行需要的宿主命令。生成器不安装依赖、不改宿主配置;本地 marketplace 名为 `agent-task-dev`,与正式源区分。保留快照目录直到移除注册,修改源码后重新生成并更新注册;不要同时启用正式插件与开发插件,以免重复 MCP 连接。根目录的正式 marketplace 指向 npm,直接注册仓库不会加载尚未发布的 `plugin/` 改动。
58
70
 
59
71
  ## 启动提醒与检查边界
60
72
 
@@ -73,7 +85,7 @@ export AGENT_TASK_PREFLIGHT_HOME=/absolute/private/agent-task
73
85
 
74
86
  这些变量**只选择检查目标,不修改 MCP 连接**,也不推断或改写宿主配置。已关闭插件 MCP、改用远程连接或不需要此提示时,可在宿主原生设置中禁用该 hook/扩展,保留 skill。
75
87
 
76
- Codex 插件 hook 必须先在 `/hooks` 中审查并信任;安装插件不自动授权 hook。Claude Code/Pi 也须允许插件 hook/扩展运行。禁用、未信任或 Node 无法启动时,不能保证出现自定义提示,仍可显式调用上述 skill。不要通过绕过信任或扩大权限来消除提示。程序入口见 [preflight](../hosts/agent-task/scripts/preflight.mjs)、[Pi 扩展](../hosts/agent-task/pi-extension.js)、[hook 入口](../hosts/agent-task/scripts/session-start.mjs)。
88
+ Codex 插件 hook 必须先在 `/hooks` 中审查并信任;安装插件不自动授权 hook。Claude Code/Pi 也须允许插件 hook/扩展运行。禁用、未信任或 Node 无法启动时,不能保证出现自定义提示,仍可显式调用上述 skill。不要通过绕过信任或扩大权限来消除提示。程序入口见 [preflight](../plugin/scripts/preflight.mjs)、[Pi 扩展](../plugin/pi-extension.js)、[hook 入口](../plugin/scripts/session-start.mjs)。
77
89
 
78
90
  ## 引导如何安装服务
79
91
 
@@ -91,9 +103,9 @@ npm install -g @realqiyan/agent-task
91
103
 
92
104
  引导按需读取包内参考文件,复制到插件缓存或独立安装后不依赖仓库文档:
93
105
 
94
- - [安装与连接](../hosts/agent-task/skills/using-agent-task/references/installation.md):setup、原生 MCP 注册、自定义 home/绝对命令路径和连接验证。
95
- - [日常使用](../hosts/agent-task/skills/using-agent-task/references/tasks.md):通过现有 MCP 提交固定 DAG、查看运行与交付、回答事实问题、区分未来触发控制和当前运行取消。
96
- - [排障](../hosts/agent-task/skills/using-agent-task/references/troubleshooting.md):区分安装、连接、配置、适配器准备和执行结果不明,不盲目重试。
106
+ - [安装与连接](../plugin/skills/using-agent-task/references/installation.md):setup、原生 MCP 注册、自定义 home/绝对命令路径和连接验证。
107
+ - [日常使用](../plugin/skills/using-agent-task/references/tasks.md):通过现有 MCP 提交固定 DAG、查看运行与交付、回答事实问题、区分未来触发控制和当前运行取消。
108
+ - [排障](../plugin/skills/using-agent-task/references/troubleshooting.md):区分安装、连接、配置、适配器准备和执行结果不明,不盲目重试。
97
109
 
98
110
  安装验收只需宿主显示已连接,并成功调用 `executor_list({})`、`task_list({})`。Pi 默认通过原生 codemode/tool search 发现工具;使用实际宿主命名空间。不为验收创建任务或执行付费模型/领域工作。连接成功、执行端 ready、原生授权和真实交付是不同证据。
99
111
 
@@ -101,13 +113,16 @@ npm install -g @realqiyan/agent-task
101
113
 
102
114
  ## 更新与移除
103
115
 
104
- 接入包与服务使用同一项目版本,但分别安装。接入包更新不升级服务、不执行 setup、不迁移数据;更新服务前按[部署说明](deployment.md#数据目录与管理)停服并备份。使用宿主原生 package/marketplace 更新入口刷新接入资产,再重开会话。
116
+ 接入包与服务使用同一项目版本,但分别安装。正式 marketplace 固定插件版本,更新时须刷新索引再使用宿主的插件更新入口;开发快照不会自动同步源码。接入包更新不升级服务、不执行 setup、不迁移数据;更新服务前按[部署说明](deployment.md#数据目录与管理)停服并备份。使用宿主原生 package/marketplace 更新入口刷新接入资产,再重开会话。
105
117
 
106
- - Pi 本地安装:`pi remove "$AGENT_TASK_SOURCE/hosts/agent-task"`;npm 安装:`pi remove npm:@realqiyan/agent-task-hosts`。另用 `pi mcp remove agent-task` 移除引导注册的 MCP 连接。
118
+ - Pi 本地安装:`pi remove "$AGENT_TASK_SOURCE/plugin"`;npm 安装:`pi remove npm:@realqiyan/agent-task-plugin`。另用 `pi mcp remove agent-task` 移除引导注册的 MCP 连接。
107
119
  - Claude Code:`claude plugin uninstall agent-task@agent-task`。
108
120
  - Codex:`codex plugin remove agent-task@agent-task`。
121
+ - 本地开发插件使用同一移除命令,但标识为 `agent-task@agent-task-dev`;不再使用时另行移除 `agent-task-dev` marketplace 注册。
109
122
  - 另行添加的手工 MCP 连接需单独移除。
110
123
 
124
+ 原先注册旧 npm 插件包的用户须审查后显式移除旧包声明、再安装新包;不要同时加载两份。若误把服务包通过 `pi install` 注册为插件,只移除该 Pi 声明,不自动卸载独立服务或删除数据。
125
+
111
126
  宿主退出或卸载插件不停止已提交任务。`agent-task status` 查看共享后台,`agent-task stop` 显式停止;先核对活动工作,自定义安装附加相同 `--home`。卸载接入包不删除服务、历史、工作空间或原生执行端配置。
112
127
 
113
128
  ## 原生机制依据
package/docs/release.md CHANGED
@@ -26,16 +26,18 @@ npm 接收发布后可能仍在处理包。[发布后验收](../scripts/verify-i
26
26
 
27
27
  ## 独立接入包
28
28
 
29
- [轻量包](../hosts/agent-task/package.json)为 `@realqiyan/agent-task-hosts`,使用同一项目版本,不依赖服务或 SDK,不运行安装脚本。它允许先安装 `using-agent-task`,再经用户确认安装服务;不是服务的替代安装。Claude Code/Codex 还可直接使用仓库 marketplace,不依赖此 npm 包。
29
+ [轻量包](../plugin/package.json)为 `@realqiyan/agent-task-plugin`,使用同一项目版本,不依赖服务或 SDK,不运行安装脚本。它允许先安装 `using-agent-task`,再经用户确认安装服务;不是服务的替代安装。Claude Code/Codex 的正式 marketplace 也从该 npm 包获取插件;服务发行包不携带插件副本。未发布资产使用[本地快照](host-integrations.md#未发布资产的本地验收)。
30
30
 
31
31
  ```bash
32
- npm run pack:hosts
33
- # 产物:hosts/realqiyan-agent-task-hosts-<项目版本>.tgz
32
+ npm run pack:plugin
33
+ # 产物:realqiyan-agent-task-plugin-<项目版本>.tgz
34
34
  ```
35
35
 
36
- [独立包门禁](../scripts/pack-hosts.mjs)检查版本、无执行/依赖字段和实际包清单;不需要构建服务。[接入测试](../tests/host-integrations.test.mjs)使用临时目录和空 npm 缓存离线安装真实 tarball。发布前还须通过本文的项目检查,并用对应宿主验收引导发现与连接,不能将 skill 文本当成模型已执行的证据。
36
+ [独立包门禁](../scripts/pack-plugin.mjs)检查版本、无执行/依赖字段和实际包清单;不需要构建服务。[接入测试](../tests/host-integrations.test.mjs)使用临时目录和空 npm 缓存离线安装真实 tarball。发布前还须通过本文的项目检查,并用对应宿主验收引导发现与连接,不能将 skill 文本当成模型已执行的证据。
37
37
 
38
- 当前 GitHub 发布工作流只上传服务包,**不会自动发布独立接入包**。接入包需单独授权发布,先核对同名目标版本未占用及 npm 账号/权限,再发布已检查的 `hosts/realqiyan-agent-task-hosts-<版本>.tgz`,明确使用 `--ignore-scripts --access public --tag latest --registry=https://registry.npmjs.org`。不要为新包擅自复用服务包的 Trusted Publisher 授权或绕过登录/2FA。发布后核查该包的 registry 版本和 latest,并在隔离宿主配置中验证 `pi install npm:@realqiyan/agent-task-hosts`;此前文档中的 npm 入口仅代表预定分发方式。
38
+ CI 分别生成服务与插件候选产物;当前 GitHub 发布工作流只上传服务包,**不会自动发布独立接入包**。接入包需单独授权发布,先核对同名目标版本未占用及 npm 账号/权限,再发布已检查的 `realqiyan-agent-task-plugin-<版本>.tgz`,明确使用 `--ignore-scripts --access public --tag latest --registry=https://registry.npmjs.org`。不要为新包擅自复用服务包的 Trusted Publisher 授权或绕过登录/2FA。发布后核查该包的 registry 版本和 latest,并在隔离宿主配置中验证 `pi install npm:@realqiyan/agent-task-plugin`;实际已发布版本与验收边界见[验证说明](validation.md#宿主接入包)。
39
+
40
+ 插件首次改名不沿用旧包发布权限。发布时先完成全部门禁,在明确授权后发布新插件包并验证公开 registry 与宿主安装,再推送引用它的 marketplace;不要让正式索引指向尚不可下载的版本。服务 tag 的发布流程保持独立。旧包不自动撤销、弃用或重发,宿主配置也不自动迁移。
39
41
 
40
42
  ## GitHub Actions 门禁与受控发布
41
43
 
@@ -45,7 +47,7 @@ npm run pack:hosts
45
47
 
46
48
  ### 通过 tag 发布
47
49
 
48
- 1. 核对 npm 中目标版本尚未发布。用 `npm version <新版本> --no-git-tag-version --ignore-scripts` 同步包版本和锁文件,并将 `hosts/agent-task/package.json`、`hosts/agent-task/.claude-plugin/plugin.json`、`hosts/agent-task/.codex-plugin/plugin.json` 的版本设为同一值;打包门禁拒绝不一致。完成上述候选验收后,提交并推送到 master。
50
+ 1. 核对 npm 中目标版本尚未发布。用 `npm version <新版本> --no-git-tag-version --ignore-scripts` 同步包版本和锁文件,并将 `plugin/package.json`、`plugin/.claude-plugin/plugin.json`、`plugin/.codex-plugin/plugin.json` 的版本,以及两个 marketplace 的 npm 来源版本设为同一值;`pack:plugin` 拒绝不一致。完成上述候选验收后,提交并推送到 master。
49
51
  2. 给已验收的提交打版本 tag,并单独推送该 tag:
50
52
 
51
53
  ```bash
@@ -24,7 +24,7 @@
24
24
  | 装配、启动、关闭与重启 | [main](../src/application/main.ts)、[MCP 后台启动](../src/application/mcp-entry.ts)、[业务运行实例](../src/application/task-runtime.ts)、[launcher](../src/application/launcher.ts)、[启动准备](../src/application/startup.ts) | [stdio.test.mjs](../tests/stdio.test.mjs)、[restart.test.mjs](../tests/restart.test.mjs)、[service.test.mjs](../tests/service.test.mjs) |
25
25
  | 安装与发布 | [命令入口](../bin/agent-task.mjs)、[setup](../scripts/setup.mjs)、[安装库](../scripts/install-lib.mjs)、[包门禁](../scripts/pack-release.mjs)、[发布准入](../scripts/check-release.mjs)、[工作流](../.github/workflows/) | [install.test.mjs](../tests/install.test.mjs)、[setup.test.mjs](../tests/setup.test.mjs)、[release.test.mjs](../tests/release.test.mjs)、[发布说明](release.md) |
26
26
 
27
- 宿主安装资产位于 [hosts/agent-task](../hosts/agent-task/),包含原生插件清单、MCP 连接声明、`using-agent-task` 使用引导和只读启动检查,不进入服务运行时依赖图。检查通过 CLI 摘要复用 setup 校验;[检查测试](../tests/host-preflight.test.mjs)验证无写入、故障分类和凭据不回显。[独立包门禁](../scripts/pack-hosts.mjs)不构建或安装服务;[接入测试](../tests/host-integrations.test.mjs)验证无服务依赖的离线安装、清单契约和真实 stdio 工具调用;宿主原生流程见[接入说明](host-integrations.md)。
27
+ 宿主安装资产位于 [plugin](../plugin/),包含原生插件清单、MCP 连接声明、`using-agent-task` 使用引导和只读启动检查,不进入服务运行时依赖图。检查通过 CLI 摘要复用 setup 校验;[检查测试](../tests/host-preflight.test.mjs)验证无写入、故障分类和凭据不回显。[独立包门禁](../scripts/pack-plugin.mjs)不构建或安装服务;[接入测试](../tests/host-integrations.test.mjs)验证无服务依赖的离线安装、清单契约和真实 stdio 工具调用;宿主原生流程见[接入说明](host-integrations.md)。
28
28
 
29
29
  ## 依赖与一致性边界
30
30
 
@@ -20,9 +20,13 @@ git diff --check
20
20
 
21
21
  同一环境中,Pi RPC 发出缺少命令的通知并保留模型上下文,未触发模型运行(`pi-preflight.jsonl`);Claude headless 原生 SessionStart 执行并返回用户提示和上下文(`claude-hook.jsonl`,MCP 被显式关闭以验证独立性)。Codex 发现同步 hook 且无清单错误,但标记为未信任;未绕过审查执行。
22
22
 
23
- [接入测试](../tests/host-integrations.test.mjs)从真实 tarball、空 npm 缓存离线安装独立接入包,并通过真实 setup、stdio 与官方 MCP SDK 调用上述只读工具。[启动检查测试](../tests/host-preflight.test.mjs)检查配置缺失/损坏、失败进程、输出限制与取消、无目录/锁写入及私密值不回显;hook 故障输出不阻塞会话,正常状态不输出通知。[独立包门禁](../scripts/pack-hosts.mjs)与[服务包门禁](../scripts/pack-release.mjs)检查实际包包含 hook、扩展、清单和 skill。原生宿主不是基础测试依赖。
23
+ [接入测试](../tests/host-integrations.test.mjs)从真实 tarball、空 npm 缓存离线安装独立接入包,并通过真实 setup、stdio 与官方 MCP SDK 调用上述只读工具。[启动检查测试](../tests/host-preflight.test.mjs)检查配置缺失/损坏、失败进程、输出限制与取消、无目录/锁写入及私密值不回显;hook 故障输出不阻塞会话,正常状态不输出通知。[插件包门禁](../scripts/pack-plugin.mjs)检查实际包包含 hook、扩展、清单和 skill,并验证两个 npm marketplace 的版本;[服务包门禁](../scripts/pack-release.mjs)拒绝混入插件资产。原生宿主不是基础测试依赖。
24
24
 
25
- 未执行独立接入包的 npm registry 安装、三种宿主的模型驱动安装/setup/日常使用会话、Pi/Claude 模型侧工具调用、真实 TUI 告警展示、Codex 用户信任后的 hook 调用、macOS 接入或自定义 home 的宿主 UI 禁用流程。探针不运行模型或 ACP 领域工作;可发现的真实失败程序只提供连接前置条件,不证明执行端能完成任务。操作入口见[宿主接入](host-integrations.md)。
25
+ 旧名 `@realqiyan/agent-task-hosts@0.1.0-rc.5` 曾完成 npm 发布及 Pi 默认安装、skill 发现和启动通知验证;本机发布,无 GitHub provenance。证据:`/tmp/agent-task-rc5-pi-registry-VbshgS/report.json`。维护者已主动删除旧包;该历史验收不代表当前可安装性,不恢复旧名发布。
26
+
27
+ 新名 `@realqiyan/agent-task-plugin` 尚未发布。Linux、Claude Code 2.1.302/Codex CLI 0.164.0 的隔离配置中,两者都识别 npm 来源并尝试 registry 下载;使用旧包的探针因 404 停止,未证明 npm 插件安装成功。生成的本地插件快照在两种宿主安装成功;不涉及模型或用户 hook 信任。证据:`/tmp/agent-task-npm-source-nNH1U9/report.json`、同目录 `local-report.json`。发布新包后仍须核验清单 URL/稀疏索引入口、npm 下载、skill/hook/MCP 加载;这些未验证条件不因本地安装通过而消失。
28
+
29
+ 未执行三种宿主的模型驱动安装/setup/日常使用会话、Pi/Claude 模型侧工具调用、真实 TUI 告警展示、Codex 用户信任后的 hook 调用、macOS 接入或自定义 home 的宿主 UI 禁用流程。探针不运行模型或 ACP 领域工作;可发现的真实失败程序只提供连接前置条件,不证明执行端能完成任务。操作入口见[宿主接入](host-integrations.md)。
26
30
 
27
31
  ## 控制台验证
28
32
 
@@ -74,11 +78,11 @@ Linux x64、Node 24.15.0 的隔离环境证据:
74
78
 
75
79
  | 范围 | 结论 | 证据 |
76
80
  | --- | --- | --- |
77
- | `0.1.0-rc.2`,提交 `7ffed5c` | Node 22.19.0/24.x 基础检查、包门禁、Linux 独立安装、GitHub OIDC 发布及 npmjs 默认安装验收通过;公开包有 provenance | [发布运行](https://github.com/realqiyan/agent-task/actions/runs/40067373860)、[npm 版本](https://www.npmjs.com/package/@realqiyan/agent-task/v/0.1.0-rc.2) |
78
- | 同版本,Linux x64、Node 24.15.0 | 从 npmjs 默认安装到独立 prefix,通过前台、Web/CLI 重启、stdio 后台、断开后健康及 stop 检查;捕获输出未发现验证凭据 | `/tmp/agent-task-npm-qiT8oy/report.json` |
81
+ | `0.1.0-rc.5`,提交 `0ef200f` | Node 22.19.0/24.x 基础检查、包门禁、Linux 独立安装、GitHub OIDC 发布及 npmjs 默认安装验收通过;公开包有 provenance,latest 指向该版本 | [发布运行](https://github.com/realqiyan/agent-task/actions/runs/40104773771)、[npm 版本](https://www.npmjs.com/package/@realqiyan/agent-task/v/0.1.0-rc.5) |
82
+ | 同版本,Linux x64、Node 24.15.0 | 从 npmjs 默认安装到独立 prefix,通过前台、Web/CLI 重启、stdio 后台、断开后健康及 stop 检查;捕获输出未发现验证凭据 | `/tmp/agent-task-npm-PmUzGG/report.json` |
79
83
  | `0.0.1-rc.2`,提交 `48549ea`,历史平台证据 | Ubuntu x64 与 macOS ARM64 hosted runner 在 Node 22.19.0 下使用 CI tarball、无源码完成安装、前台、重启及认证检查 | [Validate 运行](https://github.com/realqiyan/agent-task/actions/runs/39829900075) |
80
84
 
81
- `0.1.0-rc.2` 的发布验收未执行 macOS、浏览器或真实模型/ACP 任务;旧 macOS 证据不覆盖当前版本、Intel Mac、休眠或用户注销。安装检查使用真实失败程序提供可发现路径,不证明成功 ACP 执行。PTY 能力不可用时测试明确跳过,跳过不是通过。
85
+ `0.1.0-rc.5` 的发布验收未执行 macOS、浏览器或真实模型/ACP 任务;旧 macOS 证据不覆盖当前版本、Intel Mac、休眠或用户注销。安装检查使用真实失败程序提供可发现路径,不证明成功 ACP 执行。PTY 能力不可用时测试明确跳过,跳过不是通过。
82
86
 
83
87
  上述发布状态是验收时的事实,不是实时 registry 查询;包内文档是发布提交的快照。
84
88
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@realqiyan/agent-task",
3
- "version": "0.1.0-rc.5",
3
+ "version": "0.1.0-rc.6",
4
4
  "license": "MIT",
5
5
  "author": "realqiyan",
6
6
  "repository": {
@@ -14,9 +14,6 @@
14
14
  },
15
15
  "files": [
16
16
  "bin/agent-task.mjs",
17
- ".claude-plugin/marketplace.json",
18
- ".agents/plugins/marketplace.json",
19
- "hosts/agent-task/",
20
17
  "dist/**/*.js",
21
18
  "dist/web/*.html",
22
19
  "dist/web/*.css",
@@ -56,7 +53,8 @@
56
53
  "setup": "node bin/agent-task.mjs setup",
57
54
  "prepack": "npm run build",
58
55
  "pack:release": "node scripts/pack-release.mjs",
59
- "pack:hosts": "node scripts/pack-hosts.mjs",
56
+ "plugin:local": "node scripts/create-plugin-marketplace.mjs",
57
+ "pack:plugin": "node scripts/pack-plugin.mjs",
60
58
  "test:install": "node scripts/verify-install.mjs"
61
59
  },
62
60
  "dependencies": {
@@ -1,20 +0,0 @@
1
- {
2
- "name": "agent-task",
3
- "interface": {
4
- "displayName": "Agent Task"
5
- },
6
- "plugins": [
7
- {
8
- "name": "agent-task",
9
- "source": {
10
- "source": "local",
11
- "path": "./hosts/agent-task"
12
- },
13
- "policy": {
14
- "installation": "AVAILABLE",
15
- "authentication": "ON_USE"
16
- },
17
- "category": "Productivity"
18
- }
19
- ]
20
- }
@@ -1,16 +0,0 @@
1
- {
2
- "name": "agent-task",
3
- "metadata": {
4
- "description": "Agent Task installation, usage guidance and native MCP connection"
5
- },
6
- "owner": {
7
- "name": "realqiyan"
8
- },
9
- "plugins": [
10
- {
11
- "name": "agent-task",
12
- "source": "./hosts/agent-task",
13
- "description": "Using Agent Task: installation, setup and existing MCP tools"
14
- }
15
- ]
16
- }
@@ -1,11 +0,0 @@
1
- {
2
- "name": "agent-task",
3
- "version": "0.1.0-rc.5",
4
- "description": "Install, set up and use Agent Task through its existing MCP tools",
5
- "author": {
6
- "name": "realqiyan"
7
- },
8
- "license": "MIT",
9
- "mcpServers": "./mcp.json",
10
- "hooks": "./hooks/claude.json"
11
- }
@@ -1,17 +0,0 @@
1
- {
2
- "name": "agent-task",
3
- "version": "0.1.0-rc.5",
4
- "description": "Install, set up and use Agent Task through its existing MCP tools",
5
- "author": {
6
- "name": "realqiyan"
7
- },
8
- "license": "MIT",
9
- "skills": "./skills/",
10
- "mcpServers": "./mcp.json",
11
- "hooks": "./hooks/codex.json",
12
- "extensions": {
13
- "com.openai": {
14
- "onboardingSkill": "./skills/using-agent-task/SKILL.md"
15
- }
16
- }
17
- }
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 realqiyan
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,54 +0,0 @@
1
- # Agent Task host integration
2
-
3
- A dependency-free Pi package and Claude Code/Codex plugin. The plugin remains named `agent-task`; its skill is `using-agent-task`. It guides service installation, setup, MCP connection and daily task use. All task operations use the existing Agent Task MCP tools.
4
-
5
- ## Install before the service
6
-
7
- From an Agent Task source checkout, no service build or npm install is needed:
8
-
9
- ```bash
10
- pi install /absolute/path/to/agent-task/hosts/agent-task
11
- # Or, for Claude Code:
12
- claude plugin marketplace add /absolute/path/to/agent-task
13
- claude plugin install agent-task@agent-task --scope user
14
- # Or, for Codex CLI:
15
- codex plugin marketplace add /absolute/path/to/agent-task
16
- codex plugin add agent-task@agent-task
17
- ```
18
-
19
- Keep a local source directory in place while it is registered. After the marketplace files are published to Git, Claude Code/Codex can use `realqiyan/agent-task` instead of the local repository path.
20
-
21
- The standalone npm package is `@realqiyan/agent-task-hosts`. **Only after a maintainer publishes it**, Pi can install it with:
22
-
23
- ```bash
24
- pi install npm:@realqiyan/agent-task-hosts
25
- ```
26
-
27
- There is no npm install hook or service dependency. This package does not silently run `npm install -g @realqiyan/agent-task`. In a new session, invoke:
28
-
29
- - Pi: `/skill:using-agent-task`
30
- - Claude Code: `/agent-task:using-agent-task`
31
- - Codex: `$using-agent-task` or select it in `/skills`
32
-
33
- The skill checks the installation and, with your confirmation, runs the service's npm install command using the host's shell tool. It then guides `agent-task setup`; credentials stay in your terminal/private files, not chat. Agent Task requires Linux/macOS, Node.js 22.19+ and npm. The host itself needs its own model access to follow the skill.
34
-
35
- Pi registers MCP after setup. Claude Code/Codex declare MCP in the plugin; a missing-command/setup error is expected before initialization. Reconnect or start a new session after setup. Do not add a duplicate manual connection.
36
-
37
- ## Startup reminders
38
-
39
- The Pi extension and Claude Code/Codex SessionStart hooks check installation state independently of MCP. When the check finds a problem, they show the skill entry point and supply brief model context. Healthy checks are silent; no model turn, installation, repair or service start is triggered.
40
-
41
- The check runs `agent-task setup --check --json` with a time/output limit. It does not interpret private files or forward child-process diagnostics. Unsupported check commands are reported as inconclusive, not treated as proof that installation is missing. This is not a live MCP health check.
42
-
43
- For a custom MCP command/home, set `AGENT_TASK_PREFLIGHT_COMMAND` and `AGENT_TASK_PREFLIGHT_HOME` in the environment that launches your host. They select only the check target; configure MCP separately with the same executable/home. Disable this hook/extension in the host if you do not want checks, or use a different connection.
44
-
45
- Review and trust Codex's plugin hook in `/hooks` before expecting it to run. Disabled/untrusted hooks or a missing Node runtime cannot show the custom notice. Do not bypass hook trust. The skill remains available independently.
46
-
47
- ## Guides
48
-
49
- - [Install, setup and connect](skills/using-agent-task/references/installation.md)
50
- - [Submit tasks, inspect delivery and answer questions](skills/using-agent-task/references/tasks.md)
51
- - [Troubleshoot](skills/using-agent-task/references/troubleshooting.md)
52
- - [Full host installation and removal guide](https://github.com/realqiyan/agent-task/blob/master/docs/host-integrations.md)
53
-
54
- Removing the plugin does not stop the shared service or delete task history. Pi's manually registered MCP entry must be removed separately. No plugin installation or skill grants executor tool permissions.
@@ -1,16 +0,0 @@
1
- {
2
- "hooks": {
3
- "SessionStart": [
4
- {
5
- "matcher": "startup|resume|clear",
6
- "hooks": [
7
- {
8
- "type": "command",
9
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/session-start.mjs\" claude",
10
- "timeout": 5
11
- }
12
- ]
13
- }
14
- ]
15
- }
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "hooks": {
3
- "SessionStart": [
4
- {
5
- "matcher": "startup|resume|clear",
6
- "hooks": [
7
- {
8
- "type": "command",
9
- "command": "node \"${PLUGIN_ROOT}/scripts/session-start.mjs\" codex",
10
- "timeout": 5
11
- }
12
- ]
13
- }
14
- ]
15
- }
16
- }
@@ -1,11 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "agent-task": {
4
- "type": "stdio",
5
- "command": "agent-task",
6
- "args": [
7
- "mcp"
8
- ]
9
- }
10
- }
11
- }
@@ -1,39 +0,0 @@
1
- {
2
- "name": "@realqiyan/agent-task-hosts",
3
- "version": "0.1.0-rc.5",
4
- "type": "module",
5
- "description": "Using Agent Task: installation, setup and existing MCP tools for Pi, Claude Code and Codex",
6
- "license": "MIT",
7
- "author": "realqiyan",
8
- "keywords": [
9
- "pi-package",
10
- "mcp",
11
- "agent-task"
12
- ],
13
- "repository": {
14
- "type": "git",
15
- "url": "git+https://github.com/realqiyan/agent-task.git",
16
- "directory": "hosts/agent-task"
17
- },
18
- "files": [
19
- ".claude-plugin/plugin.json",
20
- ".codex-plugin/plugin.json",
21
- "mcp.json",
22
- "pi-extension.js",
23
- "hooks/",
24
- "scripts/",
25
- "skills/",
26
- "LICENSE"
27
- ],
28
- "publishConfig": {
29
- "access": "public",
30
- "registry": "https://registry.npmjs.org/",
31
- "tag": "latest"
32
- },
33
- "pi": {
34
- "extensions": ["./pi-extension.js"],
35
- "skills": [
36
- "./skills"
37
- ]
38
- }
39
- }
@@ -1,26 +0,0 @@
1
- import { inspectInstallation, onboardingNotice } from "./scripts/preflight.mjs";
2
-
3
- export default function (pi) {
4
- let active;
5
- pi.on("session_start", async (_event, ctx) => {
6
- const controller = new AbortController();
7
- const pending = inspectInstallation({ cwd: ctx.cwd, signal: controller.signal });
8
- active = { controller, pending };
9
- const state = await pending;
10
- if (controller.signal.aborted) return;
11
- const notice = onboardingNotice(state, "pi");
12
- if (!notice) return;
13
- if (ctx.hasUI) ctx.ui.notify(notice.systemMessage, "warning");
14
- pi.sendMessage({
15
- customType: "agent-task-onboarding",
16
- content: notice.systemMessage + "\n" + notice.hookSpecificOutput.additionalContext,
17
- display: !ctx.hasUI,
18
- details: { state },
19
- }, { triggerTurn: false });
20
- });
21
- pi.on("session_shutdown", async () => {
22
- active?.controller.abort();
23
- await active?.pending;
24
- active = undefined;
25
- });
26
- }
@@ -1,71 +0,0 @@
1
- import { spawn } from "node:child_process";
2
-
3
- // No shell, network, MCP connection, config writes or raw diagnostic output.
4
- // The service CLI owns private installation validation. The plugin sees only its summary.
5
- export async function inspectInstallation({ env = process.env, cwd = process.cwd(), signal } = {}) {
6
- const [major, minor] = process.versions.node.split(".").map(Number);
7
- if (!["linux", "darwin"].includes(process.platform) || major < 22 || (major === 22 && minor < 19)) return "unsupported-runtime";
8
- if (signal?.aborted) return "cancelled";
9
- const command = env.AGENT_TASK_PREFLIGHT_COMMAND ?? "agent-task";
10
- const home = env.AGENT_TASK_PREFLIGHT_HOME;
11
- // The explicit machine-output flag makes older CLIs reject before their setup path.
12
- const args = ["setup", "--check", "--json", ...(home === undefined ? [] : ["--home", home])];
13
- return new Promise(resolve => {
14
- let child;
15
- try { child = spawn(command, args, { cwd, env, stdio: ["ignore", "pipe", "ignore"] }); }
16
- catch { resolve("check-failed"); return; }
17
- let stdout = "", bytes = 0, failure;
18
- const stop = state => {
19
- failure ??= state;
20
- child.kill("SIGKILL");
21
- child.stdout.destroy();
22
- };
23
- const abort = () => stop("cancelled");
24
- const timer = setTimeout(() => stop("check-failed"), 3000);
25
- signal?.addEventListener("abort", abort, { once: true });
26
- if (signal?.aborted) abort();
27
- child.on("error", error => { failure ??= error.code === "ENOENT" ? "command-unavailable" : "check-failed"; });
28
- child.stdout.on("data", chunk => {
29
- bytes += chunk.length;
30
- if (bytes > 4096) stop("check-failed");
31
- else stdout += chunk.toString("utf8");
32
- });
33
- child.on("close", code => {
34
- clearTimeout(timer);
35
- signal?.removeEventListener("abort", abort);
36
- if (failure) { resolve(failure); return; }
37
- try {
38
- const report = JSON.parse(stdout);
39
- if (code === 0 && report.configuration === "valid" && typeof report.coordinatorConfigured === "boolean") {
40
- resolve(report.coordinatorConfigured ? "ready" : "coordinator-missing");
41
- } else if (code === 1 && ["missing", "incomplete", "invalid"].includes(report.configuration)) {
42
- resolve({ missing: "setup-missing", incomplete: "setup-incomplete", invalid: "setup-invalid" }[report.configuration]);
43
- } else resolve("check-failed");
44
- } catch { resolve("check-failed"); }
45
- });
46
- });
47
- }
48
-
49
- const reasons = {
50
- "command-unavailable": "The agent-task command could not start. It may be uninstalled, outside this host's PATH, or missing its Node interpreter.",
51
- "setup-missing": "Agent Task is installed but setup is missing for the checked home.",
52
- "setup-incomplete": "Agent Task initialization is incomplete. Inspect it before explicitly resuming; do not reset or reinstall it.",
53
- "setup-invalid": "Agent Task installation or private configuration could not be validated. Check the selected home and existing files; do not automatically reinstall.",
54
- "coordinator-missing": "Agent Task has no complete coordinator configuration. MCP inspection may work, but executable tasks need coordinator setup.",
55
- "unsupported-runtime": "Agent Task needs Linux/macOS and Node.js 22.19 or later.",
56
- "check-failed": "The Agent Task read-only check failed, is unsupported by this service build, or timed out. This does not prove the service is uninstalled. Inspect the command, Node version and selected home.",
57
- };
58
-
59
- export function onboardingNotice(state, host) {
60
- const entry = { pi: "/skill:using-agent-task", claude: "/agent-task:using-agent-task", codex: "$using-agent-task" }[host];
61
- if (!entry || !reasons[state]) return null;
62
- const message = reasons[state] + " Run " + entry + " for guidance. No installation, repair or service start was attempted.";
63
- return {
64
- systemMessage: message,
65
- hookSpecificOutput: {
66
- hookEventName: "SessionStart",
67
- additionalContext: "Agent Task startup check: " + reasons[state] +
68
- " If the user wants Agent Task, read the installed using-agent-task skill before attempting MCP operations. Verify the configured command/home; the check is not a live MCP health test. Obtain confirmation before installation or configuration changes. Do not replay work.",
69
- },
70
- };
71
- }
@@ -1,13 +0,0 @@
1
- import { inspectInstallation, onboardingNotice } from "./preflight.mjs";
2
-
3
- // Hook stdout is host JSON, not MCP stdout. Never echo hook input or child output.
4
- process.stdin.resume();
5
- process.stdin.unref?.();
6
- try {
7
- const notice = onboardingNotice(await inspectInstallation(), process.argv[2]);
8
- if (notice) console.log(JSON.stringify(notice));
9
- } catch {
10
- const notice = onboardingNotice("check-failed", process.argv[2]);
11
- if (notice) console.log(JSON.stringify(notice));
12
- }
13
- // A diagnostic must not block the host session or grant any tool permissions.
@@ -1,27 +0,0 @@
1
- ---
2
- name: using-agent-task
3
- description: Use Agent Task from Pi, Claude Code or Codex. Covers installing the service, setup and MCP connection, submitting caller-defined task DAGs, inspecting runs and deliveries, answering user-fact questions, and diagnosing connection failures.
4
- ---
5
-
6
- # Using Agent Task
7
-
8
- Use this skill when the user wants to use or connect Agent Task. It is guidance for the existing CLI and MCP tools, not a task executor, planner, scheduler or separate task API.
9
-
10
- ## Choose the next step
11
-
12
- - **First use, missing service, or setup/connection request:** read [installation](references/installation.md). With user confirmation, execute the npm installation through the host's shell tool; do not merely suggest the command when you can perform the approved operation. Credentials stay in the user's terminal or private files.
13
- - **Connected and ready to work:** read [task usage](references/tasks.md). Discover the host's actual MCP tools and their current schemas. Do not run setup or reinstall the service on every task request.
14
- - **Connection or execution problem:** read [troubleshooting](references/troubleshooting.md). Inspect before changing anything; an uncertain outcome is not permission to replay work.
15
-
16
- Resolve reference paths from this skill directory. These files ship inside the plugin, so onboarding does not require the service package or repository documentation.
17
-
18
- ## Boundaries
19
-
20
- - MCP callers define the fixed DAG and assign an existing ready ACP executor to each node. The service coordinator advances that DAG; it does not decompose the goal or change the plan.
21
- - Use existing MCP tools directly. Learn fields, defaults and errors from their live schemas, not a copied contract or a new wrapper.
22
- - Installation, native login, adapter readiness and tool authorization are different facts. Never disable sandboxing or widen approvals to make an operation work.
23
- - Keep credentials out of chat, command arguments and host MCP configuration. Do not read private environment files into model context.
24
- - A completed protocol turn or successful task submission is not a completed task. Report accepted delivery, failure and waiting-for-user states distinctly.
25
- - No automatic retries of interrupted work, executor switching, history deletion or workspace cleanup to repair state.
26
-
27
- Explicit invocation: Pi `/skill:using-agent-task`; Claude Code `/agent-task:using-agent-task`; Codex `$using-agent-task` or select it in `/skills`.
@@ -1,83 +0,0 @@
1
- # Install and connect Agent Task
2
-
3
- The plugin can be installed before the service. Its read-only startup check can show a using-agent-task reminder even when MCP cannot start. This check does not grant installation permission or prove MCP health; do not treat an inconclusive check as proof the service is absent. Plugin installation itself has no npm install hook and does not initialize a service. Claude Code/Codex may report an unavailable bundled MCP server until installation and setup are complete; the skill remains usable.
4
-
5
- ## Check and install
6
-
7
- 1. Identify the host, OS, intended installation and configuration scope. Require Linux/macOS, Node.js 22.19+ and npm; check `node --version`, `npm --version`, `command -v agent-task` and, when found, `agent-task --version`. Do not infer the task workspace from the plugin directory.
8
- 2. Check whether this is an existing installation, a custom `--home`, or an already configured MCP connection. If the command is not on PATH, first check the user's known installation and `npm prefix -g`; a PATH problem does not require a second install.
9
- 3. If the service is absent, explain that installation downloads a global npm package into the current user's npm prefix. Ask for confirmation to install `@realqiyan/agent-task`. Use an explicitly requested version when supplied; do not invent a version or imply the integration bundle version is already published.
10
- 4. After confirmation, **execute** `npm install -g @realqiyan/agent-task` with the host's shell tool and normal permission checks. Do not use sudo, change the user's npm prefix or relax host security automatically. If permission or network access is unavailable, report the failure and offer the same command for the user's terminal. Do not retry with broader access.
11
- 5. Check the exit status and installed `agent-task --version`. If necessary, locate the executable under the confirmed prefix's `bin/` and use its absolute path. Keep an existing installation unchanged unless the user explicitly approves an upgrade.
12
-
13
- Do not run installation in an MCP command, session-start hook, or `npx -y` launcher. Reconnection must not install or upgrade the service. Do not silently fall back from a failed release install to source builds.
14
-
15
- ## Initialize through the existing CLI
16
-
17
- Ask the user to run `agent-task setup` in their own terminal, or `agent-task setup --home /absolute/private/agent-task` for the chosen custom home. Let them confirm directories, port, independent service/admin tokens and coordinator provider/model in that wizard. Do not request secret values in chat, print credential files, or reuse the host's model login as coordinator credentials.
18
-
19
- For a user-requested noninteractive setup, read `agent-task setup --help` and use only explicitly confirmed options and a user-prepared private credentials file. You may execute that command after confirmation. Do not invent model settings, generate tokens without consent or put secret values in arguments. Without a configured coordinator, management can work but executable tasks cannot be accepted.
20
-
21
- Preserve existing setup. Interrupted initialization needs an explicitly approved `--resume`; do not delete history or guess repairs. At least one native pi, codex, claude or opencode CLI must be visible to the service, with its own native login and authorization. Explain before connecting that MCP initialization may download missing ACP adapters. Readiness is not proof of authentication or complete tool authorization.
22
-
23
- ## Startup-check scope and trust
24
-
25
- The plugin checks `agent-task setup --check --json`, with bounded time/output and no automatic repair. Unsupported or failed checks are inconclusive. An initialized but stopped backend is not a missing installation.
26
-
27
- Check the user's selected command/home before acting on a notice. When configuring a custom MCP connection, also set `AGENT_TASK_PREFLIGHT_COMMAND` and `AGENT_TASK_PREFLIGHT_HOME` in the host launch environment after confirmation. These non-secret variables select only the diagnostic target, not MCP or the service. Do not write them into service credentials or assume the plugin inferred manual host configuration.
28
-
29
- Codex needs the user to review and trust the plugin hook in `/hooks`. Never bypass hook trust. If hooks/extensions are disabled or Node itself cannot start, use the explicit skill entry; lack of a notice does not establish readiness. The user can disable the check in the host while retaining the skill.
30
-
31
- ## Register or reconnect
32
-
33
- Use the same OS user, native environment and home as setup. Stdio reads service credentials privately; do not copy token values or ports into host configuration. Inspect existing entries before adding or replacing one, preserve unrelated settings and keep only one Agent Task connection.
34
-
35
- ### Pi 1.4.0+ native MCP
36
-
37
- After confirmation, execute:
38
-
39
- ```bash
40
- pi mcp add agent-task -- agent-task mcp
41
- pi mcp list
42
- ```
43
-
44
- For a custom installation, replace the add command with:
45
-
46
- ```bash
47
- pi mcp add agent-task -- /absolute/bin/agent-task mcp --home /absolute/private/agent-task
48
- ```
49
-
50
- These are user-level entries; use `--local` only if the user chooses project scope. `add` replaces an existing same-name entry. Reload with `/reload` or start a new session. If another extension replaces Pi's native MCP, ask the user which integration to keep instead of installing a second bridge.
51
-
52
- ### Claude Code and Codex plugins
53
-
54
- The enabled plugin already declares `agent-task mcp`. Do not also add a manual connection for the default installation. Complete setup, then start a new session; Claude Code also allows reconnecting the plugin server in `/mcp`. Inspect `/mcp` in the new session.
55
-
56
- For a custom home or executable, keep the skill but disable the bundled MCP entry before registering a manual connection. Do not edit an update-managed plugin cache.
57
-
58
- - Claude Code: ask the user to disable the plugin's Agent Task server in `/mcp`, then, with confirmation, execute:
59
-
60
- ```bash
61
- claude mcp add --transport stdio --scope user agent-task -- /absolute/bin/agent-task mcp --home /absolute/private/agent-task
62
- ```
63
-
64
- - Codex: with confirmation, merge this single table into the user's config without replacing other settings, then register the manual connection:
65
-
66
- ```toml
67
- [plugins."agent-task@agent-task".mcp_servers.agent-task]
68
- enabled = false
69
- ```
70
-
71
- ```bash
72
- codex mcp add agent-task -- /absolute/bin/agent-task mcp --home /absolute/private/agent-task
73
- ```
74
-
75
- Restart the session and confirm only the intended connection is enabled. GUI hosts must also be able to find Node and the native execution CLI.
76
-
77
- ## Verify without executing domain work
78
-
79
- 1. Confirm the host reports a connected server and lists its existing tools. A static configuration listing alone is not evidence of connection.
80
- 2. Discover and call `executor_list` and `task_list` with `{}` through the host's MCP interface. Pi uses native tool search/codemode by default. Use the actual server/tool namespace.
81
- 3. Report connection and read-only call results separately from executor readiness. If adapters are preparing, inspect later; do not submit a task or invoke a paid model merely to test installation.
82
-
83
- Append the selected `--home` to later service CLI commands. `agent-task mcp` starts or reuses a shared background service; host exit does not stop it. Confirm before stopping or restarting active work.
@@ -1,31 +0,0 @@
1
- # Work through the existing MCP tools
2
-
3
- Discover the host's Agent Task server, its instructions and current input/output schemas before calling tools. Use the actual host namespace. Do not implement a forwarding tool, copy full schemas into this skill, or replace MCP operations with direct database/file writes.
4
-
5
- ## Submit work
6
-
7
- - Establish the user's goal, intended delivery, execution timing and existing absolute workspace. Ask for missing facts rather than guessing. The plugin/cache directory is not the task workspace; give an explicit workspace unless the stdio launch directory is known to be correct.
8
- - Call `executor_list`. Select only existing ready executors appropriate for the user-authorized work. Adapter readiness alone does not establish native model login or tool permissions.
9
- - As the MCP caller, define the complete DAG and executor assignment for each node to match the user's request. Make dependencies and each node's work/acceptance criteria explicit; use one node when sufficient. Clarify material ambiguity or consequential actions before submission. Do not ask the service coordinator to invent or change the plan.
10
- - Read `task_create`'s current schema for timing, limits and request-key semantics. Keep the original submission identity and parameters when checking an uncertain response; do not create a fresh request key to replay work.
11
- - Call `task_create` only for authorized work. Save/report the task ID and workspace. Submission confirms persistence, not successful execution.
12
-
13
- ## Inspect progress and delivery
14
-
15
- Use `task_list` to locate tasks, `task_get` for definitions, `task_run_list` for run history and `task_run_get` for run details and accepted delivery. Follow pagination using the returned continuation value and unchanged filters; avoid rapid, unbounded polling.
16
-
17
- Distinguish task trigger state from a particular run's outcome. Explain whether work is scheduled, executing, waiting for user facts, failed or delivered using the returned facts. A protocol turn ending or raw executor output is not accepted delivery. Read the accepted content and disclose missing evidence instead of treating a success label as proof of completeness.
18
-
19
- ## Answer questions
20
-
21
- When a run needs user facts, retrieve its current unanswered question and applicable deadlines. Present the actual question and relevant completed work to the user. Submit their answer through `task_run_reply` using that run and question's identities and the tool's request-key contract.
22
-
23
- Do not invent an answer, substitute your own assumptions, treat a fact reply as permission, or start a new task to bypass the wait. If a reply's outcome is uncertain, inspect the existing run before further writes.
24
-
25
- ## Control future work or cancel a run
26
-
27
- Use `task_update` for future-trigger pause/resume/cancel, and `task_run_cancel` to stop a particular run. Confirm which scope the user intends; changing future triggers does not cancel the current run. Cancellation cannot undo external side effects.
28
-
29
- For interrupted or unknown external outcomes, report the block and ask for investigation. Do not automatically retry, replay completed nodes, switch executors, edit the DAG or create replacement work to evade the block.
30
-
31
- Service administration uses the existing `agent-task` CLI, not task MCP wrappers. Consult `agent-task --help` and the relevant subcommand help for settings, executor discovery and lifecycle actions. Ask before applying configuration, upgrading adapters or restarting a service with active work.
@@ -1,12 +0,0 @@
1
- # Diagnose before changing anything
2
-
3
- - **Command missing:** check the host's PATH and the user's known npm prefix. Use the existing absolute executable when available. If genuinely absent, follow [installation](installation.md) and obtain consent before executing npm.
4
- - **Setup incomplete or wrong home:** use the home selected during setup. Do not expose the private environment file, run reset scripts or delete history. Interrupted initialization requires explicit approval for the CLI's resume procedure.
5
- - **Host entry missing/duplicated:** inspect the host's MCP configuration and enabled plugin. Pi needs native registration; Claude/Codex normally use the bundled entry. Reconnect after setup, and preserve unrelated configuration. Custom home instructions are in [installation](installation.md).
6
- - **No executor or adapters preparing:** use `executor_list` after connecting, or the existing CLI management commands when connection is unavailable. Explain missing native CLI, disabled executor, installation progress or preparation error separately. Use native login and authorization; never widen permissions to make a probe pass.
7
- - **Connected but executable tasks rejected:** inspect `service_status` and the error, including coordinator configuration and executor readiness. Management access does not prove a usable model. Do not guess credentials or launch a task as an authentication probe.
8
- - **Task failure, lost response or unknown outcome:** retrieve the existing task/run before proposing changes. Do not silently resubmit, change request keys or switch execution agents. Read [task usage](tasks.md) for the distinction between task and run controls.
9
-
10
- Use `agent-task status` for the shared backend, with the same custom `--home` when selected. Host disconnection or plugin removal does not stop persisted tasks. Restarting can interrupt ACP sessions and waiting runs; inspect active work and obtain consent before `restart` or `stop`.
11
-
12
- Logs and agent outputs can contain sensitive content. Do not print credential files or upload logs blindly. Report what was actually verified: configuration, connection, tool call, adapter readiness and real task delivery are separate evidence.