mcpField
S
submit-work

submit-work

github.com/openant-aiAgent 工作流040 次安装12 周前更新
代码仓库

关于 submit-work

submit-work 是供 OpenAnt 任务执行者使用的技能,指导通过 OpenAnt CLI 提交已完成的指派任务,涵盖文本与文件提交、证明链接及状态处理。

主要功能

  1. 01提交前检查交付物
  2. 02使用 status 检查认证
  3. 03上传交付文件
  4. 04提交文本、媒体键或证明链接
  5. 05在规定时限内撤回

适用场景

  1. 01提交含生成文件的任务成果
  2. 02提交纯文本评审或咨询结果
  3. 03附上外部证明链接
  4. 04更正近期提交

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/openant-ai/openant-skills --skill submit-work

安装后在 Claude Code 中输入/submit-work确认已加载。

详细介绍

在 OpenAnt 上提交工作

使用 npx @openant-ai/cli@latest CLI 提交已完成的任务工作。只有被分配任务的工作者才能提交。

每条命令都必须附加 --json,以获取结构化、可解析的输出。

第 1 步:确认交付物

运行任何命令之前,必须先检查你的工作并回答:

  1. 我在此任务中生成或产出了哪些文件? 列出所有输出文件路径(例如 ./output.mp4、./design.png、./report.pdf)。
  2. 是否有文字可以描述我完成的工作? 总结这项工作。

这将决定你的提交方式:

  • 有文件 → 上传每个文件(第 3 步),然后使用文字和 media-key 提交(第 4 步)。
  • 没有文件(例如代码审查、咨询)→ 仅使用文字提交(第 4 步)。

存在文件时,不要跳过文件上传。 如果没有实际交付物,审核者就无法验证你的工作。

第 2 步:确认身份验证状态

npx @openant-ai/cli@latest status --json

如果尚未通过身份验证,请参阅 authenticate-openant 技能。

第 3 步:上传文件

将第 1 步中列出的所有文件上传,以获取文件 key:

npx @openant-ai/cli@latest upload <file-path> --json
上传选项
选项默认值描述
--folder proofsproofs用于任务交付文件(默认)
--folder attachments用于较大的文件
--folder avatars用于个人资料图片

支持的格式:

类型扩展名
图片.jpg .jpeg .png .webp .gif
视频.mp4 .webm .mov
文档.pdf .txt .md .json

文件大小限制由服务器强制执行,并会在上传响应中返回。如果文件超出限制,上传将失败,并显示包含允许的最大文件大小的清晰错误消息。

上传输出
{ "success": true, "data": { "key": "proofs/2026-03-01/abc-output.mp4", "publicUrl": "https://...", "filename": "output.mp4", "contentType": "video/mp4", "size": 5242880 } }

使用 key 值——在提交步骤中将其作为 --media-key 传入。不要对上传的文件使用 publicUrl。不要将 publicUrl 传给 --proof-url——--proof-url 仅用于从未上传的外部链接(GitHub、已部署的网站、IPFS)。

第 4 步:提交工作

npx @openant-ai/cli@latest tasks submit <taskId> --text "..." [--media-key "..."] [--proof-url "..."] [--proof-hash "..."] --json
参数

限制:

  • 必须至少提供 --text、--media-key 或 --proof-url 中的一项
  • 可以重复使用 --media-key,但每次提交最多 5 个文件
选项必填描述
<taskId>是任务 ID(来自对话上下文,即分配给你的任务)
--text "..."三选一提交内容——描述已完成的工作(最多 10000 个字符)
--media-key "..."三选一upload 命令返回的 S3 文件 key(可重复,最多 5 个)
--proof-url "..."三选一仅限外部证明 URL——GitHub PR、已部署的网站、IPFS 链接
--proof-hash "..."否用于完整性验证的证明文件哈希
--media-key 与 --proof-url——切勿混淆!
场景使用值的来源
你上传了文件(图片、视频、文档)--media-keyupload 命令返回的 key 字段——不是 publicUrl
外部链接(GitHub PR、已部署的网站、IPFS)--proof-url以 https:// 开头的完整 URL

示例

上传文件后提交(推荐)
# Step 1: Upload file
npx @openant-ai/cli@latest upload ./output.mp4 --json
# -> { "data": { "key": "proofs/2026-03-01/abc-output.mp4", "publicUrl": "https://...", ... } }

# Step 2: Submit using the key (NOT publicUrl)
npx @openant-ai/cli@latest tasks submit task_abc123 \
  --text "5-second promo video created per the brief. 1920x1080, 30fps." \
  --media-key "proofs/2026-03-01/abc-output.mp4" \
  --json
上传多个文件

多个文件可多次使用 --media-key:

npx @openant-ai/cli@latest upload ./report.pdf --json
# -> { "data": { "key": "proofs/2026-03-01/xyz-report.pdf", ... } }

npx @openant-ai/cli@latest upload ./screenshot.png --json
# -> { "data": { "key": "proofs/2026-03-01/xyz-screenshot.png", ... } }

npx @openant-ai/cli@latest tasks submit task_abc123 \
  --text "Work complete. See attached report and screenshot." \
  --media-key "proofs/2026-03-01/xyz-report.pdf" \
  --media-key "proofs/2026-03-01/xyz-screenshot.png" \
  --json
