スキルを追加する(最短手順)
River Review に新しいスキル(skills/**/*.md)を追加して、検証し、ローカルで動かすまでの 最短パス をまとめます。
より詳しい書き方(アンチパターン、Evidence、Non-goals、誤検知ガードなど)は pages/guides/write-a-skill.md を参照してください。
0) 前提
- Node.js(このリポは
node --testを使用する) - 依存を入れていない場合は
npm ciを実行する
1) 配置ディレクトリを選ぶ
スキルを置く場所は category × first-party / community の 2 軸で決まります。
Category(core / upstream / midstream / downstream)
スキルの category フィールドと同名のディレクトリに置きます(例: category: midstream → skills/midstream/)。
First-party vs Community
| 配置 | 対象 |
|---|---|
skills/midstream/ (直下) | コアメンテナーが管理・評価した第一級スキル。recommended: true が基本 |
skills/midstream/community/ | 外部コントリビューター由来、またはサードパーティのライブラリ・フレームワーク固有のスキル。recommended: false がデフォルト |
community/ に置く目安(いずれか 1 つでも該当すれば community):
- 特定の外部ライブラリ / フレームワークを対象にしている(例: Next.js、Tailwind、Prisma)
- コアメンテナー以外から提供されたスキル
- good/bad フィクスチャとゴールデン出力がまだ整備されていない実験的スキル
community スキルはフィクスチャと golden output を揃えると recommended: true 昇格の候補になります(詳細: pages/guides/governance/skill-policy.md)。
決定例:
- 「TypeScript の型安全チェック」→ 言語レベルの汎用スキル →
skills/midstream/直下 - 「Next.js App Router の境界チェック」→ フレームワーク固有 →
skills/midstream/
2) ひな形からスキルを作る
skills/_template.mdをコピーして、選んだディレクトリに配置する。- 例 (first-party):
skills/midstream/my-skill.md - 例 (community):
skills/midstream/nextjs-my-skill/SKILL.md
- 例 (first-party):
- YAML frontmatter を最低限埋める(必須フィールドは
schemas/skill.schema.jsonを参照する)。id: 一意な ID(例:my-skill)name: スキル名description: 何を検知/指摘するか(短く)category:core/upstream/midstream/downstreamのいずれか(ルーティングの第一キー)applyTo: 対象ファイルの glob(まずは狭めるのが推奨)。files/path_patternsも別名として利用可能。phase: 後方互換が必要な場合のみ併記する(新規スキルではcategoryのみで十分)
メタデータの詳細定義は pages/reference/metadata-fields.md を参照してください。
3) スキーマ検証を通す
npm run skills:validate
失敗したら、エラーメッセージに出るフィールド(必須欠落/enum 不一致など)を修正して再実行します。
3) ローカルで dry-run 実行する(API なし)
LLM を使わずにまず動作確認する場合(再現性重視):
river run . --phase midstream --dry-run --debug --context diff,fullFile
ポイント:
applyToが変更ファイルにマッチしないと、そのスキルは選ばれない。inputContextを付けている場合、--contextに含まれないとスキップされる。- 迷う場合は、まず
inputContext: [diff]から始めるのが安全である。
- 迷う場合は、まず
4) PR に含める最小チェック
npm run skills:validatenpm test- 可能なら、誤検知ガード/Non-goals の確認観点(何を言わないか)