domain-modeling (mattpocock/skills)
プロジェクトのドメインモデルを育て、用語集とアーキテクチャ決定記録を整えます。
domain-modeling:平易な『用語集をセットアップ/この決定を記録』という依頼を、短い GLOSSARY.md + ADR 形式に変換します(対照群 2.8、スキルあり 5.0)。一文プロンプトは 4.6。トークンのオーバーヘッドなし。
Codex CLI · gpt-6-astra
28.2 / 30
スキルなしに対するリフト:+2.20 · 推奨 · 18 実行
推奨:合計 28.2/30 が 22 以上、出力品質 5.0 が 3.5 以上、リフト +2.20 が +1.0 以上。
SOTA
合格Codex でテスト済み。
カバー対象 Codex, Claude Code
Codex CLI 0.166(SOTA ティア):採点対象 18 実行。当ティアのルールでは、ここでの合格は Claude Code もカバーします。第2ティアについては何も述べません。
スコア
各ディメンションは 0〜5 点で、6 つの合計が 30 点満点の合計スコアになります。すべてのディメンションで 5 が最良です。コスト 5 は低コストで高速、インストール 5 は簡単であることを意味します。
- トリガーの信頼性
- 5.0
- スキルなしに対するリフト
- 4.2
- 出力品質
- 5.0
- トークンと時間のコスト
- 5.0
- インストールと移植性
- 4.0
- 安全性
- 5.0
セキュリティレビュー
安全静的スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。手動レビュー:ネットワーク無効のサンドボックスで実行しても安全(指摘なし)。クリーンなスキャン結果はスキルの安全性を証明しません。
インストール
npx skills@latest add mattpocock/skills --skill domain-modeling
固定コミット: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d
テスト済み: 2026-11-02
テスト内容
- 多義語から用語集を作成 — 当社の図書館貸出アプリは、同じ人物(本を借りられる人)を 'member'、'patron'、'borrower'、'customer' と呼び分けています。'loan' は 'checkout' や 'rental' とも呼ばれます。'copy' は物理的な1冊を、'title' は抽象的な本を指します。プロジェクトのドメイン用語集をセットアップしてください…
- 取り消しにくい決定を記録 — このアーキテクチャ決定をリポジトリに記録してください:金額は Postgres に NUMERIC/DECIMAL ではなく整数セントで保持します。決済パートナーの API が整数セントを使い、丸めバグに2度悩まされたためです。書き起こしてください。
- ADR に値するものだけを記録 — 今日の会議での2つの決定:(a) 認証を自前のパスワードテーブルからサードパーティの ID プロバイダー(Auth0)へ移行します。取り消すには四半期分の作業が必要です。(b) CSS クラス .btn-main を .btn-primary にリネームしました。記録に値するものを記録してください…
長所
- スキルなしと比べ平均スコアを 2.8 から 5.0 に引き上げ(+2.20)。
- スキルは名前を出さずとも採用されました:スキルあり群 6/6 実行でスキルファイルが読み込まれました。
- トークンのオーバーヘッドなし:スキルなしの 0.96 倍。
- 自身のルールの一文版を +0.39 上回ります。
- スキルありの絶対品質は高水準:5 点中 5.0。
短所
- テスト上の注意:チェックのファイル名グロブは、対照群のファイル名を確認した後に緩和し、同じ緩和ルールで全実行を再採点しました。
- タスク・群ごとに n=2。1 ポイント未満の差はノイズです。
レビュー
専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。形式を指定しない自然な表現の3つのタスク:『プロジェクトのドメイン用語集をセットアップ』(同じ人物を member/patron/borrower/customer と呼ぶ図書館アプリ)、『このアーキテクチャ決定を記録』(金額を整数セントで保持)、『会議で出た2つの決定。記録に値するものを記録』(取り消しにくい Auth0 移行と、そうではない CSS クラス名の変更)。開始時点のリポジトリには ADR 0001 と 0002 があります。一文プロンプト群=規約全体を一文にしたもの。
3群の比較
| 群 | 平均スコア(0〜5) | 1実行あたりのトークン |
|---|---|---|
| スキルなし | 2.8 | 83k |
| 一文プロンプト | 4.61 | 83k |
| スキルあり | 5.0 | 80k |
Codex CLI で 18 実行を計測し、LLM 判定なしのルールベースのチェックで採点。合計 28.2 / 30、判定は 推奨。
開示事項 チェックのファイル名 glob は、対照群のファイル名を確認した後に緩和し、全実行を同じ緩和後のルールで再採点しました。
判定:推奨(28.2 / 30)。 出典:mattpocock/skills、skills/engineering/domain-modeling、コミット 4ae2317 に固定。インストール:npx skills@latest add mattpocock/skills --skill domain-modeling。ライセンス: MIT(リポジトリの LICENSE)。
概要
mattpocock/skills の domain-modeling スキル:プロジェクトのドメイン言語を鋭く保ちます。GLOSSARY.md を維持し(概念ごとに 1 つの正規の 太字 用語、簡潔な定義、_Avoid_: の同義語、汎用的なプログラミング用語は含めない)、docs/adr/ の下に ADR を書くのは、覆すのが難しく、意外性があり、実際にトレードオフを伴う決定に限り、連番付きの短い段落として書きます。
テスト方法
専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。
形式を名指ししない自然な言い回しの 3 タスク:「プロジェクトのドメイン用語集を設定する」(同じ人物を member/patron/borrower/customer と呼ぶ図書館アプリ)、「このアーキテクチャ決定を記録する」(金額は整数セントで)、「会議での 2 つの決定。記録に値するものだけを記録する」(覆すのが難しい Auth0 移行と、そうではない CSS クラス名の変更)。ADR 0001 と 0002 があるリポジトリから開始。一文プロンプト=慣例全体を一文にしたもの。
- 多義語から用語集を作成 — 当社の図書館貸出アプリは、同じ人物(本を借りられる人)を 'member'、'patron'、'borrower'、'customer' と呼びます。'loan' は 'checkout' や 'rental' とも呼ばれます。'copy' は物理的な 1 冊の本、'title' は抽象的な本です。プロジェクトの…を設定してください…
- 覆すのが難しい決定を記録 — このリポジトリのアーキテクチャ決定を記録:決済パートナーの API が整数セントを使い、丸めのバグに 2 度悩まされたため、Postgres では NUMERIC/DECIMAL ではなく整数セントで金額を保存する。書き留めてください。
- ADR に値するものだけを記録 — 今日の会議での 2 つの決定:(a) 認証を自前のパスワードテーブルからサードパーティの ID プロバイダー(Auth0)へ移行する。元に戻すには 4 分の 1 の工数が必要。(b) CSS クラス
.btn-mainを.btn-primaryにリネームした。記録に値するものだけを…
採点はプログラム的(隠しテスト/仕込み問題の検出/制約チェック/該当する場合はレンダリング+OCR)で、実行ごとに 0〜5 点。スコアはどの LLM 判定者も決めていません。
結果
第 3 群に与えた一文プロンプト:"プロジェクトのドメイン言語を鋭く保つ:概念ごとに 1 つの正規の太字用語(簡潔な定義と _Avoid_: の同義語、汎用的なプログラミング用語は含めない)を持つ GLOSSARY.md を書き、覆すのが難しく、意外性があり、実際にトレードオフを伴う決定だけを、docs/adr/ に連番付きの短い ADR(テンプレートではなく 1 段落)として記録する。"
| タスク | 対照群スコア | 一文プロンプト | スキルあり | 対照群トークン | 一文プロンプトトークン | スキルありトークン | スキル読み込み |
|---|---|---|---|---|---|---|---|
| t1-glossary | 1.46 | 4.38 | 5.0 | 75k | 90k | 79k | 2/2 |
| t2-adr | 2.5 | 5.0 | 5.0 | 91k | 74k | 69k | 2/2 |
| t3-adr-numbering | 4.45 | 4.45 | 5.0 | 82k | 83k | 89k | 2/2 |
平均スコア:スキルなし 2.8 vs スキルあり 5.0(差分 +2.2)。1 実行あたりのトークン:83k vs 80k(0.96 倍)。時間:45s vs 35s。一文プロンプト群:4.61(一文プロンプトに対するスキルの上乗せ:+0.39。一文プロンプト自身のスキルなしに対する上乗せ:+1.8)。一文プロンプトのトークンは 1 実行あたり 83k、つまりスキルのコストは一文プロンプトの 0.96 倍。
何が起きたか
- 対照群 2.80、一文プロンプト 4.61、スキルあり 5.00(各 n=6)。対照群は妥当なことをするものの、独自の形式です:表か文章で DOMAIN*GLOSSARY.md(GLOSSARY.md ではない)を作り、どちらの実行でも
\_Avoid*行を作らず、慣例が短い段落を求める箇所で Context/Decision/Consequences 見出し付きの 263 語・355 語の ADR を書きました。対照群の 1 つの ADR は docs/adr/ ではなく docs/decisions/ に置かれました。 - スキルの 2 つの判断は正しい:3 つ目のタスクの両方のスキルあり実行で、Auth0 移行だけを ADR 0003 として記録し(既存の 0001/0002 に続く正しい番号)、CSS リネームは元に戻しやすいのでスキップしたと述べました。対照群と一文プロンプトもリネームをスキップしましたが、control-2 と one-liner-2 は私の正規表現が認識しない理由(定型的な変更のため未記録)を挙げたため、「理由を述べるか」チェックで過小評価されています。
- 一文プロンプトは形式の大半を満たします(用語集 3.75 と 5.0、ADR 5.0、5.0)。ただし 1 つの一文プロンプトの用語集は異なるレイアウトを使ったため、
_Avoid_構造チェックを逃しました。 - コストなし:スキルは 1 実行あたり 80k トークン、対照群と一文プロンプトは 83k。スキルは名前を出さずともスキルあり群 6/6 実行で読み込まれました。
評価項目別スコア
| 評価項目 | スコア | 理由 |
|---|---|---|
| 出力品質 | 5.0 | スキルありの平均スコアは 5.00/5(プログラム的チェック。タスク別の表を参照)。 |
| スキルなしに対するリフト | 4.2 | スキルなしの 2.80 に対して +2.20 ポイント(タスクごとに n=2。約 1 ポイント未満の差はノイズ)。 |
| トリガー | 5.0 | スキルあり群 6/6 実行でスキルファイルが読み込まれました。 |
| 手順の移植性 | 4 | 短い SKILL.md と少数の参照テンプレート。スクリプトなし。 |
| 効率 | 5 | トークン 0.96 倍(1 実行あたり 80k vs 83k)、時間 0.78 倍(35s vs 45s)。 |
| 安全性と衛生 | 5 | 文章のみ。security.md を参照。 |
このテストの限界
- ファイル名、見出し、太字用語数、単語数、
_Avoid_行に対するルールベースのチェック。いくつかは、形式を教えられなければ対照群が満たせない「形式チェック」です。チェックは、この社内慣例への適合を測るものであり、一般的な文章の質ではありません。 - 対照群が DOMAIN_GLOSSARY.md を書き、一文プロンプトが箇条書きエントリを書いたのを見て、ファイル名とレイアウトのパターンを緩め(ファイル名は別チェックとして維持)、同じルールで全実行を再採点しました。「(b) をスキップした理由」の正規表現は今も厳格です。
- 小さな合成リポジトリ。長期にわたって更新し続ける必要のある用語集はありません。
- タスク・群ごとに n=2。約 1 ポイント未満の差はノイズです。
- ルールベースの採点はチェックが捉えられる範囲を測るもので、センスや、その結果が最善かどうかは判定できません。
セキュリティ
security.md を参照。スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。判定:実行しても安全(ネットワーク無効のサンドボックス)。クリーンなスキャン結果はスキルの安全性を証明しません。
結論
この用語集と ADR の慣例を導入したいチームにとって、このスキルは最初から正しく機能し、ADR を増やしすぎず、追加トークンもかかりません。一文の指示でも大半は達成できるため、このスキルの主な価値は、毎回慣例を貼り付ける手間を省くことです。
トランスクリプト
実行ログ:domain-modeling (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) 列:タスク、群-回、スコア(0-5)、トークン、秒、合格したチェック、エージェントが開いたスキルファイル。 t1-glossary control-1: スコア 1.25, トークン 67501, 秒 45.5, チェック 2/7, 開いたファイルなし t1-glossary control-2: スコア 1.67, トークン 82953, 秒 59.9, チェック 3/7, 開いたファイルなし t1-glossary oneliner-1: スコア 5.0, トークン 99071, 秒 37.6, チェック 7/7, 開いたファイルなし t1-glossary oneliner-2: スコア 3.75, トークン 82400, 秒 36.8, チェック 6/7, 開いたファイルなし t1-glossary treatment-1: スコア 5.0, トークン 89157, 秒 40.7, チェック 7/7, 開いたファイル domain-modeling t1-glossary treatment-2: スコア 5.0, トークン 70479, 秒 32.2, チェック 7/7, 開いたファイル domain-modeling t2-adr control-1: スコア 3.12, トークン 99540, 秒 43.6, チェック 3/5, 開いたファイルなし t2-adr control-2: スコア 1.88, トークン 82829, 秒 51.1, チェック 2/5, 開いたファイルなし t2-adr oneliner-1: スコア 5.0, トークン 66964, 秒 43.7, チェック 5/5, 開いたファイルなし
18 実行、3 成果物
サンプル出力
SOTA · With the skill: GLOSSARY.md (t1-glossary, run 1, Codex)
# Library Lending The library-lending context describes people who can borrow books, the books available to borrow, and their loans. ## Language **Member**: A person who can borrow books from the library, whether or not they currently have a loan. _Avoid_: Patron, borrower, customer **Loan**: An instance of a member borrowing a physical copy of a title from the library. _Avoid_: Checkout, rental **Copy**: One physical book belonging to a title. Two physical books of the same title are two distinct copies. _Avoid_: Title (when referring to a physical book) **Title**: The abstract book represented by physical copies. Multiple copies of the same book share a title. _Avoid_: Copy (when referring to the abstract book)