---
generated_at: 2026-02-24 17:52:00
metrics:
  claims_total: 63
  claims_with_evidence: 63
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：function.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：63 / 63、根拠なし：0
- 優先レビュー（高）
  1. **外部API連携テスト（Feishu, Discord, GitHub）**：モック化が必要
  2. **WebSocket/DurableObject関連**：Cloudflare Workers固有の動作確認
  3. **認証・認可関連**：セキュリティ観点のレビュー推奨

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

- E-01: `packages/function/src/api.ts` (L1-402) - メインソースファイル
- E-02: `packages/function/package.json` - 依存関係定義
- E-03: `packages/function/tsconfig.json` - TypeScript設定

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

### getFeishuTenantToken関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Feishuテナントトークンが正常に取得される | E-01 (L15-27) | ○ |
| C-02 | tenant_access_tokenがない場合エラーがスローされる | E-01 (L25) | ○ |
| C-03 | ネットワークエラー時の挙動 | E-01 (L16) fetch使用 | ○ |

### SyncServerクラス
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-04 | コンストラクタでインスタンス生成 | E-01 (L29-32) | ○ |
| C-05 | fetchでWebSocket接続確立 | E-01 (L33-50) | ○ |
| C-06 | 既存セッションデータの送信 | E-01 (L41-44) | ○ |
| C-07 | 空ストレージでの動作 | E-01 (L41-44) list/filter処理 | ○ |
| C-08 | webSocketClose処理 | E-01 (L54-56) | ○ |
| C-09 | publishで有効キーのメッセージ公開 | E-01 (L58-79) | ○ |
| C-10 | session/message/キーの公開 | E-01 (L61-62) | ○ |
| C-11 | session/part/キーの公開 | E-01 (L63) | ○ |
| C-12 | 無効キーでエラー返却 | E-01 (L60-65) | ○ |
| C-13 | 他sessionIDでエラー | E-01 (L60-65) | ○ |
| C-14 | クライアント0件での保存 | E-01 (L68-78) | ○ |
| C-15 | shareで新規シークレット生成 | E-01 (L81-90) | ○ |
| C-16 | 既存シークレット返却 | E-01 (L82-83) | ○ |
| C-17 | getDataのデータ返却形式 | E-01 (L92-97) | ○ |
| C-18 | session/フィルタリング | E-01 (L95) | ○ |
| C-19 | 空データで空配列返却 | E-01 (L94-96) | ○ |
| C-20 | assertSecretの成功ケース | E-01 (L99-101) | ○ |
| C-21 | assertSecretの失敗ケース | E-01 (L100) | ○ |
| C-22 | clearでデータクリア | E-01 (L111-122) | ○ |
| C-23 | メッセージファイル削除 | E-01 (L113-119) | ○ |
| C-24 | 空データのクリア | E-01 (L111-122) | ○ |
| C-25 | shortNameでID末尾8文字返却 | E-01 (L124-126) | ○ |
| C-26 | 8文字未満IDの処理 | E-01 (L125) substring処理 | ○ |
| C-27 | 8文字IDの処理 | E-01 (L125) | ○ |

### Honoルーター（APIエンドポイント）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 | GET / でHello world返却 | E-01 (L130) | ○ |
| C-29 | POST /share_create 共有作成 | E-01 (L131-142) | ○ |
| C-30 | URLにWEB_DOMAIN含有 | E-01 (L140) | ○ |
| C-31 | sessionID未指定時エラー | E-01 (L132) req.json | ○ |
| C-32 | POST /share_delete 共有削除 | E-01 (L143-152) | ○ |
| C-33 | シークレット不正時エラー | E-01 (L149) assertSecret | ○ |
| C-34 | POST /share_delete_admin 管理者削除 | E-01 (L153-162) | ○ |
| C-35 | 管理者シークレット不正時エラー | E-01 (L157) | ○ |
| C-36 | POST /share_sync 同期公開 | E-01 (L163-176) | ○ |
| C-37 | share_syncシークレット検証 | E-01 (L173) | ○ |
| C-38 | GET /share_poll WebSocketアップグレード | E-01 (L177-187) | ○ |
| C-39 | Upgradeヘッダーなしエラー | E-01 (L179-181) | ○ |
| C-40 | IDなしエラー | E-01 (L184) | ○ |
| C-41 | GET /share_data データ取得 | E-01 (L188-216) | ○ |
| C-42 | partsの統合 | E-01 (L210-212) | ○ |
| C-43 | share_data IDなしエラー | E-01 (L191) | ○ |
| C-44 | 空データ返却 | E-01 (L195-213) | ○ |
| C-45 | POST /feishu challenge返却 | E-01 (L232) | ○ |
| C-46 | DiscordへのメッセージP転送 | E-01 (L250-262) | ○ |
| C-47 | @メンション除去 | E-01 (L243) | ○ |
| C-48 | aidenキーワード置換 | E-01 (L244) | ○ |
| C-49 | スレッドID追加 | E-01 (L247-248) | ○ |
| C-50 | Discord APIエラー時502 | E-01 (L264-267) | ○ |
| C-51 | 空メッセージ時送信スキップ | E-01 (L245) | ○ |
| C-52 | POST /exchange_github_app_token トークン交換 | E-01 (L274-321) | ○ |
| C-53 | Authorizationヘッダーなし401 | E-01 (L281) | ○ |
| C-54 | 無効トークン403 | E-01 (L295-298) | ○ |
| C-55 | 期限切れトークン403 | E-01 (L286-298) jwtVerify | ○ |
| C-56 | POST /exchange_github_app_token_with_pat PAT交換 | E-01 (L325-371) | ○ |
| C-57 | PAT Authorizationヘッダーなし401 | E-01 (L333-334) | ○ |
| C-58 | 書き込み権限なし401 | E-01 (L339-340) | ○ |
| C-59 | リポジトリ不在401 | E-01 (L338) repos.get | ○ |
| C-60 | GET /get_github_app_installation インストール情報 | E-01 (L375-400) | ○ |
| C-61 | 未インストール時undefined | E-01 (L391-396) | ○ |
| C-62 | パラメータ不足時挙動 | E-01 (L376-377) query取得 | ○ |
| C-63 | ALL * でNot Found返却 | E-01 (L401) | ○ |

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

## 5) リスクフラグ（レビュー観点）
- **1: 中リスク** - 外部API連携（Feishu, Discord, GitHub）のモック化が適切に行われているか確認が必要
- **1: 中リスク** - Cloudflare Workers DurableObjectの動作はエミュレータまたは実環境でのテストが必要
- **0: 低リスク** - 静的メソッド（shortName）は単純な文字列操作のため容易にテスト可能

## 6) レビュアーチェックリスト（最小）
- [ ] 外部API（Feishu, Discord, GitHub）のモック戦略が適切か
- [ ] WebSocket/DurableObjectのテスト環境が整備されているか
- [ ] 認証・認可関連のテストケースがセキュリティ要件を満たしているか
- [ ] 境界値テスト（空配列、短い文字列等）が十分にカバーされているか
- [ ] エラーハンドリングのテストケースが網羅的か
- [ ] Resource（環境変数）のモック方法が定義されているか
