SkillMap-Solo

Language / 言語: English | 日本語
English
SkillMap-Solo is a lightweight, 100% local VS Code extension that maps the reference relationships between your AI context files — Agent Skills, Kiro Steering/Specs, and Copilot instructions — as a tree in the Explorer.
AI context files are scattered and related: a SKILL.md points to references, references point to steering docs, and each tool (Kiro, GitHub Copilot) loads a different subset. When nobody sees the whole picture, upkeep lapses and output quality quietly degrades. SkillMap makes the structure, the token cost, and the best-practice gaps visible — and every warning comes with a Tip that explains why it matters and how to fix it, so you learn while you practise.
Current version: v1.7.0
📑 Table of Contents
💡 Key Features
Relationship tree, not directory tree
- Starting from a SKILL.md, the tree follows Markdown links and path mentions through references — across directories and layers.
- Unresolved references appear as neutral placeholder nodes, presented as reference information rather than errors; references are also resolved from the skill root, the workspace folder, or a unique same-named file, so paths and file names written in different passages still connect. Cycles are detected and marked. Files nobody references are grouped under "Unreferenced files".
Three layers of estimated token counts
- Each node shows its own file's estimate (hover adds the de-duplicated subtree total).
- Selecting a node shows the path total from the SKILL.md root to that node in the status bar.
- The skill root shows the whole-skill total, counting shared files only once.
Best-practice warnings with Tips (R1–R13 / S1–S6)
- SKILL.md size budgets, description quality, reference depth, drift between a canonical skill and its copies, dead
fileMatchPatterns, and more.
- Every warning links to a Tip: the principle in one sentence plus a concrete fix. Warnings also appear in the Problems panel.
Canonical / replica model
- If a canonical source (
.agents/ by default) is copied to .kiro/ and .github/ for different tools, the copies are grouped under the canonical skill. Rules apply to the canonical only; copies get a drift check.
- Multi-root workspaces are supported: grouping, drift checks, pattern matching, and the load simulation all work per workspace folder, so same-named skills in different repositories never interfere with each other. In a multi-root workspace, the view's title bar also offers a target-root picker that narrows both the display and the scan to a single repository (or back to all roots).
Steering, Specs, and Copilot instructions side by side
- Steering files show inclusion badges (always / conditional / manual) and the always-loaded token total — tokens consumed in every Kiro session.
- Specs (β) show the requirements → design → tasks trio and flag missing pieces.
- Copilot instructions are displayed read-only with their
applyTo patterns.
Load matrix and load simulation (β)
- The load matrix lists which files each tool (Kiro / Copilot) loads, and when.
- The load simulation estimates, for the file you are currently editing, what Kiro and Copilot would load — side by side in the status bar.
📦 Installation & Updates
From Visual Studio Marketplace / Open VSX
- Open the Extensions view in VS Code (
Ctrl+Shift+X / Cmd+Shift+X)
- Search for "SkillMap-Solo"
- Click Install
From a VSIX file
- Download
skillmap-solo-1.7.0.vsix from GitHub Releases
- In VS Code, open the Command Palette (
Ctrl+Shift+P / Cmd+Shift+P)
- Run Extensions: Install from VSIX... and select the file
Updates are delivered through the marketplace automatically, or by installing a newer VSIX the same way.
🚀 How to Use
- Open a workspace that contains AI context files (SKILL.md,
.kiro/steering/, .kiro/specs/, .github/copilot-instructions.md, …).
- The SkillMap view appears in the Explorer, organised into sections: Skills / Steering / Specs (β) / Copilot instructions.
- Click a node to open the file. Hover a node to see its token breakdown and any warnings with Tip links.
- Select a file node inside a skill to see the path total in the status bar.
- Run SkillMap: Show Load Matrix (per tool) from the view title bar to compare what Kiro and Copilot load.
- While editing any file, the status bar (β) shows the simulated load for that file:
Kiro ≈X / Copilot ≈Y tok.



