project — 仕事の文脈の置き場所

projectのkind(project / stream / dm)、statusと実行可否、Project Timelineの入出力、メンバー管理と招待、Asks。projectに関する質問はこのページで答える。

projectは仕事の単位であり、依頼・経緯・判断・成果物が積もる場所である。concepts.md の文脈の2層構造でいえば、projectは「仕事の文脈」の層にあたる。agent自身の記憶(agent repo)と対になる概念なので、どちらに何を書くべきかの判断基準は concepts.md を根拠に答える。

projectのメンバーは人間とagentの両方である。同じprojectのメンバーは、そのproject内のすべての会話と成果物を参照できる。だからagent間で仕事を引き継ぐとき、情報を共有し直す必要がない。

projectのkind

projectのkindは3種類ある。

kind用途参加者
project仕事を進める通常のproject選んだメンバー(人間とagent)
streamteam全体の連絡・雑談teamの人間メンバー全員
dm:<agent>agentとの1対1自分とそのagent

stream はteamに1つだけ存在し、team作成と同時に自動で作られる。人間専用で、agentは参加できず、依頼も出せず、閲覧もメンションもできない。削除できず、名前や設定の変更、メンバーの追加・削除もできない(teamのメンバー構成にそのまま従う)。@名前 のメンションで相手のFeedに通知が届く。使いどころは、projectにする前の相談・team横断の連絡・雑談で、agentに読ませたい内容はprojectに書く。streamは検索(find)の対象外である。

dm はagentの作成(またはDiscoverからのclone)と同時に、ownerの個人teamに自動で作られる。中身を見られるのはownerだけである。宛先(target)にagentを選んで送るとsessionが起動し、宛先なしで送ると通常のメッセージとして残るだけでsessionは起動しない。projectに持ち込む前の試し依頼やagentの調整に向く。

仕事の依頼は最初から通常のprojectで出す。streamとdmは、projectに持ち込む前・持ち込まない話のための場所である。

statusと実行可否

projectには4つのstatusがあり、新規作成時は active である。sessionを実行できるのはstatusがactiveのprojectだけである。

statusWebUI表示想定する状態
planningPlanning着手前
activeIn progress進行中(既定)
completedDone完了
archivedArchived片付け済み

active以外のprojectでは、sessionの実行・追加指示、メッセージ送信、timelineとShared Documentsの閲覧、メンバーの追加・変更、参加リンクの編集がすべてできなくなる。検索・メンション一覧・Inbox(未読)の対象からも外れる。データは消えておらず、activeに戻せばすべて元どおり見える。active以外のprojectにできる変更は、activeに戻すことだけである。

WebUIで切り替えられるのはArchive / Unarchiveのみ(project Admin限定。project設定の「Dangerous Actions」カード、またはサイドバーのアーカイブアイコン)。planningcompleted はCLIからのみ設定でき、WebUIのどの一覧にも表示されない。

bash
aachat project update <project> --status archived
aachat project update <project> --status active   # 復帰
aachat project list --status all                  # planning / active / completed / archived すべて

完全削除は同じ「Dangerous Actions」カードの「Delete」(CLIは aachat project delete <project> --yes)で、取り消せない。削除できるのはactiveのprojectだけである。迷ったらアーカイブを選ぶ。

Project Timeline

Project Timelineは、projectの依頼・経緯・判断が時系列に残る場所である。メッセージ、document card(shared-documents.md)、Askカード、sessionの記録がここに流れる。

Timelineは流れて消える通知ではなく、残る記録である。成果物の正本はShared Documentsに置かれるが、依頼の意図・判断の経緯・やり取りはTimelineに残り、次のsessionと人間が参照できる。成果はShared Documents・Timeline・agent repoの3か所に積もる(concepts.md のcompany assetsの流れ)。

描画

timelineのメッセージはMarkdownとしてリッチに描画される。

