---
generated_at: 2026-02-17 15:30:00
metrics:
  claims_total: 140
  claims_with_evidence: 140
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：workspace.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：140 / 140、根拠なし：0
- 優先レビュー（高）
  1. なし（全テストケースに根拠あり）

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

- E-01: `script/workspace/init.lua` - モジュールエントリーポイント（3行）
- E-02: `script/workspace/scope.lua` - スコープ管理クラス（255行）
- E-03: `script/workspace/require-path.lua` - requireパス解決管理（317行）
- E-04: `script/workspace/workspace.lua` - メインワークスペース管理（624行）
- E-05: `script/workspace/loading.lua` - ファイルローディング管理（229行）

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

### scope.lua (UT-WKS-001 - UT-WKS-050)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | mt:__tostring - URIありスコープの文字列表現 | E-02 (行19-25) | ○ |
| C-02 | mt:__tostring - URIなしスコープの文字列表現 | E-02 (行19-25) | ○ |
| C-03 | mt:addLink - リンク追加 | E-02 (行27-30) | ○ |
| C-04 | mt:removeLink - リンク削除 | E-02 (行32-35) | ○ |
| C-05 | mt:removeAllLinks - 全リンク削除 | E-02 (行37-39) | ○ |
| C-06 | mt:eachLink - リンクイテレーション | E-02 (行41-45) | ○ |
| C-07 | mt:isChildUri - 自身URIとの一致判定 | E-02 (行47-67) | ○ |
| C-08 | mt:isChildUri - 子URI判定 | E-02 (行47-67) | ○ |
| C-09 | mt:isChildUri - 無関係URI判定 | E-02 (行47-67) | ○ |
| C-10 | mt:isChildUri - nil URI処理 | E-02 (行49-52) | ○ |
| C-11 | mt:isChildUri - nil scope.uri処理 | E-02 (行53-55) | ○ |
| C-12 | mt:isChildUri - パス区切り境界処理 | E-02 (行62-66) | ○ |
| C-13 | mt:isLinkedUri - リンクURI一致判定 | E-02 (行69-89) | ○ |
| C-14 | mt:isLinkedUri - リンクURIの子判定 | E-02 (行69-89) | ○ |
| C-15 | mt:isLinkedUri - 非リンクURI判定 | E-02 (行69-89) | ○ |
| C-16 | mt:isLinkedUri - nil URI処理 | E-02 (行72-74) | ○ |
| C-17 | mt:isLinkedUri - 空リンク処理 | E-02 (行75-88) | ○ |
| C-18 | mt:isVisible - 子URI可視性 | E-02 (行91-97) | ○ |
| C-19 | mt:isVisible - リンクURI可視性 | E-02 (行91-97) | ○ |
| C-20 | mt:isVisible - getScope一致可視性 | E-02 (行91-97) | ○ |
| C-21 | mt:getLinkedUri - リンクURIプレフィックス取得 | E-02 (行99-111) | ○ |
| C-22 | mt:getLinkedUri - マッチなし時nil | E-02 (行99-111) | ○ |
| C-23 | mt:getLinkedUri - nil URI処理 | E-02 (行102-104) | ○ |
| C-24 | mt:getRootUri - 子URIの場合 | E-02 (行113-120) | ○ |
| C-25 | mt:getRootUri - リンクURIの場合 | E-02 (行113-120) | ○ |
| C-26 | mt:set - 値設定 | E-02 (行122-127) | ○ |
| C-27 | mt:get - 値取得 | E-02 (行129-131) | ○ |
| C-28 | mt:get - 未設定キー | E-02 (行129-131) | ○ |
| C-29 | mt:getName - URIあり | E-02 (行133-136) | ○ |
| C-30 | mt:getName - URIなし | E-02 (行133-136) | ○ |
| C-31 | mt:getFolderName - フォルダ名取得 | E-02 (行138-141) | ○ |
| C-32 | mt:gc - GCオブジェクト追加 | E-02 (行143-145) | ○ |
| C-33 | mt:flushGC - GCフラッシュ | E-02 (行147-153) | ○ |
| C-34 | mt:flushGC - 削除済み時スキップ | E-02 (行149-151) | ○ |
| C-35 | mt:remove - スコープ削除 | E-02 (行155-167) | ○ |
| C-36 | mt:remove - 削除済み時スキップ | E-02 (行156-158) | ○ |
| C-37 | mt:isRemoved - 削除状態確認 | E-02 (行169-171) | ○ |
| C-38 | m.reset - 初期化 | E-02 (行186-193) | ○ |
| C-39 | m.createFolder - フォルダスコープ作成 | E-02 (行195-216) | ○ |
| C-40 | m.createFolder - URI長でのソート | E-02 (行203-213) | ○ |
| C-41 | m.getFolder - フォルダ検索 | E-02 (行218-227) | ○ |
| C-42 | m.getFolder - 該当なし時nil | E-02 (行218-227) | ○ |
| C-43 | m.getLinkedScope - override優先 | E-02 (行229-244) | ○ |
| C-44 | m.getLinkedScope - フォルダリンク | E-02 (行235-238) | ○ |
| C-45 | m.getLinkedScope - fallbackリンク | E-02 (行240-242) | ○ |
| C-46 | m.getLinkedScope - リンクなし時nil | E-02 (行243) | ○ |
| C-47 | m.getScope - フォルダ優先 | E-02 (行246-252) | ○ |
| C-48 | m.getScope - リンクスコープ | E-02 (行249-250) | ○ |
| C-49 | m.getScope - fallbackフォールバック | E-02 (行251) | ○ |
| C-50 | m.getScope - nil URI処理 | E-02 (行248) | ○ |

