# Semantic guide conversion QC — PASS

Generated: 2026-09-16T19:53:04+09:00

Deterministic conversion (PyMuPDF text layer + ruling grid, no OCR, no LLM). Each gate re-derives its evidence from the source PDF and the built HTML.

## trq01 — トルカプ 適正使用ガイド — **PASS**

lines 2984 / headings 50 / tables 28 / figures 12 / html sha256 `3b44f382498289d1`

| gate | result | evidence |
|---|---|---|
| `source_identity` — Source PDF matches the approved hash | **PASS** | {"sha256": "4a7b5bf6bb42a5fb"} |
| `page_accounting` — Every converted page produced content; reprint pages declared | **PASS** | {"pages": 28, "emptyPages": [], "declaredReprintPages": [26, 27]} |
| `ledger_exactness` — Glyph model rebuilt from the PDF; every line claimed exactly once | **PASS** | {"lines": 2984, "owners": {"block": 368, "furniture": 1383, "table": 943, "figure": 290}, "problems": []} |
| `text_completeness` — Character multiset of the HTML vs the PDF text layer | **PASS** | {"sourceChars": 20673, "htmlChars": 20673, "missing": 0, "extra": 0, "missingSample": {}, "extraSample": {}} |
| `business_tokens` — Dose/strength, percentages, counts, dates: occurrence counts equal | **PASS** | {"sourceTokens": 344, "htmlTokens": 344, "missing": {}, "extraInformational": {}} |
| `table_cell_coverage` — Every character inside a table lands in exactly one cell; cell text re-derived | **PASS** | {"tables": 28, "cells": 628, "problems": []} |
| `asset_integrity` — Every figure crop is pixel-identical to a fresh 3x render | **PASS** | {"figures": 12, "problems": []} |
| `figure_isolation` — No foreign text or table inside a figure crop | **PASS** | {"problems": []} |
| `heading_inventory` — Every printed contents entry links to a real HTML heading | **PASS** | {"contentsEntries": 34, "linkedToHeadings": 34, "unresolved": [], "htmlHeadings": 51} |
| `heading_sanity` — No fragment/bullet/over-long headings; chapters 1-4 present | **PASS** | {"headings": 51, "bad": [], "chapters": ["適正使用に関するお願い", "目次", "1.投与に際しての注意事項", "2.注意を要する副作用とその対策", "3.参考資料", "4.引用文献"]} |
| `link_validity` — No dead anchors or duplicate ids | **PASS** | {"internalLinks": 67, "dead": [], "duplicateIds": [], "externalLinks": 17} |
| `reading_order` — Blocks emitted top to bottom per page | **PASS** | {"problems": []} |
| `presentation_contract` — One h1, lang=ja, real th cells, no page images, one PI link, no absolute layout | **PASS** | {"problems": [], "tables": 28, "figures": 12, "images": 12} |

