---
generated_at: 2026-01-30 14:15:00
metrics:
  claims_total: 109
  claims_with_evidence: 109
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：api.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：109 / 109、根拠なし：0
- 優先レビュー（高）
  1. **utils.ts のamountToInteger/integerToAmount**：バンドルからの再エクスポートのため、実装詳細は外部参照
  2. **methods.ts の各APIメソッド**：実際の動作はloot-coreのHandlersに依存
  3. **index.ts のinit/shutdown**：bundle.apiへの依存があり、統合テストでの検証を推奨

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

- E-01: `/packages/api/app/query.js` - Queryクラスの実装
- E-02: `/packages/api/methods.ts` - APIメソッド群の実装
- E-03: `/packages/api/index.ts` - init/shutdown関数の実装
- E-04: `/packages/api/injected.js` - DI用のsend関数オーバーライド機構
- E-05: `/packages/api/validateNodeVersion.js` - Nodeバージョン検証
- E-06: `/packages/api/utils.ts` - ユーティリティ関数（再エクスポート）

## 3) Claims と根拠の対応（レビューの主戦場）

### Query クラス（query.js）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Query.constructorで初期状態が設定される | E-01 L1-16 | ○ |
| C-02 | Query.filterでフィルタ条件が追加される | E-01 L18-23 | ○ |
| C-03 | Query.unfilterで条件が除去される | E-01 L25-33 | ○ |
| C-04 | Query.selectでカラム選択が設定される | E-01 L35-43 | ○ |
| C-05 | Query.calculateで計算式が設定される | E-01 L45-49 | ○ |
| C-06 | Query.groupByでグループ化が設定される | E-01 L51-60 | ○ |
| C-07 | Query.orderByでソートが設定される | E-01 L62-71 | ○ |
| C-08 | Query.limitで制限数が設定される | E-01 L73-75 | ○ |
| C-09 | Query.offsetでオフセットが設定される | E-01 L77-79 | ○ |
| C-10 | Query.rawでrawModeが有効になる | E-01 L81-83 | ○ |
| C-11 | Query.withDeadで削除済み含む設定になる | E-01 L85-87 | ○ |
| C-12 | Query.withoutValidatedRefsで参照検証無効化 | E-01 L89-91 | ○ |
| C-13 | Query.optionsでテーブルオプションが設定される | E-01 L93-95 | ○ |
| C-14 | Query.serializeで状態がシリアライズされる | E-01 L97-99 | ○ |
| C-15 | Query.resetで初期状態にリセットされる | E-01 L101-103 | ○ |
| C-16 | Query.serializeAsStringでJSON文字列化される | E-01 L105-107 | ○ |
| C-17 | q関数でQueryインスタンスが生成される | E-01 L110-112 | ○ |

