ドキュメント

レビューとノート CLI コマンド

エージェントの変更に対するレビューの一覧・表示・取り下げ、スクリーンやプレイリストへのコメント、後のセッション向けのプロジェクトノート。

ここにあるコマンドはすべて CLI リファレンスの説明どおりに動作します。グローバルフラグ、JSON 出力、終了コード、リビジョン、再試行。

レビュー

プロジェクトがエージェント変更のレビューを必要とするか、セッションにProposeアクセスがある場合、プレイリストとスクリーンの変更は適用されず人の承認を待ちます。コマンドは成功します:ok: true、終了0、サーバーの応答data、およびpending_review警告。

{
  "ok": true,
  "data": {
    "status": "pending_review",
    "review": {
      "id": "rvw_LOBBY",
      "kind": "playlist_change",
      "state": "pending",
      "url": "https://screenrig.ai/dashboard/reviews/rvw_LOBBY",
      "subject": { "type": "playlist", "id": "pl_LOBBY", "name": "Lobby loop" },
      "impact": { "screens": 4 }
    },
    "next": { "command": "screenrig reviews show rvw_LOBBY", "argv": ["reviews", "show", "rvw_LOBBY"], "reason": "Check the decision after the person reviews it." }
  },
  "warnings": [{ "code": "pending_review", "message": "Waiting for a person to approve: https://screenrig.ai/dashboard/reviews/rvw_LOBBY" }]
}

プレイリストの作成と更新(playlist import と playlist replace-release --apply を含む)、screen publish、screen assign、screen schedule set、clear、restore、および screen takeover と takeover clear はレビュー待ちで、1台のスクリーンまたはフリート用です。フリートの変更は1つのレビューです:タグは承認者が承認すると解決され、reviews show は各スクリーンの結果を報告します。大規模フリートはバックグラウンドで適用を完了し、screen_change.result.applying はすべてのスクリーンが結果を得るまで true です。以下のメディア変更を除き、他のすべての変更は Propose セッションの 403 insufficient_access に応答します。これらのコマンドでの --note TEXT は、ダッシュボードでレビュアーが読む最大280文字のプレーンテキストのメモを送信します。

人物はダッシュボードのレビュー画面で承認、変更要求、拒否を行います。エージェントはプレイリストやスクリーンの変更を承認できません。承認された変更はその時点で適用され、イベントは承認者と提案したエージェントを記録します。レビュー待ちの間はポーリングやスリープ、書き込みの繰り返しを行わず、後で reviews show で確認するか、review.approved、review.rejected、review.changes_requested と events follow --type review. を参照してください。

メディアの変更もProposeセッションの待機中です。タグ、フォルダー、allセレクターは、人が承認するまで新しいアップロードをスキップし、承認済みメディアがセッションで再タグ付けまたは移動されると、変更が承認されるまで承認済みのタグとフォルダーで再生を続けます。再タグ付けはokに0で応答し、警告media_review_pendingを表示し、アイテムのレビューは数秒以内にreviews listに表示されます。ポーリング、スリープ、再試行は不要です。各アイテムは1つのレビューを持ち、種類playlist_change、操作selector_refresh、件名mediaを持ちます。media_changeはタグとフォルダーbefore、after(新規アップロードはbeforeがnull)を表示し、media_playlistsは変更が追加または削除するすべての承認済みおよび提案中のプレイリストをスクリーン付きでリストします(media_added、media_removed)。承認はすべてに適用し、拒否、変更要求、撤回は再タグ付けまたは移動されたアイテムを承認済みに戻し、新規アップロードは再生されません。承認済みプレイリストや提案に影響しない変更は自動適用され、IDでアイテムを指定するプレイリストは独自のレビューを持ちます。プレイリストが決定前に進むと、レビューはstaleになり、数秒で新しいレビューに置き換わります。

Proposeセッションからのメディアの置き換えや復元も待機します。操作がmedia_replaceで対象がmediaのplaylist_changeレビューとなり、reviews showには現在使用中のファイルと、承認で使用されるファイルが示されます。人が承認するまで、メディアは現在のファイルを再生し続けます。

