日本語 · English(未訳)

Kairos ドキュメント最終レビュー(第11回)— 1.0(9/14)前の綻び出し

対象: 本体 azathothx/kairos-lang HEAD a16377c(第10回 0272244 から8コミット・約2,100行: ADR-51〜53(at/takeLast/時刻リテラル Thh:mm)・糖衣定義ページ・節気データ訂正・旧暦2033年問題の明文化・617テスト)+検定 kairos-lang-exam HEAD 2c931f3(変更なし) レビュー日: 2026-08-27(公開まで18日) 方法(5面): ①新規読者視点の通読更新 ②追補15分を遡り「仕様の縫い目」の敵対的検査 ③検定全体の最新仕様突合 ④宣言日リハーサル棚卸し ⑤全機械検証——3並行のフレッシュスイート(HIGH/主要MEDIUMは手当り全件ソース裏取り・検定34ブロックを617実装で再実走(全通過)・本体617/617・機械バッテリー全green)


0. 総評

最終スイートは実を結びました。宣言前に直すべき指摘が4件(A〜D)見つかっています。いずれも直近の追補(ADR-49〜52)が共有規範(README の「できないこと」・EBNF・輸送表)に触れ漏れした同一の型で、修正はどれも小規模です。それ以外の意味論・データ・実行例・翻訳・機械の網はすべて健全で、検定の全34ブロックは最新実装でも全通過。節気訂正の波及も完全、ADR-53 の新規化に抵触する既存例もゼロでした。A〜D を潰せば 9/14 の出荷に耐えます。

実測サマリ(全て通過)

検証 結果
本体スイート 617/617(4入口の記載値と一致)
検定34ブロック実走(617実装) 全通過——take/takeLast/at/ADR-53 導入後も検定の全期待値が有効
リンク(192 md)・不可視文字・en≡ja同一性・source_sha・Playground指紋 全て green
節気訂正(清明 4/5・芒種 6/6)の波及 reference・40-examples・fixture・en 全箇所一貫(95-reference-data の一次値はもともと正・旧誤値の残存ゼロ・立春起点の八十八夜/二百十日は無影響)
ADR-53(ラムダ捕獲の静的エラー) 仕様への繋ぎ込み一貫・既存ドキュメントの全例が新規化下でも合法(敵対 grep で違反ゼロ)
検定19問の正答 全問が現行仕様でも正しく・かつ正準形のまま(at/take による置き換え対象なし——各 reference の落とし穴を検定の形がむしろ正当な誘導例として先取り)

1. 宣言前必修(A〜D・いずれも小規模修正)

[A] README(英)の「できないこと」に COUNT が残存。 README.md:76 は「count-based termination (RRULE COUNT)」を今もできないこととして列挙しています。これは ADR-49 の take(n, from:) で解消済みで、spec §1.2 の比較表は日英とも打ち消し線+「Resolved (ADR-49)」に更新済みです。README だけ読んだ新規読者が「先頭N個は不可能」と誤解した直後に reference/take.md が覆す構図。該当行を削除か「resolved by take」の一言に(ja README は同リストを持たず spec 参照のため無傷)。

[B] EBNF の param-keyuntil が無い(takeLast(n, until:) が文法上導出不能)。 spec/40-grammar.md:202-204(en 同)の param-key は14語で ADR-52 の until が含まれず、§5.2/§4.7/glossary/reference が規定する takeLast(3, until: 2026-08-21) は EBNF から導けません。実装は動作している(impl/README は「EBNF をそのままパーサに」と主張)。仕様と文法の直接矛盾です。同時に発見された既存欠落: rebase(to:)to も昔から param-key に無い(ADR-40 が追加を怠った・11回のレビューをすり抜けた初検出)。同じ1行で両方直せます。ADR-46 が kind/source を足した前例どおり param-key へ "to" | "until" を追補。

[C] §4.10 輸送表に takeLast 行が無い。 spec/30-body-layer.md:387 自身が「core 全演算子に輸送行を義務づける(行の無い演算子は註釈を運ばない)」と規定し、直下の表(:391-400)に「take 行はあるが takeLast 行がありません」。ADR-52 判断4(鏡像輸送+条件付き縮小)と reference/takeLast.md は輸送を規定済みなので、字面どおり読むと自己矛盾。ADR-52 の文言で1行追加(en+source_sha 同時)。

[D] 状態行4入口が「追補 13・2026-08-21」のまま。 CHANGELOG には追補 14・15(2026-08-26)が収蔵済みで、同じ状態行のテスト数だけが 617 に更新されています——「テスト数は機械検査・追補番号は手動」の間隙で生じる、第3回指摘B と同型のドリフト。spec/README.md:6README.md:148README.ja.md:31en/spec/README.md:7 を「追補 15・2026-08-26」へ。再発防止: doc-consistency のテスト数検査と同じ枠で「状態行の追補番号 == CHANGELOG の最終追補番号」を1本足せば恒久化します(1.0 後は「1.0+追補N」に読み替えて同じ網を使えます)。

2. 宣言前推奨(MEDIUM)

