ADR-0015 — sandbox verification vs experiment-verified (twill 方式) の境界

Status: accepted · Date: 2026-05-23 · folio v0.4.2-draft

§1. Context

ADR-0013 で sandbox verification framework を採用したが、 folio の predecessor である twill plugin は「experiment-verified」 概念 (情報単位 verified、 HOW level claim に label 付与、 4-state lifecycle: proposed / accepted / experiment-verified / archived) を採用している (twill memory hash a6d6b7c1 / 09550ec2)。 folio が twill 方式を採用するか、 別方式を採用するかを明文化する必要がある。

user 確認 (2026-05-22): folio は constitution P-3 (WHAT-only) + P-11 (HOW 禁止) のため「情報単位 HOW」 の verified は spec に書けない。 「情報単位 experiment-verified」 は将来別 plugin として独立する予定で、 本 ADR-0013 framework は 機能単位 (use case 単位) の sandbox 検証のみを対象とする。

§2. Decision

§2.1 folio framework = 機能単位 sandbox verification

folio の verification framework (ADR-0013) は plugin の機能 (use case) を sandbox で実機検証することのみを対象とする。 検証対象例: PreToolUse hook の caller marker check / PostToolUse hook の JSON-LD lint / SessionStart hook の inventory inject。

§2.2 情報単位 experiment-verified は scope 外

spec 内の各 claim (例: 「Claude Code hooks は 29 種」 「ajv は最速の JSON Schema validator」 等) の HOW level verified label 付与は本 framework の対象外。 将来別 plugin folio-claim-verifier (仮称) として独立する設計余地を保持する。

§2.3 2 方式の境界表

twill (情報単位)folio (機能単位)
検証対象spec 内の各 claim (HOW level)plugin の use case (機能単位)
検証 markerexperiment-verified label を spec 内 inlinescenario YAML file (spec 本体外、 scratch/verification/scenarios/)
検証粒度1 claim = 1 EXP (例: EXP-019〜031)1 use case = 1 scenario (REQ 単位 with EARS)
spec 内容情報単位 verified label を含むWHAT-only (verified label なし、 cross-ref のみ)
constitution 整合(twill 独自設計)P-3 + P-11 + P-7 遵守
担当 plugintwill plugin 本体folio (機能単位) / folio-claim-verifier 仮称 (情報単位、 将来)

§2.4 採用しない理由 (3 件)

  1. P-3 WHAT-only 違反: 情報単位 verified label を spec 内に書くと、 spec が HOW を保持してしまう (どの EXP で verify したか、 verify したコマンド等)。 spec が「未来理想 anchor」 (P-1) でなくなる
  2. P-11 HOW 絶対禁止: experiment-verified の HOW (実行コマンド、 verify 結果のスニペット) は spec 本文に書けない (binding に隔離すべき内容)
  3. P-12 Layer 0 一体配布と矛盾: 情報単位 verified は spec を実装依存にする、 Layer 0 (folio rules) が「未来理想」 を提示する役割と整合しない

§3. Consequences

Positive

Negative

Neutral

§4. Alternatives Considered

採用しなかった理由
案 A: twill 方式を全面採用 (情報単位 verified label を spec inline)constitution P-3/P-11/P-12 と正面衝突、 user 明示で却下 (2026-05-22)
案 B: 機能単位 + 情報単位を folio core に両方統合folio framework 肥大化、 試作段階の minimal scope と矛盾、 将来別 plugin に分離する方が clean
案 C: verified 概念自体を採用しないresearch → spec への trace が薄くなる、 「未検証 claim を spec に書く」 リスク、 sandbox 検証 (機能単位) は P-3 違反しないので採用

§5. Trace