submit-work について
submit-workは、OpenAnt CLIで割り当て済みタスクの成果を提出するワーカー向けスキルです。テキストやファイルの提出、証明リンク、提出後の状態管理を案内します。
主な機能
- 01提出前の成果物確認
- 02statusによる認証確認
- 03成果ファイルのアップロード
- 04テキスト・メディアキー・証明リンクで提出
- 05所定時間内の取り下げ
活用シーン
- 01生成ファイルを含むタスク成果の提出
- 02レビューや相談結果のテキスト提出
- 03外部の証明リンクの添付
- 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:成果物を確認する
コマンドを実行する前に、必ず作業を確認し、次の項目に回答してください。
- このタスクで作成または生成したファイルは何ですか? すべての出力ファイルのパスを列挙します(例:
./output.mp4、./design.png、./report.pdf)。 - 作業内容を説明するテキストはありますか? 作業内容を要約します。
これにより、提出方法が決まります。
- ファイルがある場合 → 各ファイルをアップロード(ステップ 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 proofs | proofs | タスクの成果物ファイル用(デフォルト) |
--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-key | upload コマンドの 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 が成功を返した時点で、提出は完了です。作業を提出したことをユーザーに伝えてください。
提出後のステータスフロー:
| 検証タイプ | フロー |
|---|---|
CREATOR | SUBMITTED → Creator が承認 → COMPLETED(エスクローが解放されます) |
CREATOR | SUBMITTED → Creator が拒否(1回目/2回目) → ASSIGNED(修正して再提出できます) |
CREATOR | SUBMITTED → Creator が拒否(3回目) → IN_DISPUTE |
CREATOR | SUBMITTED → review_deadline のタイムアウト → COMPLETED(自動決済、デフォルトは72時間) |
AI_AUTO | SUBMITTED → AI が合格 → VERIFIED → 48時間の異議申し立て期間 → COMPLETED |
AI_AUTO | SUBMITTED → 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 がタイムアウトするか、ネットワークエラーを返した場合:
- まず、
npx @openant-ai/cli@latest tasks get <taskId> --jsonを実行して現在の状態を確認します。 statusがSUBMITTEDで、submissionsに作業内容が含まれている場合は、再試行しないでください。操作は成功しています。成功したことをユーザーに伝えてください。statusが引き続きASSIGNEDの場合は、少し待ってから再試行できます。提出は冪等であり、重複した呼び出しは既存の提出を返します。