3. LOW(任意・9/14 までに余裕があれば)

glossary 値型行に「単独時刻」欠落/impl/README の機構列挙が ADR-46 で停止・テスト一覧「28中18ファイル」/検証録11の「555 テスト」vs 追補12「552」(同日付の記録齟齬)/README 英日のフォルダ列に recipes・検証録11 が不足(llms.txt は正確)/英語 README の mermaid に全角括弧/検定 README「v1」vs L1教本「v1.1」・便の front matter と解説の HEAD 不一致3件/EBNF の既存非終端(digit2/digit4/digits/letter が未定義非終端・elapsed-width が空導出可・パラメータ付き束縛への covering 後置を許す)——最後の EBNF 群は 1.0 の文法凍結前に一度だけ棚卸しする価値があります。

4. 宣言日(9/14)棚卸し——「RC5」言及の全数

計画(70-release 作業一覧2)どおりの一斉更新対象を機械列挙しました。本体15行: 状態行4(README 英日・spec/README・en/spec/README)=[D]と同時更新/llms.txt:11/Playground 注記2(ja/en index.html:11)/§5.4 の経緯記述2(spec/40-grammar.md:234・en:306)と reference/table-literal.md:64・en:86 の「RC5 追補 9」引用=歴史表記なので残す(計画済みの「RC5 残存検査」にはこの4行の許容リストが必要)/design/70-release-1.0.md 内3行=手順書自身。検定4行: README.md:51・教本3冊の「RC5 準拠」——spec_head 一括更新(22ハンチ→1.0 タグ)と検証ブロック再実走を。他に検定に「リリース候補」の語は無く、この4行で全部です。

5. まとめ

項目 判定
出荷可否 A〜D(README の COUNT・EBNF の until/to・輸送表 takeLast 行・状態行の追補番号)を潰せば GO——いずれも数行の修正
意味論・データ・実行例 全 green(節気訂正の波及完全・ADR-53 抵触ゼロ・検定34/34)
検定 全問正準のまま。J の一句+9/14 の RC5 追従のみ
宣言日作業 棚卸し完了(本体15行+検定4行・歴史表記4行の許容リスト付き)
構造的知見 今回の A〜D は全て「新語彙が共有規範(入口の否定リスト・EBNF・輸送表・状態行)に届かなかった」型。恒久化は [D] の追補番号検査に加え、「新 ADR 確定時のチェックリスト(EBNF param-key・輸送表・整列表・入口の否定リスト)」を ADR テンプレートに4行足すと、1.0 後の追補でもこの型が構造的に止まります

11回を通じて、残っている綻びは「機械の網がまだ張られていない縫い目」だけになりました。A〜D と宣言日手順はどれも軽く、9/14 の 1.0 は現実的に十分間に合います。良い公開を——そして、公開後の最初の追補でこの網がそのまま効きます。


処置記録(2026-08-27・受領同日)

必修 A〜D=全消化: [A] README 英の COUNT 行を解消済み注記へ(「was on this list until ADR-49」)[B] EBNF param-key へ "to" | "until" 追補(日英・ADR-40/52 の欠落補綴)[C] 輸送表へ takeLast 行(ADR-52 判断 4 の文言・日英)[D] 状態行 4 入口を「追補 15〈2026-08-26〉」へ+ doc-consistency に「状態行の追補番号 == CHANGELOG 最終追補番号」検査を新設(1.0 後は 「1.0+追補 N」へ読み替えて同じ網)。

MEDIUM E〜L=全消化: [E] 整列表保存行へ take/takeLast [F] §4.8 に循環静的エラーの 1 文 (§5.3 相互参照・日英)[G] F111 ログを実態(①明文化は 8/21 実施済み)へ更新+追補 13 冒頭に 欠番期(8/20 の F110・sugar-definition 新設)の補記 [H] 英語側 3 箇所を 53 へ+検査を英語形 (”N ADRs”)と design/README へ拡張——新検査が即座に 4 箇所目(en/spec/README の「50 ADRs」)を 検出・修正 [I] README 比較表の BDC 列を △ へ(spec の判定根拠に文言も整合)[J] 検定 L2-013 の 「いつでも」に ADR-53 の除外一句(検定リポジトリ側コミット)[K] 10-domain-model を四演算子へ [L] doctest 規約の「行が無ければ註釈ゼロ」を #~> 項へ移動(日英)。

LOW=一部消化: glossary 値型行へ単独時刻・README 英 mermaid の全角括弧・README 英日 フォルダ表へ 11 カタログ。残(9/14 まで任意)は 70-release「宣言日と段取り」欄に記録 (EBNF 棚卸し・impl/README 現行化・検証録 11 の 555/552 注記・検定表記統一)。

構造的知見の常設: 新 ADR 確定時チェックリスト 4 面(EBNF param-key・輸送表・整列表・入口の 否定リスト)を 20-adr/README に常設。RC5 残存検査の許容リスト 4 行も 70-release に記録。 618 テスト全通過(新設検査 1 本込み)・en sha 5 対追従・Playground 再ビルド・4 入口 618。