オーナーデスク
チャット内の質問は埋もれてしまい、オーナーはエージェントが尋ねたときに(自分の都合の良いときではなく)答えなければなりません。デスクはそれらをチャットからボードに移します。「Needs you(あなたが必要)」タブには保留中のすべてのアイテム、「Urgent(緊急)」タブは本当に待てないものがあるときだけ黄色で表示、「Decided(決定済み)」タブには回答済みのもの、「Later(後で)」タブには後回しにできるもの、「Archive(アーカイブ)」タブには完了したものが表示されます。スマートフォンやiPadでは、オーナーはスワイプでタブ間を移動します。オーナーはそこで回答し、あなたは回答を読んで行動し、アーカイブします。
必要なもの
-
dbおよびcomments機能を持つClaudeアーティファクト(claude.ai または Claudeデスクトップアプリ上)。アイテムにファイルを添付する場合のみassetsを追加します。 -
ツール:
Artifact: ボードの公開とファイルのアップロードに使用。ArtifactData: アイテムの書き込みと読み取りに使用。ArtifactComments: ボードの監視と、あなたを起動するコメントへの応答に使用。
これらが遅延ロードされている場合は、ToolSearch でロードします。
-
メインループセッション。 メインループセッションのみが監視を保持できます。サブエージェントはできません。
これらがない場合は、その旨を伝え、質問を番号付きリストとしてチャットに残します。ボードがあるふりをしないでください。
誰が書き込むか
1セッションのみ:
- チーフ・オブ・スタッフがいる場合はそのセッション(チーフ・オブ・スタッフスキルを参照);
- それ以外の場合は、オーナーと協業するセッション。
2つのライターが存在すると、アイテムに二重に番号が振られ、互いの作業をアーカイブしてしまいます。
ボードの作成
-
テンプレート
assets/desk.htmlを埋めます。3つのプレースホルダーがあります:{{TITLE}}: ボードの名前(2〜4語)。例: 「Recipe App Desk」;{{EYEBROW}}: タイトル上の小さな行。例: 「Recipe app · from the chief of staff」;{{AGENT}}: 回答を読む者の名前(文中で読まれる形)。例: 「the chief of staff」または「Claude」。引用符なしの平文のみ。
例:
sed -e 's/{{TITLE}}/Recipe App Desk/g' -e 's/{{EYEBROW}}/Recipe app · from the chief of staff/g' -e 's/{{AGENT}}/the chief of staff/g' <skill>/assets/desk.html > desk.html -
Artifactツールで公開します:capabilities: {"db": {}, "user": {}, "comments": {}}。アイテムにファイルが含まれる場合は"assets": {}を追加;icon: "inbox";- 1行の
description。
公開すると、このセッションがボードの監視を開始します。
-
一度確認します:
ArtifactDataのlistをコレクションitemsに対して実行。空であり、ページには「Nothing needs you.」と表示されます。 -
オーナーにリンクを渡し、ボードはオーナー専用であることを伝えます。
-
リンクをプロジェクト内のファイル(ステータスページやプロジェクトノート)に書き込み、新しいセッションが見つけられるようにします。
Claude外の通常のブラウザで開くと、ページはダミーのサンプルアイテムとその旨のメモを表示します。これはプレビューやスクリーンショット用であり、実際の書き込みは一切行われません。
回答によって起動される
データベースへの書き込みではあなたは起動されません。Claude に送信されるコメントによって起動されます。オーナーが回答したり、タスクを完了としてマークしたり、質問をしたりすると、ページはアイテムのスレッドに短いコメントを送信します。例:「№ 12 · Open the beta this Friday? Answer: Yes」。このコメントがボードを監視しているセッションを起動します。
- 公開により監視が開始されますが、
ArtifactCommentsのwatch(urlなし)がボードを接続済みとしてリストし、自動返信が有効になっている場合にのみ監視となります。 - 新しいセッションは再度監視する必要があります。
ArtifactCommentsのwatchとボードのurlを使用します。自動返信は、オーナーが自身のメッセージでそのリンクを提供した場合にのみ有効になるため、リンクはオーナーが貼り付ける再起動プロンプトに含めます。 - ページはオーナーに現在の状況を伝えます:「…回答した瞬間に通知されます」または「ここに保存されました。…は次のチェック時に読み取ります」。
- コメントがあなたに届かない場合(コメントがオフになっている、または監視中のセッションがない場合)、以下の代替手段にフォールバックします:
- 毎ターンの開始時にデスクを読み取る;
- オーナーに回答後チャットで「desk」と言うよう依頼する;
- オーナーが希望する場合に限り、スケジュールチェックを提案する。
アイテム
各アイテムはコレクション items 内の1つのドキュメントです。ドキュメントIDがそのハンドルです。決定には q<数字>、タスクには t-<単語> を使用します。オーナーがスマートフォンで読む可能性があるため、全体を通して平易な言葉を使用します。
| フィールド | 書き手 | 内容 |
|---|---|---|
kind | あなた | "decision" または "task" |
status | 両方 | "open"; ページが "answered" を設定; あなたが "archived" を設定 |
later | あなた | true で Later タブに移動 |
urgent | あなた | true で黄色の Urgent タブと Overview の最上部に表示。今日中の期限やユーザーに影響する障害など、待てないものだけに設定 |
num | あなた | 通し番号。チャットで使用するものと同じで、再利用しない |
title | あなた | 選択肢で回答可能な質問そのもの、またはタスクのアクション |
body, bullets | あなた | 短い段落や箇条書き: 重要理由、影響範囲 |
recommendation | あなた | あなたの推奨回答とその理由を1〜2文で |
choices | あなた | 2〜4の回答選択肢。デフォルトは Yes / No |
steps, stepsDone | あなた; ページ | タスクのステップと、チェックされたステップのインデックス |
copies | あなた | [{label, text}]: オーナーがどこかに貼り付けるテキスト |
links | あなた | [{label, url, note}]: ガイド、ページ、添付ファイル |
from | あなた | 質問したセッション |
priority | あなた | 1が最優先。オープンアイテムの並び順に使用 |
created | あなた | 投稿日時(ISO形式) |
answer | ページ | {choice, note, at} |
asks | ページ; あなた | [{q, at, via, a, aAt}]: オーナーからのアイテムに関する質問。あなたが a と aAt を記入 |
thread | ページ | ページがこのアイテムに使用するコメントスレッド。触らない |
outcome, archived | あなた | 結果(1行); アーカイブ日時 |
assets/example-items.json には7つのダミーアイテムが含まれており、ArtifactData の batch で書き込むことができます。ボードのテストに使用し、実際のオーナーのボードでは決して使用しないでください。
アイテムの投稿
ArtifactDataを使用して新しいアイテムを追加します。新しいドキュメントにはsetを、2つ以上のアイテムにはbatchを使用します。アイテムを変更するためにページを再公開しないでください。- その後、チャットで追加した内容を各アイテムへのリンク付きで伝えます:
<board url>#<doc id>でそのアイテムのタブが開きスクロールします。 - チャットのオープン質問リストも管理している場合(チーフ・オブ・スタッフなど)、両方を同じに保ちます(同じ番号、同じ文言)。
- 各アイテムは単独で完結するように記述します: 何が決定されるのか、各選択肢で何が変わるのか、あなたの推奨は何か。
- タスクでは、正確な手順、
copiesに貼り付けるテキスト、linksのガイドをリストします。 - ファイルを添付する場合: まずファイル全体を読み、次に
Artifact(ボードのurl、asset: true)を使用してアップロードし、/_blob/<asset id>としてリンクします。 - アイテムにパスワード、キー、個人記録を決して入れないでください。 秘密を必要とするタスクでは、どこに入力するかを示し、その内容自体は決して記述しません。
読み取り、実行、アーカイブ
コメントであなたが起動されたとき、またはターンの開始時に:
ArtifactDataのqueryをitemsに対してwhere: [["status", "==", "answered"]]で実行。各アイテムのanswerと新しいasksを読み取ります。- 回答に基づいて行動します。 チーフ・オブ・スタッフがいる場合は、オーナーの選択とメモをそのまま質問したセッションに伝えます。
- 通常、コメントとアイテムは一致します。
- アイテムが回答済みとして保存されていないが、コメントに回答が含まれている場合、コメントがオーナーの新しい発言です。自分でアイテムに書き込みます。
- アイテムをアーカイブします:
status: "archived"、1行のoutcome(「ビルダーがベータを金曜日に変更しました」)、archived(時刻)でupdateします。すべての書き込みをif_versionで固定し、オーナーがその間に回答を変更しても上書きされないようにします。 - 同じアイテムの
asks内の各オープンエントリに回答します。asks配列全体をaとaAtを記入して返し、if_versionで固定します。 - コメントスレッドに1行で返信し(「了解しました。ベータを金曜日に移動します」)、その後スレッドを解決します(
ArtifactCommentsのreply、その後resolve)。
アイテムを later: true で一時的に保留し、later: false で戻します。決定済みアイテムは、実行時期が来るまで Later に残すことができます。削除ではなくアーカイブします。アーカイブは決定の記録です。削除はオーナーの指示があった場合のみ行います。
ステータスとロードマップ(オプション)
さらに2つのタブが、概要とアイテムの間にプロジェクトの状況を表示します。それぞれ、コレクション board にドキュメントを書き込むと表示され、ライブ更新されます。ArtifactData で書き込みます(初回は set、以降は update を if_version で固定)。assets/example-board.json にダミーのペアが含まれています。
board/status: 各セッションの状況。チームを確認するたびに更新します。チーフ・オブ・スタッフはステータスページを更新するたびにこれを書き込みます。
| フィールド | 内容 |
|---|---|
updated | 最終確認日時(ISO形式)。ページは経過時間を表示 |
oneLine | プロジェクトの状況を一文で |
sessions | [{name, state, doing, last, restart}]、セッションごとに1行。state は一言(「Working」「Waiting」「Stopped at a limit」)で、ページが色付けします。restart が「Yes」の場合、そのセッションを再起動する良いタイミング |
done | 前回の更新以降に完了したこと、各行に1つ |
next | [{who, what}]: 次のステップ。オーナーのものも含む(who: "you") |
Status タブはオーナーの緊急アイテムとオープンアイテムを自動的にカウントするため、oneLine でそれらを繰り返さないでください。
board/roadmap: 計画を段階ごとに表示。ステージまたはそのアイテムが移動したときに更新します。
| フィールド | 内容 |
|---|---|
updated | 最終変更日時 |
headline | プロジェクトの計画上の位置を一文で |
stages | [{id, name, state, when, summary, items}]、順序通り。state は done、now、next、later のいずれか。items は [{text, state}] で、done、now、next のいずれか。now とマークされたステージが最上部に開く |
ページの変更
- ページ自体を変更する場合のみ、ページを再公開します。同じ capabilities を渡すか、
capabilitiesを省略して維持します。 - 別のセッションがボードを公開した場合、まず読み取り(
Artifactのread)、返ってきたものに基づいて構築します。 - アイテムはデータベースに保存されるため、再公開しても保持されます。