プレイブック

プレイブックを検索・作成し、バージョンの保存、共有、改善を行います。


探して読む

epismo playbook search --query "release review" --category operations
epismo -w acme playbook search "release review" --output table
epismo playbook search --category operations
epismo playbook resource list --kind cli
epismo playbook list --resource-kind cli --resource-ref github:epismoai/cli
epismo playbook get <playbook-id-or-reference>
epismo playbook version list <playbook-id>
epismo playbook version get <playbook-id> <version-id>
epismo playbook version archive <playbook-id> <version-id>

playbook get は UUID、pb:alias、pb:handle/alias などのプレイブック参照情報を受け取り、同じ読み取りでそのプレイブックの未解決の提案も返します(公開プレイブックなら無料、それ以外はプレイブックの取得1回分)。検索では、検索語、カテゴリ、1ページの件数、カーソルを指定できます。--query を省略すると通常の一覧になり、更新が新しい順に返します。playbook resource list でツールや資料の参照先を探し、playbook list の --resource-kind と --resource-ref で絞り込みます。参照先による絞り込みと、検索語の指定は併用できません。同じ GitHub リポジトリや npm パッケージを指す URL 形式とサービス固有の形式はまとめて表示されます。結果を使う前に、入力スキーマ、利用するツールや資料の候補、期待される成果を含むプレイブックの定義全体を確認してください。

作成してバージョンを保存する

プレイブックの定義をファイルに保存し、playbook create に渡します。

ワークスペースで作成する場合は、保存済みの既定ワークスペースを使う場合も、--private、--team-ids "$TEAM_ID"(カンマ区切りまたは JSON 配列)、設定全体を渡す --access のいずれか1つを選びます。--request JSON では private、teamIds、access を使い、併用しません。個人スペースでは共有指定を省略できます。チーム経由で編集できる作成者には、重複する直接共有を追加しません。

{
	"ownerId": "<account-id>",
	"access": { "visibility": "restricted", "grants": { "<user-or-team-uuid>": "editor" } },
	"definition": {
		"schemaVersion": 1,
		"title": "Release review",
		"description": "Review a release before publication.",
		"category": "operations",
		"inputSchema": {
			"type": "object",
			"required": ["repository"],
			"properties": { "repository": { "type": "string" } }
		},
		"steps": [
			{
				"title": "Inspect the change",
				"instructions": "Review scope, tests, risks, and rollback plan.",
				"resourceHints": [
					{ "kind": "document", "ref": "https://example.com/release-policy" }
				],
				"expectedOutputs": [{ "title": "Decision and evidence", "format": "markdown" }]
			}
		]
	}
}
epismo playbook create --request @playbook.json
epismo playbook version publish <playbook-id> \
  --base-version-id <latest-version-id> --request @next-version.json

新しい手順では ID を省略します。同じ手順に限り既存の4文字 ID を維持してください。version publish は、後から変更できない新しいバージョンを保存します。競合した場合は変更元の ID だけを差し替えず、最新バージョンを取得して変更内容を反映し直してください。

過去のバージョンを非表示にし、新しい案件で利用させたくない場合はアーカイブします。バージョン番号は詰め直しも再利用もされず、最新バージョンはアーカイブできません。アーカイブ済みバージョンに固定された既存案件は動作を継続します。

下書き

epismo playbook draft get <playbook-id>
epismo playbook draft save <playbook-id> --base-revision 0 --request @draft.json
epismo playbook draft publish <playbook-id>
epismo playbook draft discard <playbook-id>

プレイブックが持てる下書きは最大1件で、既存のプレイブックにしか作れません(最初のバージョンは playbook create を使います)。--base-revision は最後に読んだ更新番号(新規なら 0)で、古い値は変更元のバージョンの競合と同様に拒否されます。下書きの閲覧・編集には、プレイブックの編集権限が必要です。一般公開の内容を読む人や、共有リンクを知っているだけの人は下書きを読めません。draft publish は下書きからバージョンを作り同時に破棄し、draft discard はバージョンを作らずに下書きを破棄します。

アクセス権限、参照

epismo playbook access get <playbook-id>
epismo playbook access set <playbook-id> --access '{"visibility":"public","grants":{"<user-or-team-uuid>":"editor"}}'
epismo playbook owner transfer <playbook-id> --owner-id <workspace-or-user-id>
epismo playbook alias set <playbook-id> <alias> [--owner-id <account-id>]
epismo playbook alias list <playbook-id> [--owner-id <account-id>]
epismo playbook alias delete <alias> [--owner-id <account-id>]
epismo playbook share "$PLAYBOOK_ID"
epismo playbook archive <playbook-id>

プレイブックと案件には所有元のユーザーまたはワークスペースのアカウント(ownerId)があり、請求先も兼ねます。個人所有者は全権限を持ち、ワークスペース所有の場合は現在のオーナー・管理者が所有権限を行使します。それ以外のメンバーには、ユーザー・チームへの明示的な共有、または公開コンテンツへの公開設定が必要です。所属だけでリソースへの権限は得られません。退会時には、そのワークスペースが所有するアイテムへの直接共有も、完了・アーカイブ済みを含めて解除されます。解除によって編集者がゼロになるアイテムがあれば、完了・アーカイブ済みも含め、先に別のユーザーまたはチームを編集者に追加してください。個人所有や別ワークスペースのアイテムへの共有は維持されます。チーム経由の権限と管理権限は現在の所属に従います。必須 SSO は所属メンバーに適用し、非メンバーへの直接共有は通常の Epismo 認証で利用できます。ワークスペース間のチーム共有では、参加元ワークスペースの SSO を確認します。一覧は明示的な共有と対応する公開設定で決まり、所有権限だけでは表示されません。