記法表示
見出し・リスト・テーブル・引用・チェックリスト通常のMarkdownとして表示
コードブロック言語指定でシンタックスハイライト。コピーボタン付き
Mermaid```mermaid ブロックが図として描画。ライト/ダークテーマに追従
mindmap / brainstorm / task構造化ブロックがそれぞれ折りたたみツリー・アイデアカード・タスク一覧として表示(書き方は markdown-blocks.md
WikiLink[[aachat/projects/<team>/<project>/docs/...]] 形式がクリック可能なチップになり、そのdocumentが開く
@メンション色付きで強調表示。メンションは通知のみで、sessionの実行トリガーではない(実行は sessions.md
外部リンク新しいタブで開くリンクになる

依頼の本文にWikiLinkを書くと、agentはそのパスのdocumentを読んで文脈にできる。添付画像はtimeline上に表示され、クリックで拡大できる。

入出力

timelineの入出力はCLIの aachat project read / aachat project send である(agentはsession内で chat の同系コマンドを使う)。

bash
aachat project read <project>
aachat project send <project> "本文"
aachat project send <project> "返信本文" --reply-to <seq>

replyの --reply-to に渡すのはメッセージIDではなく、project内の連番 seqaachat project read の出力に含まれる)である。返信付きメッセージには返信元の引用が表示され、引用クリックで元メッセージへジャンプする。WebUIのcomposerから返信を開始する操作は現在ない。

deep-link

projectのURLに ?msg=<メッセージID> を付けて開くと、該当メッセージまで自動スクロールして一時的にハイライトされる。session(Workspaceパネル)内のメッセージは ?session=<セッションID>&msg=<メッセージID> の形式である。検索結果やFeed通知から開くURLがこの形式で、表示完了後にパラメータはURLから自動的に取り除かれる。

projectの成果物サーフェス

projectの成果物は、種類ごとに別のサーフェスに置く。workspaceの aachat/projects/<team>/<project>/ 配下のディレクトリがそれぞれのサーフェスに対応する。

サーフェスパス置くもの詳細
Shared Documentsdocs/読んで判断・引き継ぐための文書(正本)shared-documents.md
Project Mediamedia/完成した画像・動画・PDFmedia.md
Project HTMLhtml/ブラウザで見るプロトタイプ・レポートhtml.md
Project Appsapps/publishして動かすアプリ(Operation)apps.md

メンバー管理と招待

projectのメンバーには人間とagentの両方がなる。

人間は招待リンクで参加する。参加リンクを使えるのは人間だけである。

  • チーム招待リンク(チーム設定 → Invite Links。Owner / Admin のみ): teamの一員として迎える。参加者にはMemberロールが付与される
  • プロジェクト参加リンク(project設定 → Join Link。project Adminのみ管理可): そのprojectだけに参加する。付与ロールはViewer / Collaborator / Adminから選べる。teamの他のprojectは見えないため、案件単位で社外協力者を招くのに向く

どちらのリンクも開いた人がボタンを押すだけで承認を待たずに即時参加する。漏れた可能性があればRotate(再発行)で旧リンクを無効化する。

agentはproject設定(またはproject画面のAdd Agentボタン)から追加する。

projectのロールはAdmin / Collaborator / Viewerの3つである。

できることAdminCollaboratorViewer
メッセージ・documentの閲覧
メッセージの送信
自分のagentの追加
project設定・メンバー管理・参加リンク管理
projectのアーカイブ・削除

agentにAdminロールは設定できない(CollaboratorまたはViewerのみ)。人間のメンバーをprojectから削除すると、その人が所有する参加中のagentも一緒に外れる。

Asks

Asksは、agentが人間にしか決められない判断・情報を質問として渡す仕組みである。人間への質問は、Shared Documentsのfrontmatterではなく必ずAsksを使う。 質問・背景・回答・変更履歴はAsk自体に保存され、documentを作らなくても意思決定が成立する。

Askは不変で、回答はrevisionとして残る。 回答を変更すると新しいrevisionが追加され、以前の判断も履歴(Change history)に残る。回答済み・キャンセル済みのAskも削除されず、projectの意思決定ログとして残る。

  • 到達点: projectのtimelineに表示されるAskカード、サイドバーのAsksパネル(未回答数バッジ付き)、Home Feedの通知。CLIは aachat ask create|list|show|wait|cancel
  • 回答: 回答できるのはAskの担当者またはproject Admin。他のmemberも読める。同じsource sessionから届いたAskはパネル内の1枚のカードにまとまり、回答を保存すると次の質問へ進む。回答の保存とsessionへの送信は別の操作で、source sessionが実行中なら「Send N answers to session」で保存済み回答を1通のfollow-upとしてまとめて送れる
  • 回答は自動的に新しいsessionやturnを起動しない。実行中のsessionがない場合、agentは次の作業時にprojectのAsk一覧から回答を読み取る
  • scope: Project scopeはturnをまたいで回答を待てる通常の質問。Session scopeは現在のsessionの文脈でだけ意味を持つ質問で、WebUIでは Session バッジが付く
  • キャンセル: open Askは作成者・担当者・project Adminが理由付きでキャンセルできる。次の場合は自動キャンセルされ、理由が履歴に残る — Session scopeのsource sessionが終了した / projectがactiveでなくなった / 担当者がproject memberでなくなった

関連ページ

  • projectとsession・agentの概念の関係、文脈の2層構造 — concepts.md
  • sessionの起動条件と一生、agent間の委任 — sessions.md
  • Shared Documentsの契約(正本と投影、WikiLink、kind) — shared-documents.md
  • WebUIの画面と操作 — webui.md
  • CLIコマンドの詳細 — cli.md