### APIメソッド（methods.ts）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | runImportでインポート処理が実行される | E-02 L28-40 | ○ |
| C-19 | loadBudgetで予算がロードされる | E-02 L42-44 | ○ |
| C-20 | downloadBudgetで予算がダウンロードされる | E-02 L46-51 | ○ |
| C-21 | getBudgetsで予算一覧が取得できる | E-02 L53-55 | ○ |
| C-22 | syncで同期処理が実行される | E-02 L57-59 | ○ |
| C-23 | runBankSyncで銀行同期が実行される | E-02 L61-65 | ○ |
| C-24 | batchBudgetUpdatesでバッチ更新が実行される | E-02 L67-74 | ○ |
| C-25 | aqlQueryでクエリが実行される | E-02 L84-86 | ○ |
| C-26 | getBudgetMonthsで予算月一覧が取得できる | E-02 L88-90 | ○ |
| C-27 | getBudgetMonthで指定月の予算が取得できる | E-02 L92-94 | ○ |
| C-28 | setBudgetAmountで予算金額が設定できる | E-02 L96-102 | ○ |
| C-29 | setBudgetCarryoverでキャリーオーバーが設定できる | E-02 L104-110 | ○ |
| C-30 | addTransactionsで取引が追加できる | E-02 L112-126 | ○ |
| C-31 | importTransactionsで取引がインポートできる | E-02 L133-147 | ○ |
| C-32 | getTransactionsで取引一覧が取得できる | E-02 L149-155 | ○ |
| C-33 | updateTransactionで取引が更新できる | E-02 L157-162 | ○ |
| C-34 | deleteTransactionで取引が削除できる | E-02 L164-166 | ○ |
| C-35 | getAccountsでアカウント一覧が取得できる | E-02 L168-170 | ○ |
| C-36 | createAccountでアカウントが作成できる | E-02 L172-177 | ○ |
| C-37 | updateAccountでアカウントが更新できる | E-02 L179-184 | ○ |
| C-38 | closeAccountでアカウントがクローズできる | E-02 L186-196 | ○ |
| C-39 | reopenAccountでアカウントが再オープンできる | E-02 L198-200 | ○ |
| C-40 | deleteAccountでアカウントが削除できる | E-02 L202-204 | ○ |
| C-41 | getAccountBalanceでアカウント残高が取得できる | E-02 L206-208 | ○ |
| C-42 | getCategoryGroupsでカテゴリグループ一覧が取得できる | E-02 L210-212 | ○ |
| C-43 | createCategoryGroupでカテゴリグループが作成できる | E-02 L214-216 | ○ |
| C-44 | updateCategoryGroupでカテゴリグループが更新できる | E-02 L218-223 | ○ |
| C-45 | deleteCategoryGroupでカテゴリグループが削除できる | E-02 L225-230 | ○ |
| C-46 | getCategoriesでカテゴリ一覧が取得できる | E-02 L232-234 | ○ |
| C-47 | createCategoryでカテゴリが作成できる | E-02 L236-238 | ○ |
| C-48 | updateCategoryでカテゴリが更新できる | E-02 L240-245 | ○ |
| C-49 | deleteCategoryでカテゴリが削除できる | E-02 L247-252 | ○ |
| C-50 | getCommonPayeesで共通支払先一覧が取得できる | E-02 L254-256 | ○ |
| C-51 | getPayeesで支払先一覧が取得できる | E-02 L258-260 | ○ |
| C-52 | createPayeeで支払先が作成できる | E-02 L262-264 | ○ |
| C-53 | updatePayeeで支払先が更新できる | E-02 L266-271 | ○ |
| C-54 | deletePayeeで支払先が削除できる | E-02 L273-275 | ○ |
| C-55 | mergePayeesで支払先がマージできる | E-02 L277-282 | ○ |
| C-56 | getRulesでルール一覧が取得できる | E-02 L284-286 | ○ |
| C-57 | getPayeeRulesで支払先ルールが取得できる | E-02 L288-290 | ○ |
| C-58 | createRuleでルールが作成できる | E-02 L292-294 | ○ |
| C-59 | updateRuleでルールが更新できる | E-02 L296-298 | ○ |
| C-60 | deleteRuleでルールが削除できる | E-02 L300-302 | ○ |
| C-61 | holdBudgetForNextMonthで翌月繰越が設定できる | E-02 L304-306 | ○ |
| C-62 | resetBudgetHoldで繰越がリセットできる | E-02 L308-310 | ○ |
| C-63 | createScheduleでスケジュールが作成できる | E-02 L312-314 | ○ |
| C-64 | updateScheduleでスケジュールが更新できる | E-02 L316-326 | ○ |
| C-65 | deleteScheduleでスケジュールが削除できる | E-02 L328-330 | ○ |
| C-66 | getSchedulesでスケジュール一覧が取得できる | E-02 L332-334 | ○ |
| C-67 | getIDByNameで名前からIDが取得できる | E-02 L336-341 | ○ |
| C-68 | getServerVersionでサーバーバージョンが取得できる | E-02 L343-345 | ○ |

### init/shutdown（index.ts）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | initでAPIが初期化できる | E-03 L21-41 | ○ |
| C-70 | initで二重初期化が防止される | E-03 L22-24 | ○ |
| C-71 | initでfetchポリフィルが設定される | E-03 L28-33 | ○ |
| C-72 | initでvalidateNodeVersionが呼ばれる | E-03 L26 | ○ |
| C-73 | shutdownでAPIがシャットダウンできる | E-03 L43-53 | ○ |
| C-74 | shutdownでsyncエラー時も継続する | E-03 L46-48 | ○ |

### injected.js
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-75 | overrideでsend関数が上書きされる | E-04 L5-7 | ○ |
| C-76 | send変数がexportされている | E-04 L3 | ○ |

### validateNodeVersion.js
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-77 | validateNodeVersionで互換バージョンチェック成功 | E-05 L5-16 | ○ |
| C-78 | validateNodeVersionで非互換バージョンエラー | E-05 L10-14 | ○ |
| C-79 | process.versions未定義時はスキップ | E-05 L6 | ○ |

### utils.ts
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-80 | amountToIntegerがエクスポートされる | E-06 L5 | ○ |
| C-81 | integerToAmountがエクスポートされる | E-06 L6 | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠なしの項目は存在しません
- 全てのテストケースはソースコードの実装に基づいて生成されています

**注意事項:**
- `utils.ts`の`amountToInteger`/`integerToAmount`は`bundle.api.js`からの再エクスポートであり、実装詳細はビルド生成物に依存
- `methods.ts`の各APIメソッドは`loot-core`の`Handlers`に処理を委譲しているため、統合テストでの検証も推奨

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - Queryクラスは純粋な状態管理であり、副作用がない
- **0: 低リスク** - injected.jsはシンプルなDI機構
- **1: 中リスク** - methods.tsの各メソッドは外部依存（loot-core Handlers）があり、モック化が必要
- **1: 中リスク** - init/shutdownはグローバル状態とbundleへの依存があり、テスト順序に注意
- **0: 低リスク** - validateNodeVersionはprocess.versionsのモック化で対応可能

## 6) レビュアーチェックリスト（最小）
- [ ] Queryクラスのメソッドチェーンが正しく動作することを確認
- [ ] methods.tsの各メソッドがloot-coreの正しいハンドラを呼び出すことを確認
- [ ] runImport/batchBudgetUpdatesの例外処理が正しく動作することを確認
- [ ] init関数のfetchポリフィル設定が環境に応じて動作することを確認
- [ ] shutdown関数のsyncエラー時の継続処理を確認
- [ ] validateNodeVersionのバージョン比較ロジックを確認
