---
generated_at: 2026-03-01 16:00:00
metrics:
  claims_total: 25
  claims_with_evidence: 23
  claims_without_evidence: 2
confidence_derived: 0.92
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.92**
  - 根拠あり：23 / 25、根拠なし：2
- 優先レビュー（高）
  1. **履歴データベースのテーブル構造**：SQLiteフォーマット時のテーブル構造の詳細が不明
  2. **セッション分離機能の詳細**：isolation機能の実装詳細の確認が必要

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

- E-01: `crates/nu-command/src/database/values/sqlite.rs`
- E-02: `crates/nu-command/src/database/values/definitions/db_table.rs`
- E-03: `crates/nu-command/src/database/values/definitions/db_column.rs`
- E-04: `crates/nu-command/src/database/values/definitions/db_constraint.rs`
- E-05: `crates/nu-command/src/database/values/definitions/db_foreignkey.rs`
- E-06: `crates/nu-command/src/database/values/definitions/db_index.rs`
- E-07: `crates/nu-command/src/stor/create.rs`
- E-08: `crates/nu-command/src/stor/insert.rs`
- E-09: `crates/nu-command/src/stor/update.rs`
- E-10: `crates/nu-command/src/stor/delete.rs`
- E-11: `crates/nu-command/src/database/commands/into_sqlite.rs`
- E-12: `crates/nu-std/std-rfc/kv/mod.nu`
- E-13: `crates/nu-protocol/src/config/history.rs`

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | NushellはSQLiteをデータベースエンジンとして使用 | E-01 | ○ |
| C-02 | インメモリDBのURI: file:memdb1?mode=memory&cache=shared | E-01 (line 20) | ○ |
| C-03 | SQLiteマジックバイトでファイル形式を判定 | E-01 (line 19, 50) | ○ |
| C-04 | ビジーハンドラーは250ms待機後リトライ | E-01 (line 134-138) | ○ |
| C-05 | stor createでint/float/str/bool/datetime/json/jsonb型をサポート | E-07 (line 93-117) | ○ |
| C-06 | int型はINTEGERにマッピング | E-07 (line 94-96) | ○ |
| C-07 | float型はREALにマッピング | E-07 (line 97-99) | ○ |
| C-08 | str型はVARCHAR(255)にマッピング | E-07 (line 100-102) | ○ |
| C-09 | bool型はBOOLEANにマッピング | E-07 (line 104-106) | ○ |
| C-10 | datetime型はDATETIMEにマッピング（デフォルト現在時刻） | E-07 (line 107-111) | ○ |
| C-11 | DbTable構造体のフィールド定義 | E-02 | ○ |
| C-12 | DbColumn構造体のフィールド定義 | E-03 | ○ |
| C-13 | DbConstraint構造体のフィールド定義 | E-04 | ○ |
| C-14 | DbForeignKey構造体のフィールド定義 | E-05 | ○ |
| C-15 | DbIndex構造体のフィールド定義 | E-06 | ○ |
| C-16 | into sqliteでの型変換マッピング | E-11 (line 370-403) | ○ |
| C-17 | List/Record/TableはJSONBとして保存 | E-11 (line 381) | ○ |
| C-18 | SQLiteQueryBuilderでSQLプッシュダウン最適化 | E-01 (line 751-936) | ○ |
| C-19 | std_kv_storeテーブルの構造（session, key, value） | E-12 (line 57-61) | ○ |
| C-20 | KVストアの値はnuon形式で保存 | E-12 (line 60) | ○ |
| C-21 | HistoryConfigのデフォルト値（max_size: 100000） | E-13 (line 72-77) | ○ |
| C-22 | 履歴ファイル形式（Sqlite/Plaintext） | E-13 (line 5-10) | ○ |
| C-23 | into sqliteでトランザクション使用 | E-11 (line 193-202, 321-327) | ○ |
| C-24 | 履歴SQLiteファイルのテーブル構造 | **根拠なし** | △ |
| C-25 | isolation機能の実装詳細 | **根拠不足** | △ |

## 4) 不足情報（Unknown / Missing）
- C-24: 履歴SQLiteファイルのテーブル構造
  - 履歴機能の実装コード（nu-cli/src/commands/history/）を追加で確認する必要がある
  - 候補：nu-cli/src/commands/history/history_.rs / nu-cli/src/commands/history/history_import.rs

- C-25: isolation機能の実装詳細
  - HistoryConfigでisolationフラグは定義されているが、実際のテーブル分離の実装詳細は追加調査が必要
  - 候補：nu-cli/src/repl.rs / nu-cli/src/config_files.rs

## 5) リスクフラグ（レビュー観点）
- 0（低リスク）: 型変換マッピングの検証 - コードから直接確認済み
- 0（低リスク）: メタデータ構造体の定義 - 構造体定義から直接確認済み
- 1（中リスク）: 履歴データベースの詳細 - 設定は確認済みだがテーブル構造の詳細は未確認
- 0（低リスク）: KVストアの構造 - mod.nuから直接確認済み

## 6) レビュアーチェックリスト（最小）
- [ ] 型変換マッピング（C-05〜C-10, C-16, C-17）が実際の使用ケースと一致しているか確認
- [ ] 履歴データベースのテーブル構造（C-24）について追加調査が必要か判断
- [ ] isolation機能（C-25）の動作を実際にテストして確認
- [ ] SQLiteの動的型付けに関する注意事項が開発者に伝わるか確認
- [ ] JSONB型の保存・読み込みが期待通りに動作するか確認