Note on token counts: all token figures are estimates based on character types (roughly 1 token per Japanese character, 1 token per 4 alphanumeric characters). They are meant for comparing and budgeting, not billing.
⌨️ Commands
| Command |
Description |
SkillMap: Refresh |
Re-scan the workspace |
SkillMap: Expand All |
Expand all sections and skills in the view |
SkillMap: Show Tip |
Open the full Tip for the selected warning |
SkillMap: Open File |
Open the file for the selected node |
SkillMap: Show Load Matrix (per tool) |
Open the per-tool load matrix as Markdown |
SkillMap: Copy Tree |
Copy the whole tree as box-drawing text (for chat / documents) |
SkillMap: Copy Visible Tree |
Copy only the currently expanded part of the tree as text |
🔧 Settings
| Setting |
Default |
Description |
skillmap.canonicalRoots |
[".agents"] |
Directories treated as the canonical source (priority order) |
skillmap.copyTreeStyle |
"unicode" |
Tree-copy ruling style: "unicode" or "ascii" |
skillmap.skillsRoots |
[] |
Extra directories to scan for SKILL.md files |
skillmap.rules.skillBodyMaxTokens |
5000 |
R5: SKILL.md estimated-token budget (0 disables) |
skillmap.rules.skillBodyMaxLines |
500 |
R4: SKILL.md body line budget (0 disables) |
skillmap.rules.descriptionMaxLength |
1024 |
R2: frontmatter description length limit (0 disables) |
skillmap.rules.maxReferenceDepth |
2 |
R6: reference depth warning threshold (0 disables) |
skillmap.rules.skillTotalTokenBudget |
0 |
R10: whole-skill total token budget (0 disables) |
skillmap.rules.orphanFiles |
info |
R9: severity for unreferenced files (off / info / warn) |
skillmap.rules.steeringAlwaysTokenBudget |
0 |
S3: budget for always-loaded steering total (0 disables) |
skillmap.beta.specs |
true |
β: show the Specs section |
skillmap.beta.loadSimulation |
true |
β: show the load simulation in the status bar |
📋 Requirements
- VS Code: version 1.90.0 or later
- Workspace: a folder containing SKILL.md files or
.kiro/ / .github/ context files (an empty view is shown otherwise)
- No accounts, no API keys, no network access required.
🔒 Data Storage & Privacy
- 100% local processing: all analysis runs on your machine. The extension never sends your files, file names, or usage data anywhere. No telemetry, no tracking.
- Read-only: the extension never modifies your files.
- No settings or caches are written outside VS Code's standard configuration.
🧭 Roadmap
- Discovery of personal (user-level) skill directories
- A richer Tip viewer (Webview) — Tip data is already presentation-independent
- Support for more context formats via the adapter design (Kiro Steering/Specs and Copilot instructions landed in 1.0.0)
- Feedback on the β features (Specs / load simulation) is welcome via GitHub Issues
🛠️ Developer Documentation
- Development and release rules for contributors and AI agents: AGENTS.md
- Build & test:
npm install
npm test # unit tests
npm run compile # check-version + check-types + lint (incl. README anchor check) + esbuild
npm run package # production build
📄 License
MIT License - see the LICENSE file for details.
Japanese (日本語)
SkillMap-Solo は、AI コンテキストファイル(Agent Skills、Kiro Steering/Specs、Copilot instructions)の参照関係をエクスプローラーにツリー表示する、軽量・100%ローカルの VS Code 拡張機能です。
AI コンテキストファイルは散在し、関係し合っています。SKILL.md が references を指し、references が Steering を指し、そしてツール(Kiro、GitHub Copilot)ごとに読み込む範囲が違います。全体像が見えないと保守が後回しになり、出力の精度は静かに落ちていきます。SkillMap は構造と読み込みコストとベストプラクティスからのズレを見える化し、すべての警告に「なぜ問題か+直し方」の Tips を付けます。実践しながら理解できることが、この拡張機能の核です。
現在のバージョン: v1.7.0
📑 目次
💡 主な機能
ディレクトリではなく「関係」のツリー
- SKILL.md を起点に、Markdown リンクとパス記述をたどって references を階層・ディレクトリを跨いで表示します。
- 未解決の参照は中立色のプレースホルダーで参考情報として表示し、循環も検出します。参照の解決はスキルルート・ワークスペースフォルダ相対や同名ファイルの一意一致でも試みるため、パスとファイル名が離れた箇所に書かれていても結びつきます。どこからも参照されていないファイルは「未参照ファイル」にまとめます。
推定トークン数の3層表示
- 各ノードに自ファイルの推定値を表示(ホバーで重複排除した配下合計も)。
- ノード選択時は、SKILL.md からそのノードまでの経路合計をステータスバーに表示します。
- スキルのルートには、共有ファイルを1回だけ数えたスキル全体の合計を表示します。
Tips 付きベストプラクティス警告(R1–R13 / S1–S6)
- SKILL.md のサイズ予算、description の質、参照の深さ、正本と複製のドリフト、実ファイルに一致しない fileMatchPattern など。
- すべての警告に Tips(原則1文+具体的な直し方)へのリンクが付きます。警告は Problems パネルにも出ます。
正本/複製モデル
- 正本(既定は
.agents/)が .kiro/ や .github/ にツール別に複製されている構成では、複製を正本の下にグループ表示します。ルールは正本のみ、複製はドリフトチェックのみです。
- マルチルートワークスペース対応:グルーピング、ドリフトチェック、パターン判定、ロードシミュレーションはすべてフォルダ単位で動作し、別リポジトリの同名スキルが干渉し合うことはありません。マルチルートでは、ビューのタイトルバーのボタンから対象ルートを選んで、表示と走査を1つのリポジトリだけに絞ることもできます(全ルートへの切り替えも同ボタンから)。
Steering / Specs / Copilot instructions を並べて表示
- Steering は inclusion バッジ(常時/条件/手動)と常時ロード合計(Kiro の全セッションで毎回消費されるトークン)を表示します。
- Specs(β)は requirements → design → tasks の3点セットと欠けを表示します。
- Copilot instructions は applyTo とともに読み取り表示します。
ロードマトリクスとロードシミュレーション(β)
- ロードマトリクスで「どのファイルが・どのツールで・いつ読まれるか」を一覧できます。
- ロードシミュレーションは、編集中のファイルに対して Kiro と Copilot が読み込む推定トークンをステータスバーで対比します。
📦 インストール/アップデート方法
Visual Studio Marketplace / Open VSX から
- VS Code の拡張機能ビューを開く(
Ctrl+Shift+X / Cmd+Shift+X)
- 「SkillMap-Solo」で検索する
- インストール をクリックする
VSIX ファイルから
- GitHub Releases から
skillmap-solo-1.7.0.vsix をダウンロードする
- コマンドパレット(
Ctrl+Shift+P / Cmd+Shift+P)を開く
- Extensions: Install from VSIX... を実行し、ファイルを選ぶ
アップデートは Marketplace 経由で自動配信されるほか、新しい VSIX を同じ手順でインストールしても行えます。
🚀 使い方
- AI コンテキストファイルを含むワークスペースを開きます(SKILL.md、
.kiro/steering/、.kiro/specs/、.github/copilot-instructions.md など)。
- エクスプローラーに SkillMap ビューが現れます。セクションは Skills / Steering / Specs(β)/ Copilot instructions です。
- ノードをクリックするとファイルが開きます。ホバーでトークン内訳と警告(Tips へのリンク)が見られます。
- スキル内のファイルノードを選ぶと、ステータスバーに経路合計が出ます。
- ビューのタイトルバーから SkillMap: ツール別ロードマトリクスを表示 を実行すると、Kiro と Copilot の読み込み範囲を比べられます。
- 任意のファイルの編集中は、ステータスバー(β)にそのファイルへのロードシミュレーション(
Kiro ≈X / Copilot ≈Y tok)が出ます。



