会場別のコース適性を分析する。会場を省略すると全会場の成績を表示する。「コース分析」「会場別の適性を見たい」といった依頼で発動する。
中文简介正在准备中。当前显示原文说明。
有馬記念分析システムの命名ドメイン適合性レビュー。
関数名・変数名・型名が競馬ドメインの意図(馬・騎手・調教師・血統・レース・出走・着順・上がり3F・馬場・会場・枠順・ローテ)を表現しているか、汎用名・技術接尾辞・命名規則の逸脱(snake_case 混入・アンダースコア付きメソッド名)・同一概念に別名が混在していないか(venue と course、同名異義の型)を検証。
Use when user says '命名レビュー', 'review naming', '名前チェック', or 'ドメイン命名確認'.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
src/ 配下の TypeScript を探索し、docs/DEVELOPMENT.md のファイル命名規約と以下のチェックリストに基づいてレビューする。
| ドメイン概念 | 英語表記 | 備考 |
|---|---|---|
| 馬 | horse | |
| 騎手 | jockey | |
| 調教師 | trainer | |
| 種牡馬(父) | sire | |
| 母 | mare | 母の父は mareSire |
| レース | race | |
| 出走(出走登録) | entry | |
| 着順 | finishPosition | DB は finish_position |
| 上がり3F | last3F | last3FTime / last3FAbilityScore |
| 馬場状態 | trackCondition | 良 / 稍重 / 重 / 不良 |
| 会場 | venue | 中山 / 東京 / 阪神 … |
| 枠順 | postPosition | 枠番は frameNumber、馬番は horseNumber |
| ローテーション | rotation | 出走間隔は intervalDays |
docs/DEVELOPMENT.md のファイル命名規約)起動時に「対象スコープ」と「対象ファイル一覧」が渡される場合がある(review-all 等からの dispatch 時)。その扱いは次の通り:
N-A)Summary: SKIPPED を出力するsrc/ 全体を対象にするvenue と course の混在、同名異義の型など)は、本変更で範囲を広げていなければ WARN 以下に留め、備考に「既存債務(本変更非起因)」と明記する。新規コードが既存の揺れた側に追随した場合は通常の重度で計上するsrc/domain/ src/commands/ src/repositories/ src/models/ src/utils/ src/types/ src/constants/ を Glob で探索するsrc/domain/ 配下は重点的に確認する(ドメイン語彙の発信源であり、層をまたぐ用語のブレはここを基準に判定する)process, handle, do, exec)だけで意図が読めない名前になっていないか(get* / parse* / display* は、目的語でドメインの意図が読めるなら対象外)execute から呼ばれるステップ関数)が、呼び出し側を読むだけでフローが理解できる名前かNG例: src/utils/HorseDataExtractor.ts:164 parseRaceInfo_Horse — アンダースコア修飾で parseRaceInfo(:267、レース概要の解析)との違いが名前から読めない(既存債務)
OK例: calculateVenueAptitudeScore / calculateRotationAptitudeScore(src/domain/entities/Horse.ts)、isOptimalRotation(src/constants/DistanceConstants.ts:45)、getHorseReliabilityFactor(src/constants/ScoringConstants.ts:136)
data, result, info, item, obj, tmp などの汎用名が使われていないかNG例: src/commands/AnalyzePerformance.ts:108 const wins_count(snake_case 混入。winsCount が正)/src/utils/JRAFetcher.ts:150 const data = this.convertEncoding(...) と :263 displayBasicInfo(data)(html / decodedHtml 等、中身が読める名前に。いずれも既存債務)
OK例: src/domain/entities/Horse.ts:228 const venueStats、:263 const similarDistanceResults、:307 const withLast3F
DB* 接頭辞(DBHorse / DBRace / DBJockey)、リポジトリ戻り値型が src/types/RepositoryTypes.ts という既存の役割分担に従っているかManager, Impl, Helper)を不必要に新設していないか。本リポジトリで確立している接尾辞は *Repository / *Stats / *Score(s) / *Components / *Constants / *Data(抽出・構築用のデータ形状)であり、これ以外の役割接尾辞を発明しないScore の中身が何のスコアか、Stats の集計軸が何かが名前から分かるか)*QueryRepository は repositories/queries/ に置く等)は review-arch 1.6 管轄。本スキルは語の選択のみ見るNG例: RaceInfo が src/types/HorseData.ts:23(枠番・馬番・斤量・オッズ=出走情報)と src/commands/CalculateScore.ts:23(ID・レース名・会場・距離=レース基本情報)の 2 つの異なる概念に使われている/HorseData が src/types/HorseData.ts:61(抽出 JSON の馬データ)と src/domain/entities/Horse.ts:64(エンティティ構築データ)で別物を指す(いずれも既存債務。新規の型名で同名異義を増やさない)
OK例: 出走情報は RaceEntryInfo、レース基本情報は RaceSummary のように概念ごとに別名を与える
NG例: 会場の概念に venue と course が混在している。値オブジェクトは venueAptitudeScore(src/domain/valueObjects/ScoreComponents.ts:16)、エンティティのメソッドは calculateVenueAptitudeScore(src/domain/entities/Horse.ts:226)である一方、DB 列は course_aptitude_score、テーブルは horse_course_stats、型は CourseStats、リポジトリは getHorsesCourseStatsBatch、CLI は course-analysis / AnalyzeCourse。src/commands/CalculateScore.ts:131 の course_aptitude_score: components.venueAptitudeScore が両語彙の突き当たり(既存債務。新規コードは domain 側の venue に揃える)
OK例: last3F(last3FTime / last3FAbilityScore / LAST_3F_PARAMS)、trainer(Trainer / trainerScore / TRAINER_SCORE_WEIGHTS / trainer_id)のように層をまたいで同じ語が通っている
※ テストコードの確立した慣習(ハーネス変数の局所短名等)は指摘対象外。
## 命名 / ドメイン適合性 レビュー結果
| # | チェック項目 | ステータス | 該当箇所 | 現在の名前 | 推奨名 | 備考 |
| - | ------------ | ---------- | -------- | ---------- | ------ | ---- |
### 詳細所見
(`src/domain/` への言及を必ず含めること)
### 他観点への申し送り
### 推奨アクション
- HIGH: <FAIL 行を全列挙>
- MEDIUM: <WARN 行のうち層をまたぐもの>
- LOW: <WARN 行のうち局所的なもの>
(該当が無い優先度は「なし」と明示)
レポート末尾に必ず以下の 1 行を出力する:
Summary: OK=<n> WARN=<n> FAIL=<n>
Summary: SKIPPED。その場合もレポート骨格(空テーブル + 推奨アクション各「なし」)を維持し、SKIPPED の根拠を詳細所見に 1 行書く(src/domain/ への言及要求は通常実施時のみ)还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
会場別のコース適性を分析する。会場を省略すると全会場の成績を表示する。「コース分析」「会場別の適性を見たい」といった依頼で発動する。
中文简介正在准备中。当前显示原文说明。
抽出済みJSONファイル(馬・血統・レース出走データ)をSQLiteデータベースにインポートする。「DBインポート」「データベースに保存」「JSONをDBに登録」といった依頼で発動する。
中文简介正在准备中。当前显示原文说明。
実装前に参照する設計原則。理解容易性 = 読み手の思考量の少なさを基準に、AI が作りがちな失敗4パターン(引数・依存5個以上、コマンド層肥大・ドメイン貧血症、ポリモーフィズム機会の見逃し、トリッキーな実装)と、実装後セルフチェックの7観点(名称・役割・参照・状態・面積・階層・秩序)を言語化。Use when starting any implementation task, when user says '設計原則', 'design principles', or before writing new entities/commands/repositories.
中文简介正在准备中。当前显示原文说明。
agent 向けテキスト指示(skill / slash command / task プロンプト / コード生成プロンプト)を、バイアスを排した実行者に動かしてもらい、両面(実行者の自己申告 + 指示側メトリクス)で評価して反復改善する手法。改善が頭打ちになるまで回す。Use when user says 'プロンプトを改善して', 'スキルをチューニング', 'empirical-prompt-tuning', or after creating/heavily revising a skill or prompt.
中文简介正在准备中。当前显示原文说明。
JRA公式サイトから特定レースの出馬表HTMLを取得して馬データを抽出する。「データ取得」「JRAからデータを取ってきて」「出馬表を取得して」といった依頼で発動する。
中文简介正在准备中。当前显示原文说明。
有馬記念分析システムで利用可能なスキル一覧と使い方、スコア配分、基本ワークフローを表示する。「ヘルプ」「使い方を教えて」「何ができるの」といった依頼で発動する。
中文简介正在准备中。当前显示原文说明。