map-features について
map-featuresは、リポジトリ文書の共有機能カタログを確認後に更新するスキルです。逆追跡、変更案の提示、同期条件に応じたエクスポートや仕様スタブの生成に対応します。
主な機能
- 01通知エンベロープ付きの逆追跡
- 02確認用カタログ変更案の提示
- 03観測記録の処理
- 04index-onlyモードでの項目エクスポート
- 05仕様ドラフトスタブの生成
活用シーン
- 01機能の不足や古い逆追跡チェックポイントの発見
- 02書き込み前のカタログ更新案の確認
- 03同期条件に応じた仕様ドラフトスタブの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jayden-dang/ skills --skill map-featuresインストール後、Claude Code で/map-featuresを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
eval.jsonreferences/envelope.mdexport-fields.mdpasses.mdscripts/cluster.pycorpus_eval.pyoverlay.pyowns.pyreconcile.pytest_corpus.pytest_overlay.pytest_owns.pytest_reconcile.pyscripts/testdata/corpus/klynt-authz/gold.jsonowns.jsonpaths.txtscripts/testdata/corpus/mailgate-labels/gold.jsonowns.jsonpaths.txtscripts/testdata/specs-recognized/INDEX.mdscripts/testdata/specs-recognized/catalog/platform.mdscripts/testdata/specs-sharded/INDEX.mdscripts/testdata/specs-sharded/2026-01-01-shard-demo/tasks.mdscripts/testdata/specs-sharded/catalog/mail.mdscripts/testdata/specs/INDEX.mdscripts/testdata/specs/2026-01-01-demo/tasks.mdscripts/testdata/specs/2026-01-02-other/tasks.mdscripts/testdata/specs/catalog/app.mdtemplates/gitignore-index-only.snippetspecs-catalog-domain.md詳細
Map Features
共有機能カタログへの確認後書き込み操作
(docs/specs/INDEX.md のドメインルーター + docs/specs/catalog/*.md)。configure-repo の姉妹機能です。逆追跡(旧 reconcile-features)は処理ステップ 0であり、独立したスキルではありません。
マッピングの不足や古くなった逆追跡チェックポイントを検出したモデル呼び出しスキルは、ユーザーに /map-features を明示し、このスキルを自動呼び出ししてはなりません。
必要に応じて読み込むもの: load-subgraph の catalog-query.md(共有カードの文法)、references/passes.md + references/envelope.md(逆追跡)、references/export-fields.md、templates/(スタブ、gitignore)。tombstones.jsonl をチャットに貼り付けないでください。
事前確認
docs/specs/INDEX.mdがない → 停止します。/configure-repoを提示してください。INDEX を捏造しないでください。- INDEX はドメインルーター(
| Domain | … | Feature catalog |)である必要があります。INDEX にフラットな| Code | … |機能テーブルがある場合 → ドメイン境界への移行を提案してください。フラットな行を現行レジストリとして扱わないでください。 docs/agents/project.mdからCatalog sync:を読み取ります。
| Catalog sync | 許可されるモード |
|---|---|
index-only | dispose · export · materialize |
full-triad / 未設定 / 記載なし | dispose のみ |
不明な場合は、どのモードか確認してください。同期設定が index-only でない限り、export / materialize を実行しないでください。
モード別レシピ
dispose(デフォルト)
0. 逆追跡(必ず最初に実行)
不足のスキャンの前に、機械的な逆追跡を実行します。次を優先してください。
python3 skills/track/map-features/scripts/reconcile.py \
--repo <root> --base <sha> --head <sha> --mode <mode>
.skills/ に書き込み可能で、gitignore 対象の場合は --write-overlay を追加します。モード:
changes-since-checkpoint | full | brownfield-bootstrap — 詳細は
references/passes.md を参照してください。references/envelope.md のエンベロープを正確に 1 つ出力します
(参考情報)。INDEX の OBS は .skills/reverse-features/ に置くか、ステートレスな状態を維持します
(advanced_to: null)。runner の notes[] エントリーをすべて表示してください。ここでは Feature
CODE を新規発行したり、INDEX を書き込んだりしないでください — 書き込むのはオーバーレイとエンベロープのみです。
完了条件:エンベロープが保持され、提案の前に保留中の OBS が表示されていること。
1–3. スキャン → 提案 → 確認後に書き込み
INDEX / シャード / タスク / ロードマップ / .skills/reverse-features/active/(+
必要に応じて observation json)をスキャンします。提案できるのは次の種類のみです。
| 種類 | 確認後の処理 |
|---|---|
| ドメイン境界 | 共有ルーター + シャードスタブ(複数可)。INDEX のフラットな行を catalog/<domain>.md に移行 |
| Feature コードの不足 | 要件に Feature code: の行を追加 |
| 空の ROAD バインド | シャードの Roadmap セルを実在する ROAD-N のみに更新(新規発行は禁止) |
| OWNS の不足 | tasks.md の Files Create/Modify/Test 行 |
| DEPENDS_ON 候補 | 説明文での再利用のみ — load-subgraph のエッジにはしない |
| 認識済みの機能 | シャード内の簡潔なカタログカード(Spec は — 可)。トライアドは作成しない |
| OBS の処置 | promote / absorb / dismiss + tombstone。promote では認識済みのシャードカードを書き込む |
OBS の来歴: パス/用語の重複が明確な場合は、observation_id(+
surface_roots)を付与してください。単独の認識済み行より、その OBS の promote を優先してください。
まとめて確認: (Core / Integrations / Docs)ごとにまとめます。Confirm P01-P06; decline P07-P15 または Confirm batch Core を指定できます。promote/absorb の行には、引き続き明示的な CODE トークンが必要です。
確認された行のみを書き込みます。GRAPH.md は作成しません。dispose ではトライアドのひな形を作成しません。
新しい CODE はルーター INDEX ではなく、該当するシャードに登録します。
export(index-only)
Catalog sync が index-only でない限り拒否し、/configure-repo を提示してください。ローカルトライアドがある各選択済み CODE について、references/export-fields.md に従い、シャード(またはルーター)のセル更新を提案します。変更前後をドライランで確認してください。トライアドのファイルはステージしないでください。
トライアドがない場合は不足として扱い、materialize を提案します。
materialize(index-only)
Catalog sync が index-only でない限り拒否します。templates/gitignore-index-only.snippet を確認するか、適用を提案してください。git add -f を使わないよう警告します。
各 CODE について、docs/specs/ 内の Spec ディレクトリを解決します。
- 存在しない →
templates/triad-stub/から Draft スタブを提案 - ファイルに `` が含まれる → 上書きを拒否
- スタブのフィンガープリントのみ → 確認後に更新可能
スタブ:Status Draft、シャードカードの CODE + タイトルを使用し、Approved EARS を捏造しないでください。書き込み後、SHALL が必要な場合は specify-behavior を提示してください。
呼び出し元(名前を挙げるのみ。実行はしない)
| スキル | /map-features の名前を挙げるタイミング |
|---|---|
frame-change | 逆引きの条件が成立している場合(チェックポイントが古い/ない、またはプル後)。サーフェスをグリーンフィールドとして扱う前 |
inspect-change | 読み取り専用の逆引きスクリプトの実行後。保留中の OBS を処理する必要がある場合 |
load-subgraph | エンベロープ/観測事項の欄に保留中の OBS がある場合 |
| 単独 | ユーザーが逆追跡、OBS の処理、flat から shared への移行、またはカタログのバックフィルを依頼した場合 |
inspect-change は、アドバイザリー用エンベロープの確認に限り、scripts/reconcile.py を読み取り専用で実行できます。処理内容を書き込んではいけません。
合理化への対処
| 考え | 実態 |
|---|---|
| 「INDEX がないので、提案表から作成する」 | 事前確認で停止してください。/configure-repo がルーターとシャードをシードします |
| 「reconcile-features を独立したスキルとして残す」 | 削除済みです。逆引きは処理のステップ 0 に限ります |
| 「frame-change から逆引きを自動実行すべき」 | /map-features の名前を挙げてください。自動呼び出しはしないでください |
| 「flat の INDEX でも問題ない」 | shared カタログのみです。Domain 境界として移行してください |
| 「スラッグのフォルダーが CODE だ」 | CODE は、シャード/Feature code: の確認済み行から取得してください |
| 「あとで確認して、今は書き込む」 | 明示的な確認なしに書き込みをしてはいけません |
| 「OBS-5682de は明らかに LABL だ」 | Promote は候補を提案します。CODE は行ごとに確認してください |
| 「Catalog sync が未設定のまま materialize する」 | export/materialize には index-only が必要です |
| 「途中まで書かれた要件を上書きする」 | スタブのフィンガープリントがない場合は拒否してください |
| 「active/ に OBS があるので逆引きを省略する」 | ステップ 0 は引き続き実行します(チェックポイント/範囲)。active/ だけでは代用できません |
| 「frame-change からの必須サブスキル map-features」 | ユーザーが呼び出した場合に限ります。名前を挙げてください |
危険信号
- INDEX の事前確認を省略する、または INDEX を捏造する
- INDEX 上の flat な Code 表を有効なレジストリとして扱う
- 行ごとまたはバッチで確認を得ずに書き込む
- ROAD-N または未確認の CODE を捏造する
- dispose で triad をスキャフォールドする
- Catalog sync が
index-only以外の状態で export/materialize する - スタブではない triad ファイルを上書きする
- tombstone を残さずに、昇格した OBS を
active/に残す - Code セルに
OBS-*を書き込む - スタブ内に Approved EARS を捏造する
- frame-change/inspect-change/reconcile の残りからこのスキルを自動呼び出しする
- 逆引きの dispose ステップ 0 を省略する
- 逆引き中に Feature CODE を発行する
完了条件
事前確認が合格していること。モードが明示されていること。逆引きエンベロープが保持されていること(dispose の場合)。提案が提示されていること(可能な場合は OBS の出所も含む)。確認済みの書き込みのみが適用されていること。materialize されたスタブが Draft で、フィンガープリントが付与されていること。ギャップが一覧化されていること。flat の INDEX が Domain 境界として移行済み、または移行案が提示されていること。