**メタ検出専用スキル** — ユーザーが「どのような資本構成(会社の株式所有状況)管理ツールやコマンドが利用できるのか分からない」という状況で、「どんな機能が存在するのか」という質問に答えるためのものです。 株式所有関連のトピック(株主、助成金、段階的解放権、SAFE(投資契約形式)、借用書、企業評価、持株比率、資金配分、投資額などの用語)が名前で挙げられたリクエストには、決してこのスキルを使用しないでください。これらは、ユーザーの質問の言い方が曖昧であっても、常に**直接的なデータ取得要求**です。その場合は、対応する専門スキルが優先され、このスキルより常にそちらが選ばれます。
META-DISCOVERY ONLY — answers the question "what cap-table tools or commands exist?" when the user is lost about what's available. NEVER use this skill for any request that names a cap-table topic (stakeholders, grants, vesting, SAFEs, notes, valuations, ownership, waterfall, financing, exposure, etc.) — those are always direct data requests, even if the user phrases them vaguely. The matching specialist skill wins every time over this one.
ユーザーのリクエストに対応する特定のスキル(機能拡張)がない場合、コマンドレジストリを使って利用可能なコマンドを探します。この環境で事前にdiscoverを実行していれば、コマンド一覧がディスクにキャッシュされています。ネットワークアクセスする前に、まずそのキャッシュを読み込みます。
プラグインの後処理フック(PostToolUse hook)は、discoverを実行するたびに${CLAUDE_PLUGIN_DATA}/cache/commands.jsonにコマンド一覧全体を書き込みます。MCPを呼び出す前に、必ずここから読み込んでください:
cat "${CLAUDE_PLUGIN_DATA}/cache/commands.json" 2>/dev/null || true
ファイルが存在して有効な場合、使用する前に以下の点を確認してください:
cached_atというISO形式のタイムスタンプがあります。cached_atから24時間以上経っていれば、キャッシュは古いと判断してステップ1に進みます(ウェルカムメッセージやアカウント情報のキャッシュと同じ24時間の有効期限に合わせています)。plugin_versionがあります。セッション開始時に注入される<carta-plugin version=… />タグのバージョンと一致していなければ、キャッシュは古いと判断してステップ1に進みます。commandsキー(配列)の下にあります。ファイルが空、解析エラーがある、またはcommandsがない・空の場合はステップ1に進みます。キャッシュが有効で新しい場合、ステップ1~2のネットワーク処理をスキップします。キャッシュされたcommands配列から最も合致するコマンドを(ライブのsearch_tools結果と同じname・description・inputSchemaフィールドで)直接選び、ステップ3に進みます。これにより、ウォーム状態(繰り返しアクセス時)のネットワーク往復が削減されます。
search_tools({"query": "<ユーザーのリクエストから抽出したキーワード>"})
ユーザーの意図を表すキーワードを使用します(例:「評価額」「株式」「SAFEノート」「ステークホルダー」)。
返されたツールを確認します。各ツールには以下があります:
name: call_toolに渡すツール名(例:cap_table__get__stakeholders)description: 返される内容の説明inputSchema: 必須およびオプションのパラメータcall_tool({"name": "<ツール名>", "arguments": { ...パラメータ }})
ほとんどのコマンドではcorporation_id(企業ID)が必要です。まだ持っていない場合はlist_accountsから取得してください。
<IMPORTANT>
_instrumentation_v2は匿名の利用ログ(テレメトリー)です。Cartaの MCP ツール呼び出しには必ず含めてください。プラグインのフックは実行時にこれを上書きするため、常に送信しても問題ありません。形式は以下の通りです:
_instrumentation_v2: {"skills": ["<プラグイン>:<スキル>", ...], "model": "<モデルID>", "surface": "<値>"}
skillsはセッション全体で累積します。このコマンドを実行するスキルだけでなく、これまで読み込まれた全Cartaスキルをリストアップします。各エントリを"プラグイン:スキル"の形式で記名し、古い順に並べ、最後に最近使ったスキルを配置します。Cartaスキル(carta-cap-table:*、carta-crm:*、carta-investors:*)のみをリストに含めます。他のプラグインのスキルは含めません。surfaceは実行中のClaudeの環境です:"chat"(Claude.aiまたはClaudeアプリ、通常のチャット※Coworkモードを除く)、"cowork"(Coworkモード)、"code-terminal"、"code-desktop"、または"excel"。該当する環境がない場合、または判定できない場合はsurfaceを完全に省略します。推測したり、別の値を作ったりしないでください。
</IMPORTANT><!-- carta:instrumentation-fallback -->
<IMPORTANT>
_instrumentation_v2 is anonymous Carta skill-usage telemetry. ALWAYS include it in your Carta MCP tool-call arguments — the plugins' hooks overwrite it when they run, so always sending it is safe. Shape:
_instrumentation_v2: {"skills": ["<plugin>:<skill>", ...], "model": "<model-id>", "surface": "<value>"}
skills is cumulative for the session: list every Carta skill loaded so far, not only the one driving this call. Namespace each entry "plugin:skill" and keep them oldest-first, with the most recently used skill last. List only Carta skills (carta-cap-table:*, carta-crm:*, carta-investors:*) — never skills from non-Carta plugins.
surface is the Claude surface you are running in: "chat" (claude.ai or the Claude app, i.e. regular chat, not Cowork), "cowork" (Cowork mode), "code-terminal", "code-desktop", or "excel". Omit it entirely if none of those describe your surface or you cannot tell — do not guess and do not invent another value.
</IMPORTANT>
<!-- Part of the official Carta AI Agent Plugin -->
Use the command registry to find available commands when no specific skill covers the user's request. A prior discover call in this environment caches the full registry to disk — read that cache first and only hit the network on a miss.
The plugin's PostToolUse hook writes the full command registry to ${CLAUDE_PLUGIN_DATA}/cache/commands.json after any discover call. Read it before making any MCP call:
cat "${CLAUDE_PLUGIN_DATA}/cache/commands.json" 2>/dev/null || true
If the file exists and is valid, treat it as the command list and validate it before use:
cached_at ISO timestamp. If cached_at is more than 24 hours old, treat the cache as stale and fall through to Step 1 (this matches the 24h TTL the welcome/accounts caches use).plugin_version. If it does not match the running plugin version (see the <carta-plugin version=… /> tag injected at session start), treat the cache as stale and fall through to Step 1.commands key (an array). If the file is empty, unparseable, or commands is missing/empty, fall through to Step 1.When the cache is valid and fresh, skip Steps 1–2's network call — pick the best-matching command directly from the cached commands array (same name / description / inputSchema fields as the live search_tools result) and go straight to Step 3. This removes a network round-trip on warm sessions.
search_tools({"query": "<keyword from user's request>"})
Use a keyword that captures the user's intent (e.g. "valuation", "grant", "safe", "stakeholder").
Review the returned tools. Each has:
name: the tool name to pass to call_tool (e.g. cap_table__get__stakeholders)description: what it returnsinputSchema: the required and optional parameterscall_tool({"name": "<tool_name>", "arguments": { ...params }})
You still need corporation_id for most commands — get it from list_accounts if you don't have it.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。