📝 docs: ADR-023 S5-4 soak close-out — Decision 6 (iii) discharged - #1686
Merged
Conversation
The S5-4 shared-engine soak passed on TestFlight v1.3+888 (iPhone 16e, ja), evidence recorded on #501. All three Decision 6 sub-conditions are now discharged, so Decision 6 fires at S5-5 — which is opened as #1685. - ADR-023: date-stamp D1 (i) and (iii), record the soak outcome and the #1632 residual's discharge on the S5-4 bullet, and correct the Stage-5 rulings clause that said the Swift Engine's tenure ends at S5-4 (the switch shipped opt-in, so it ends at S5-5). - ADR-004: new §12 for the (iii) discharge (§11 is a shipped amendment, so it is not rewritten), plus an in-place correction of §11's bullet, which bundled (i) with (iii) as S5-4's when Stage 4 had already closed it. - Status doc, ROADMAP, and the soak runbook's executed banner. Part of #501 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KSRtePjA4a99FTUxDtMt3v
Review findings on the S5-4 close-out docs. - "all four bundled presets" over-reported: six presets ship, the runbook deliberately names four for phase-type coverage. Reworded in all three files; the two omitted presets are a strict subset of the four's phase types (verified against the YAML), so the selection is stated as such. - S5-4's switch landed 2026-09-06, not 2026-09-05 — bb80783's merge date. Corrected in ADR-023 and ROADMAP with a marker. - Decision 6 (i)'s discharge cited #1633, the Stage-5 rulings issue. Stage 4 closed on its S6 residue, #1629 (ADR-023 §15). - ADR-004's INDEX row and Status line now name §12, matching what §11 set. - Soak runbook: past tense for the discharged cycle, and drop a stale "three runs" that predated the fourth preset. Part of #501 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KSRtePjA4a99FTUxDtMt3v
CI Report
LintSwiftLint: did not run Release Build (ADR-005 §8 guard)Release-iphoneos symbol guard: did not run Demo Replay Drift GuardDemo replay drift guard: passed Test Results
Coverage
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ADR-023 Stage 5 の S5-4(flag-gated Kotlin engine switch)を締めるドキュメント専用 PR。オペレーターが
docs/qa/kmp-soak-qa.mdの soak を TestFlightv1.3+888(iPhone 16e、端末言語ja)で実施し PASS、証跡は #501 のコメント。これで ADR-023 Decision 6 の (iii) が消化され、三条件すべてが揃った。ただし既定はまだ Swift エンジンのまま。 S5-4 のスイッチは opt-in(
FeatureFlags.sharedEngineEnabled、既定 off)であり、既定をフリップするのは S5-5。三条件の消化は「切り替えを許可する」ことであって「切り替える」ことではない、という区別を ADR 本文に明記した。変更点:
appleMainlocalizedFormatの ja actual)の消化を追記。Stage-5 rulings の "Until S5-4 fires" は事実として陳腐化していたので "Until S5-5 flips the default" に訂正。## 12. Amendment 2026-09-06を新設。§11 は 2026-09-05 時点の履歴なので書き換えず、Decision 6 (i) を S5-4 の宿題として (iii) と束ねていた誤りだけを事実訂正として in-place で直した。docs/qa/kmp-soak-qa.md: 実施済みバナー(h7 runbook と同型)。S5-5 のクローズアウトは #1685 に起票済み。
Test plan
ドキュメント専用の変更のため、ユニットスイートと SwiftLint は実行していない。
git diff --name-only | scripts/precommit-gate-classify.shがbuild/lintトークンを返さず、pre-commit フックも両方をスキップした(CI の PR path-gating も同じスクリプトを使う)。kmp-statusゲートは通過(14 handlers, board reconcile 両方向)。内容面の検証:
Pastura/Pastura/Resources/Presets/に照らして確認。boketeとsouzoku_kaigiの phase type は runbook が挙げる 4 プリセットの真部分集合であることを YAML で実測した。bb807838のマージ日 2026-09-06 に訂正(レビュー指摘)。Review
レビュアー: Opus(
docs/decisions/は sensitive base)。初回 FAIL、Warning 4 件。Suggestion 4 件(runbook の未来形、"three runs" の off-by-one、§12 のストリーミング行の記載漏れ、Status 行のポインタ)もすべて適用。却下した指摘はない。
Device QA
実機QA不要 — ドキュメントのみの変更で、ビルド成果物に影響しない。この PR が記録している実機 QA そのものは既に完了済み(
v1.3+888、#501 の証跡コメント)。Part of #501
🤖 Generated with Claude Code
https://claude.ai/code/session_01KSRtePjA4a99FTUxDtMt3v