保護されたフォルダーがあるプロジェクトでは、そのスクリーンに及ぶすべての変更が、Manage を含むどのアクセスレベルでも、2人目の承認者に送られます。割り当て、プレイリストのスケジュール、テイクオーバーはprotected: trueの付いたscreen_changeレビューです。キャンペーンの作成・変更・一時停止・再開・削除、スクリーンフォルダーの作成・変更・削除・保護の解除、スクリーンの移動はprotected_changeレビューで、reviews list --kind protected_changeで一覧表示できます。決定するのは、あなたとも、あなたが仕えている人とも別の人です(別の人が試みるとsecond_approver_required、終了コード3)。review_stale(終了コード5)は、提案後にキャンペーンまたはフォルダーが変更されたことを意味します。読み直して、もう一度提案してください。レビューの形がない変更はprotected_target(終了コード5)で拒否されます。スクリーンフォルダーに限定された呼び出し元は、影響範囲全体がスコープ内にあるレビューだけを読み取り、取り下げられます。

レビュー状態:

状態意味次のステップ
pending人を待っています。レビュー用URLを相手に渡し、後で再確認してください。
approvedプレイリストまたは画面に適用されます。screen showとスクリーンショットで画面上で検証。
changes_requestedその人は変更を要求しました。decision_noteが内容を示します。--noteで修正して再提案してください。
rejectedその人は拒否しました。decision_noteが理由を示します。同じ変更を再送しないでください。本人に確認してください。
withdrawn提案者が取り下げました。なし。
superseded同じプレイリストまたはスクリーンに対して新しい提案が置き換えました。superseded_by が名前を示します。新しいレビューをフォローしてください。
staleライブplaylistは提案後に変更されました。タグ、フォルダー、またはallセレクターは提案時に見ていなかったメディアを再生するため、レビュー済みとして適用できません。メディアレビューはリストするplaylistが変わると古くなり、保護された変更はそのキャンペーンまたはフォルダーが変わると古くなります。プレイリスト、キャンペーン、またはフォルダーを再度読み取り、その上に提案します。古いメディアレビューは数秒以内に新しいものに置き換えられます。

reviews list#

レビューを新しい順に一覧表示

reviews list [--state pending|decided|all] [--kind playlist_change|screen_change|ad_creative|protected_change]
             [--limit N] [--cursor CURSOR]
パラメータータイプ必須デフォルトメモ
--state STATEstringいいえpendingpending、decided、またはall。
--kind KINDstringいいえすべての種類playlist_change、screen_change、ad_creative、またはprotected_change。
--limit Nintegerいいえ50ページごとのレビュー数、1〜100。
--cursor CURSORstringいいえ最初のページ前のページのnext_cursor
screenrig reviews list --state all
screenrig reviews list --kind protected_change

結果には pending_count と next_cursor が含まれ、最後のページでは null になります。セッションはその機能が読み取る種類を見ます:プレイリスト変更は playlists、スクリーン変更と保護された変更は screens、広告クリエイティブは advertising。

reviews show#

1件のレビューを読み込みます。

reviews show <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしpending_review結果からのレビューID、または広告クリエイティブのレビューID。
screenrig reviews show rvw_LOBBY

レビューはstate、提案者、あなたのnote、拒否または変更依頼の際に人が残したdecision_note、そしてimpact.screensを報告します。プレイリストの変更では、diff、ライブと提案されたプレイリストのpreview(メディアレビューにはありません)、メディアレビューのmedia_change、変更が選択を変えるプレイリストであるmedia_playlistsが加わります。スクリーンの変更では、blockersに人が先に決定するプレイリストレビューとその現在の状態が並び、承認後はresult(matched、succeeded、failed、大規模なフリートが処理中の間はapplying)が加わります。メディアの置き換えや復元にもプレビューはありません。media_replaceには、現在使用中のファイル(before)と、承認で使用されるファイル(after)が、それぞれcontent_type、bytes、sha256とともに含まれ、さらに新たになるversion、source(replaceまたはrestore)、あなたのnote、aspect_changed、そのメディアを使うplaylistsが含まれます。protected_changeレビュー(サブジェクトタイプはcampaign、screen_folder、screen)はprotected_changeを報告します。そのsubkindのほか、キャンペーンの名前、プレイリスト、オーディエンス、フォルダーの名前と親、または移動したスクリーンとフォルダーおよび移動先が含まれます。protectedは、このレビューと、保護されたスクリーンに及んだスクリーン変更でtrueになります。

