---
generated_at: 2026-02-17 22:10:00
metrics:
  claims_total: 24
  claims_with_evidence: 24
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：99-htmlgen（HTML生成マクロ）

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：24 / 24、根拠なし：0
- 優先レビュー（高）
  1. **属性検証ロジック**：data-*許可とreq/opt検証
  2. **XSSエスケープ**：自動エスケープなしの確認
  3. **MathMLサポート範囲**：全MathMLタグの網羅性

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

- E-01: `lib/pure/htmlgen.nim` 10-15行目（モジュールドキュメント・推奨事項）
- E-02: `lib/pure/htmlgen.nim` 18-28行目（XML/HTML/MathML説明）
- E-03: `lib/pure/htmlgen.nim` 30-40行目（使用例）
- E-04: `lib/pure/htmlgen.nim` 43-44行目（import文）
- E-05: `lib/pure/htmlgen.nim` 46-58行目（属性定数定義）
- E-06: `lib/pure/htmlgen.nim` 60-68行目（getIdent実装）
- E-07: `lib/pure/htmlgen.nim` 70-78行目（delete実装）
- E-08: `lib/pure/htmlgen.nim` 80-81行目（xmlCheckedTagシグネチャ）
- E-09: `lib/pure/htmlgen.nim` 86-90行目（属性リスト準備）
- E-10: `lib/pure/htmlgen.nim` 92-102行目（属性検証ループ）
- E-11: `lib/pure/htmlgen.nim` 103-105行目（必須属性チェック）
- E-12: `lib/pure/htmlgen.nim` 106-110行目（リーフ要素処理）
- E-13: `lib/pure/htmlgen.nim` 111-118行目（通常要素処理）
- E-14: `lib/pure/htmlgen.nim` 119行目（nestList結合）
- E-15: `lib/pure/htmlgen.nim` 121-617行目（HTMLタグマクロ群）
- E-16: `lib/pure/htmlgen.nim` 624-788行目（MathMLタグマクロ群）
- E-17: `lib/pure/htmlgen.nim` 248-250行目（div マクロ - バッククォート）
- E-18: `lib/pure/htmlgen.nim` 606-608行目（var マクロ - バッククォート）
- E-19: `lib/pure/htmlgen.nim` 554-556行目（template マクロ - バッククォート）
- E-20: `lib/pure/htmlgen.nim` 418-421行目（object マクロ - バッククォート）
- E-21: `lib/pure/htmlgen.nim` 791-808行目（runnableExamples）
- E-22: `docs/code-to-docs/機能一覧/機能一覧.csv` 99行目（機能定義）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 各HTMLタグに対応するマクロを提供 | E-01, E-15 | ○ |
| C-02 | 属性検証はコンパイル時に実行 | E-10, E-11 | ○ |
| C-03 | coreAttrはDOM Core属性を含む | E-05 | ○ |
| C-04 | eventAttrはイベントハンドラを含む | E-05 | ○ |
| C-05 | ariaAttrはrole属性を含む | E-05 | ○ |
| C-06 | commonAttrは3種の属性を結合 | E-05 | ○ |
| C-07 | data-*属性は常に許可 | E-10 | ○ |
| C-08 | 必須属性未指定でエラー | E-11 | ○ |
| C-09 | リーフ要素は子要素禁止 | E-12 | ○ |
| C-10 | リーフ要素は自己終了タグ生成 | E-12 | ○ |
| C-11 | nestListで文字列結合式を生成 | E-14 | ○ |
| C-12 | getIdentでnnkIdentを処理 | E-06 | ○ |
| C-13 | getIdentでnnkAccQuotedを処理 | E-06 | ○ |
| C-14 | deleteで属性をリストから削除 | E-07 | ○ |
| C-15 | MathMLタグがサポートされている | E-02, E-16 | ○ |
| C-16 | divはバッククォートで定義 | E-17 | ○ |
| C-17 | varはバッククォートで定義 | E-18 | ○ |
| C-18 | templateはバッククォートで定義 | E-19 | ○ |
| C-19 | objectはバッククォートで定義 | E-20 | ○ |
| C-20 | 自動エスケープは行われない | E-01 | ○ |
| C-21 | Karaxの使用が推奨される | E-01 | ○ |
| C-22 | from import nil形式が推奨 | E-01 | ○ |
| C-23 | accept-charsetなどハイフン属性はバッククォート | E-21 | ○ |
| C-24 | 無効な属性でエラー発生 | E-10 | ○ |

## 4) 不足情報（Unknown / Missing）
- すべての主張に根拠が存在するため、不足情報なし
- 参考：Karaxプロジェクト (https://github.com/pragmagic/karax)
- 参考：MathML仕様 (https://wikipedia.org/wiki/MathML)

## 5) リスクフラグ（レビュー観点）
- 0: 属性定数（低リスク - 単純な文字列定義）
- 1: xmlCheckedTag（中リスク - 属性検証の正確性）
- 0: getIdent（低リスク - 単純なノード解析）
- 0: delete（低リスク - 標準的なリスト操作）
- 0: HTMLタグマクロ（低リスク - xmlCheckedTagへの委譲）
- 1: MathMLタグマクロ（中リスク - 属性リストの正確性）
- 2: XSS対策（高リスク - ユーザー入力のエスケープは手動）

## 6) レビュアーチェックリスト（最小）
- [ ] coreAttr/eventAttr/ariaAttrの属性リストが正しいことを確認（46-58行目）
- [ ] data-*属性がstartsWith("data-")で検出されることを確認（95行目）
- [ ] 必須属性チェックでreq.len > 0を使用していることを確認（104行目）
- [ ] リーフ要素で" />"が追加されることを確認（110行目）
- [ ] nestListで"&"演算子が使用されることを確認（119行目）
- [ ] バッククォートタグ（div, var, template, object）が正しく定義されていることを確認
- [ ] MathMLタグでmathbackground/mathcolorが共通属性として含まれることを確認
