ADR-0041 は人間層を「要件定義書のための汎用ビジュアル design system + 機械 SSoT からの生成 + 2-gate 検証」と再定義した。 そのうち生成方式は §2.4 で「高能力モデルに変更差分 + 現行 HTML を渡して再生成」 (= LLM が構造も prose も生成する)、 視覚言語は §2.2 で「deck 帯 (掴み) × 高密度コンポーネント (詳細) で情報量を保つ」と定めた。 epic folio-c5g の S2 (taxonomy folio-036) と S3 (部品庫 folio-8oc) を実装した上で、 S4 (generator folio-ruc) の着手前 grill (2026-06-15) で 2 つの divergence が顕在化した。
第一に、 生成の信頼性。 ADR-0041 §2.5 の EC checkout proof で、 LLM 生成が元 SSoT に無い RTM 行 (FR7→AC2→NFR1) を捏造したのが 1 観測された。 これは単一事例だが、 LLM が構造 (RTM / トレース / 要件表) まで生成する方式は原理的に plausible-but-wrong な構造を混入しうることを示す。 その混入を「検証で事後に止める」しかない限り、 「情報を落とさない / 歪めない」北極星に対して fail-open の窓 (検出漏れ) とコスト (生成のたびの re-review) が残る。 検証 (fidelity gate) は捏造を実際に止めた load-bearing な機構だが、 捏造を起こさせない構造の方が窓を 0 にできる。
第二に、 密系部品の可読性。 user が S3 の高密度成果を実機再評価し、 「密表 (RTM グリッド・要件マトリクス・NFR 表) が専門用語過多・日本語が不自然で、 正規エンジニアがなんとか読める水準どまり、 非エンジニアには読めない」と判定した。 ADR-0041 §2.2 は色帯 (掴み) と高密度コンポーネント (詳細) の two-register を定めるが、 密グリッドも非エンジニア primary view でそのまま読ませる前提に立つ。 トレース監査用の密グリッドを非エンジニアに直接読ませる前提自体が北極星 (非エンジニアが頑張れば読める) と緊張する。 「読みにくい prose」は生成側で、 「読ませる前提が無理な器」は提示側で、 別々に手当てが要る。
本 ADR は S4 着手前にこの 2 点を設計決定として確定し、 ADR-0041 の該当 sub-decision (§2.2 / §2.4) を refine する。 frozen ADR 本文は触らず、 本 ADR が divergence を宣言する (P-10)。
人間プレゼンの生成を 2 段に decomposition する。 (a) 決定的 assembler が構造化された入力 contract (要件レコード = 一意 id / 型 (FR/NFR/CON/ASM) / EARS clause / トレース端点 (上位ニーズ ↔ 要件 ↔ 検証) / 根拠出所、 加えて NFR メトリクス・用語・上位ニーズ) を読み、 文書の構造 (要件マトリクス表・NFR 表・RTM グリッド・優先度/検証バッジ・被覆) を data-component 付きで機械組立する。 RTM / トレースの各セルはトレースデータから決定的に導出するため、 元に無い行・列・リンクの捏造は原理的に不可能になる (構成上 fabrication-free)。 (b) opus は assembler が空で残した prose スロット (章リード / 「なぜ要る」根拠 / 専門語のやさしい併記 / 1 文サマリ) だけを充填する。 決定的 assembler が入力 contract の表現力を超える内容 (非定型な制約・自由記述) は prose スロットへ逃がす (§3 リスク)。
これは ADR-0041 §2.4 (LLM が構造も prose も生成) を refine する。 更新フロー (変更差分 + 現行 prose を渡して再生成し、 更新日時で同期を追跡) は prose 層で踏襲しつつ、 構造は SSoT から毎回決定的に再組立する (構造に「差分編集」を介在させない)。 帰結として fidelity gate (ADR-0041 §2.5(b)) の検査の重心は「構造の捏造検出」から「prose の忠実性」へ移る — ただし prose に移っても無検査ではなく、 特に B の要約スロット (§2.2) は折りたたんだ構造についての prose 主張ゆえ、 要約 ↔ 構造の整合を fidelity ceiling が突合する (§3 リスク参照)。 dogfood の入力源は folio 自身の spec graph (EARS normative + JSON-LD relations + RTM データ) とする。
密系部品 (dense table / list / grid の総称、 本書では「密表」とも書く) を 2 つの可読化処理 + 据置に分け、 assembler が非エンジニア可読 affordance を構造的に保証する。 振り分けの決定性の出所は処理ごとに異なる — B は register 境界で機械判定でき、 A と据置は taxonomy §3 で確定する部品 id の明示集合 (allowlist) で判定する (allowlist は register をまたぐため register 境界では決まらない)。
| 処理 | 対象 (判定根拠) | assembler が必ず生成するもの (MUST スロット) |
|---|---|---|
| B = 畳む | rtm-grid register 全体 (rtm-grid MUST / verification-method-grid MUST / requirement-attributes-rtm SHOULD = トレース監査の道具)。 register-pure ゆえ機械判定。 |
人間ビューで既定折りたたみ (details 等) + 直前に空不可の平易要約スロット (例「全 N 件の要件が出所と検証に結びつくことを示す表」)。 図リードは任意。 全グリッドは保持し AI/印刷は展開 (情報は畳むだけで欠落しない)。 SHOULD 部品 requirement-attributes-rtm は出力に含まれる時のみ B 処理 MUST (MUST-when-present)。 |
| A = 噛み砕く | 明示集合 {requirement-matrix-table (dense-table) / nfr-metrics-table (dense-table) / ears-requirement-row (dense-list)} = 要件本体・NFR。 register をまたぐ allowlist。 |
各行に空不可の plain-language スロット (やさしい言い換え) + 専門語の plain-language-term-inline 自動併記。 畳まない (文書の本体ゆえ)。 |
| 据置 | 明示集合 {glossary-term-table / references-list / revision-history-table / toc-navigator / source-trace-origin / supporting-info-appendix}。 |
既存のまま、 軽い注釈のみ (plain スロットは SHOULD)。 source-trace-origin は dense-table・MUST だが、 id ↔ 上位ニーズの単純 lookup ゆえ cross-product の監査グリッドより平易と判断し据置 (B 候補だが grid でないため A/B いずれにも倒さない)。 |
本表は代表部品の例示であり exhaustive partition ではない。 taxonomy §3.2 の他の MUST dense 部品 (interface-spec-table・actor-stakeholder-table・scope-summary-panel・ui-spec-block・product-functions-list・assumptions-constraints-list・acceptance-criteria-checklist 等) を含む全 dense 部品の A/据置 完全カタログ (部品 id allowlist) は S6 (folio-16y) で凍結する。
これは ADR-0041 §2.2 (視覚言語 — 色帯 + 高密度コンポーネントで詳細を保持) を refine する。 ADR-0041 §2.2 は密グリッドも非エンジニア primary view でそのまま読ませる前提に立つが、 本 ADR はその前提を「監査グリッドは平易要約の背後へ畳み、 要件本体は plain 行で噛み砕く」へ refine する。 高密度はfidelity の背骨として全 DOM 保持・展開可のまま残し、 主役の配置だけ変える (「読ませない部分は畳んで保持・読ませる部分は噛み砕く」)。
§2.1/§2.2 が導入する新規スロット (B 要約スロット・A plain 行・折りたたみ容器) の非空は floor で測れる設計とする。 ただし taxonomy §5.2 の gate G (no-TBD = 必須スロットの空/TODO = 0) は現状 (a) research domain の taxonomy にのみ存在し verification.html の REQ には未収録、 (b) taxonomy §7.2 が S5 (folio-vhy) へ申し送った未実装 arm、 (c) 既存 scope = MUST 部品の必須スロット、 である。 よって本 ADR は規範化先 (rules / verification) に対し、 (i) 新 B/A スロットを部品の必須スロットとして taxonomy §3 へ登録し gate G の被覆対象に加える contract、 (ii) S5 でのその floor 実装、 を課す (SHOULD 部品 requirement-attributes-rtm のスロットは MUST-when-present = 出力に含まれる時のみ非空を hard-require)。
登録・実装後、 スロットの存在 / 非空は floor、 要約の質 / 原本忠実性は ceiling (gate I persona walk + gate J fidelity)、 で二層 (taxonomy §5.1「floor 単独で GREEN 宣言不可」) を保つ。 これにより可読化 affordance の存在だけを測って中身を測らない Goodhart 再発 (ADR-0040 が「長さだけ測って読めない」で犯した失敗の同型) を防ぐ — ただし測る floor 自体を S5 で建てることが前提であり、 本 ADR はそれを実装責務として課す。
本 ADR は forward decision であり、 status = accepted (2026-06-15 user 承認)。 ADR-0041 の §2.2 (視覚言語) と §2.4 (生成方式) を partial-revise する — frozen 本文は触らず、 本 ADR が divergence を宣言し rules.html (living) が新規範を持つ (P-10 の divergence trace 流儀。 ADR-0032 が ADR-0030/ADR-0031 を partial-revise したのと同型)。
revise 集合と不変集合は disjoint に保つ (ADR-0032 の規律): revise = §2.2 (視覚言語) + §2.4 (生成方式)、 不変 = §2.1 (design system) + §2.3 (再提示原則) + §2.5 (2-gate) + §2.6 (γ scope)。 ADR-0041 は accepted のまま据置 (epic の founding decision・design system / 2-gate / γ scope は不変)。 本 ADR は taxonomy (S2 folio-036) §3 (37 部品の register 分類) / §5 (二層 done-condition) を実装の前提とし、 S4 (generator folio-ruc) の assembler 設計・S5 (2-gate folio-vhy)・S6 (rules folio-16y) を gate する。
partial-revise 対象: ADR-0041 §2.4 (生成方式 = 全 LLM → 決定的構造組立 + opus prose 充填)・§2.2 (視覚言語 — 高密度を人間 primary でそのまま読ませる前提 → 監査グリッドは平易要約の背後へ畳む)。 不変 (disjoint): ADR-0041 §2.1 (design system) / §2.3 (再提示原則) / §2.5 (2-gate) / §2.6 (γ scope)。 frozen 本文不変、 本 ADR が divergence 宣言、 ADR-0041 は accepted 据置。 partial-revise の先例: ADR-0032 (ADR-0030/0031 を partial-revise、 revise/不変 集合を disjoint に保つ)。 改訂連鎖: ADR-0040 (圧縮 = 隠蔽 → ADR-0041 視覚再提示 → 本 ADR ハイブリッド生成 + A/B 可読化)。 継承: ADR-0033 (derive 原理 + ゼロ損失 DOM 保持 を別ファイル決定的組立で具体化)、 ADR-0037 (floor/ceiling 語彙 — 決定的 floor と LLM ceiling の分離を §2.3 が踏襲)。 接地: taxonomy (S2 folio-036) §3 (37 部品の register 分類) / §5 (floor A–H + ceiling I–J)。 規範化先: rules.html (ハイブリッド生成 contract + A/B 部品 id allowlist + 入力 contract)。 floor 接続: verification.html (新 B/A スロットの非空を測る gate G no-TBD REQ を S5 で追加する — 現状未収録)。 version: ADR-0030 (本 ADR 自身の文書版 = 1.0.0、 記録する実装到達版 = 後方互換 MINOR 1.1.0、 strict-SemVer)。 追跡: bd epic folio-c5g (S4 folio-ruc generator が本 ADR を実装規範とする / S5 folio-vhy gate / S6 folio-16y rules)。 決定の経緯: user grill 2026-06-15 (S4 着手前 — 論点 1 戦略 C 折衷 / 論点 2 register-B + allowlist-A の出し分け / 論点 3 新 ADR で記録) + EC checkout proof (LLM の RTM 行捏造 1 観測)。