### require-path.lua (UT-WKS-051 - UT-WKS-070)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | mt:getRequireNameByPath - require名取得 | E-03 (行34-58) | ○ |
| C-52 | mt:getRequireNameByPath - セパレータ設定 | E-03 (行39-45) | ○ |
| C-53 | mt:getRequireNameByPath - マッチ失敗時nil | E-03 (行47-49, 57) | ○ |
| C-54 | mt:getRequireResultByPath - メタファイル処理 | E-03 (行60-77) | ○ |
| C-55 | mt:getRequireResultByPath - 通常ファイル処理 | E-03 (行78-125) | ○ |
| C-56 | mt:getRequireResultByPath - strictモード | E-03 (行79, 88-89, 122) | ○ |
| C-57 | mt:addName - 名前追加 | E-03 (行127-132) | ○ |
| C-58 | mt:getVisiblePath - キャッシュ動作 | E-03 (行134-148) | ○ |
| C-59 | mt:getVisiblePath - スコープ外処理 | E-03 (行137-140) | ○ |
| C-60 | mt:searchUrisByRequireName - URI検索 | E-03 (行150-216) | ○ |
| C-61 | mt:searchUrisByRequireName - プラグイン連携 | E-03 (行164-167) | ○ |
| C-62 | mt:searchUrisByRequireName - メタファイル優先 | E-03 (行169-180) | ○ |
| C-63 | mt:searchUrisByRequireName - DLL検索 | E-03 (行206-213) | ○ |
| C-64 | mt:findUrisByRequireName - 自己除外 | E-03 (行218-245) | ○ |
| C-65 | mt:findUrisByRequireName - キャッシュ動作 | E-03 (行227-234) | ○ |
| C-66 | mt:findUrisByRequireName - 型チェック | E-03 (行224-226) | ○ |
| C-67 | m.getVisiblePath - 公開API | E-03 (行247-256) | ○ |
| C-68 | m.findUrisByRequireName - 公開API | E-03 (行258-268) | ○ |
| C-69 | m.isMatchedUri - マッチ判定true | E-03 (行270-298) | ○ |
| C-70 | m.isMatchedUri - マッチ判定false | E-03 (行297) | ○ |