トークン数について: すべてのトークン数は文字種ベースの推定です(日本語は約1文字=1トークン、英数字は約4文字=1トークン)。比較と予算管理のための目安であり、課金の実測値ではありません。
⌨️ コマンド
| コマンド |
説明 |
SkillMap: 再読み込み |
ワークスペースを再スキャンする |
SkillMap: すべて展開 |
ビュー内のセクションとスキルをすべて展開する |
SkillMap: Tipsを表示 |
選択中の警告の Tips 全文を開く |
SkillMap: ファイルを開く |
選択中のノードのファイルを開く |
SkillMap: ツール別ロードマトリクスを表示 |
ツール別の読み込み一覧を Markdown で開く |
SkillMap: ツリー構造をコピー |
ツリー全体を罫線テキストとしてコピーする(チャット/ドキュメント貼り付け用) |
SkillMap: 可視ツリー構造をコピー |
今開いている範囲だけを罫線テキストとしてコピーする |
🔧 設定
| 設定 |
既定値 |
説明 |
skillmap.canonicalRoots |
[".agents"] |
正本とみなすディレクトリ(優先順) |
skillmap.copyTreeStyle |
"unicode" |
ツリーコピーの罫線スタイル: "unicode" または "ascii" |
skillmap.skillsRoots |
[] |
SKILL.md を探す追加ディレクトリ |
skillmap.rules.skillBodyMaxTokens |
5000 |
R5: SKILL.md の推定トークン上限(0で無効) |
skillmap.rules.skillBodyMaxLines |
500 |
R4: SKILL.md 本文の行数上限(0で無効) |
skillmap.rules.descriptionMaxLength |
1024 |
R2: description の文字数上限(0で無効) |
skillmap.rules.maxReferenceDepth |
2 |
R6: 参照の深さの警告しきい値(0で無効) |
skillmap.rules.skillTotalTokenBudget |
0 |
R10: スキル全体の合計予算(0で無効) |
skillmap.rules.orphanFiles |
info |
R9: 未参照ファイルの警告レベル(off / info / warn) |
skillmap.rules.steeringAlwaysTokenBudget |
0 |
S3: Steering 常時ロード合計の予算(0で無効) |
skillmap.beta.specs |
true |
β: Specs セクションの表示 |
skillmap.beta.loadSimulation |
true |
β: ステータスバーのロードシミュレーション表示 |
📋 動作要件
- VS Code: 1.90.0 以降
- ワークスペース: SKILL.md または
.kiro/ / .github/ のコンテキストファイルを含むフォルダ(無ければビューは空になります)
- アカウント・API キー・ネットワーク接続は不要です。
🔒 データの保存について
- 100%ローカル処理: 解析はすべてお使いのマシン内で完結します。ファイルやファイル名、利用状況を外部に送信することは一切ありません。テレメトリ・トラッキングもありません。
- 読み取り専用: ファイルを変更することはありません。
- VS Code の標準設定以外の場所にデータやキャッシュを書きません。
🧭 ロードマップ
- 個人(ユーザーレベル)ディレクトリのスキル探索
- Tips ビューアの Webview 化(Tips データは既に表示層から分離済み)
- アダプタ設計による対応形式の追加(1.0.0 で Kiro Steering/Specs と Copilot instructions に対応)
- β機能(Specs / ロードシミュレーション)へのフィードバックは GitHub Issues で歓迎します
🛠️ 開発者向けドキュメント
- 開発・リリースのルール(貢献者と AI エージェント向け): AGENTS.md
- ビルドとテスト:
npm install
npm test # 単体テスト
npm run compile # check-version + 型チェック + lint(README アンカーチェック含む)+ esbuild
npm run package # 本番ビルド
📄 ライセンス
MIT License - 詳細は LICENSE ファイルを参照してください。