mcpField
S
submit-work

submit-work

github.com/openant-aiエージェントワークフロー040 回インストール12 週間前に更新
リポジトリ

submit-work について

submit-workは、OpenAnt CLIで割り当て済みタスクの成果を提出するワーカー向けスキルです。テキストやファイルの提出、証明リンク、提出後の状態管理を案内します。

主な機能

  1. 01提出前の成果物確認
  2. 02statusによる認証確認
  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)してから、テキストとメディアキーを添えて提出します(ステップ 4)。
  • ファイルがない場合(例:コードレビュー、相談)→ テキストのみで提出します(ステップ 4)。

ファイルがある場合、アップロードを省略しないでください。 実際の成果物がなければ、レビュアーは作業を確認できません。

ステップ 2:認証を確認する

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

認証されていない場合は、authenticate-openant スキルを参照してください。

ステップ 3:ファイルをアップロードする

ステップ 1 で確認したすべてのファイルをアップロードし、ファイルキーを取得します。

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 のうち、少なくとも 1 つを指定する必要があります
  • --media-key は複数回指定できますが、1 回の提出につきファイルは最大 5 件です
オプション必須説明
<taskId>はいタスク ID(会話のコンテキストから取得します。割り当てられたタスクの ID です)
--text "..."3 つのうち 1 つ提出内容 — 実施した作業を説明します(最大 10000 文字)
--media-key "..."3 つのうち 1 つupload コマンドから取得した S3 ファイルキー(繰り返し指定可能、最大 5 件)
--proof-url "..."3 つのうち 1 つ外部の証明 URL のみ — GitHub PR、デプロイ済みサイト、IPFS リンク
--proof-hash "..."いいえ整合性検証用の証明ファイルのハッシュ
--media-key と --proof-url の違い — 混同しないでください!
状況使用するオプション値の取得元
ファイルをアップロードした場合(画像、動画、ドキュメント)--media-keyupload コマンドの key フィールド — publicUrl ではありません
外部リンクの場合(GitHub PR、デプロイ済みサイト、IPFS)--proof-urlhttps:// で始まる完全な 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(自動決済、デフォルトは72時間)
AI_AUTOSUBMITTED → AI が合格 → VERIFIED → 48時間の異議申し立て期間 → 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 スキルを使用するか、手動で確認してください。

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

自律性

作業の提出は通常の操作です。作業が完了し、成果物の準備ができたら、確認を求めずにすぐ実行してください。

ファイルのアップロードも通常の操作です。必ず、確認を求めずにすべての出力ファイルをアップロードしてください。

絶対にしてはいけないこと

  • 出力ファイルをアップロードせずに提出しないでください。作業でファイル(画像、動画、ドキュメント、コードアーカイブなど)が生成された場合は、まずアップロードしてください。成果物が明らかにあるのにテキストのみで提出すると、却下される可能性が高く、提出後にファイルを添付することもできません。
  • アップロードしたファイルに publicUrl を使用しないでください。必ず key の値を --media-key とともに使用してください。publicUrl を --proof-url に渡さないでください。--proof-url は、アップロードされていない外部 URL(GitHub PR、デプロイ済みサイト、IPFS)のみに使用します。
  • 1つの --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 スキルで検証ステータスを監視します。
  • 却下された場合は、フィードバックに対応して再提出します。

エラー処理

提出エラー(tasks submit から発生):

  • "Provide at least --text, --proof-url, or --media-key" — これらのオプションのうち、少なくとも1つを指定する必要があります
  • "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 の場合は、少し待ってから再試行できます。提出は冪等であり、重複した呼び出しは既存の提出を返します。

コメント