---
generated_at: 2026-02-17 22:45:00
metrics:
  claims_total: 159
  claims_with_evidence: 159
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：core-hover.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：159 / 159、根拠なし：0
- 優先レビュー（高）
  1. 全テストケースはソースコードの直接解析に基づいて生成されており、根拠不足の項目はありません

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

- E-01: `script/core/hover/init.lua` - ホバーモジュールのエントリーポイント（166行）
- E-02: `script/core/hover/return.lua` - 戻り値情報生成モジュール（85行）
- E-03: `script/core/hover/label.lua` - ラベル生成モジュール（235行）
- E-04: `script/core/hover/description.lua` - 説明文生成モジュール（546行）
- E-05: `script/core/hover/name.lua` - 名前生成モジュール（105行）
- E-06: `script/core/hover/table.lua` - テーブル表示生成モジュール（233行）
- E-07: `script/core/hover/args.lua` - 引数情報生成モジュール（86行）

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

### init.lua（UT-HOV-001 〜 UT-HOV-010）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | getHover関数が関数型ソースに対してホバー情報を生成する | E-01: L13-112（getHover関数定義、source.type判定） | ○ |
| C-02 | getHover関数がdoc.type.functionを処理する | E-01: L83-86（def.type == 'doc.type.function'分岐） | ○ |
| C-03 | doc.see.nameに対してwssymbolで検索する | E-01: L20-27（doc.see.name判定とwssymbol呼び出し） | ○ |
| C-04 | guide.isOOPでOOP判定を行う | E-01: L75-77, L98-100（guide.isOOP呼び出し） | ○ |
| C-05 | defMarkで定義の重複を排除する | E-01: L30-34（defMark[def]チェック） | ○ |
| C-06 | byUri関数がURIと位置からホバーを取得する | E-01: L135-160（getHoverByUri関数定義） | ○ |
| C-07 | ASTが取得できない場合にnilを返す | E-01: L136-139（files.getState判定） | ○ |
| C-08 | accept外のソースでnilを返す | E-01: L114-131（accept定義）、L140-143（findSource判定） | ○ |
| C-09 | SHOWSOURCEでソース情報を追加する | E-01: L145-151（SHOWSOURCE分岐） | ○ |
| C-10 | SHOWNODEでノード情報を追加する | E-01: L152-158（SHOWNODE分岐） | ○ |

### return.lua（UT-HOV-011 〜 UT-HOV-021）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | getReturnDocsがbindDocsからdoc.returnを抽出する | E-02: L6-21（getReturnDocs関数定義） | ○ |
| C-12 | bindDocsがnilの場合に空配列を返す | E-02: L9-11（docs存在チェック） | ○ |
| C-13 | asFunction関数が戻り値をフォーマットする | E-02: L23-52（asFunction関数定義） | ○ |
| C-14 | 複数戻り値を番号付きで表示する | E-02: L44-48（i==1判定と番号フォーマット） | ○ |
| C-15 | 名前付き戻り値を表示する | E-02: L36-39（name判定とフォーマット） | ○ |
| C-16 | 戻り値0個でnilを返す | E-02: L24-27（num==0判定） | ○ |
| C-17 | asDocFunction関数がdoc.type.functionを処理する | E-02: L54-75（asDocFunction関数定義） | ○ |
| C-18 | returnsがnilまたは空でnilを返す | E-02: L55-57（returns判定） | ○ |
| C-19 | ...を含む戻り値を処理する | E-02: L62-67（rtn.name[1]=='...'判定） | ○ |
| C-20 | function型でasFunction結果を返す | E-02: L77-84（モジュール関数、type判定） | ○ |
| C-21 | doc.type.function型でasDocFunction結果を返す | E-02: L81-83（type判定） | ○ |

