folio の dual-audience 文書 (人間層 = 平易プレゼン + 機械層 = 精密 normative を 1 つの HTML に同居させる形式) の consistency は、 ADR-0033 §2.3 の Option B = co-author + enforce で守られてきた: human essence を data-audience="human" に手書きし、 machine normative を data-audience="machine" に併記し、 両層の一致を ADR-0028 の二層 enforcement (deterministic floor + LLM ceiling) で強制する。 ADR-0033 はこの選択の代償を当時から自覚していた — 「consistency が構造的でなく強制依存 (LLM ceiling が load-bearing)、 prior art 無し」。 そして Option A' = derive-into-DOM (machine SSoT から human view を生成し同一 DOM に埋め込む、 Bikeshed / ReSpec snapshot モデル) を中長期 roadmap として残し、 「移行は後続 ADR で評価する」と明示予約した。 本 ADR がその後続 ADR である。
予約当時に存在しなかった前提が、 その後の実装で成立した。 folio design-system generator (engine、 ADR-0043〜ADR-0046 ほか) が 13 doc-type の pack (contract YAML → assembler → data-audience 二層 DOM の生成) を実戦化し、 生成物を照合する検証体制 — deterministic floor (fabrication-free / round-trip / graph 等) + 独立 ceiling (gate J = fidelity-* 11 doc-type / gate I = persona-walk / finding-refuter 2-pass) — が確立した。 vision と glossary は既に SSoT-first (contract が正本・HTML は生成物) で運用実績を持ち、 ADR-0045 は rules.html 1 文書の機械層逐語 extract (round-trip 実証) を確定して flip (後半) を明示 defer し、 その後の後続実装が relations / verification へ extract を展開して spec 系 3 本の contract は現物として存在する。 なお derive 原理そのものは ADR-0041 が別ファイル形態 (機械 SSoT からの生成プレゼン artifact) で先行起動し、 into-DOM 版を roadmap 据置としていた — 本 ADR はその into-DOM 版の発動である。 つまり Option A' の評価に必要な「導出の実装と、 導出物を照合する gate」の両方が、 roadmap 予約時と違い現物で存在する。
一方、 co-author + enforce の代償は実害として顕在化した。 rules 1.2.0 vs contract 1.0.0 の 2 版 drift (bd folio-aog が消耗戦を実証) が示すとおり、 手書き二層の drift は enforcement では源から消えない。 prior art (DITA / literate programming) が double-SSoT を「導出」で構造保証するのに対し、 co-author + enforcement は folio 固有の novelty であり、 enforcement は「機械的導出の代役」(ADR-0033 §2.4) に留まる。 folio-rgtc grill (2026-07-13) は論点6 で SSoT の向き = A-where-possible (反転可能な doc-type は contract YAML を正本へ反転) を master crux として裁定し、 その帰結として enforcement の再定義 (論点11b(1)) を承認した。
dual-audience 文書の consistency enforcement を次のとおり再定義する: 人間層 (平易プレゼン) は正本 (contract YAML) から derive し、 gate J (fidelity-*) ほか独立 ceiling で照合する。 これは ADR-0033 §2.3 が roadmap 予約した Option A' 系の発動であり、 実装 vehicle は Bikeshed 型の外部 build ではなく folio engine (design-system generator の pack assembler) である — 正本 (contract YAML) から assembler が人間層・機械層 (data-audience 二層) の両方を含む 1 DOM を生成し、 deterministic floor が構造・集合・逐語一致を、 独立 ceiling (fidelity-* = 捏造/情報落ち/歪み、 persona-walk = 読書体験) が意味面を照合する。 consistency は「強制で守る」ものから「導出で構造的に成立し、 照合で確認する」ものへ変わる。
転換されるのは enforcement 実体のみで、 1-DOM の形 (data-audience 二層 DOM、 ADR-0033 §2.2 の taxonomy) は生成物で保存される — assembler は human 層と machine 層を従来どおり 1 つの HTML に emit し、 no-JS graceful degrade・AI 直読・1 artifact の利点 (ADR-0033 が Option B を選んだ理由の大半) は生成物側で維持される。 ADR-0033 が Option A' の懸念とした build step と P-13 の緊張は、 生成が Layer 0 の authoring 内部工程であり consumer に build を mandate しない (P-13(b): 実装適合性の配置は各 stack 慣習・folio 非 mandate) ことで解消する — consumer が受け取る配布物は従来どおり静的 HTML である。
本再定義の適用範囲は SSoT-first で運用される doc (現に flip 済みの vision / glossary、 以後 flip する rules / relations / verification 等の hybrid-flip 群) である。 未 flip の手書き doc には、 flip までの間 ADR-0028/0033 の co-author 規律が経過措置として存続する (hybrid 経路: 逐語逆抽出で bootstrap → flip 直前に再抽出で鮮度合わせ → 以後 contract 編集の SSoT-first 定常)。 frozen ADR は flip しない (extract-only)。 新規 spec の authoring は SSoT-first を正式 policy とし (発効 = graph emit keystone 完成後)、 それまでの暫定橋渡し gate として「手書き新設時は contract 同時更新必須」が即時発効する (実装 = bd folio-yjap)。 gate の規範反映先は folio-yjap 実装時に rules 側 (§10 系) へ確定する — 本 ADR は WHY + cross-ref に留まる (ADR-0047 が「規範反映 = rules §10.2」を明示した先例に従う)。
constitution は本 ADR の一般規定 (§2.1〜§2.3) の適用外とし、 folio-rgtc 論点10 の固有裁定に従う: (1) 恒久 exempt は却下され、 constitution も最終的に folio 生成形式へ揃える — ただし位置は dead-last (全 doc-type の flip 型が実戦で枯れた最後)。 (2) P-10 の二段構え — 切替後は contract YAML が不変資産となり P-10 gate は YAML 編集へ掛け直す。 切替の実行自体に P-10 Amendment (user 正式承認) を要する (grill 裁定は方針決定であり Amendment ではない)。 (3) 前提実装 — @type=FolioConstitution emit + spec graph scan 除外挙動の厳密再現 + staging→flip + 独立 ceiling 審査 + 手書き版 archive 保全。 これらが満たされるまで constitution.html は手書きの不変資産のままである。
本 ADR は以下を supersede する (部分。 ADR-0026 先例に従い、 各 ADR の他の決定は不変ゆえ dc:replaces でなく dc:references + 本 § / §5 で trace する。 frozen 本文は P-6 のもと不触で、 supersede 関係は本 ADR 側にのみ記す):
| 案 | 採用可否 |
|---|---|
| derive + gate J 照合へ転換 (採用) | ADR-0033 予約の Option A' 系。 consistency を構造保証化し drift を源から消す。 生成・照合の実装が現物で存在し評価前提が成立 |
| Option B (co-author + enforce) の恒久維持 | 不採用 — drift が enforcement では源から消えない (folio-aog の消耗戦が実証)。 「完璧な文書」の北極星に届かない |
| 純 derive で 1-DOM を捨て別 artifact の human view | 不採用 — 1 artifact・AI 直読・no-JS degrade という ADR-0033 の確立利益を失う。 二層 DOM は生成物で保存可能であり捨てる理由がない |
| 全 doc 一律の即時転換 | 不採用 — constitution は P-10 (不変資産・Amendment 必須) が掛かり原理的に即時参加不能。 frozen ADR は歴史記録で flip 対象外。 4 bucket の個別裁定 (論点6続き/10) が実態に整合 |