ucn について
UCNは、開発者やAIエージェント向けのASTベースのコード分析ツールです。ソースに紐づく結果を返し、不確実な候補や調査範囲も明示します。
主な機能
- 01複数言語のAST解析
- 02シンボルと呼び出しグラフのナビゲーション
- 03影響・テスト・リファクタリングのプレビュー
- 04一致件数と不確実性の表示
- 05CLI、エージェントスキル、MCPに対応
活用シーン
- 01呼び出し元の検索とコードパスの追跡
- 02シンボルやステージ済み差分の影響評価
- 03変更前の静的な関連テストの特定
- 04名前変更やシグネチャ変更案の確認
MCP 対応
MCPサーバーは、UCNのコードナビゲーションと分析コマンドをMCPクライアントに公開します。繰り返しのクエリには常駐プロセスで対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| in | string | いいえ | このディレクトリパス内のみ検索します(例:"src/core")。 |
| to | enum | いいえ | direction=callers の trace:エントリーポイントまで追跡を続けます。entrypoints |
| all | boolean | いいえ | 対応している場合は、フォーマッターと結果の上限を引き上げます。 |
| git | boolean | いいえ | show summary:最終更新日時、作成者、最近の変更に関するメタデータを付加します。 |
| hot | boolean | いいえ | repo stats:呼び出し回数が多い上位 N 件の関数を含めます。 |
| raw | boolean | いいえ | source:ヘッダーや行番号の欄を付けずにコードテキストを返します。大規模なクラスも全体を含みます。注記は "# " の行として後に続きます。MCP の転送上限は適用されます。 |
| top | integer | いいえ | 表示する最大結果数(デフォルト:10)。正の整数である必要があります。 |
| base | string | いいえ | Git の参照(デフォルト:HEAD)。シンボルを指定せずに impact/check を実行した場合は、この参照との差分を確認します。シンボルを指定して check を実行した場合は、宣言をこの参照上のバージョンと比較します。例:"HEAD~3"、"main"、コミット SHA |
| deep | boolean | いいえ | repo:health を含め、精度ではなく序数型の resolution-evidence profile をサンプリングします。 |
| file | string | いいえ | source/deps/api のファイル対象、またはシンボルを区別するためのフィルター。 |
| line | integer | いいえ | 定義行の指定。この行で定義されているシンボルを解決します(file:line:name ハンドルの中央部分)。同じファイル内の同名定義を区別します。 |
| name | string | いいえ | シンボル名または安定した path:line:name ハンドル。show/find/usages/source/trace/impact/tests/check/plan で使用します。 |
| term | string | いいえ | デフォルトでは検索語をリテラルとして扱います。正規表現構文を使う場合にのみ regex=true を設定します。 |
| type | string | いいえ | 構造検索のシンボル型フィルター:function、class、call、method、type、state、field、constant、macro。インデックスベースの検索を実行します。 |
| depth | integer | いいえ | 最大深度(trace のデフォルトは 3、deps は 2)。すべての子項目を展開します。0 以上の整数。 |
| exact | boolean | いいえ | 名前を完全一致で照合します(部分文字列では照合しません)。 |
| limit | integer | いいえ | 返す結果の最大数(デフォルト:500、構造検索:50、usages と lines:上限なし)。find、usages、search、deadcode、api、repo のファイル数を制限します。find のテキストでは上位 5 件を詳細表示し、残りは件数のみ表示します。limit を増やすと両方の上限が増えます。正の整数を指定してください。 |
| lines | boolean | いいえ | find/usages/search/show/impact:デフォルトの行数上限なしで path:line:text 形式の一覧を返します。明示的な top/limit は引き続き適用されます。show は callers/callees セクションを受け付け、デフォルトは callers です。Tier タグはタブの後に続き、集計情報と注記は "# " の行に続きます。MCP の転送量上限は引き続き適用され、集計情報は保持されます。 |
| param | string | いいえ | パラメーター名または型でフィルターします(構造検索)。例: |
| range | string | いいえ | ソースコードの行範囲。例:"10-20" または "15"。file の指定が必要です。 |
| regex | boolean | いいえ | 検索語を正規表現として扱います(デフォルト:false/リテラル)。通常のパターンには RE2 互換の線形時間エンジンを使用します。安全でない入れ子の繰り返しは拒否されます。 |
| stack | string | いいえ | 解析するスタックトレースのテキスト(stacktrace コマンド) |
| bridge | boolean | いいえ | サーバールートとクライアントリクエストを照合します(endpoints コマンド)。 |
| cycles | boolean | いいえ | deps:ファイルグラフの代わりに循環インポートを報告します。 |
| method | string | いいえ | endpoints を HTTP メソッドでフィルターします(例: |
| prefix | string | いいえ | ルート/リクエストをパスのプレフィックスでフィルターします(endpoints コマンド)。 |
| staged | boolean | いいえ | シンボルが指定されていない場合の impact/check:ステージされた変更を分析します。 |
| unused | boolean | いいえ | 呼び出し元が 0 件のシンボルのみを対象にします(構造検索)。 |
| command | enum | はい | UCN タスクコマンド。指定できる値:show、find、usages、search、source、trace、impact、tests、check、plan、repo、deps、api、entrypoints、endpoints、deadcode、audit_async、stacktrace。show | find | usages | search | source | trace | impact | tests | check | plan | repo | deps | api | entrypoints | endpoints | deadcode | audit_async | stacktrace |
| compact | boolean | いいえ | show/impact の簡潔な出力はデフォルトで true、usages は false です。反対の値を設定すると、そのコマンドの表示形式が変わります。 |
| context | integer | いいえ | 各一致箇所の前後に表示するコンテキスト行数。0 以上の整数。 |
| diverse | boolean | いいえ | show の例:異なる引数形式から代表例を返します。 |
| exclude | string | いいえ | 除外するパターンをカンマ区切りで指定します(例:"test,mock,vendor") |
| returns | string | いいえ | 戻り値の型でフィルタリングします(構造検索)。例:"Promise"、"error"。 |
| detailed | boolean | いいえ | repo ファイル:ファイルごとのシンボルを表示します。deps:インポート宣言とインポート元を含めます。 |
| exported | boolean | いいえ | エクスポート済み/パブリックなシンボルのみを対象にします(構造検索)。 |
| receiver | string | いいえ | レシーバーで呼び出しをフィルタリングします(構造検索、type=call)。例:"db"、"http"。 |
| sections | string | いいえ | 投影フィールドをカンマ区切りで指定します。show:summary、callers、callees、source、dependencies、tests、types、example、related。repo:summary、files、stats、health。 |
| add_param | string | いいえ | 追加するパラメーター名(plan コマンド) |
| code_only | boolean | いいえ | コメントと文字列内の一致箇所を除外します |
| decorator | string | いいえ | デコレーター/アノテーションでフィルタリングします(構造検索)。例:"Route"、"Test"。 |
| direction | enum | いいえ | trace:callees/callers。deps:imports/importers/both。callees | callers | imports | importers | both |
| framework | string | いいえ | フレームワークでエントリーポイントをフィルタリングします(例:"express"、"spring"、"flask")。複数指定する場合はカンマ区切りにします。 |
| functions | boolean | いいえ | repo の統計:関数ごとの行数をサイズ順で含めます。 |
| max_chars | integer | いいえ | 注記と保持されるメタデータを含む、UTF-8 バイト数ではなく出力文字数の上限です。広範囲スキャンコマンド(repo、entrypoints、endpoints、deadcode、deps、check、audit_async)のデフォルトは 3K、その他すべてのコマンドのデフォルトは 10K です。最大値:100K。all=true はフォーマッターの上限を解除しますが、100K の転送上限は維持されます。 |
| max_files | integer | いいえ | インデックスするファイルの最大数(デフォルト:10000)。非常に大きなコードベースで使用します。正の整数を指定してください。 |
| max_lines | integer | いいえ | source:宣言ごとの最大行数。raw モードでは切り捨てがあれば明示します。 |
| rename_to | string | いいえ | 関数、メソッド、または型の新しい名前(plan コマンド) |
| top_level | boolean | いいえ | リポジトリファイル:トップレベル関数のみを表示します。 |
| unmatched | boolean | いいえ | 一致しないルート/リクエストのみを表示します(endpoints コマンド)。 |
| calls_only | boolean | いいえ | テスト:直接呼び出しと一致するテストケースのみを保持します。 |
| class_name | string | いいえ | メソッド分析の対象を絞り込むクラス名(例:close に対する "MarketDataFetcher") |
| with_types | boolean | いいえ | show:関連する型定義を含めます。 |
| client_only | boolean | いいえ | クライアントリクエストのみを一覧表示します(endpoints コマンド)。 |
| project_dir | string | はい | 分析対象のプロジェクトを示す、空でない絶対パス、または MCP サーバープロセスの作業ディレクトリからの相対パス。 |
| server_only | boolean | いいえ | サーバールートのみを一覧表示します(endpoints コマンド)。 |
| with_source | boolean | いいえ | 検索結果に正確なソースを添付します。 |
| remove_param | string | いいえ | 削除するパラメーター名(plan コマンド) |
| default_value | string | いいえ | 追加するパラメーターのデフォルト値(plan コマンド) |
| exclude_tests | boolean | いいえ | テストファイルを除外します。entrypoints のデフォルト設定です(include_tests=true にすると一覧表示されます)。usages と endpoints では、exclude_tests=true でない限りテストファイルが一覧表示されます。 |
| include_tests | boolean | いいえ | 結果にテストファイルを含めます(デフォルトでは除外)。 |
| case_sensitive | boolean | いいえ | 大文字と小文字を区別して検索します(デフォルト:false、区別しない)。 |
| hide_uncertain | boolean | いいえ | 不確かな(補間パス)ブリッジを非表示にします(endpoints コマンド)。 |
| min_confidence | number | いいえ | 呼び出し元/呼び出し先エッジの最小序数証拠ウェイト(旧名称。確率ではありません)。 |
| follow_symlinks | boolean | いいえ | ファイルの検出時にシンボリックリンクをたどります(デフォルト:true)。 |
| include_bundled | boolean | いいえ | *.min.js および *.bundle.js ファイルをインデックス化します(デフォルト:false)。ソースマップは引き続き開示されますが、インデックス化されません。共有キャッシュを回避します。 |
| include_methods | boolean | いいえ | レシーバーの証拠が許す場合、メソッドの呼び出し先を含めます。呼び出し元を含むビューでは、常にメソッド呼び出し箇所を階層化して表示します。 |
| show_confidence | boolean | いいえ | show:解決の証拠ラベルはデフォルトで表示されます。false に設定すると非表示になります。数値ウェイトは序数であり、確率ではありません。 |
| include_exported | boolean | いいえ | deadcode の結果にエクスポート済みシンボルを含めます |
| unreachable_only | boolean | いいえ | show/impact:検出されたエントリーポイントから到達できない関係のみを保持します。 |
| expand_unverified | boolean | いいえ | trace callers:未検証のエッジをたどります。下流ノードは「可能」としてマークされ、「確認済み」にはなりません。 |
| include_decorated | boolean | いいえ | deadcode の結果にデコレーター/アノテーション付きシンボルを含めます |
詳細
UCN - Universal Code Navigator
監査可能な回答を提供します。すべての一致数を数え、不確かなものには印を付け、見落としがある箇所も明示します。
AI エージェントを使っている場合は、UCN を スキルまたは MCP ツールとして追加してください。1 つのツールで、呼び出し元、影響範囲、テストに関する質問に対し、ソースへのリンク付きの簡潔な回答をエージェントに提供できます。不確かな点には推測ではなく明示的に印を付けます。回答は質問者ではなく、インデックス化されたソースに基づきます。ターミナル上の人間も、MCP 経由のエージェントも、同じ質問には同じ記録を受け取ります。
概念図 · 静止画
CLI を直接使うか、エージェントスキルをインストールするか、MCP 経由で接続してください。いずれも同じエンジンを使用します。
Terminal AI Agents Agent Skills
│ │ │
CLI MCP Skill
└────────────────────┼────────────────────┘
│
┌──────┴──────┐
│ UCN Engine │
│ commands │
│ tree-sitter │
└─────────────┘
UCN は静的コード解析に tree-sitter の抽象構文木(AST)を使用し、プロジェクトのコンパイルや言語サーバーの起動は行いません。CLI は必要に応じて実行され、インクリメンタルインデックスを再利用します。MCP は繰り返しクエリに対応できるよう、プロセスを起動したままにします。プロジェクトの設定は不要で、キャッシュはリポジトリの外部に保存されます。
JavaScript、TypeScript、JSX/TSX、Python、Go、Rust、Java、C、C++、C#、および HTML のインラインスクリプトに対応しています。
インストール
npm install -g ucn # Node.js 20+
シェルで使う
プロジェクトディレクトリから実行します。
ucn repo
ucn show handleRequest --lines
ucn source handleRequest --raw
ucn impact --staged --lines
ucn check --staged
repo はプロジェクトをマッピングします。show --lines は呼び出し元を特定し、source --raw は実装を取得します。impact と check はステージされた変更を調べます。名前が曖昧な場合、find は後続のコマンドで使える file:line:name 形式のハンドルを返します。
--lines は path:line:text 形式のレコードを返し、--raw はソースコードを返します。どちらも、人間が読みやすいレポートを解析せずに、エージェントが既存のスクリプトで利用できます。
テキスト検索は、コメント、設定、文字列、対応言語以外のコードを調べる際にも役立ちます。タスクで呼び出し以外も含むすべての出現箇所が必要な場合は、usages を使うとリテラル名の一覧を取得できます。
コードのナビゲーションと変更の分析
show はシンボルのシグネチャ、ソース、呼び出し元、呼び出し先、関連コンテキストをまとめて取得します。必要なセクションを選ぶか、出力予算を設定して回答を絞り込めます。trace はファイルをまたいで呼び出しグラフをたどり、呼び出し先の深部へ進むか、呼び出し元をさかのぼってエントリーポイントを探します。検証されていない関係も見える状態に保たれ、探索が止まった箇所はツリーの集計情報に報告されます。
impact はシンボルまたは Git の差分を呼び出し元に結び付けます。tests はインデックス化された呼び出し経路と参照経路をたどり、数ホップ離れたものも含め、静的にリンクされたテストを特定します。plan はリネームやシグネチャ変更をプレビューし、ソースの場所とレビュー項目を提示します。ファイルは編集しません。これらのコマンドは、ターミナルや AI エージェントからのコード探索、リファクタリング、変更レビューを支援します。
回答で確認できること
呼び出し元に関する回答では、UCN がバインディング、インポート、レシーバーの型、所有権を確認し、選択した定義への呼び出しと、その名前の別の使用を区別します。 十分な根拠がない呼び出しは、理由とともに未検証として表示されます。 メソッド名が一致するだけでは、どの実装が実行されるかは確定しません。 レシーバーと所有権に関する根拠に基づいて、候補が分類されます。
82313cf9 の ripgrep では、選択した file_name ヘルパーに、確認済みの呼び出し箇所が 4 つ、未検証の候補が 1 つあります。このアニメーションは、UCN の出力から描画されたインポート関係と同名の定義とともに、一致した 29 行すべてを網羅しています。
ACCOUNT 行では、観測された名前の出現箇所を、確認済みの呼び出し、未検証の候補、呼び出し以外の出現箇所、別の対象に帰属する一致に分類して照合します。各出現箇所は必ず 1 つのカテゴリだけに数えられるため、信頼を前提とするのではなく、行ごとに合計を確認できます。CONTRACT は、その集計の対象範囲を説明します。警告には、インデックスが網羅できなかったソースが示されます。こうした詳細は、エージェントの出力予算に合わせてテキストが切り詰められても保持されます。予算がこれらを収めるには小さすぎる場合、回答は提示されず、必要な予算が示されます。
したがって、空の結果は、調査対象のコードについて特定の意味を持ちます。リフレクション、生成コード、実行時の登録、外部の利用者がシンボルに到達しないことまでは証明できません。deadcode は調査候補を提示しますが、削除には引き続き裏付けが必要です。リファクタリングのプレビューにも、引き続きコンパイラーとテストが必要です。
精度と検証
リリースのゲートでは、ピン留めされた本番コードベース10件からなるボード上で、UCNの回答を独立したコンパイラーおよび言語サーバーと比較します。2026年10月4日に実施したローカル評価では、呼び出し元の結果を次のようにサンプリングしました。
| リポジトリ | ピン留めされたコミット | オラクル | サンプリングしたシンボル数 | 確認済み適合率 | 対象範囲内の再現率 |
|---|---|---|---|---|---|
| preact-signals | e0ce9fdf | ts-morph | 27 | 100% | 100% |
| httpx | b5addb64 | Pyright | 50 | 100% | 100% |
| cobra | ad460ea8 | gopls | 50 | 100% | 100% |
| viper | 528f7416 | gopls | 50 | 100% | 100% |
| ripgrep | 82313cf9 | rust-analyzer | 41 | 100% | 100% |
| clap | d3e59a9a | rust-analyzer | 50 | 100% | 100% |
| javapoet | b9017a95 | JDT LS | 50 | 100% | 100% |
| newtonsoft-json | 4f73e743 | Roslyn | 50 | 100% | 100% |
| cjson | c859b25d | clangd | 50 | 100% | 100% |
| fmt | e424e3f2 | clangd | 50 | 100% | 100% |
この評価では、呼び出し元と呼び出し先の両方の回答で、対象範囲内にあるオラクルのエッジの欠落はゼロでした。また、コマンド間の比較8,000件で不一致はゼロでした。デフォルトのデッドコード監査では、採点対象の主張9件に誤ったデッド判定はありませんでした。さらに4件の主張はオラクルで特定できなかったため、採点対象外でした。10件すべてのリポジトリがパフォーマンス予算を満たし、定常状態のクエリのp95は4.7~101.1 msでした。この計測にはプロセスの起動時間とインデックス作成時間は含まれていません。コールドビルドとキャッシュの読み込みは別途計測します。
サンプルは決定論的で、参照アクティビティに基づいて層化されています。確認済み適合率は採点対象の主張に適用されます。再現率は、確認済みまたは未検証の区分で見つかった、対象範囲内のオラクルのエッジ数を数えます。未検証の候補、オラクルの回答保留、採点対象外の検出結果は、それぞれ別に扱います。これらの測定結果は、実行時の知識が完全であることや、すべてのマシンで性能が同一であることを証明するものではありません。
スケジュールされたボードは、上記の10件に加え、zod、express、hono、zustand、fastify、rich、click、attrs、grpc-go、chi、cursive、itertools、rayon、gson、jsoupを含む、ピン留めされた25件のリポジトリを対象とします。ローテーション方式の新規リポジトリ枠では、ピン留めされたボード以外のコードベースを検証します。
リポジトリマニフェストには、すべてのコミットが記録されています。Publish ワークフローはリリースをゲートし、Eval ワークフローはスケジュールに従って、または必要に応じてチェックを実行します。各ワークフローの実行ページでは、CIの結果と評価成果物を確認できます。オラクルの依存関係をインストールした状態で、次のコマンドを使ってローカルでチェックを再現できます。
npm run verify
npm run trust:gate
コマンド
| タスク | コマンド |
|---|---|
| リポジトリの把握と健全性 | repo [--sections=summary,files,stats,health] [--deep] |
| シンボルの概要と関係 | show <symbol> [--sections=...] |
| 定義の検索 | find <name> [--type=type] [--with-source] |
| リテラル名の完全な一覧 | usages <name> |
| リテラル、正規表現、または構造検索 | search [term] [--regex] [structural flags] |
| ソースの正確な抽出 | source <symbol|file:range> |
| 呼び出しツリー:下方向、上方向、またはエントリポイントまで | trace <symbol> [--direction=...] [--to=entrypoints] |
| シンボルまたは Git 差分の影響 | impact [symbol] [--staged] |
| 直接または推移的に関連するテスト | tests <symbol> [--depth=N] |
| シグネチャまたはコミット前の検証 | check [symbol] [--staged] |
| リファクタリングのプレビュー | plan <symbol> --rename-to=... |
| インポート、インポート元、循環依存 | deps [file] [--direction=...] [--cycles] |
| プロジェクトまたはファイルの公開 API | api [file] |
| ランタイムとフレームワークのルート | entrypoints |
| サーバー/クライアントの HTTP サーフェス | endpoints [--bridge] |
| 保守的なデッドコード候補 | deadcode |
| await の不足が疑われる箇所 | audit-async |
| スタックトレースのフレーム解決 | stacktrace <text> |
deps --cycles は循環依存をグループ化し、即時インポートと遅延インポートまたは型のみのエッジを区別します。列挙の上限は明示されます。repo はプロジェクト構造に加えてソースのカバレッジも報告します。HOT ランキングでは、確認済みの本番環境での呼び出し元を正確にカウントします(非常に大規模なリポジトリでは、精緻化の予算が制限されます。その場合は明示されます)。また、repo --sections=stats --hot はすべての呼び出し元に基づいてランキングします。
endpoints --bridge は、フレームワーク抽出器が認識したサーバールートとクライアントリクエストを照合します。plan は、所有関係が解決されている場合、インポート、オーバーライド、インターフェースまたはトレイトのメソッドなどのコード上の関係を処理します。曖昧な関係はレビュー項目として残されます。
フラグについては ucn --help を実行するか、
コマンドリファレンスを参照してください。
シェル出力
レコードとコードは stdout に、集計情報と注記は stderr に出力されます。未検証のレコードには、タブ区切りの理由が付記されます。結果が空の一覧は終了コード 1、エラーは終了コード 2、正常な一覧は終了コード 0 で終了します。--lines は find、show、usages、search、impact に対応します。show --lines はデフォルトで呼び出し元を一覧表示します。スクリプトで構造化フィールドやツリー形式の結果が必要な場合は、--json を使用してください。
同じソースツリーに対する一覧の結果は決定的です。新規ビルド、キャッシュの読み込み、増分ビルドで、同じレコードが同じ順序で返されます。デフォルトの行数上限はありません。明示的な上限を指定した場合は、省略された内容が示されます。また、シェルモードの文字数上限を超えると、出力の一部を書き込む前にエラーになります。source --raw は、明示的に行数上限が指定されている場合を除き、関数とクラス全体を抽出します。切り詰めが発生した場合は、その旨が stderr に報告されます。
通常のテキストモードでのコマンドエラーも終了コード 2 で終了します。JSON モードでは、結果が空でも成功なら終了コード 0、コマンドエラーなら終了コード 1 となります(meta.ok: false と error を含みます)。UCN 内部で例外が発生した場合は、コードについての回答ではなく、Internal error: ... として報告されます(JSON では meta.internalError: true が追加されます)。対象を指定しない check は、TRUST が BLOCKED の場合は終了コード 1、その他のチェック完了時は 0、実行できなかった場合は 2 で終了します。
--lines を除き、find、テキスト形式の search、deadcode、api、repo --sections=files の結果は、デフォルトで最大 500 件です。find のテキスト出力では、上位 5 件を詳細に表示し、残りは件数を示します(JSON では最大 500 件を返します)。--limit=N を指定すると、両方の上限が引き上げられます。より多くの結果を要求するには --limit=N を使用してください。usages は、上限または --exclude-tests が指定されていない限り、テストファイルも含めてすべての箇所を一覧表示します。広範な find クエリでは、定義に固定された呼び出し元のアクティビティを計算する前に、使用のおおよその合計数で候補を選択します。結果に上限がある場合は、この選択についても明示されます。
*.min.js、*.bundle.js、*.map という名前のファイルは、スキップされたソースとして報告され、完全性は部分的になります。--include-bundled(MCP では include_bundled=true)を指定すると、ユーザーによる除外設定を尊重しながら JavaScript バンドルをインデックス化します。この指定により共有キャッシュは使用されません。ソースマップは報告されますが、インデックス化されません。
AI のセットアップ
1 つのツール、18 個のコマンド。切り詰められた場合も信頼性のメタデータを保持する、簡潔でソースにリンクされた回答を提供します。
MCP
# Claude Code
claude mcp add ucn -- npx -y ucn --mcp
# OpenAI Codex CLI
codex mcp add ucn -- npx -y ucn --mcp
# VS Code Copilot
code --add-mcp '{"name":"ucn","command":"npx","args":["-y","ucn","--mcp"]}'
MCP の手動設定
{
"mcpServers": {
"ucn": {
"command": "npx",
"args": ["-y", "ucn", "--mcp"]
}
}
}
VS Code では .vscode/mcp.json を使用します。
{
"servers": {
"ucn": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ucn", "--mcp"]
}
}
}
エージェントスキル(サーバー不要)
macOS / Linux:
# Claude Code
mkdir -p ~/.claude/skills
cp -r "$(npm root -g)/ucn/.claude/skills/ucn" ~/.claude/skills/
# OpenAI Codex CLI
mkdir -p ~/.agents/skills
cp -r "$(npm root -g)/ucn/.claude/skills/ucn" ~/.agents/skills/
Windows PowerShell:
$npmRoot = npm root -g
New-Item -ItemType Directory -Force "$env:USERPROFILE\.claude\skills"
Copy-Item -Recurse "$npmRoot\ucn\.claude\skills\ucn" "$env:USERPROFILE\.claude\skills\"
New-Item -ItemType Directory -Force "$env:USERPROFILE\.agents\skills"
Copy-Item -Recurse "$npmRoot\ucn\.claude\skills\ucn" "$env:USERPROFILE\.agents\skills\"
このスキルは、エージェントがコードベースを把握し、シンボルを特定し、有用な範囲で最小のコマンドを選び、証拠の各レベルを解釈し、不完全な回答から復旧する方法を教えます。これは同じエンジンに対するガイダンスであり、別の実装ではありません。
対象範囲
UCN は、1 つのプロジェクト内のインデックス化されたソースを分析します。プログラムの実行や、node_modules、site-packages などのインストール済み依存関係のインデックス化は行いません。repo --sections=health --deep は、ソースのカバレッジと既知の分析上の制限を報告します。
C および C++ では、インクルードパスとヘッダーのコンテキストに compile_commands.json を使用できますが、UCN はプリプロセッサを実行せず、コンパイラのビルドごとのビューを再現することもありません。C# のソースジェネレーターと外部アセンブリもインデックスの対象外です。HTML にはリグレッションテストのカバレッジはありますが、コンパイラ/LSP のリポジトリオラクルはありません。
CLI、MCP、スキルは、同じ解決ルールと証拠を共有します。通信方式を変えても、エンジンがコードについて把握している内容は変わりません。
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
