---
generated_at: 2026-02-17 12:00:00
metrics:
  claims_total: 238
  claims_with_evidence: 238
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：vm.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：238 / 238、根拠なし：0
- 優先レビュー（高）
  1. 全テストケースはソースコードから直接抽出されており、根拠不足なし
  2. テストケースの網羅性確認推奨
  3. 境界値テストの追加検討推奨

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

- E-01: `script/vm/vm.lua` - vmモジュールのコア機能（getSpecial, getKeyName, getKeyType, getObjectValue, flushCache, getCache）
- E-02: `script/vm/node.lua` - vm.nodeクラスの実装（merge, isEmpty, isTyped, clear, get, addOptional, removeOptional, isOptional, hasFalsy, alwaysTruthy, hasKnownType, isNullable, setTruthy, setFalsy, remove, narrow, removeObject, removeNode, hasType, hasName, asTable, eachObject, copy）およびvm関数（setNode, getNode, removeNode, lockCache, unlockCache, clearNodeCache, createNode）
- E-03: `script/vm/compiler.lua` - コンパイル機能（bindDocs, compileNode, compileByNodeChain, compileByParentNode, getReturnOfFunction, getClassFields, bindAs）
- E-04: `script/vm/infer.lua` - 型推論機能（vm.inferクラス: view, hasType, hasUnknown, hasAny, hasClass, hasFunction, viewLiterals, viewClass）およびvm関数（getInfer, viewObject, viewKey）
- E-05: `script/vm/def.lua` - 定義取得機能（getDefs, hasDef）
- E-06: `script/vm/ref.lua` - 参照取得機能（getRefs）
- E-07: `script/vm/type.lua` - 型チェック機能（getNodeName, isSubType, isUnknown, getTableValue, getTableKey, canCastType, viewTypeErrorMessage, getOverloadsByTypeName）
- E-08: `script/vm/doc.lua` - ドキュメント処理機能（getDocSets, isMetaFile, getMetaName, isMetaFileRequireable, getValidVersions, getDeprecated, isAsync, isNoDiscard, isLinkedCall, isAsyncCall, isDiagDisabledAt, getCastTargetHead, docHasAttr）
- E-09: `script/vm/global.lua` - グローバル管理機能（vm.globalクラス: addSet, addGet, getSets, getAllSets, dropUri, getName, getCodeName, asKeyName, getKeyName, getFieldName, isAlive, getParentBase）およびvm関数（declareGlobal, getGlobal, getGlobalFields, getGlobals, getAllGlobals, getGlobalSets, hasGlobalSets, isUndefinedGlobal, getGlobalNode, getEnums, compileByGlobal, getGlobalBase）
- E-10: `script/vm/function.lua` - 関数処理機能（countParamsOfFunction, countParamsOfSource, countParamsOfNode, countReturnsOfFunction, countReturnsOfSource, countReturnsOfCall, countList, getExactMatchedFunctions, getMatchedFunctions, isVarargFunctionWithOverloads, isFunctionWithOnlyOverloads, isEmptyFunction）
- E-11: `script/vm/field.lua` - フィールド取得機能（getFields）
- E-12: `script/vm/value.lua` - 値処理機能（testCondition, equal, getInteger, getString, getNumber, getBoolean, getLiterals）
- E-13: `script/vm/tracer.lua` - トレース機能（vm.tracerクラス: getCasts, collectAssign, collectCare, collectLocal, collectGlobal, getLastAssign, resetCastsIndex, fastWardCasts, lookIntoChild, lookIntoBlock, calcNode, getNode）およびvm関数（traceNode）
- E-14: `script/vm/variable.lua` - 変数処理機能（vm.variableクラス: getBase, getCodeName, getParent, getFieldName, getSets, getFields）およびvm関数（getVariableID, getVariable, getVariableNode, getVariableInfoByCodeName, getVariableSets, getVariableGets, getVariableFields, compileByVariable）
- E-15: `script/vm/generic.lua` - ジェネリック機能（vm.genericクラス: resolve）およびvm関数（getGenericResolved, isGenericUnsolved, setGeneric, getGeneric, createGeneric, cloneObject）
- E-16: `script/vm/sign.lua` - シグネチャ機能（vm.signクラス: addSign, addDocGeneric, resolve）およびvm関数（createSign, setSign, getSign）
- E-17: `script/vm/library.lua` - ライブラリ機能（getLibraryName）
- E-18: `script/vm/operator.lua` - 演算子処理機能（runOperator, unarySwich, binarySwitch）
- E-19: `script/vm/visible.lua` - 可視性機能（getVisibleType, getParentClass, getDefinedClass, isVisible）
- E-20: `script/vm/precompile.lua` - プリコンパイル機能（files.watchイベントハンドラ）
- E-21: `script/vm/init.lua` - モジュール初期化ファイル

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001〜C-015 | vm.lua関連テストケース（getSpecial, getKeyName, getKeyType, getObjectValue, flushCache, getCache） | E-01 | ○ |
| C-016〜C-061 | vm.nodeクラス関連テストケース（merge, isEmpty, isTyped, clear, get, addOptional等） | E-02 | ○ |
| C-062〜C-066 | compiler.lua関連テストケース（bindDocs, compileNode） | E-03 | ○ |
| C-067〜C-082 | infer.lua関連テストケース（view, hasType, hasUnknown, hasAny等） | E-04 | ○ |
| C-083〜C-087 | def.lua関連テストケース（getDefs, hasDef） | E-05 | ○ |
| C-088〜C-089 | ref.lua関連テストケース（getRefs） | E-06 | ○ |
| C-090〜C-106 | type.lua関連テストケース（getNodeName, isSubType, getTableValue等） | E-07 | ○ |
| C-107〜C-122 | doc.lua関連テストケース（getDocSets, isMetaFile, getDeprecated等） | E-08 | ○ |
| C-123〜C-148 | global.lua関連テストケース（vm.globalクラス, declareGlobal, getGlobal等） | E-09 | ○ |
| C-149〜C-163 | function.lua関連テストケース（countParamsOfFunction, getMatchedFunctions等） | E-10 | ○ |
| C-164 | field.lua関連テストケース（getFields） | E-11 | ○ |
| C-165〜C-174 | value.lua関連テストケース（testCondition, equal, getInteger等） | E-12 | ○ |
| C-175〜C-186 | tracer.lua関連テストケース（vm.tracerクラス, traceNode） | E-13 | ○ |
| C-187〜C-199 | variable.lua関連テストケース（vm.variableクラス, getVariable等） | E-14 | ○ |
| C-200〜C-206 | generic.lua関連テストケース（vm.genericクラス, createGeneric等） | E-15 | ○ |
| C-207〜C-213 | sign.lua関連テストケース（vm.signクラス, createSign等） | E-16 | ○ |
| C-214〜C-215 | library.lua関連テストケース（getLibraryName） | E-17 | ○ |
| C-216〜C-227 | operator.lua関連テストケース（runOperator, unarySwich, binarySwitch） | E-18 | ○ |
| C-228〜C-235 | visible.lua関連テストケース（getVisibleType, isVisible等） | E-19 | ○ |
| C-236〜C-238 | precompile.lua関連テストケース（files.watchイベント） | E-20 | ○ |