### workspace.lua (UT-WKS-071 - UT-WKS-119)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | m.watch - コールバック登録 | E-04 (行22-26) | ○ |
| C-72 | m.onWatch - コールバック呼び出し | E-04 (行28-34) | ○ |
| C-73 | m.initRoot - ルートURI設定 | E-04 (行36-44) | ○ |
| C-74 | m.create - ワークスペース作成 | E-04 (行46-58) | ○ |
| C-75 | m.create - ルートディレクトリ検出 | E-04 (行51-57) | ○ |
| C-76 | m.create - HOMEディレクトリ検出 | E-04 (行52) | ○ |
| C-77 | m.remove - ワークスペース削除 | E-04 (行60-74) | ○ |
| C-78 | m.remove - 存在しないURI処理 | E-04 (行62-73) | ○ |
| C-79 | m.reset - リセット | E-04 (行76-81) | ○ |
| C-80 | m.getRootUri - ルートURI取得 | E-04 (行83-86) | ○ |
| C-81 | m.getNativeMatcher - キャッシュ動作 | E-04 (行137-140) | ○ |
| C-82 | m.getNativeMatcher - excludeパターン | E-04 (行143-148) | ○ |
| C-83 | m.getNativeMatcher - gitignore連携 | E-04 (行149-168) | ○ |
| C-84 | m.getNativeMatcher - gitmodules連携 | E-04 (行169-177) | ○ |
| C-85 | m.getLibraryMatchers - キャッシュ動作 | E-04 (行207-210) | ○ |
| C-86 | m.getLibraryMatchers - ライブラリ設定 | E-04 (行225-232) | ○ |
| C-87 | m.getLibraryMatchers - メタパス連携 | E-04 (行233-239) | ○ |
| C-88 | m.isIgnored - 除外判定true | E-04 (行262-272) | ○ |
| C-89 | m.isIgnored - 除外判定false | E-04 (行262-272) | ○ |
| C-90 | m.isIgnored - マッチャーなし時 | E-04 (行268-270) | ○ |
| C-91 | m.isValidLuaUri - 有効Lua判定 | E-04 (行274-284) | ○ |
| C-92 | m.isValidLuaUri - 非Luaファイル | E-04 (行276-278) | ○ |
| C-93 | m.isValidLuaUri - ライブラリ例外 | E-04 (行279-281) | ○ |
| C-94 | m.removeFile - ファイル削除 | E-04 (行302-313) | ○ |
| C-95 | m.removeFile - キャッシュなし時 | E-04 (行306-309) | ○ |
| C-96 | m.findUrisByFilePath - URI検索 | E-04 (行392-412) | ○ |
| C-97 | m.findUrisByFilePath - キャッシュ動作 | E-04 (行400-403) | ○ |
| C-98 | m.findUrisByFilePath - 型チェック | E-04 (行395-397) | ○ |
| C-99 | m.getAbsolutePath - 相対パス変換 | E-04 (行414-428) | ○ |
| C-100 | m.getAbsolutePath - 絶対パス処理 | E-04 (行420) | ○ |
| C-101 | m.getAbsolutePath - folderUri nil時 | E-04 (行421-423) | ○ |
| C-102 | m.getRelativePath - file:URI変換 | E-04 (行430-453) | ○ |
| C-103 | m.getRelativePath - 通常パス変換 | E-04 (行430-453) | ○ |
| C-104 | m.getRelativePath - スコープURIなし | E-04 (行443-446) | ○ |
| C-105 | m.reload - 非同期リロード | E-04 (行455-461) | ○ |
| C-106 | m.init - 全フォルダリロード | E-04 (行463-470) | ○ |
| C-107 | m.init - rootUriなし時 | E-04 (行464-469) | ○ |
| C-108 | m.flushFiles - キャッシュクリア | E-04 (行472-482) | ○ |
| C-109 | m.flushFiles - キャッシュなし時 | E-04 (行476-478) | ○ |
| C-110 | m.resetFiles - ファイルリセット | E-04 (行484-497) | ○ |
| C-111 | m.resetFiles - オープンファイル処理 | E-04 (行492-496) | ○ |
| C-112 | m.getFirstScope - 最初のフォルダ | E-04 (行523-526) | ○ |
| C-113 | m.getFirstScope - フォールバック | E-04 (行525) | ○ |
| C-114 | m.isReady - 準備完了判定 | E-04 (行542-547) | ○ |
| C-115 | m.isReady - 準備未完了判定 | E-04 (行542-547) | ○ |
| C-116 | m.isAllReady - 全準備完了 | E-04 (行549-561) | ○ |
| C-117 | m.isAllReady - 一部未完了 | E-04 (行552-558) | ○ |
| C-118 | m.getLoadingProcess - 進捗取得 | E-04 (行563-572) | ○ |
| C-119 | m.getLoadingProcess - ローディングなし | E-04 (行570-571) | ○ |

