0.0 / 30
What changed in the harness
Selection accuracy 96→100, token cost up 11%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
18.0 / 30
03Economics
17.1 / 20
04Discoverability
12.5 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
42 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
search_snippets |
no_return_description |
Claude Codeコードスニペットを検索。言語、カテゴリ、キーワードで絞り込み可能。条件に一致するスニペットのリスト(ID、タイトル、説明、言語、カテゴリなど)を返す。 |
get_snippet |
no_return_description |
スニペットの詳細を取得(コード全文、説明、使い方)。指定IDのスニペットの全文コード、説明、使い方を含む詳細情報を返す。 |
get_trending_snippets |
no_return_description |
トレンドのスニペットを取得。人気度でソートされたスニペットのリストを返す。 |
share_snippet |
no_return_description |
自分のコードスニペットをClaudeCodeNaviに共有。登録されたスニペットのIDと共有結果を返す。 |
search_prompts |
no_return_description |
Claude Code用プロンプトを検索。条件に一致するプロンプトのリストを返す。 |
get_prompt |
no_return_description |
プロンプトの詳細を取得。指定IDのプロンプト本文と説明などの詳細情報を返す。 |
share_prompt |
no_return_description |
自分のプロンプトをClaudeCodeNaviに共有。登録されたプロンプトのIDと共有結果を返す。 |
search_questions |
no_return_description |
Claude Codeに関する質問を検索。条件に一致する質問のリストを返す。 |
get_question |
no_return_description |
質問の詳細と回答一覧を取得。指定IDの質問本文と、それに寄せられた回答の一覧を返す。 |
ask_question |
no_return_description |
Claude Codeに関する質問を投稿。作成された質問のIDと投稿結果を返す。 |
answer_question |
no_return_description |
質問に回答する。作成された回答のIDと投稿結果を返す。 |
get_unanswered_questions |
no_return_description |
未回答の質問一覧を取得(貢献チャンス!)。まだ回答が付いていない質問のリストを返す。 |
search_error_solutions |
no_return_description |
エラーメッセージから解決策を検索。一致するエラー解決策(原因・解決方法を含む)のリストを返す。 |
share_error_solution |
no_return_description |
エラー解決策を共有(同じ問題で困っている人を助ける)。登録された解決策のIDと共有結果を返す。 |
search_mcp_servers |
no_return_description |
コミュニティ製MCPサーバーを検索。条件に一致するMCPサーバーのリストを返す。 |
get_mcp_server |
no_return_description |
MCPサーバーの詳細を取得(設定例、使い方)。指定IDのMCPサーバーの設定例や使い方を含む詳細情報を返す。 |
search_hooks_templates |
no_return_description |
Claude Code Hooksテンプレートを検索。条件に一致するHooksテンプレートのリストを返す。 |
get_hooks_template |
no_return_description |
Hooksテンプレートの詳細を取得(コード、設定例)。指定IDのテンプレートのコードと設定例を含む詳細情報を返す。 |
get_sos_requests |
no_return_description |
助けを求めているSOSリクエスト一覧を取得(ヘルパーとして貢献)。未解決のSOSリクエストのリストを返す。 |
create_sos_request |
no_return_description |
緊急ヘルプをリクエスト(詰まったときに助けを求める)。作成されたSOSリクエストのIDと登録結果を返す。 |
accept_sos_request |
no_return_description |
SOSリクエストを引き受ける(ヘルパーとして)。ステータス更新後のリクエスト情報を返す。 |
get_my_stats |
no_return_description |
自分の統計情報を取得(貢献スコア、ランキング、バッジ)。ユーザーの貢献スコア、ランキング順位、獲得バッジなどの統計情報を返す。 |
get_ranking |
no_return_description |
貢献ランキングを取得。貢献スコア順に並んだユーザーランキングのリストを返す。 |
get_global_stats |
no_return_description |
ClaudeCodeNaviプラットフォーム全体の統計。プラットフォーム全体の利用状況・件数などの統計情報を返す。 |
check_badges |
no_return_description |
獲得可能なバッジをチェック(自動付与)。新たに獲得したバッジの一覧を返す。 |
get_my_bookmarks |
no_return_description |
自分のブックマーク一覧を取得。指定タイプでフィルタしたブックマーク済みコンテンツのリストを返す。 |
toggle_bookmark |
no_return_description |
コンテンツをブックマークする/解除する。切り替え後のブックマーク状態(追加または解除)を返す。 |
list_events |
no_return_description |
Claude Code関連の勉強会・イベント一覧を取得(カテゴリ・キーワード・無料有料・期間でフィルタ)。条件に一致するイベントのリストを返す。 |
get_event |
no_return_description |
イベント詳細を取得(IDまたはslug)。指定イベントの詳細情報(日時、会場、参加費など)を返す。 |
create_event |
no_return_description |
Claude Code勉強会・イベントを投稿する(ログイン必須)。作成されたイベントのIDと登録結果を返す。 |
update_event |
params_unexplained no_return_description |
イベントを更新する(主催者・共同編集者・admin)。一部のフィールドのみ送ればOK。title(タイトル)、category(カテゴリ)、venue_type(開催形式)、venue_name(会場名)、venue_address(会場住所)、capacity(定員)、attendees_visibility(参加者一覧の公開範囲)、visibility(イベント自体の公開範囲)、status(公開ステータス:published/draft)、cancellation_policy(キャンセルポリシー)、requirements(参加要件)を更新できる。更新後のイベント情報を返す。 |
cancel_event |
no_return_description |
イベントをキャンセルする(主催者またはadmin)。キャンセル後のイベント情報を返す。 |
list_my_events |
no_return_description |
自分が主催しているイベント一覧(draft含む)。自分が主催するイベントのリストを返す。 |
list_attended_events |
no_return_description |
自分が申込中/参加したイベント一覧。申込・参加済みイベントのリストを返す。 |
apply_event |
no_return_description |
無料イベントに参加登録する(即承認)。作成された参加登録(参加レコード)の情報を返す。 |
cancel_event_application |
no_return_description |
自分のイベント参加登録をキャンセルする(決済済み有料イベントは主催者連絡が必要)。キャンセル結果を返す。 |
create_event_checkout |
no_return_description |
有料イベントのStripe Checkout決済URLを生成する。決済用のCheckout URLを返す。 |
list_event_reviews |
no_return_description |
イベントのレビュー一覧を取得。指定イベントに投稿されたレビューのリストを返す。 |
review_event |
no_return_description |
参加したイベントにレビューを投稿(参加実績必須)。作成されたレビューの情報を返す。 |
list_event_collaborators |
no_return_description |
イベントの共同編集スタッフ一覧を取得(主催者・共同編集者・adminのみ)。共同編集者のリストを返す。 |
add_event_collaborator |
no_return_description |
@ユーザー名を指定してイベントの共同編集スタッフを追加(主催者のみ)。指定したユーザーはこのイベントを編集できるようになる。追加後の共同編集者情報を返す。 |
remove_event_collaborator |
no_return_description |
イベントの共同編集スタッフを解除(主催者のみ)。解除結果を返す。 |
Selection evidence
Confusable tool pairs.
15 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
cancel_event |
cancel_event_application |
high | A task like 'cancel my registration for event 12' is ambiguous between canceling the whole event (organizer-only) and canceling just the user's own attendance/application — an agent could pick the organizer-level cancel_event by mistake. |
list_event_reviews |
review_event |
high | 'Review event 5' is genuinely ambiguous — it could mean 'show me the reviews for event 5' (list_event_reviews) or 'submit my review for event 5' (review_event). |
list_my_events |
list_attended_events |
high | 'Show my events' is ambiguous between events the user organizes (list_my_events) and events the user has registered/attended (list_attended_events); both share the 'my events' framing. |
list_events |
list_my_events |
medium | A vague request like 'list my upcoming events' could be routed to the generic list_events (with filters) instead of the dedicated list_my_events for hosted events, since list_events has no explicit 'mine' concept mentioned in the phrasing. |
list_events |
list_attended_events |
medium | 'What events am I going to?' could be misrouted to the general list_events browse tool rather than the specific list_attended_events, since the general tool doesn't obviously exclude an 'attended-only' framing. |
get_event |
update_event |
low | Both operate on a single event by id; a compound task like 'set event 5's venue and show me the result' could tempt an agent to conflate fetching details with applying an update, though verbs (get vs change/update) are usually distinguishing. |
ask_question |
answer_question |
medium | Tasks phrased as 'post a response about X' or 'add my question/answer' can blur which action is posting a new question versus answering an existing one, especially in translated/short prompts. |
search_error_solutions |
share_error_solution |
medium | A task like 'help with this error' or 'document a fix for this error' is ambiguous between searching for an existing solution and contributing a new one, since both operate on the same error-message concept. |
search_snippets |
get_snippet |
medium | A request like 'find the snippet about X' can lead an agent to guess/use get_snippet with a fabricated id instead of first calling search_snippets, since both surface snippet content and the id requirement isn't obvious from the description alone. |
search_hooks_templates |
get_hooks_template |
medium | 'Find me a hooks template for PreToolUse' is ambiguous about whether the agent should search by keyword/type or attempt a direct get with a guessed template id. |
search_mcp_servers |
get_mcp_server |
medium | 'Get me info on MCP server X' could be routed directly to get_mcp_server (which needs a numeric id) instead of search_mcp_servers, since the task doesn't make the id requirement explicit. |
create_sos_request |
accept_sos_request |
low | Tasks around 'I'm stuck, help' vs 'help someone who is stuck' both reference SOS requests, and an agent could conflate creating one's own request with accepting another's if the requester/helper role isn't explicit. |
list_event_collaborators |
add_event_collaborator |
low | A vague 'manage event staff' task could be misrouted between listing current collaborators and adding a new one if the intent (view vs modify) isn't explicit. |
get_snippet |
share_snippet |
low | Both concern a specific snippet's content; a task like 'post/get my code snippet for X' could blur retrieving an existing snippet versus sharing a new one if phrasing is terse. |
get_prompt |
share_prompt |
low | Similar get-vs-share ambiguity for prompts — 'add this prompt' vs 'get that prompt' could be conflated in a short, underspecified instruction. |
Compare the field