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-draft。 constitution §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/folio の VERSION 定数が 0.4.2-draft + ラベル "(Phase X3 試作)" で stale (canonical な framework version は plugin.json の 0.5.0-draft、 inventory/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) を実行する。
folio が 1.0.0 (= -draft 除去 + strict-SemVer 移行) を宣言できる条件を以下 7 criterion に確定する。 全充足が必要条件。
| # | criterion | 根拠 | 現状 |
|---|---|---|---|
| A | constitution 凍結 (P-1〜P-13 確定、 pending amendment なし) | §6 / P-10 | ✓ (最終 amendment = ADR-0021 X4) |
| B | spec 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) |
| D | verification GREEN (sandbox 100% + e2e full orchestration walk PASS) | verification §4.2 | 部分 — sandbox ✓ (12/12) / orchestration walk = WS3 未 |
| E | CI gating active (minimal CI が validate + sandbox を PR ごと auto-run) | ADR-0028 §2.4 (WS4) | ✓ (.github/workflows/ci.yml、 green) |
| F | CLI surface 凍結 (version/help/init/inventory/prime/validate/fix の command set + 出力 contract が golden-locked) | ADR-0018 | ✓ (cli-golden harness) |
| G | consumer 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 である。
1.0.0 昇格時に bump する対象を以下に 限定する。
folio-self-spec / rules / relations / verification + spec/decisions/research の各 README = 計 7 本の folio-version meta を 1.0.0 へ。 加えて folio-self-spec の folio-status を draft → stable (他 living spec の status は draft→active を個別判断)。plugin.json: version を 1.0.0 へ (canonical = inventory/prime の出所)。.claude-plugin/bin/folio: VERSION 定数を 1.0.0 へ + ラベル "(Phase X3 試作)" を除去 (現状 0.4.2-draft stale の是正)。folio-version meta は authoring-time provenance ゆえ据置 (本文不変 = historical record、 -draft 残存が正)。 reverse link metadata の維持 (folio fix) は本文不変ゆえ別 (継続可)。constitution.html: version meta の bump は P-10 amendment 扱い (user 承認 MUST) — §2.5 参照。「28 spec version meta 一括 bump」 は本 ADR で明示的に棄却する (frozen-ADR provenance + P-10 immutability の破壊)。
constitution §5 に従い 1.0.0 以降は strict SemVer。 folio の breaking 定義 (consumer が依存する surface = CLI 契約 + rules MUST + config schema) を明確化する:
| bump | folio framework での意味 |
|---|---|
| MAJOR | CLI subcommand の削除/非互換変更、 gate の追加 or warn→block 昇格、 folio.config.yaml schema 非互換変更、 rules の MUST 要件 追加/変更、 constitution 原則の追加/削除 (constitution §5 と整合) |
| MINOR | 新 gate (warn)、 新 review agent、 新 CLI subcommand、 後方互換な spec 拡張 |
| PATCH | bug fix、 typo、 cross-ref 補正、 内部実装改善 (contract 不変) |
v1.0 から明示的に除外し post-1.0 opt-in とする (削除でなく defer、 anchor は spec に保持):
spec-explorer / spec-architect / spec-review-stakeholder (ADR-0029 §2.4)。folio: namespace URI (https://folio.dev/spec/v1/) の解決可能化 (relations §2、 hosting 要 — placeholder 維持で v1.0 は機能する)。framework version (plugin.json) と constitution version (constitution.html の folio-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 しない (編集禁止)。
status を proposed → accepted へ 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 後) は承認後に確定。
bin/folio version の stale (0.4.2-draft + "Phase X3 試作") は WS5 まで残る (folio version 出力のみ。 inventory/prime は正しい 0.5.0-draft)。| 案 | 採用可否 |
|---|---|
| 明示的 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 回招く |