## 4) 不足情報（Unknown / Missing）
- 全テストケースはソースコードから直接抽出されているため、根拠不足の項目はありません。
- 以下の追加テストケースを検討推奨：
  - パフォーマンステスト（大量ノード処理時の挙動）
  - メモリリークテスト（キャッシュのweakテーブル動作確認）
  - 並行処理テスト（複数ファイル同時コンパイル時の動作）

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードから直接抽出されており、根拠が明確
- 注意点：
  - 内部関数（ローカル関数）のテストは直接実行できない可能性あり
  - メタテーブルを使用したクラス定義のため、モック作成に注意が必要
  - Lua特有の動的型付けにより、型関連テストでの入力バリエーションが重要

## 6) レビュアーチェックリスト（最小）
- [ ] 全21ファイルのpublic関数がテストケースに含まれているか確認
- [ ] 各テストケースの入力値と期待結果が具体的か確認
- [ ] 境界値テスト（空配列、nil、最大値等）が適切に含まれているか確認
- [ ] エラーハンドリングのテストケースが含まれているか確認
- [ ] vm.nodeのmerge/copyなど、状態変更を伴う操作のテストが十分か確認
- [ ] グローバル/ローカル変数の両方のパスがテストされているか確認
- [ ] キャッシュ機構のテスト（有効期限、クリア、ロック）が含まれているか確認