### label.lua（UT-HOV-022 〜 UT-HOV-049）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | asFunction関数が関数ラベルを生成する | E-03: L12-27（asFunction関数定義） | ○ |
| C-23 | OOPメソッドに(method)プレフィックスを付ける | E-03: L18-22（oop判定とプレフィックス） | ○ |
| C-24 | async関数に(async)プレフィックスを付ける | E-03: L18-19（vm.isAsync呼び出し） | ○ |
| C-25 | OOPで第1引数を省略する | E-03: L22（table.concat(args, ', ', 2)） | ○ |
| C-26 | asDocTypeName関数がdoc.classを処理する | E-03: L29-42（asDocTypeName関数定義） | ○ |
| C-27 | doc.aliasを処理する | E-03: L35-36（doc.alias分岐） | ○ |
| C-28 | doc.enumを処理する | E-03: L38-39（doc.enum分岐） | ○ |
| C-29 | asValue関数が値の型とリテラルを表示する | E-03: L46-74（asValue関数定義） | ○ |
| C-30 | async値にasyncを含める | E-03: L55-57（vm.isAsync判定） | ○ |
| C-31 | table型でbuildTableを呼び出す | E-03: L51, L58-72（cont判定とbuildTable） | ○ |
| C-32 | selfに(self)タイトルを使用する | E-03: L86-88（node.type=='self'判定） | ○ |
| C-33 | パラメータに(parameter)タイトルを使用する | E-03: L89-90（funcargs判定） | ○ |
| C-34 | upvalueに(upvalue)タイトルを使用する | E-03: L91-92（親関数判定） | ○ |
| C-35 | 通常ローカルにlocalタイトルを使用する | E-03: L93-94（else分岐） | ○ |
| C-36 | asGlobal関数がグローバルラベルを生成する | E-03: L100-105（asGlobal関数定義） | ○ |
| C-37 | declare属性で'*'の場合に'(global) any'を返す | E-03: L101-103（declare判定） | ○ |
| C-38 | isGlobalField関数がグローバルフィールドを判定する | E-03: L107-132（isGlobalField関数定義） | ○ |
| C-39 | ネストしたグローバルフィールドも判定する | E-03: L121, L128（再帰呼び出し） | ○ |
| C-40 | asField関数がフィールドラベルを生成する | E-03: L136-141（asField関数定義） | ○ |
| C-41 | グローバルフィールドでasGlobalを呼ぶ | E-03: L137-139（isGlobalField判定） | ○ |
| C-42 | asDocFieldName関数がドキュメントフィールドを処理する | E-03: L143-159（asDocFieldName関数定義） | ○ |
| C-43 | asString関数が文字列のバイト数を表示する | E-03: L161-173（asString関数定義） | ○ |
| C-44 | マルチバイト文字列で文字数とバイト数を表示する | E-03: L167-172（charLen判定） | ○ |
| C-45 | asNumber関数が数値を表示する | E-03: L181-199（asNumber関数定義） | ○ |
| C-46 | config無効時にnilを返す | E-03: L182-184（config判定） | ○ |
| C-47 | 通常10進数でnilを返す | E-03: L195-197（raw判定） | ○ |
| C-48 | formatNumber関数が不要ゼロを除去する | E-03: L175-179（formatNumber関数定義） | ○ |
| C-49 | モジュール関数がsource.typeで分岐する | E-03: L203-234（モジュール関数定義） | ○ |