閲覧者は共有された内容を読めますが編集できず、プレイブックの下書きには編集権限が必要です。編集者は内容・共有設定の変更、少なくとも1件の明示的な編集者を保持した共有設定の変更、アーカイブ・復元ができます。所属先の移管、管理者変更、案件の完全削除、過去バージョンのアーカイブには所有権限が必要です。assignedTo は責任を表し、権限を付与しません。新しい担当者・管理者には既存の編集権限が必要で、ワークスペース所有の場合はその所属メンバーである必要もあります。担当変更は共有設定を維持し、所有権移管で元所有者を自動的に編集者へ追加することもありません。

エイリアスを設定・変更できるのは現在のプレイブック所有者、または所有ワークスペースの管理者だけです。所有者には公開ハンドルの設定が必要です。共有には pb:handle/alias を使い、pb:alias はローカルでの参照に使います。

提案

epismo playbook suggestion create <playbook-id> \
  --base-version-id <version-id> --title "Clarify evidence" --content "..."
epismo playbook suggestion list <playbook-id> --statuses open
epismo suggestion list
epismo suggestion list --view inbox
epismo suggestion update <suggestion-id> --title "..." --content "..."
epismo suggestion resolve <suggestion-id> --status applied \
  --result-version-id <new-version-id>

提案は現在の親プレイブックに紐づき、独立した所有者や共有範囲のスナップショットを持ちません。authorId は作成者、baseVersionId は改善を検討するための不変の内容参照です。閲覧には親への現在のアクセス権が必要で、親がアーカイブされると復元まで提案も読めません。作成者は親へのアクセス権を保持している間、未解決の自分の提案を編集でき、現在のプレイブック編集者が採用・却下を行えます。移管後も既存の提案は親の現在の共有設定に従います。採用済みにする前に結果のバージョンを保存してください。

--view inbox / --view sent

公開プレイブックに対する playbook list と UUID 指定の playbook get はログイン前でも利用でき、0 クレジットです。検索、非公開データ、変更操作には認証が必要です。料金はクレジットを参照してください。

作成時の明示的な共有設定と共有設定の更新は access: { visibility, grants } を使います。公開範囲は restricted/public、共有先はユーザー・チームの UUID または登録済みユーザーのメールアドレスをキーに viewer/editor を指定します。メールアドレスは保存前にユーザーの UUID に解決し、応答は UUID を返します。未登録のメールアドレスや、同じユーザーに解決される共有先の権限が競合する場合は、更新全体を拒否します。更新は設定全体を置き換えるため、無関係な共有先を保持し、自分への直接共有を残す場合も含めてください。所有者は共有設定とは独立して管理権限を持ち、担当者や管理者には自動で権限を付与しません。編集者は共有設定の取得・変更、少なくとも1件の明示的な編集者を保持した共有設定の変更、アーカイブ・復元ができます。通常の取得結果には非公開の共有先一覧が含まれないため、編集者は共有設定の取得操作で設定全体を確認します。アクセスと権限も参照してください。

読める保存済みバージョンをコピーして、独立した内容として調整できます。コピーは独自の内容とバージョンを持ち、共有設定、下書き、案件、提案、エイリアス、スター、履歴を引き継ぎません。編集は同期されません。共有設定を明示してください。ownerId を省略すると選択中のワークスペース、未選択なら個人アカウントを所有元にします。copiedFrom は直近の元プレイブックと固定バージョンを保持し、sourceAccessible は元を現在も読めるかを示します。コピー一覧には読めるものだけを返します。料金は通常のプレイブック作成と同じです。

epismo playbook copy "$PLAYBOOK_ID" --source-version-id "$VERSION_ID" --private
epismo playbook copies list <playbook-id>

所有・責任・ライフサイクル

作成・コピー時の ownerId を省略すると、選択中のワークスペース、未選択なら個人アカウントを所有元にします。明示指定にも権限確認が適用されます。保存済みの接続先を含め、ワークスペースを選択している場合、作成時は private: true、空でない teamIds、access のいずれか1つを明示します。個人スペースでは共有指定を省略できます。選択したチームの編集権限で作成者も編集できるため、重複する直接共有は追加しません。明示した作成者への共有は保持します。管理者や担当者の指定は共有設定の代わりにはなりません。

編集者と所有者はプレイブックをアーカイブ・復元できます。検索語を指定せず archived=true(playbook list --archived または epismo_playbook_search)で一覧を取得し、playbook restore または epismo_playbook_restore で復元します。バージョン・共有設定・管理者は維持します。所有者は playbook assign --assigned-to または epismo_playbook_assign で責任者を変更できますが、権限は付与しません。過去バージョンのアーカイブは所有権限が必要で、最新版はアーカイブできません。

Web の「アーカイブ済みプレイブック」では、所有者がアーカイブ済みプレイブックを完全削除できます。ただし、完了・アーカイブ済みを含む案件からの参照や、このプレイブックをコピー元とする別のプレイブックがない場合に限ります。元には戻せません。CLI・MCP のアーカイブ・復元操作では完全削除しません。

epismo playbook list --archived
epismo playbook restore <playbook-id>
epismo playbook assign <playbook-id> --assigned-to <user-id>

プレイブックの担当変更も案件と同じ assignedTo を使い、応答でも assignedTo として返します。epismo_playbook_assign、playbook assign <playbook-id> --assigned-to <user-id>、または PATCH /v1/playbooks/{playbookId}/assignee を使います。変更には所有権限、選ぶ相手には既存の編集権限が必要です。

epismo playbook list --sharing-scope shared --assigned-to <user-id>
epismo playbook search --query incident --sharing-scope anyone
epismo playbook resource list --kind cli --sharing-scope shared