ADR-0030 — folio v1.0 stability criteria + version formalization (draft→1.0.0、 frozen-ADR provenance 保全、 strict-SemVer 移行)

Status: accepted · Date: 2026-05-26 · folio v0.5.0-draft · accepted (user 承認済 2026-05-27)。 §2.2 bump は criterion D (WS3 / 実 consumer adoption) PASS 後 = WS5

§1. Context

X5-γ (選択的完成) で ADR-0028 (二層 enforcement) + ADR-0029 (Phase F 4-agent) を起票し、 WS1 (prose-gate 機械化 = folio validate 6-gate) / WS2 (temporal agent + §7.2 改訂) / WS4 (minimal CI) を実装した。 残るは WS3 (full orchestration walk 検証) と version formalization (-draft 除去 → 1.0.0) である。

folio は現在 0.5.0-draftconstitution §5「1.0.0 未満は development phase、 1.0.0 以降は strict SemVer」と規定する。 すなわち v1.0.0 宣言は strict-SemVer への commitment であり、 安易な bump は許されない — 明示的で検査可能な stability criteria が前提となる。

さらに version meta 調査で 2 つの実態が判明した: (1) .claude-plugin/bin/folioVERSION 定数が 0.4.2-draft + ラベル "(Phase X3 試作)" で stale (canonical な framework version は plugin.json0.5.0-draftinventory/prime はこれを読む)。 (2) 各 spec の folio-version meta は authoring 時点の framework version = provenance ゆえ不均一 (実測 0.1.0×3 / 0.4.1×2 / 0.4.2×13 / 0.5.0×17)。 ゆえに「全 spec version meta を一括 bump」 は P-10 (constitution immutability) + frozen-ADR provenance (既存 ADR 本文不変) を破壊する。

本 ADR は (a) v1.0 昇格の stability criteria、 (b) version bump の 正確な scope、 (c) 1.0.0 以降の strict-SemVer breaking 定義、 (d) post-1.0 deferrals を規範化する。 status = proposed (user 承認待ち); 承認で accepted へ flip し WS5 (bump) を実行する。

§2. Decision

§2.1 v1.0 stability criteria (7 gate)

folio が 1.0.0 (= -draft 除去 + strict-SemVer 移行) を宣言できる条件を以下 7 criterion に確定する。 全充足が必要条件。

#criterion根拠現状
Aconstitution 凍結 (P-1〜P-13 確定、 pending amendment なし)§6 / P-10✓ (最終 amendment = ADR-0021 X4)
Bspec graph self-consistent (folio validate が folio 自身の architecture/ で clean)self-host dogfood (ADR-0023)✓ (6-gate clean、 28/236)
C二層 enforcement 完備 (deterministic floor 全 gate + LLM ceiling 全軸 present)ADR-0028 / ADR-0029✓ (floor REQ-CI-010/013/014/015/016 + ceiling 011/012 + Phase F 4-agent)
Dverification GREEN (sandbox 100% + e2e full orchestration walk PASS)verification §4.2部分 — sandbox ✓ (12/12) / orchestration walk = WS3 未
ECI gating active (minimal CI が validate + sandbox を PR ごと auto-run)ADR-0028 §2.4 (WS4)✓ (.github/workflows/ci.yml、 green)
FCLI surface 凍結 (version/help/init/inventory/prime/validate/fix の command set + 出力 contract が golden-locked)ADR-0018✓ (cli-golden harness)
Gconsumer contract 安定 (folio init scaffold + rules.html Layer 1 universal + folio.config.yaml schema)ADR-0024

結論: A/B/C/E/F/G は充足済。 残 gate は D の orchestration walk (WS3) のみ — WS3 PASS が v1.0 宣言の最終 gate である。

§2.2 version bump scope (1.0.0 昇格時)

1.0.0 昇格時に bump する対象を以下に 限定する。

「28 spec version meta 一括 bump」 は本 ADR で明示的に棄却する (frozen-ADR provenance + P-10 immutability の破壊)。

§2.3 strict-SemVer commitment (1.0.0 以降)

constitution §5 に従い 1.0.0 以降は strict SemVer。 folio の breaking 定義 (consumer が依存する surface = CLI 契約 + rules MUST + config schema) を明確化する:

bumpfolio framework での意味
MAJORCLI subcommand の削除/非互換変更、 gate の追加 or warn→block 昇格、 folio.config.yaml schema 非互換変更、 rules の MUST 要件 追加/変更、 constitution 原則の追加/削除 (constitution §5 と整合)
MINOR新 gate (warn)、 新 review agent、 新 CLI subcommand、 後方互換な spec 拡張
PATCHbug fix、 typo、 cross-ref 補正、 内部実装改善 (contract 不変)

§2.4 post-1.0 deferrals (v1.0 scope の境界)

v1.0 から明示的に除外し post-1.0 opt-in とする (削除でなく defer、 anchor は spec に保持):

§2.5 constitution version の扱い

framework version (plugin.json) と constitution version (constitution.htmlfolio-version) は別 traceである。 constitution は最終 amendment (ADR-0021、 X4) 時点の 0.5.0-draft を保持しており、 framework が 1.0.0 になっても constitution 文言が不変なら version meta は P-10 amendment なしに bump しない (constitution §5 は constitution 自身の改訂 policy)。 framework 1.0.0 リリースに合わせて constitution を「1.0.0 として凍結」する場合は別途 P-10 amendment (user 承認) を起票する。 本 ADR は constitution を touch しない (編集禁止)。

§2.6 適用範囲 (WS5、 承認後)

status を proposedaccepted へ flip 後に実施: §2.2 の bump 対象を編集 (living spec = caller marker 要 / plugin.json + bin/folio = marker 不要) + folio-self-spec status draft→stable + cli-golden 再生成 (runner.sh --accept、 version 文字列変化) + 本 ADR + decisions/README §3 の status 更新。 実装方式 (PARENT / SPAWN)・実施時点 (criterion D = WS3 PASS 後) は承認後に確定

§3. Consequences

Positive

Negative

Neutral

§4. Alternatives Considered

採用可否
明示的 7-criteria + scoped bump + strict-SemVer 定義 (採用)v1.0 を検査可能に gate 化し provenance を保全。 constitution §5 の strict-SemVer 移行に整合
X4/X5 を即 1.0.0 宣言 (β = X4 を v1.0)不採用 — criterion D (orchestration walk) 未検証で strict-SemVer commitment が早計。 X5 方向性 AskUq でも β は不採用
28 spec version meta を一括 bump不採用 — frozen-ADR provenance + constitution P-10 immutability を破壊。 version meta は authoring-time の historical record
-draft を無期限維持不採用 — framework が安定しても consumer に stable signal を出せず、 self-host dogfood (folio が自身を canonical layout で運用) の意義を損なう
bin/folio version を今すぐ 0.5.0 へ暫定 bump不採用 — version formalization は本 ADR で 1.0.0 へ一括が筋。 暫定 bump は二度手間 + cli-golden 再生成を 2 回招く

§5. Trace