---
generated_at: 2026-02-21 12:00:00
metrics:
  claims_total: 32
  claims_with_evidence: 28
  claims_without_evidence: 4
confidence_derived: 0.88
---

# 根拠レポート：データベース設計書

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.88**
  - 根拠あり：28 / 32、根拠なし：4
- 優先レビュー（高）
  1. **Songs.minfostr各インデックスの意味**：配列インデックスの意味はコードの使用箇所からの推測を含む
  2. **GameResults各変数の完全な網羅性**：result.hsp内の変数宣言から抽出しているが、一部未確認の変数がある可能性
  3. **Courses.kcoファイルフォーマット詳細**：.kcoファイルの内部構造は十分に解析できていない
  4. **メダル・グレードの値域定義**：コード上の判定処理から推測した部分がある

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `kshootmania.hsp:378` - players配列定義 (`sdim players,64,notemax`)
- E-02: `select.hsp:2573` - minfo配列定義 (`dim minfo,SONG_MAX,4,5`)
- E-03: `select.hsp:2574` - minfostr配列定義 (`sdim minfostr,256,SONG_MAX,4,13`)
- E-04: `select.hsp:4842` - mscore配列定義 (`dim mscore,SONG_MAX,4,9`)
- E-05: `select.hsp:4841-4956` - スコア読み込み処理 `*reloadscore`
- E-06: `select.hsp:4872-4873` - mscore初期値設定（score=-1, grade=-1）
- E-07: `select.hsp:4904-4916` - .kscファイルからのスコア読み込み処理
- E-08: `select.hsp:4937-4953` - メダル・グレード判定処理
- E-09: `result.hsp:77-90` - GameResults変数定義（critical, near, errorn等）
- E-10: `result.hsp:375-468` - スコア保存処理
- E-11: `result.hsp:423` - スコア更新時のフォーマット文字列
- E-12: `result.hsp:437` - 新規スコア保存時のフォーマット文字列
- E-13: `result.hsp:468` - .kscファイル保存パス (`notesave dir_default+"\\score\\"...`)
- E-14: `kshootmania.hsp:685` - key配列定義 (`dim key,14`)
- E-15: `kshootmania.hsp:699` - key2配列定義 (`dim key2,14`)
- E-16: `kshootmania.hsp:713` - joykey配列定義 (`dim joykey,2,14`)
- E-17: `kshootmania.hsp:390-499` - config.ini読み込み処理
- E-18: `select.hsp:1007-1009` - コース関連配列定義（course_sc, course_md, course_gr）
- E-19: `kshootmania.hsp:805-808` - キャッシュ削除処理（バージョン更新時）
- E-20: `kshootmania.hsp` - currentver="175b" バージョン定義
- E-21: `play_init.hsp:256` - ノート配列定義
- E-22: `songs/` - 曲データディレクトリの実在確認

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | プロジェクトはRDBMSを使用せずファイルベースで永続化 | E-13, E-17 | ○ |
| C-02 | players配列はstring(64)でnotemax個定義 | E-01 | ○ |
| C-03 | デフォルトプレイヤー名は「PLAYER」 | E-01, E-13 | ○ |
| C-04 | minfo配列は[SONG_MAX][4][5]の3次元整数配列 | E-02 | ○ |
| C-05 | minfostr配列は256バイト×[SONG_MAX][4][13]の文字列配列 | E-03 | ○ |
| C-06 | SONG_MAX=8192 | E-02, E-04 | ○ |
| C-07 | 難易度は0:NORMAL, 1:HARD, 2:SPECIAL, 3:EXTRAの4段階 | E-04, E-08 | ○ |
| C-08 | mscore配列は[SONG_MAX][4][9]の3次元整数配列 | E-04 | ○ |
| C-09 | mscoreの初期値はscore=-1, grade=-1 | E-06 | ○ |
| C-10 | スコアファイルは.ksc拡張子のテキストファイル | E-07, E-13 | ○ |
| C-11 | .kscの各行は「設定=スコアデータ」形式 | E-11, E-12 | ○ |
| C-12 | modifier_settingsは効率型,譜面変更,特殊効果,短,長,アナログの6要素 | E-11 | ○ |
| C-13 | スコアデータは9要素（スコア,メダル,グレード,ゲージ率,チェーン,プレイ回数,クリア回数,FC回数,PFC回数） | E-11, E-12 | ○ |
| C-14 | スコア保存パスはscore/[プレイヤー]/[曲フォルダ]/[曲名].ksc | E-13 | ○ |
| C-15 | GameResultsにcritical, near, errorn等の判定変数が存在 | E-09 | ○ |
| C-16 | critical_short, critical_long, near_short, errorn_short, errorn_longの5つの詳細判定変数が存在 | E-09 | ○ |
| C-17 | key配列は14要素 | E-14 | ○ |
| C-18 | key2配列は14要素 | E-15 | ○ |
| C-19 | joykey配列は[2][14]の2次元 | E-16 | ○ |
| C-20 | config.iniにhispeed, fullscr, windowsize等の設定が存在 | E-17 | ○ |
| C-21 | course_sc, course_md, course_grの3つのコース関連配列が存在 | E-18 | ○ |
| C-22 | バージョン更新時にキャッシュを全削除 | E-19, E-20 | ○ |
| C-23 | minfostr[*][*][0]がフォルダ名 | E-05, E-07 | ○ |
| C-24 | minfostr[*][*][1]が曲タイトル | E-05 | ○ |
| C-25 | minfostr[*][*][2]がアーティスト名 | E-05 | ○ |
| C-26 | minfostr[*][*][5]がKSHファイル名 | E-05, E-13 | ○ |
| C-27 | minfostr[*][*][6]がBPM | E-05 | ○ |
| C-28 | minfostr[*][*][8]がジャケット画像パス | E-05 | ○ |
| C-29 | minfostr[*][*][11]がイラストレーター名 | **根拠なし** | △ |
| C-30 | minfo[*][*][0]がtype（種別）フィールド | **根拠なし** | △ |
| C-31 | Coursesの.kcoファイルのフォーマット詳細 | **根拠なし** | △ |
| C-32 | メダル値の定義（-1:未プレイ, 0:失敗, 1:クリア, 2:FC, 3:PFC） | E-08, **一部推測** | △ |