### description.lua（UT-HOV-050 〜 UT-HOV-106）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | collectRequire関数がrequire対象を解決する | E-04: L12-39（collectRequire関数定義） | ○ |
| C-51 | dofile対象を解決する | E-04: L17-18（dofile/loadfile分岐） | ○ |
| C-52 | metaファイルに[[meta]]表記を使用する | E-04: L26（vm.isMetaFile判定） | ○ |
| C-53 | 対象ファイルがない場合にnilを返す | E-04: L20-21（result判定） | ○ |
| C-54 | asStringInRequire関数がrequire内文字列を処理する | E-04: L41-56（asStringInRequire関数定義） | ○ |
| C-55 | callargs外でnilを返す | E-04: L43-44（parent.type判定） | ○ |
| C-56 | asStringView関数がエスケープ文字列を展開する | E-04: L58-76（asStringView関数定義） | ○ |
| C-57 | 長い文字列を切り詰める | E-04: L68-71（max判定） | ○ |
| C-58 | エスケープがない場合にnilを返す | E-04: L60-62（source[2]判定） | ○ |
| C-59 | normalizeComment関数がハイフンを除去する | E-04: L94-96（'-'除去） | ○ |
| C-60 | @で始まるコメントでnilを返す | E-04: L97-99（'@'判定） | ○ |
| C-61 | 相対パスリンクを絶対URIに変換する | E-04: L100-113（gsub処理） | ○ |
| C-62 | nilが渡された場合にnilを返す | E-04: L91-93（not comment判定） | ○ |
| C-63 | getBindComment関数がbindCommentsを結合する | E-04: L117-127（getBindComment関数定義） | ○ |
| C-64 | bindCommentsが空でnilを返す | E-04: L123-125（lines判定） | ○ |
| C-65 | packSee関数が@seeリンクを生成する | E-04: L130-151（packSee関数定義） | ○ |
| C-66 | ターゲット不明時に取り消し線表示する | E-04: L143-144（target判定） | ○ |
| C-67 | コメント付き@seeを処理する | E-04: L146-149（see.comment判定） | ○ |
| C-68 | lookUpDocSees関数が単一@seeを表示する | E-04: L164-165（#sees==1判定） | ○ |
| C-69 | 複数@seeをリスト表示する | E-04: L167-171（else分岐） | ○ |
| C-70 | @seeがない場合は何もしない | E-04: L161-163（#sees==0判定） | ○ |
| C-71 | lookUpDocComments関数がdoc.commentを抽出する | E-04: L175-213（lookUpDocComments関数定義） | ○ |
| C-72 | doc.type等のコメントを抽出する | E-04: L192-198（doc.type等の分岐） | ○ |
| C-73 | source.commentを含める | E-04: L205-206（source.comment判定） | ○ |
| C-74 | funcargs内でnilを返す | E-04: L184-186（funcargs判定） | ○ |
| C-75 | bindDocsがnilでnilを返す | E-04: L177-179（docGroup判定） | ○ |
| C-76 | tryDocClassComment関数がdoc.classコメントを取得する | E-04: L215-226（tryDocClassComment関数定義） | ○ |
| C-77 | doc.aliasコメントを取得する | E-04: L218-219（doc.alias分岐） | ○ |
| C-78 | tryDocModule関数がmodule参照を解決する | E-04: L228-233（tryDocModule関数定義） | ○ |
| C-79 | moduleがない場合にnilを返す | E-04: L229-231（module判定） | ○ |
| C-80 | buildEnumChunk関数がenumリストを生成する | E-04: L235-283（buildEnumChunk関数定義） | ○ |
| C-81 | defaultマークを'->'で表示する | E-04: L263-265（default判定） | ○ |
| C-82 | additionalマークを'+>'で表示する | E-04: L264（additional判定） | ○ |
| C-83 | enumリテラルがない場合にnilを返す | E-04: L257-259（#enums==0判定） | ○ |
| C-84 | getBindEnums関数がパラメータenumを取得する | E-04: L285-325（getBindEnums関数定義） | ○ |
| C-85 | 戻り値enumを取得する | E-04: L305-317（doc.return分岐） | ○ |
| C-86 | 関数でない場合にnilを返す | E-04: L286-288（source.type判定） | ○ |
| C-87 | tryDocFieldComment関数がdoc.fieldコメントを取得する | E-04: L327-337（tryDocFieldComment関数定義） | ○ |
| C-88 | bindGroupからコメントを取得する | E-04: L334-336（bindGroup判定） | ○ |
| C-89 | doc.fieldでない場合にnilを返す | E-04: L328-330（type判定） | ○ |
| C-90 | getFunctionCommentMarkdown関数が関数コメントを生成する | E-04: L339-397（getFunctionCommentMarkdown関数定義） | ○ |
| C-91 | @paramコメントを表示する | E-04: L359-365（doc.param分岐） | ○ |
| C-92 | @returnコメントを表示する | E-04: L366-387（doc.return分岐） | ○ |
| C-93 | raw=trueで@param/@returnを除外する | E-04: L359, L366（not raw判定） | ○ |
| C-94 | bindDocsがnilでnilを返す | E-04: L341-343（docGroup判定） | ○ |
| C-95 | tryDocComment関数がsource.value==functionを処理する | E-04: L402-404（source.value判定） | ○ |
| C-96 | doc.aliasのenumチャンクを生成する | E-04: L411-413（doc.alias分岐） | ○ |
| C-97 | tryDocOverloadToComment関数がオーバーロードコメントを取得する | E-04: L427-440（tryDocOverloadToComment関数定義） | ○ |
| C-98 | doc.type.functionでない場合にnilを返す | E-04: L428-430（type判定） | ○ |
| C-99 | tyrDocParamComment関数がパラメータコメントを取得する | E-04: L442-465（tyrDocParamComment関数定義） | ○ |
| C-100 | funcargs外でnilを返す | E-04: L451-453（parent.type判定） | ○ |
| C-101 | tryDocEnum関数がenumフィールドリストを生成する | E-04: L468-525（tryDocEnum関数定義） | ○ |
| C-102 | keyアトリビュート時にキーリストを生成する | E-04: L476-494（docHasAttr判定） | ○ |
| C-103 | doc.enumでない場合にnilを返す | E-04: L469-471（type判定） | ○ |
| C-104 | モジュール関数がstring型でasStringを呼ぶ | E-04: L529-531（type判定） | ○ |
| C-105 | field型でparentを使用する | E-04: L535-537（type判定） | ○ |
| C-106 | 各try関数を順次呼び出す | E-04: L538-544（or連鎖） | ○ |