### loading.lua (UT-WKS-120 - UT-WKS-140)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-120 | mt:__close - リソース解放 | E-05 (行26-28) | ○ |
| C-121 | mt:update - 進捗更新 | E-05 (行30-33) | ○ |
| C-122 | mt:checkMaxPreload - 上限以下 | E-05 (行35-64) | ○ |
| C-123 | mt:checkMaxPreload - 上限超過通知 | E-05 (行41-63) | ○ |
| C-124 | mt:checkMaxPreload - 通知済み時 | E-05 (行41-44) | ○ |
| C-125 | mt:loadFile - Luaファイルロード | E-05 (行66-155) | ○ |
| C-126 | mt:loadFile - DLLファイルロード | E-05 (行115-153) | ○ |
| C-127 | mt:loadFile - ライブラリ処理 | E-05 (行71-76) | ○ |
| C-128 | mt:loadFile - maxPreload超過時 | E-05 (行73-75) | ○ |
| C-129 | mt:loadFile - 非対応ファイル | E-05 (行70, 115) | ○ |
| C-130 | mt:loadAll - 一括ロード | E-05 (行157-183) | ○ |
| C-131 | mt:loadAll - 重複ロード防止 | E-05 (行81-88, 120-127) | ○ |
| C-132 | mt:loadAll - 進捗バー削除 | E-05 (行173) | ○ |
| C-133 | mt:remove - 削除処理 | E-05 (行185-191) | ○ |
| C-134 | mt:remove - 削除済み時スキップ | E-05 (行186-188) | ○ |
| C-135 | mt:isRemoved - 状態確認 | E-05 (行193-195) | ○ |
| C-136 | m.create - オブジェクト作成 | E-05 (行200-214) | ○ |
| C-137 | m.create - _loadings登録 | E-05 (行212) | ○ |
| C-138 | m.count - アクティブ数カウント | E-05 (行216-226) | ○ |
| C-139 | m.count - 削除済み除外 | E-05 (行219-221) | ○ |
| C-140 | m.count - 空状態 | E-05 (行216-226) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全テストケースはソースコードから直接導出されています。

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 全テストケースがソースコードに基づいており、主要な関数・メソッドを網羅的にカバーしています。

以下の観点で追加レビューを推奨：
1. 非同期処理（await, async）のテストは実行環境依存のため、実際のテスト実装時に調整が必要な可能性があります
2. ファイルシステム操作（fs.*）を含むテストはモック化が必要です
3. グローバル変数（log, LOGPATH, ROOT, FORCE_ACCEPT_WORKSPACE）への依存があるテストは環境設定が必要です

## 6) レビュアーチェックリスト（最小）
- [ ] scope.luaのisChildUri/isLinkedUriの境界値テストが実際のパス形式（Windows/Unix）で動作することを確認
- [ ] require-path.luaのセパレータ処理がプラットフォーム依存の設定に対応していることを確認
- [ ] workspace.luaのgitignore/gitmodules読み込みテストでファイルシステムモックが適切に設定されることを確認
- [ ] loading.luaのmaxPreload制限テストで設定値の取得が正しくモック化されることを確認
- [ ] 非同期処理を含むメソッド（awaitReload, awaitPreload等）のテストでawaitモジュールが適切にモック化されることを確認