## 4) 不足情報（Unknown / Missing）
- minfostr配列のインデックス3, 4, 9, 10, 12の正確な意味が不明確
  - 候補：コード内の使用箇所を追加調査 / KSHフォーマット仕様書 / 開発者ドキュメント
- minfo配列のインデックス2, 3, 4の正確な意味が不明確
  - 候補：select.hsp内の参照箇所を網羅的に調査 / 変数名のコメント
- .kcoファイルの内部フォーマット仕様
  - 候補：courses/ディレクトリ内の実ファイル解析 / エディタ（kshooteditor.hsp）のコース関連処理
- メダル値4〜7の詳細な意味
  - 候補：result.hsp内のメダル判定ロジック詳細調査

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - Players, KeyConfig, GameConfig各テーブルの定義（ソースコードから直接確認可能）
- 1: 中リスク - minfostrの一部インデックスの意味推測（使用箇所から推測しているが、誤りの可能性がある）
- 1: 中リスク - メダル・グレード値域の一部推測（コード上の判定処理から推測）
- 2: 高リスク - .kcoファイルフォーマットの詳細が未確認（コース関連機能に影響する可能性）

## 6) レビュアーチェックリスト（最小）
- [ ] minfostr各インデックスの意味がselect.hspのコード使用箇所と一致しているか確認
- [ ] minfo各インデックスの意味がselect.hspのコード使用箇所と一致しているか確認
- [ ] .kscファイルのフォーマットがresult.hspの保存処理と一致しているか確認
- [ ] メダル値の定義がresult.hspの判定ロジックと一致しているか確認
- [ ] コース関連の.kcoファイルフォーマットの調査が必要か判断
- [ ] ER図のリレーションがコード上のデータフローと一致しているか確認