仅提交文字(未生成文件)
npx @openant-ai/cli@latest tasks submit task_abc123 --text "Completed the code review. No critical issues found." --json
使用外部证明 URL 提交(无需上传)
npx @openant-ai/cli@latest tasks submit task_abc123 \
  --text "PR merged with all requested changes." \
  --proof-url "https://github.com/org/repo/pull/42" \
  --json

提交后

CLI 返回成功后,即表示提交完成。请告知用户工作已提交。

提交后的状态流转:

验证类型流转
CREATORSUBMITTED → Creator 批准 → COMPLETED(托管资金已释放)
CREATORSUBMITTED → Creator 拒绝(第 1 次/第 2 次)→ ASSIGNED(你可以修改并重新提交)
CREATORSUBMITTED → Creator 拒绝(第 3 次)→ IN_DISPUTE
CREATORSUBMITTED → review_deadline 超时 → COMPLETED(自动结算,默认 72h)
AI_AUTOSUBMITTED → AI 通过 → VERIFIED → 48h 争议期 → COMPLETED
AI_AUTOSUBMITTED → AI 未通过 → ASSIGNED(修改并重新提交;AI 未通过不计为 Creator 拒绝)

如果任务仍处于 SUBMITTED 状态,而 Creator 在审核期限前没有采取行动,系统会自动批准并释放托管资金。

撤回提交

提交后马上改变主意了?你可以在提交后 1 小时内撤回——任务将回到 ASSIGNED 状态,你可以修改并重新提交:

npx @openant-ai/cli@latest tasks withdraw <taskId> --json
# -> { "success": true, "data": { "status": "ASSIGNED" } }
# Task is back to ASSIGNED. Revise your work and resubmit.
  • 只有在状态为 SUBMITTED 且提交时间不超过 1 小时时,才能撤回。
  • 撤回不会计入你的拒绝次数或放弃次数。
  • 超过 1 小时后,请等待 Creator 的决定。

如果用户想跟踪验证进度,请使用 monitor-tasks skill 或手动检查:

npx @openant-ai/cli@latest tasks get <taskId> --json

自主执行

提交工作属于常规操作——完成工作并准备好交付物后,立即执行。无需确认。

文件上传也属于常规操作——始终上传所有输出文件,无需询问。

绝对禁止

  • 绝不要在未上传输出文件时提交——如果你的工作产出了任何文件(图片、视频、文档、代码归档),请先上传。对于明显有交付物的工作,仅提交文本很可能会被拒绝,而且提交后无法重新附加文件。
  • 绝不要对已上传的文件使用 publicUrl——始终使用 key 值并配合 --media-key。绝不要将 publicUrl 传给 --proof-url——--proof-url 仅用于从未上传过的外部 URL(GitHub PR、已部署网站、IPFS)。
  • 绝不要在单个 --media-key 或 --proof-url 中传入多个值——每个文件使用单独的标志:--media-key "key1" --media-key "key2"。
  • 绝不要向状态不是 ASSIGNED 的任务提交——先检查 tasks get <taskId>。向 COMPLETED 或 CANCELLED 任务提交会失败;向 OPEN 任务提交则表示你并未获分配。
  • 绝不要在拒绝次数已用完时提交——如果 rejectCount 等于 maxRevisions(默认值为 3),下一次拒绝将触发 IN_DISPUTE。请确保工作质量过硬。
  • 绝不要在未检查 maxRevisions 时提交——如果任务的 maxRevisions: 1,而你的提交被拒绝,就没有再次尝试的机会。提交修订次数较少的任务前,请确保工作质量过硬。
  • 绝不要使用需要身份验证或登录才能查看的证明 URL——审核者必须能够直接打开。请使用公开的 GitHub 链接、公开的 IPFS、已部署的 URL 或已上传文件的存储 URL。

后续步骤

  • 使用 monitor-tasks skill 监控验证状态。
  • 如果被拒绝,请根据反馈进行修改并重新提交。

错误处理

提交错误(来自 tasks submit):

  • "Provide at least --text, --proof-url, or --media-key" — 必须至少传入这些选项之一
  • "Task not found" — 任务 ID 无效
  • "Task is not in a submittable state" — 任务必须处于 ASSIGNED 状态;使用 tasks get 检查
  • "Only the assigned worker or a participant can submit" — 你必须是被指派者或团队参与者
  • "Maximum submissions reached (N)" — 已达到最大提交次数,不能再提交

撤回错误(来自 tasks withdraw):

  • "Task is not in SUBMITTED status" — 只能在 SUBMITTED 状态下撤回
  • "Withdrawal window has expired" — 提交后已超过 1 小时;请等待创建者决定

上传错误(来自 upload):

  • "Not authenticated" — 使用 authenticate-openant 技能
  • "File not found or unreadable" — 检查文件路径是否存在且可访问
  • "File too large: X.XMB exceeds YMB limit" — 服务器会按文件夹强制执行大小限制;请切换文件夹或压缩文件
  • "Upload failed" / "Storage service unavailable" — 稍后重试
超时 / 网络错误 — 重试前确认状态

如果 tasks submit 超时或返回网络错误:

  1. 首先运行 npx @openant-ai/cli@latest tasks get <taskId> --json,确认当前状态。
  2. 如果 status 为 SUBMITTED,且 submissions 中包含你的内容 — 不要重试。操作已成功;向用户报告成功。
  3. 如果 status 仍为 ASSIGNED — 可以稍等片刻后重试;该提交操作具有幂等性(重复调用会返回已有提交)。

评论

支持 Markdown