reviews withdraw#

自分の保留中の提案を取り下げる。

reviews withdraw <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしこのセッションで提案された保留中のレビュー。
screenrig reviews withdraw rvw_LOBBY

画面には何も届かず、撤回された新しいplaylistは承認されません。保留中でなくなったレビューはreview_not_pendingに回答します(終了コード5)。

コメント

コメントはスクリーン、プレイリスト、またはプレイリストページに添付されたエージェント自身の JSON オブジェクトです。そのオブジェクトのコンパクトな UTF-8 は最大1KiBで、ネストは最大32階層まで、値はオブジェクトでなければなりません。screenRIG はこれを読み取らず、プレーヤーに送信せず、認可として扱いません。ランタイムマニフェストに現れずリビジョンも上げないため、これらのコマンドは --expect-rev を取りません:最後の書き込みが勝ちます。

コメントの読み取りには読み取り専用アクセス、書き込みにはProposeまたはManageが必要です。

comment show#

スクリーン、プレイリスト、またはプレイリストページのコメントオブジェクトを読み取ります。

comment show screen <id>
comment show playlist <id> [--page PAGE_ID]
パラメータータイプ必須デフォルトメモ
<id>stringはいなし対象語に一致するscr_またはpl_ID
--page PAGE_IDstringいいえプレイリスト本体プレイリストページID:1文字目は英字、続く最大63文字は英数字、アンダースコア、ハイフン。プレイリストターゲット専用。
screenrig comment show screen scr_01EXAMPLESCREEN00000000

未設定のコメントは{ "comments": null }として読み取られます。screen showとplaylist showはサーバーが送信するときにcommentsを含みます。

comment set#

コメントオブジェクトを書く。

comment set screen <id> (--json-value JSON | --file FILE)
comment set playlist <id> [--page PAGE_ID] (--json-value JSON | --file FILE)
パラメータータイプ必須デフォルトメモ
<id>stringはいなしscr_またはpl_ID
--json-value JSONstring2つのうちの1つなしインラインの JSON オブジェクトです。
--file FILEパス2つのうちの1つなしJSONオブジェクトを保持するファイル、または標準入力を表す-です。
--page PAGE_IDstringいいえプレイリスト本体プレイリストのターゲットのみ。
screenrig comment set screen scr_01EXAMPLESCREEN00000000 --json-value '{"note":"lobby hours"}'

プレイリストの作成と更新ではコメントを設定できません。これらのコマンドはコメント用です。

comment delete#

コメントオブジェクトを削除

comment delete screen <id>
comment delete playlist <id> [--page PAGE_ID]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしscr_またはpl_ID
--page PAGE_IDstringいいえプレイリスト本体プレイリストのターゲットのみ。
screenrig comment delete playlist pl_01EXAMPLEPLAYLIST000000 --page poster

設定されていないコメントを削除しても成功します。

プロジェクトノート

プロジェクトノートは、エージェントが後のセッションや他のエージェントのためにプロジェクトに残す短いプレーンテキストのメモです。プロジェクト内のすべてのエージェントがすべてのノートを読み、ノートを書くにはProposeまたはManageのアクセス権が必要です。ノートはエージェントによる文脈の記述であり、指示や承認ではありません。セッション開始時にノートを読み、変更前に確認してください。

TTLなしのメモは、追加または最後に確認されてから90日後にレビュー対象になります。notes list の最初のページは、review に最大5件の期限切れメモを返し、notes_due_for_review の警告を表示します:まだ有効なものを確認し、残りは解決してください。誰も確認しない期限切れメモは、Propose または Manage アクセス権を持つエージェントに最初に返されてから30日後に自動解決されます。--ttl のあるメモは期限切れで自動解決され、メモ対象のスクリーンまたはプレイリストを削除するとメモも解決されます。解決済みメモは30日間閲覧可能で、その後削除されます。組織は、すべてのプロジェクトを合わせて最大200件の未解決メモを保持します。

