plannotator について
Plannotatorは、エージェントのワークフロー向けにブラウザー上でレビューと注釈を行うレイヤーです。このリファレンススキルは、計画、コード変更、文書、ページを確認するコマンドやフラグの選択を支援し、CLIまたはツール経由で人間のフィードバックを受け取ります。
主な機能
- 01ブラウザー上のレビュー・注釈UI
- 02標準出力へのフィードバック返却
- 03ホストフックによる計画レビュー
- 04差分とプルリクエストのレビュー
- 05ファイル、ページ、アプリへの注釈
- 06判断とセッションの閲覧
活用シーン
- 01生成した計画の承認取得
- 02ローカル変更やプルリクエストのレビュー
- 03文書やウェブページへの注釈収集
MCP 対応
`plannotator`ツールが利用できる場合、このスキルは対応するCLIコマンドよりツールを優先するよう案内します。また、後から回答できる質問向けのInbox MCPサーバーについても説明しています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ backnotprop/ plannotator --skill plannotatorインストール後、Claude Code で/plannotatorを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
Plannotator CLI リファレンス
Plannotator は、エージェントのワークフロー向けのローカルなブラウザベースのレビューレイヤーです。プラン、差分、ドキュメントを注釈 UI で開き、人が注釈を付けると、構造化されたフィードバックが stdout に返されます。単一の plannotator バイナリとホストごとのフックとしてインストールされるため、プランモードを終了するとプランレビューが自動的に開始されます。それ以外の画面は、利用可能であれば plannotator ツールを、そうでなければ CLI を使って明示的に起動します。セッションはランダムな localhost ポートで実行され(リモートモードでは固定ポート 19432)、レビュー担当者がフィードバックを送信するか、承認するか、タブを閉じるまで待機します。
このスキルはナレッジレイヤーです。plannotator-review、plannotator-annotate、plannotator-last の各スキルは、よく使われる 3 つの操作を起動するための薄いラッパーです。適切なコマンドやフラグを自分で選ぶ必要がある場合は、このリファレンスを使用してください。
plannotator ツールがある場合は、必ず使用してください
以下のコマンドを実行する前に、利用可能なツールを確認してください。plannotator という名前のツールがある場合(たとえば Claude Code では mcp__plannotator__plannotator のようなプレフィックス付きで表示されることがあり、呼び出す前にツール検索で読み込む必要がある場合もあります)、plannotator annotate、plannotator review、plannotator last を実行する代わりに、必ずそのツールを呼び出してください。承認の場合も同様です。--gate --json ではなく、{ "action": "annotate", "target": "<file>", "gate": true } を指定して呼び出してください。
ツールはすぐに応答を返します。呼び出したらターンを終了して待機してください。レビュー担当者の判断は後でメッセージとして届きます。CLI を併用したり、ポーリングしたり、セッションを再度開いたりしないでください。
そのようなツールがない場合、またはツールで対応していない操作(archive、guide、sessions、--base と --gate 以外の review フラグ、--gate と --markdown 以外の annotate フラグ、終了コードでスクリプトが確認する厳格なゲート(--require-approval、--result-file))に限り、CLI を使用してください。ツールに tailscale がある場合は、--tailscale の代わりに tailscale: true を渡してください。
コマンドを選ぶ
| ユーザーの要望 | 実行するコマンド(plannotator ツールがない場合の CLI) |
|---|---|
| 作成したプランをレビューする | 何もしません。フックにより、プランを終了すると自動的にプランレビューが開きます。単独で plannotator を実行しないでください。 |
| ファイルとして保存したプラン/仕様をレビューし、明示的に承認する | plannotator annotate <file> --gate --json |
| 現在のコード変更をレビューする | plannotator review |
| GitHub PR、GitLab MR、または Bitbucket Cloud PR をレビューする | plannotator review <PR_URL> |
| Markdown、テキスト、設定、または HTML ファイルに注釈を付ける | plannotator annotate <file> |
| Web ページに注釈を付ける | plannotator annotate <https-url> |
| 実行中のローカルアプリ(開発サーバー)に注釈を付ける | plannotator annotate <http://localhost:PORT/> |
| フォルダーから注釈を付けるファイルを選ぶ | plannotator annotate <folder/> |
| 直近のアシスタントメッセージに注釈を付ける | plannotator last |
| 過去のプランに関する判断を閲覧する | plannotator archive |
| Guided Review をエクスポートまたは共有する | plannotator guide export / plannotator guide share |
| 実行中のセッションを再度開く、または一覧表示する | plannotator sessions |
| 相手の作業をブロックせず、後で回答できる質問をする | 利用可能であれば plannotator_inbox ツール、それ以外の場合は Inbox の MCP サーバー(plannotator inbox mcp) |
セッションモデル
すべての review または annotate コマンドはローカルの Web サーバーを起動してブラウザーを開き、人間が判断するまで処理を待機します。数分かかることもあれば、大規模なプルリクエストでは1時間以上かかることもあります。長いタイムアウト(またはタイムアウトなし)を指定するか、バックグラウンドで起動し、プロセス終了後に標準出力を読み取ってください。Claude Code では、run_in_background に長めの timeout(最大 7200000 ミリ秒)を指定しない限り、バックグラウンドコマンドは30分後に停止します。レビューを「完了」させるためにプロセスを強制終了しないでください。判断に至らずに終了したセッションは、フィードバックなしとして扱われます。時間制限でセッションが停止した場合は、同じコマンドを再度実行してください。注釈の下書きは復元されます。
標準出力がインターフェースですが、その仕様はコマンドによって異なります。annotate とその最終メッセージ関連のバリアントでは、次のとおりです。
- プレーンテキスト(既定):閉じると空の出力、承認すると
The user approved.が出力されます(メモ付きで承認した場合は代わりに「Approved with Notes」メッセージが出力されます。メモは変更要求ではなく、指針として扱ってください)。それ以外の場合はフィードバックテキストが出力されます。返されたフィードバックには、同じ会話内で対応してください。 --json:decision(approved、dismissed、annotatedのいずれか)と、任意の生のfeedbackを含む JSON レコードが1つ出力されます。承認にメモが含まれる場合もあります。その場合、メモは変更要求ではなく、指針として扱ってください。--hook:実際の PostToolUse/Stop フックコンテキスト専用の、フック形式の出力です。承認または終了では何も出力されません(フックは通過します)。注釈の場合は{"decision":"block","reason":"..."}が出力されます。--hookを指定するとゲート UI が有効になります。通常の対話的な呼び出しでは使用しないでください。
plannotator <command> --help は、何も起動せずに使用方法を出力します。引数なしの plannotator はフックのエントリーポイントであり、標準入力からフック JSON を受け取ります。
plannotator review
plannotator review [--git | --gitbutler] [--base <ref>] [--diff-type <type>] [--local | --no-local] [--patch-file <path | ->] [--no-git-remote-check] [--tailscale] [--gate] [--json] [DIRECTORY | PR_URL]
ローカルの VCS の変更をレビューします。URL を指定するとプルリクエストをレビューします。既定の標準出力はプレーンテキストのままで、既存の終了メッセージ、承認プロンプト、またはフィードバックが出力されます。
--json を指定した場合、直接のレビューでは { decision: 'approved' | 'annotated' | 'dismissed', message: string } というレコードが1つ出力されます。message は、末尾のコンソール改行を除き、既定のプレーンテキストで出力される内容と完全に同じ、CLI で描画されたテキストです。カスタマイズされたプロンプトや、ブロックを伴わないメモ付き承認の表現も含まれます。拒否を示す接尾辞は、PR モードを含め、annotations.length > 0 の場合にのみ含まれ、注釈がないプラットフォームのステータスには含まれません。
結果の分類には decision だけを使用し、message のテキストで判断しないでください。approved のレビューに付いたメモは、ブロックを伴う変更要求ではなく、指針です。この描画済みの message の仕様は、annotate で使用される生のフィードバック JSON と、変更されていない opencode-review インテグレーションとは別のものです。--hook は annotate 専用です。
- VCS は自動検出されます(対応している場合、JJ、GitButler、Git、P4)。
--gitは通常の Git を強制し、--gitbutlerは GitButler を強制します(butCLI 0.21.0 以降が必要です)。ネストされたリポジトリを含む、VCS 管理外の親フォルダーから実行すると、複数のワークスペースの差分が統合されます。 - デフォルトの差分は「今、PR に表示されるすべて」です。つまり、作業ツリーと trunk のマージベースに未追跡ファイルを加えたものです。
--base <ref>を指定すると、別の比較対象(ブランチ、origin/<branch>、タグ、コミット)に対してセッションを開始でき、--diff-type <type>を指定すると、別のモード(since-base、merge-base、branch、uncommitted、staged、unstaged、last-commit、local-vs-remote、all)でセッションを開始できます。どちらもセッション内のみに適用されます。レビュアーは UI で変更でき、ユーザーが保存したデフォルト設定は変更されません。 - 積み重ねたブランチの一層だけをレビューするには、
--base <自分のブランチの一つ下のブランチ>を指定してください —plannotator review --base feature/part-1を実行すると、main以降のすべてではなく、この層で追加された内容のみが表示されます。 - どちらのフラグも Git 専用です。jj、GitButler、Perforce、複数リポジトリのワークスペースレビュー、PR URL ではエラーになります(PR のベースはプルリクエストから取得されます)。解決できない
--baseの参照を指定すると、近似するブランチ名を示す起動エラーになり、誤った差分が黙って表示されることはありません。 --patch-file <path>を指定すると、リポジトリがなくても、呼び出し元が指定した静的な統合差分をレビューできます(標準入力から読み込む場合は-を使用します)。セッションでは差分をそのまま提供し、作業ツリーが必要なファイルシステム関連機能は利用できません。PR/MR URL、--base、--diff-type、--git/--gitbutler、--local/--no-localとは併用できません。このセッションでは、作業ツリー関連の機能(ステージング、ハンクコンテキストの展開、エディターで開く機能、コードナビゲーション、差分タイプ/ベースの切り替え)はすべて無効になり、それらを処理するエンドポイントは 400 を返します。- 別のリポジトリまたは作業ツリーをレビューするには、ディレクトリを指定します。
plannotator review ../feature-worktreeまたはplannotator review ./backend --diff-type last-commitのように実行します。パスはコマンドを実行したディレクトリを基準に解決されます。スペースを含むパスは引用符で囲んでください。ディレクトリはレビュー対象のワークスペースを選択するものであり、ファイルのフィルターではありません。ディレクトリまたは PR URL を 1 つ指定できます。ディレクトリと--patch-fileは併用できません。無効な対象を指定すると、現在のリポジトリにフォールバックせずエラーになります。 - PR のレビュー(
https://github.com/owner/repo/pull/123のようなplannotator review、GitLab MR、Bitbucket Cloud PR の URL にも対応)には、認証済みのghまたはglabCLI が必要です。Bitbucket Cloud(https://bitbucket.org/<workspace>/<repo>/pull-requests/<id>)の場合は、代わりにPLANNOTATOR_BITBUCKET_TOKENの Atlassian API トークン(およびPLANNOTATOR_BITBUCKET_EMAIL)が必要です。デフォルトの--localは、完全なファイルアクセスのため、バックグラウンドで PR の head をローカルにチェックアウトします。--no-localはこれを省略し、プラットフォームの差分のみをレビューします。 --no-git-remote-checkを指定すると、セッションから Git リモートへの接続を完全に停止します。デフォルトブランチのgit ls-remoteも、「GitHub より遅れている」ことを確認するベースラインチェックも行いません。比較対象はローカルの参照のみから取得され、古さを知らせるバナーは表示されません。そのため、ワンクリックの Fetch ボタンも利用できなくなります(/api/fetch-baseエンドポイントは引き続き利用できます)。ターミナルからのフェッチには影響しません。リモートへの問い合わせにコストがかかる場合や、侵襲的な場合に使用してください。特に、SSH 認証にハードウェアトークンを使用し、問い合わせごとに物理的なタッチ操作を求められる場合に有効です。同じ無効化設定をセッション全体に適用するには、PLANNOTATOR_GIT_REMOTE_CHECK=0を設定するか、~/.plannotator/config.jsonに{ "gitRemoteCheck": false }を指定します(フラグが環境変数より優先され、環境変数は設定キーより優先されます)。無効化しない場合、リモートへの問い合わせはレビューの開始時、差分の読み込み時、差分タイプ/ベースの切り替え時、Fetch 時に行われ、タイマーによる定期実行はありません。--tailscaleを指定すると、tailscale serveを介してループバックセッションをユーザーの tailnet に公開します(HTTPS を使用し、一般公開はされません)。URL が QR コードとともに表示されます。公開に失敗すると、サーバーが停止せずに残ることなく、ゼロ以外のステータスで終了します。ユーザーから別のデバイス(スマートフォンやタブレット)でレビューを開くように、または Tailscale 経由で開くように依頼された場合にのみ使用してください。この機能を提供するplannotatorツールでは、代わりにtailscale: trueを指定してください(annotate、review、last)。そうすると、「このセッションに尋ねる」機能は、このコンピューターの所有者として Tailscale にログインしているユーザーの tailnet 上でも引き続き使えます。--gateを指定すると、次の作業(コミット、PR の作成)に進む前に、レビュアーの承認を待つことを示します。通常の「Approve」でも、あなたに承認が届きます。plannotatorツールでは、代わりにreviewアクションでgate: trueを指定してください。
plannotator annotate
plannotator annotate <target> [--markdown] [--no-jina] [--app | --static] [--render-html] [--tailscale] [--gate] [--json] [--hook]
注釈 UI でドキュメント、ページ、またはアプリを開き、人間による注釈を標準出力に返します。
通常の annotate はフィードバック専用です。閉じるボタンは表示されますが、承認ボタンは表示されません。ユーザーがファイルとして保存された生成済みの計画/仕様書/ドキュメントのレビュー、承認、受け入れ、またはゲート設定を求めている場合、利用できるなら "gate": true を指定して plannotator ツールを呼び出してください。利用できない場合は、必ず --gate --json を追加してください。通常の annotate セッションでユーザーが承認できると伝えてはいけません。計画がホストエージェントのネイティブな計画フローを通じて引き継がれる場合は、annotate を起動せず、計画終了フックが承認 UI を自動的に開くようにしてください。
対象:
- Markdown およびテキストファイル:
.md、.mdx、.txt。 - プレーンテキストの設定ファイルおよびデータファイル(テキストとしてレンダリング):
.yaml、.yml、.json、.jsonc、.json5、.toml、.ini、.cfg、.conf、.properties、.csv、.tsv、.log、.xml、.env.example。.env自体は意図的に拒否されます(秘密情報を含むことが多く、annotate の履歴にファイルの内容がコピーされるためです)。ソースコードファイルは annotate ではなくplannotator reviewの対象です。 - 図のソース。フル機能の図ビューアー(ズーム、パン、ポップアウト、ノード/エッジ/クラスターをクリックしてコメント)で開きます:
.mmd、.mermaid(Mermaid)、.dot、.gv(Graphviz)。ファイル全体が図として扱われるため、フェンスは不要です。コメントには該当箇所の ID と実際のファイル行が含まれます。 - HTML ファイル(
.html、.htm):デフォルトではページをそのままレンダリングします。--markdownを指定すると、代わりに Markdown に変換します。--render-htmlは互換性のために受け付けられます。デフォルトですでにそのままレンダリングされます。 - URL(
https://...):デフォルトでは Jina Reader 経由で取得して変換します。--no-jinaを指定すると、代わりに通常の取得と Turndown を使用します。 - 実行中のローカルアプリ:プローブで HTML が返されるループバック
http://localhost:PORT/URL は、ライブアプリモードで開きます(実際に実行中のページに注釈を付けます)。--appはライブモードを強制し、適用できない場合は明示的に失敗します。--staticは従来の変換パイプラインを強制します。ループバック以外の URL は常に変換パイプラインを使用します。 - フォルダー:
plannotator annotate docs/は、フォルダー内のサポート対象ファイルを閲覧できるファイルブラウザーを開きます。 - 複数のファイル:
plannotator annotate spec.md mock.html notes.mdは、指定された順序でそれらをまとめて 1 つのレビューとして開き、1 つの判断を行います。各引数は、パスで指定された既存のファイルである必要があります(文章、URL、フォルダーを混在させることはできません)。plannotatorツールでは、リストをtargetとして渡します。
単一ファイルのサイズ上限は 2MB です。ファイルは安定したプロジェクトパスからディスク上で読み込まれます。レビューするソースは、元の場所に置いたままにしてください。
引数の許容範囲:余分な語句があってもかまいません(plannotator annotate look at notes.md please は notes.md を開きます)。ただし、解決可能な対象が 2 つあり、それらに文章、URL、またはフォルダーが混在している場合は、対象を示すエラーになります。また、認識されないダッシュ付きトークンがあると許容処理は無効になり、フラグの誤記は明示的に失敗します。通常の複数語の呼び出しで対象を解決できない場合、CLI はエージェント宛ての引き継ぎメッセージを標準出力に出力して 0 で終了します。その内容を確認し、具体的な対象を特定して、正確なパスまたは URL を指定して再実行してください。
厳格なゲートと終了コード
機械判定可能な承認ゲートを設定するには、--gate --json と、次の厳格フラグのうち 1 つまたは両方を追加します。
plannotator annotate report.md --gate --json --require-approval --result-file /tmp/decision.json
--require-approval:終了コードで人間による結果を報告します。--result-file <path>:標準出力の判断 JSON を<path>にもアトミックに書き込みます。親ディレクトリが存在し、ファイルが存在しない必要があります。結果は呼び出し時の cwd を基準に解決されます。
厳格フラグを指定した場合の終了コード(grep の慣例):
| 終了コード | 意味 |
|---|---|
| 0 | 承認されました。唯一の成功を示します。 |
| 1 | レビュアーが承認しませんでした(注釈を付けた、または却下した場合)。判断記録は引き続き公開されます。 |
| 2 | ゲート自体が失敗しました。フラグの組み合わせが不正、起動に失敗(ファイルが見つからない、URL に到達できない、ファイルサイズが上限を超えている)、または結果ファイルを公開できない場合です。レビュアーの判断結果として扱ってはいけません。 |
| 128+n | シグナル n によって終了しました。 |
厳格フラグがない場合、起動失敗時は 1 で終了し、終了コードから判断結果は得られません。代わりに出力を解析してください。どちらの厳格フラグも --gate --json が必要で、--hook とは併用できません。
plannotator annotate-last
plannotator annotate-last [--stdin] [--tailscale] [--gate] [--json] [--hook]
plannotator last
現在のエージェントセッションで最後にレンダリングされたアシスタントメッセージを注釈 UI で開きます(last はエイリアスです)。セッションログはホストごとに自動検出されます。代わりに --stdin を指定すると、標準入力から内容を読み込みます。
実行直前にコメントやステータスメッセージを出力しないでください。このコマンドは最後にレンダリングされたアシスタントメッセージを対象とするため、その前置きが注釈対象になってしまいます。
plannotator copilot-last
plannotator copilot-last [--gate] [--json] [--hook]
ライブの GitHub Copilot CLI セッション向けの annotate-last のバリエーションです(Copilot のセッション状態イベントを読み取ります)。通常は Copilot プラグインの /plannotator-last コマンドから呼び出します。Copilot CLI セッション内でのみ使用してください。
plannotator archive
plannotator archive
Plannotator のデータディレクトリに保存されたプランの決定(承認/却下バッジ)を読み取り専用のブラウザーで開きます。フィードバックは返されません。ユーザーが Done をクリックするとセッションが終了します。
plannotator guide
plannotator guide list
plannotator guide export --id <savedGuideId> [--out <file.html>]
plannotator guide export --guide <guide.json> --patch <diff.patch> [--out <file.html>]
plannotator guide export --snapshot <snapshot.json> [--out <file.html>]
plannotator guide share --id <savedGuideId> [--public] [--ttl <7d|24h|30m|3600>] [--json]
plannotator guide unshare <id> --token <deleteToken>
ガイド付きレビューは、コードレビュー UI 内で作成される、差分の AI 生成ウォークスルーです。CLI では保存済みのガイドを操作できます。
listは、Plannotator が現在のリポジトリ用に保存したガイドを表示します。exportは、持ち運び可能な自己完結型の HTML ファイルを 1 つ書き出します(ビューアーは guides.show から読み込みます)。--guideと--patchを指定すると、統一 diff に対して自分で作成したガイドを書き出します(--patch -は標準入力を読み込みます。検証は厳格で、ガイドが参照しているもののパッチに含まれていないファイル名を示します)。--out -は標準出力に書き込みます。--viewer-urlは固定されたビューアーのベース URL を上書きします。shareはガイドをアップロードし、リンクを出力します。デフォルトでは暗号化されます。キーは URL フラグメントにのみ保存され、ホストには暗号文が保存されます。--publicは暗号化せずに保存するため、チャットアプリでプレビューを展開できます。--ttlは有効期限を設定します。指定しない場合、リンクはunshareするまで有効です。保存されたガイドにはリンクが記録されます。また、2 回目のshare --idは、最初のリンクの削除トークンを使えなくしたまま放置しないよう、拒否されます。unshare <id> --token <t>は、共有時に出力された削除トークンを使ってリンクを削除します。
plannotator sessions
plannotator sessions [--open [N]] [--clean] [--json]
アクティブな Plannotator サーバーセッションを一覧表示します。各セッションには完全な対象(絶対パス、URL、PR URL、またはレビュー対象のディレクトリ)が含まれます。また、ホストが開いたレビューの場合は pn- ID も含まれます。--open はブラウザーでセッション N(デフォルトは 1)を再度開きます。レビューの途中でタブを閉じた場合に便利です。--clean は古いエントリーを削除します。--json は一覧を JSON 配列として標準出力に出力します。
plannotator inbox
plannotator inbox [--background | --no-open | --open] [--tailscale]
plannotator inbox mcp
Plannotator Inbox は、相手にメッセージを残したり、クリックで回答してもらう :::question ブロックを置いたり、注釈対象のファイルやガイド付きレビューを送ったりできる、マシンごとに 1 つのローカルウィンドウです。作業は中断されません。送信した後、そのまま作業を続けることも、ターンを終了することもできます。
- 相手がこのチャットを見ていない可能性がある場合に使ってください。相手しか決められないこと(
:::questionブロックを置いて、その回答に依存しない作業を続ける)、完了した長い作業(簡潔な要約 1 つと、確認するファイルをattachmentsに入れる)、または相手から頼まれた場合などです。相手がいる場合はチャットで尋ね、定型的な進捗報告は送らないでください。先に進む前にこのドキュメントや差分に関する決定が必要な場合は、レビュー(プランレビュー、annotate、review)を使ってください。 plannotator_inboxツールがある場合はそれを使ってください。ない場合は、stdio MCP サーバーplannotator inbox mcpを使ってください。このツールを使うと相手の返信がセッションに自動で届くため、待機せずにターンを終了してください。- 初めて使う前に
plannotator inbox --helpを 1 回実行して読み、内容を把握してください。ツールと引数、スレッド、返信先、質問の構文、質問の置き換え、他のエージェントへの接続方法など、完全なガイドが記載されています。 - 送信だけを目的として
plannotator inboxを実行しないでください。このコマンドを呼び出すと、停止中の Inbox がバックグラウンドで起動します。また、引数なしのplannotator inboxは相手のウィンドウを開きます。--tailscaleを使うかどうかは相手が決めることです。追加しないでください。 - 相手から Inbox の場所を尋ねられた場合や、Inbox を開くよう頼まれた場合(閉じたタブなど)は、
plannotator inbox --openを実行してください。必要に応じて Inbox をバックグラウンドで起動し、相手のブラウザーでウィンドウを開き、アドレスを標準出力に出力してすぐに戻ります。そのアドレスを相手に伝えてください。
plannotator card
plannotator card <create|move|say|link|ship|drop|list> ...
本人が受信トレイのボードを有効にしている場合(Settings → General)のみ使用してください。デフォルトでは無効で、その場合、すべての呼び出しは board_off を返し、何も書き込みません。そのため、受信トレイツールに card が表示されている場合、または本人から依頼された場合にのみ使用してください。ボードには、返信をまたいで続く作業ごとにカードが1枚あり、その段階の列(backlog、designing、your_look、building、your_review、shipped)に置かれます。使用できる場合は、plannotator_inbox ツールの card アクションを使ってください。この CLI はシェルから同じ呼び出しを行うものです。plannotator card --help で引数を確認でき、ボードが有効な場合は plannotator inbox --help のカードのセクションも確認できます。アイスボックスは本人専用です。
その他のサブコマンド
plannotator setup-goal <interview|facts> <bundle.json | -> [--json]
plannotator update [--check]
plannotator uninstall [--purge] [--yes] [--dry-run]
plannotator improve-context
setup-goalは、/goal ワークフロー用のインタビューまたは事実確認の UI を開きます。plannotator-setup-goalスキルによって動作し、バンドル JSON を受け取ります(-を指定すると標準入力を読み込みます)。バンドルを手作業で作成しないでください。updateは最新リリースを今すぐインストールします(最後のインストール時に選択した内容を使ってインストールスクリプトを実行します)。--checkは、更新があるかどうかだけを報告します。Plannotator の更新を本人から依頼された場合にのみ実行してください。バイナリが置き換えられます。終了コードは、最新または更新済みの場合は 0、失敗した場合は 1、使用方法に誤りがある場合は 2、中断された場合は 130 です。uninstallは Plannotator がインストールしたコンポーネントを削除します(--purgeはローカルデータも削除し、TTY がない場合は--yesが必要です。--dry-runは削除内容を事前に表示します)。improve-contextとinstall-runtimeは内部統合コマンドです(フックの配線と管理対象ランタイムのインストール)。improve-contextを直接実行しないでください。plannotator install-runtime agent-terminalは、オプションの annotate-terminal ランタイムを再インストールするためのもので、通常はインストーラーによって実行されます。- 追加のホスト内部サブコマンド(
opencode-*とcopilot-planの各種サブコマンド)は、プラグインが呼び出すものであり、あなたが呼び出すものではありません。
動作を変更する環境変数
| 変数 | 用途 |
|---|---|
PLANNOTATOR_REMOTE=1 | SSH/devcontainer セッションでリモートモード(固定ポート 19432、ワイドバインド)を強制します。0 はローカルモードを強制します。未設定の場合は SSH を自動検出します。 |
PLANNOTATOR_PORT | ランダムポートの代わりにポートを固定します。 |
PLANNOTATOR_ORIGIN | エージェントの起動元の検出を上書きします(claude-code、codex、opencode、pi、oh-my-pi、amp、droid、copilot-cli、gemini-cli、kiro-cli、mistral-vibe)。検出でたどれないラッパーから Plannotator を起動する場合に設定してください。 |
PLANNOTATOR_AI=disabled | UI の Ask AI と、エージェントが起動するレビュー画面を無効にします。 |
PLANNOTATOR_SHARE=disabled | ガイドの共有リンクを含め、URL 共有を無効にします。 |
PLANNOTATOR_DATA_DIR | データディレクトリを移動します(デフォルトは ~/.plannotator)。プラン、履歴、下書き、設定が含まれます。 |
PLANNOTATOR_BROWSER | セッションを特定のブラウザーで開きます。none を指定するとブラウザーを開きません(セッション URL は常に stderr に出力されます)。 |
PLANNOTATOR_UPDATE_CHECK=0 | 新しいリリースの自動確認を無効にします(更新通知と自動更新も無効になります)。実行時には plannotator update が引き続き確認を行います。 |
実行中のセッションへの注釈の投稿
実行中のプランレビューセッションは、外部から注釈を付けるための小規模な HTTP API をベース URL で公開します。POST /api/external-annotations は、レビュアーがすぐに確認できるインライン注釈を追加し、更新には PATCH/DELETE を使用できます。また、/api/external-annotations/stream で SSE ストリームを利用できます。UI の「エージェントへの指示をコピー」アクションを使うと、現在のセッションに対応した正しいベース URL を含む API の仕様全体がクリップボードにコピーされ、エージェントやスクリプトに渡せます。ユーザーがそのような指示を貼り付けた場合は、それに従ってください。その仕様にないエンドポイントを作り出してはいけません。
レビュー担当者への質問
レビュー担当者だけが決められることは、質問ブロックとして尋ねます。回答はフィードバックの冒頭に返されます(「質問への回答」、続いて「未回答」)。
:::question
Where should we keep the edit that loses a sync conflict?
When two devices edit one note offline, the later save wins and the other edit is lost. Local storage keeps it with no server work.
- [ ] Local only, purged after 30 days — cheap, no server change
- [ ] Server-side per user — survives reinstall, needs a retention policy
- [ ] Nowhere — accept silent loss for v1
Recommended: Local only, purged after 30 days
:::
:::questionは選択肢を1つ、:::question-multiは任意の数の選択肢を選び、:::question-textは自由記述に使います(選択肢のないブロックも自由記述になります)。- 1行目が質問で、その後の行は背景情報です。質問だけをそのまま送らないでください。レビュー担当者は事情を知らない状態で参加し、プロダクトの視点で考えます。あなたが知っていることは把握していません。
- 選択が何に影響するか、何を把握しているか、何を試したか、なぜその選択を勧めるのかを伝え、ほかのものを開かなくても判断できるようにします。
- 簡潔にします。平易な言葉を使い、専門用語や内部名称は避け、短い文を1〜3文にまとめます。
- 視覚的な内容にはスクリーンショット(
)を追加します。 - よりよく示しているファイル(計画書、モックなど)にリンクします:
[モック](mock.html)。Inbox ではそれも添付してください。リンクを開くと、スレッドの横に表示されます。
- 選択肢は
- [ ] ラベルの形式で、任意で- [ ] ラベル — 理由とします。レビュー担当者は「その他」と回答したり、メモを追加したり、スキップしたりすることもできます。 Recommended: <label>は自分の推奨を示します(:::question-multiではA, B and C)。ほかのテキストは、推奨としてタグ付けされた追加の回答として表示されます。- 自分だけでは決められないことだけを尋ねます。1回につき多くても約8問にします。修辞疑問や、コードベースを見れば分かる質問はしないでください。
- [x]は決定済みの選択肢を示します。再提出時には選ばれた回答にチェックを入れるか、ブロックを削除して決定内容を文章で伝えてください。- ブロックがGitHub上で読みやすくなるよう、各部分の間に空行を入れます。
- 各回答は質問の下に
### Q2. <質問> (line N)の形式で返されます。回答はAnswer: <選択肢>の形式で、自分の推奨をレビュー担当者が選んだ場合は(あなたの推奨)と示されます。またはOther: …、引用符で囲まれた自由記述、Skippedとして返され、さらにNote:が付く場合もあります。- [x]を付けた質問は決定済みとなり、レビュー担当者が変更したかメモを追加した場合に限り返されます。 - Inbox ではスレッドが進むにつれて、まだ開いている自分の質問(read_thread の状態が
openまたはpicked)を取り下げます。新しいメッセージに置き換えられた場合、不要になった場合、またはその質問へのフォローアップが届いた場合、あるいは相手の返信によって文章で決着がついた場合は、supersedes(またはReplaces:行)に質問を記載して、その人のリストの先頭にスレッドが残り続けないようにします。
禁止事項
plannotatorツールが使える場合は、シェル経由でplannotator annotate、review、またはlastを実行しないでください。ツールを呼び出してください。- ブラウザーUIのHTMLを解析またはスクレイピングしないでください。CLIの標準出力と、上記で説明されているHTTP APIがすべての仕様です。
- 実際のフックコンテキスト以外で
--hookを使わないでください。構造化された出力が必要な場合は--jsonを使います。 plannotatorを引数なしで対話的に実行しないでください。これはフックのエントリポイントです。- フラグを推測しないでください。不確かな場合は
plannotator <command> --helpを実行します。未知のダッシュ付きトークンがあると、annotate は意図的に失敗します。 plannotator annotateの対象にソースコードファイルや.envファイルを指定しないでください。コードにはplannotator reviewを使い、.envは拒否されます。- 実際にレビューする人がいない状態で、厳格なゲート(
--require-approval)を開始しないでください。人が対応するまでセッションがブロックされます。