### name.lua（UT-HOV-107 〜 UT-HOV-124）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-107 | asLocal関数がローカル変数名を取得する | E-05: L6-17（asLocal関数定義） | ○ |
| C-108 | 属性付きローカルを処理する | E-05: L10-16（attrs処理） | ○ |
| C-109 | attrsがない場合に名前のみ返す | E-05: L8-9（attrs判定） | ○ |
| C-110 | asField関数がフィールド名を取得する | E-05: L19-37（asField関数定義） | ○ |
| C-111 | OOPで':'形式を使用する | E-05: L32-36（oop判定） | ○ |
| C-112 | クラス推論できない場合にノード名を使用する | E-05: L22-25（class判定） | ○ |
| C-113 | asTableField関数がテーブルフィールド名を取得する | E-05: L39-44（asTableField関数定義） | ○ |
| C-114 | fieldがない場合にnilを返す | E-05: L40-42（field判定） | ○ |
| C-115 | asGlobal関数がグローバル名を取得する | E-05: L46-48（asGlobal関数定義） | ○ |
| C-116 | asDocFunction関数がdoc.type.functionの名前を取得する | E-05: L50-61（asDocFunction関数定義） | ○ |
| C-117 | 親が見つからない場合に空文字を返す | E-05: L53-55（doc判定） | ○ |
| C-118 | asDocField関数がdoc.field名を取得する | E-05: L63-65（asDocField関数定義） | ○ |
| C-119 | buildName関数がlocal型を処理する | E-05: L67-102（buildName関数定義）、L68-70（local分岐） | ○ |
| C-120 | getlocal/setlocal型を処理する | E-05: L71-74（getlocal/setlocal分岐） | ○ |
| C-121 | setglobal/getglobal型を処理する | E-05: L75-78（global分岐） | ○ |
| C-122 | setmethod/getmethod型を処理する | E-05: L79-82（method分岐） | ○ |
| C-123 | method/field/function型で再帰呼び出しする | E-05: L96-100（再帰呼び出し） | ○ |
| C-124 | 未知の型でnilを返す | E-05: L101（else分岐） | ○ |