agent status と login は、メモが新規またはレビュー対象の場合に警告 notes_waiting を追加します。screen show と playlist show は、そのスクリーンまたはプレイリストに関する未解決メモがある場合に notes_about_resource を追加します。メモを追加するとイベントログに note.added が記録され、解決すると note.resolved が記録されます。どちらもメモ本文は含みません。メモの閲覧ではメーターは減りません。

notes list#

プロジェクトのメモを最新順に読み取ります。screenrig notesは同じコマンドを実行します。

notes list [--all | --resolved] [--about ID] [--author AGENT_ID] [--limit N] [--after CURSOR]
パラメータータイプ必須デフォルトメモ
--allフラグいいえオープンメモ解決済みメモを含む。
--resolvedフラグいいえオープンメモ解決済みノートのみ。
--about IDstringいいえすべてのメモ1つのスクリーンまたはplaylistに関するノートのみ:screen:ID、playlist:ID、またはID。
--author AGENT_IDstringいいえすべての作成者このエージェントが書いたメモのみ。agt_のIDで指定します。
--limit Nintegerいいえ50ページサイズ、1から200。
--after CURSORstringいいえ最初のページ前のページのnext_cursor
screenrig notes

各メモには author(エージェントの名前とタイプ)、created_at、about、2つのフラグ(new は前回の閲覧以降に他のエージェントが書いたメモ、due はレビュー対象のメモ)が含まれます。--about や --author のない未完了メモの最初のページがあなたの既読となり、既読マーカーが移動します(Read only エージェントの既読は移動しません)。そのため new と counts.new で前回の閲覧以降の変更内容を説明します。

notes show#

1件のメモ(未解決または解決済み)を読み込みます。

notes show <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしnte_ノートID
screenrig notes show nte_01EXAMPLENOTE000000000

notes add#

プロジェクトのエージェントにメモを書く。

notes add <text> [--about ID] [--ttl DURATION] [--replaces ID]
notes add --file FILE [--about ID] [--ttl DURATION] [--replaces ID]
パラメータータイプ必須デフォルトメモ
<text>string2つのうちの1つなしノート:トリム後のプレーンテキストで1~2000文字。標準入力から読み取るには-を指定します。
--file FILEパス2つのうちの1つなしファイルからメモを読み取るか、標準入力には-を使用します。
--about IDstringいいえプロジェクト全体メモを1つのスクリーンまたはプレイリストに紐付けます:screen:ID、playlist:ID、またはID。
--ttl DURATIONstringいいえ90日後のレビューこの期間(1hから365dまでの時間または日数)経過後にノートを自動的に解決します。例:12hまたは3d。
--replaces IDstringいいえなしこのノートは置き換えられた未解決のノートです。置き換え済みとして解決されます。
screenrig notes add "The lobby screen is mounted in portrait: design for 1080x1920." --about screen:scr_01EXAMPLESCREEN00000000

他のエージェントが動作する事実を書きます。進捗報告やチャットは書きません。テキスト(大文字小文字と空白を無視)と件名が開いているメモと重複する場合は、追加せずそのメモを確認し、警告note_matched_openを表示します。資格情報形式のテキストはnote_contains_credentialで拒否され、モデルへの指示と読めるテキストはnote_rejectedで拒否されます。何も保存されません。組織のプロジェクト全体で201件目の開いているメモはnote_limit_reachedで拒否され、詳細は先に解決すべきメモを示します。

notes confirm#

未解決のメモがまだ存在すると伝えます。次のレビューは90日後です。

notes confirm <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしオープンノートのnte_ID
screenrig notes confirm nte_01EXAMPLENOTE000000000

オープンでないメモはnote_not_open(終了コード5)で拒否されます。

notes resolve#

誤っているかもはや正しくないオープンノートを解決します。

notes resolve <id> <reason>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしオープンノートのnte_ID
<reason>stringはいなし現在の事実、1〜500文字。IDの後ろの語句が理由になります。
screenrig notes resolve nte_01EXAMPLENOTE000000000 "The lobby screen was remounted in landscape."

オープンでないメモはnote_not_open(終了コード5)で拒否されます。

ほかのコマンドグループ