### table.lua（UT-HOV-125 〜 UT-HOV-145）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-125 | buildAsHash関数がハッシュ形式を生成する | E-06: L10-43（buildAsHash関数定義） | ○ |
| C-126 | optional型のキーに?を付ける | E-06: L15-19（isOptional判定） | ○ |
| C-127 | リテラル値を'= value'形式で表示する | E-06: L22-29（literalView判定） | ○ |
| C-128 | reachMax>0で省略記号を表示する | E-06: L38-40（reachMax判定） | ○ |
| C-129 | buildAsConst関数が定数形式を生成する | E-06: L49-88（buildAsConst関数定義） | ○ |
| C-130 | 数値リテラルでソートする | E-06: L54-56（table.sort） | ○ |
| C-131 | getVisibleKeyMap関数が可視キーマップを取得する | E-06: L92-138（getVisibleKeyMap関数定義） | ○ |
| C-132 | _で始まるキーを後ろにソートする | E-06: L120-125（'_'判定） | ○ |
| C-133 | [で始まるキーを後ろにソートする | E-06: L126-131（'['判定） | ○ |
| C-134 | 重複キーを除外する | E-06: L104-108（map[key]判定） | ○ |
| C-135 | getNodeMap関数がノードマップを生成する | E-06: L141-159（getNodeMap関数定義） | ○ |
| C-136 | 同一キーのノードをマージする | E-06: L151-155（nodeMap[key]判定とmerge） | ○ |
| C-137 | keyMapにないキーを無視する | E-06: L146-148（keyMap判定） | ○ |
| C-138 | モジュール関数がテーブルプレビューを生成する | E-06: L165-232（モジュール関数定義） | ○ |
| C-139 | maxFields<=0でnilを返す | E-06: L167-170（maxFields判定） | ○ |
| C-140 | level<=0でnilとmaxLevelを返す | E-06: L194-196（level判定） | ○ |
| C-141 | string型でnilを返す | E-06: L175-181（string判定） | ○ |
| C-142 | doc.type.signでnilを返す | E-06: L182-184（doc.type.sign判定） | ○ |
| C-143 | フィールドがない場合にnilを返す | E-06: L189-191（#keys==0判定） | ○ |
| C-144 | フィールド数超過時に切り詰める | E-06: L199-205（finalMaxFields判定） | ○ |
| C-145 | 全定数でbuildAsConstを使用する | E-06: L221-224（isConsts判定） | ○ |

### args.lua（UT-HOV-146 〜 UT-HOV-159）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-146 | asFunction関数が関数引数リストを生成する | E-07: L4-58（asFunction関数定義） | ○ |
| C-147 | メソッド定義でselfを先頭に追加する | E-07: L8-13（methodDef判定とself追加） | ○ |
| C-148 | self引数をスキップする | E-07: L17-19（arg.type=='self'判定とgoto） | ○ |
| C-149 | 可変長引数を'...type'形式で表示する | E-07: L20-34（arg.type=='...'分岐） | ○ |
| C-150 | 名前付き可変長引数を処理する | E-07: L22-28（arg.name判定） | ○ |
| C-151 | オプショナル引数に?を付ける | E-07: L39-44（isOptional判定） | ○ |
| C-152 | argsがない場合に空配列を返す | E-07: L14-56（if source.args判定） | ○ |
| C-153 | asDocFunction関数がdoc.type.function引数を生成する | E-07: L60-75（asDocFunction関数定義） | ○ |
| C-154 | オプショナルドキュメント引数に?を付ける | E-07: L69（arg.optional判定） | ○ |
| C-155 | extendsがない場合に'any'を使用する | E-07: L71（arg.extends判定） | ○ |
| C-156 | ドキュメント引数がない場合に空配列を返す | E-07: L62-64（not source.args判定） | ○ |
| C-157 | function型でasFunction結果を返す | E-07: L77-84（モジュール関数）、L78-79（function分岐） | ○ |
| C-158 | doc.type.function型でasDocFunction結果を返す | E-07: L81-83（doc.type.function分岐） | ○ |
| C-159 | 未知の型で空配列を返す | E-07: L84（else分岐） | ○ |

## 4) 不足情報（Unknown / Missing）
- 特になし。すべてのテストケースはソースコードの直接解析に基づいて生成されています。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードから直接抽出された関数・条件分岐に基づいています
- ただし、以下の点は人間レビューで確認することを推奨します：
  - 非同期処理（`---@async`アノテーション付き関数）のテスト実行環境
  - 外部依存（vm, guide, config等のモジュール）のモック化方針
  - Lua言語特有のnil安全性のテストカバレッジ

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースの入力値と期待結果の整合性を確認
- [ ] 境界値テストが適切なエッジケースをカバーしているか確認
- [ ] 異常系テストが実際のエラー処理パスをカバーしているか確認
- [ ] モック対象の外部依存（vm, files, config, guide等）が適切に特定されているか確認
- [ ] 優先度の割り当てがプロジェクトのリスク評価と一致しているか確認
