Kairos ドキュメントレビュー(第13回)— 1.0.10・文と図の拡充・表現改訂
外部レビューの受領記録(2026-10-16・伝達は設計者)。原文のまま収蔵する。当方の裏取りと処置は本ファイル末尾の「処置の記録」に。
対象: 本体 azathothx/kairos-lang HEAD a32f839(v1.0.10・追補27。第12回 1a47ae5 から44コミット・213ファイル・約19,800行)/検定 kairos-lang-exam HEAD 0464447(Pages 化=exam.kairos-lang.org・v1.0.10 追従)
レビュー日: 2026-10-16
方法(5観点): ①1.0 宣言後の状態監査 ②「わかりやすく変更した表現」の意味ズレ検査(新旧の word-diff 全照合) ③拡充された図13対×日英の本文整合(SVG テキスト抽出+全数値を CLI で再現+ライト/ダーク描画) ④検定の新サイト・1.0 追従 ⑤1.0 後の新規面(MCP・レシピ・CLI・CHANGELOG・版表記)——4並行精査+HIGH/主要 MEDIUM は担当が全件ソース裏取り。本体スイート実走・検定34ブロックを v1.0.10 実装で再実走(全通過)・機械バッテリー・両サイト本番実査。
0. 総評
今回の主眼だった「表現の簡約による意味ズレ」は、spec・stdlib・reference の全書き換え段落(約60段落)を新旧比較して意味レベルの変化ゼロ——条件・様相・既定・量化・主体・方向のすべてが保存されており、文体改訂は安全に行われています。1.0 宣言も計画どおり貫通(状態行・CHANGELOG 1.0 節・RC 残存検査の覚醒=残存ゼロ・タグ v1.0.0〜v1.0.10)。検定の Pages 化と v1.0.10 追従も健全で、全34ブロックが最新実装でも一致します。
一方で、1.0 後に急増した新規面(レシピ・図・入口・MCP)で、既存の検査の網が届いていない箇所に綻びが集中しています。HIGH 3件はいずれも「書いた時点では真だったが、同日の別コミットで偽になった」型の陳腐化です。
実測サマリ
| 検証 | 結果 |
|---|---|
| 表現改訂の意味ズレ | ゼロ(spec 4章・stdlib 3篇・reference の全書き換え段落を old/new 比較) |
| 本体スイート | 822/822 通過——ただし記載は 816(→ H1) |
| 検定34ブロック(v1.0.10 実装) | 全通過 |
| 図13対の数値 | 全件 CLI で再現一致(DST 23/25h・証人規則の三分岐・残走路 355/∞/−159 等) |
| リンク(本体280 md/検定24 md)・不可視文字・en≡ja同一性・source_sha・Playground 指紋 | 全て green |
| RC 表記残存(本体・検定) | ゼロ(検査が宣言後に覚醒し通過) |
| 本番(kairos-lang.org / exam.kairos-lang.org) | 両トップ正常表示・導線完備 |
1. 必修(HIGH・いずれも数行)
[H1] テスト数の記載 816 ≠ 実スイート 822。 README 英日・llms.txt・en/spec/README・impl/README・CHANGELOG 追補27 が 816 と記す一方、HEAD の実走は 822。原因は 1.0.10 公開後の a32f839 が Excel レシピ(doctest 6本)を追加したため。既存の doc-consistency 検査は「5入口が互いに一致し CHANGELOG の最終値とも一致」しか見ず、実スイートとは比較しない——同型のズレは 1.0.10 直前(windows-admin の doctest 2本追加時)にも一度起きています。恒久策: CI で vitest --reporter=json の総数を取り、入口の数値と突合する1本を追加(これで「数値を手で書く」工程自体が検査される)。
[H2] Windows 管理者ガイドの「次の版で --tsv」が陳腐化。 recipes/windows-admin.md:271-273(en:279-281)は「次の版で Excel 向けタブ区切り出力が入る」と予告していますが、--tsv は同じ 1.0.10 で出荷済み(impl/src/cli.ts:303・追補27・Excel レシピは「1.0.10 から」と明記)。しかもこのページは 1.0.10 後の a32f839 で編集されており(exe 導線の追記)、その際に節が残置。節を削除し Excel レシピへの導線に差し替え。
[H3] Patch Tuesday レシピの「12か月中10か月が違う」は算術的に誤り(正: 8)。 recipes/patch-tuesday.md:15・recipes/README.md:14・en 双方。同ページ :112 自身が「1・2・11・12 月しか一致しない(3〜10月は1時間、4月と7月は1週間ずれる)」と述べており、差は 3〜10 月の 8か月。「10」は 1 時間ずれ(8)と 1 週間ずれ(2)を別口で足した二重計上で、4月と7月は8か月の内側です(zoneinfo で独立再導出: 差異月=[3,4,5,6,7,8,9,10])。フェンス内の日付自体はすべて正しい。
2. 推奨(MEDIUM)
図版(新設13対)
- [F1] 全26 SVG がダークモードで判読不能。 各 SVG は
<rect fill="#FBFAF8" class="bg">の明背景を固定したまま、@media (prefers-color-scheme: dark)で文字色だけ明色に反転(.bgの暗色規則が無い)→ GitHub ダーク表示や OS 設定を読む UA で文字が消える(Chromium ダーク描画で確認)。既存4図(hero・compare・operator-map・design-spine)は背景 rect が無く無事。修正は dark ブロックに.bg{fill:#1B1E22}1行×26(生成元tools/figures/spec-figures.mjsは未コミットのため手当てか復元が要る)。 - [F2]
operator-mapが陳腐化+「仮称」残存。 2026-07-26 以来未再生成で、take・takeLast・at・糖衣定義が無く、ストライド族が2語のまま。さらにrephase(仮称)/rephase (placeholder)のラベルが残存——「仮称ゼロ」の文字列検査は .md のみ走査で SVG は網の外でした。再生成+用語検査の対象にassets/figures/*.svgを追加。 - [F3]
roll-vs-shiftのフッタ「roll は最も近い有効な点へ寄せる」(en “nearest”)は誤り。roll は規約が方向を決める(Preceding/Following)もので、図の上段自身が 10/25(日)→Preceding で2日前の 10/23 に着地(1日後の 10/26 が「最も近い」)と矛盾。「寄せる先は規約が決める(前へ/後ろへ)」へ。 - LOW: en 図3点が註釈行を英訳(
# ⚠ out-of-coverage)しているが実装は常に⚠ 範囲外を出す(external-socket 図は正準形)/alt が最長676字で可視キャプション無し/covering-three-waysの題「3つの書き方」が直下の「書き方は次の3形」と衝突(図は主張幅の3択)/half-open-intervals下段は eval 範囲未記載/cycle-grid凡例の入力省略/out-of-coverage-edgesの造語「窓頭領域/窓尾領域」。
本文
- [T1]
reference/snapTo.md:61(en:79-81)の window-clip 例が自己矛盾——「[2026-08-01, 2026-09-01)で評価すると 範囲が 8/15 から始まると 8/20 が…8/1 へ寄り範囲の外」。8/1 は当該範囲の内側。roll/shift の雛形([2026-08-01, …)で正しい)と混線した 1.0.5 由来の誤記。範囲を[2026-08-15, 2026-09-01)に(日英)。 - LOW:
spec/20:76で因果の「ため」が落ち並列化(en は “so” を維持=日英のニュアンス差)/stdlib/iso-week.md:14ほか「語の名は仮(1.0 で一括確定)」が 1.0 宣言後も太字見出しで残る(宣言節は公開語の名に触れていない——確定の記録か文言の更新を)/en/spec/40-grammar.md:201の “Declare…”(命令)vs ja「推奨」。
入口・導線・配布物
- [E1] Playground 日英が検定の GitHub リポジトリを指したまま(
playground/index.html:13・en:14)。検定は Playground に18本の深いリンクを張っており、戻り導線だけサイトでなく GitHub に落ちる。c049eeaの差し替え漏れ。 - [E2] llms.txt の「正準例(言い換えず引用せよ)」が引用どおりでは動かない——
premise US { …; calendar: NYSE; … }にNYSEの定義が無く、kairos listは「calendar: が指す premise が未定義」で exit 1。AI 利用者が最初に試す例なので、mcp/README の自己完結形に差し替え。 - [E3] 検定 README の「
# eval:の範囲で実行すると期待出力と一致する」は、1.0.1 の CLI 既定 tz 変更(Asia/Tokyo 固定→機械の tz)以降、非 JST 環境では不一致(端点とラベルが機械 tz で読まれる——本体の CI が UTC ランナーで実際に踏んだ型)。検定の全34# eval:行に tz 指定なし。README:44 に「--tz Asia/Tokyo(またはTZ=Asia/Tokyo)を付ける」の一句を。※ライブラリ API と Playground の既定は Asia/Tokyo のままで、本レビューの実走はその経路。 - [E4] 検定サイトで front matter が剥がれ、§参照・spec_head・verified が不可視——README の「各問題は言語仕様の §参照つき」「spec_head で追従を機械検出」の約束が、サイト上では見えない形に退行(GitHub 表示では表として出ていた)。本文に § を含まない問題5問(L2-003/011・L3-001/004/013)はサイトでは根拠ゼロに見える。レイアウトに
page.spec_refs等を出す小さな include を。 - [E5] MCP リソースの reference 複製が相対リンク・画像参照を書き換えずに配布——
bundle-docs.mjsは複写のみで、kairos://reference/{lang}/{word}を読む AI には../../reference/…・<img src="../assets/…">が解決不能(例: segmentBy 4本)。配布時にhttps://kairos-lang.org/…の絶対 URL へ書き換えるか画像を除去。 - [E6] mcp の lockfile が kairos-lang 1.0.9 固定(
mcp/package.json^1.0.9・lock 1.0.9)——npm ci経路ではkairos_validateが 1.0.9 を返し、README の「同じ番号・同じ契約」と食い違う(publish-mcp.yml が予定する lock 更新が 1.0.10 で未実施)。 - [E7] Windows ガイドの細部: 残走路を「表が今日から何日もつか」と説明(正: 評価
to起点——同ページのサンプル出力 −59 日は to 起点でしか成立しない・日英)/「UTC サーバーなら火曜 17:00」は DST 期のみ(11〜12月は 18:00)。 - LOW:
impl/READMEのテスト一覧が 38 中 30(1.0.2〜1.0.6 追加分の未記載)/design/70-release-1.0.mdの当日チェックリスト③〜⑧と「まとめ公開の実績」が 1.0.9 止まり(1.0.10・exe 未記録)/検定の問題13問に旧 HEAD の検証スタンプ(公開 HEAD 46a7730等)が残る(spec_head は v1.0.10)/検定 L1 教本の「出力のすべての行」列挙に 1.0.5 の# 0 点行と警告:行が無い/検定の/L1/等ディレクトリ URL は index 無しで 404(リンクは張られていないため実害小)/選挙日レシピの「cron の OR は cron 月末レシピ冒頭参照」が宙吊り・Patch Tuesday の0 3 8-14 * 3は Vixie cron の OR 意味論では毎水曜にも発火する前提の注記が欲しい/Excel レシピの impl/README へのアンカーが kramdown のスラッグ規則で不一致の可能性。
3. 良かった点(検証で確認)
- 文体改訂の安全性: 「柱と箇条書きの型」「裁定の引用を中立の事実に」の編集は、§3.8 covering の二面主張・§3.9 正体判定・§5.5 字句・ADR-37 改訂6 の反映まで含め、規範の意味を一つも変えていません。en ミラーも同じ意味内容を保持。
- 図の正確性: 13対すべての具体値(日付・点数・註釈区間・残走路・DST 幅)を CLI で再現一致。premise メンバー10語・ADR-35 改訂3・証人規則の三分岐の文言も一致。stale 語(shiftBoundary/labelOf/opens/closes)は operator-map の「仮称」1点を除きゼロ。
- 1.0 の貫通: 状態行「1.0(2026-09-14 宣言・追補27)」、CHANGELOG 追補16〜27 の連番と単調増加、版文字列 1.0.10 の全面一致(package.json×2・server.json・build-info・CLI)、ADR 53 の全箇所一致、RC 残存検査の覚醒と通過、短縮リダイレクト hn/ の全ターゲット実在。
- 検定: 第11回の J(L2-013 の ADR-53 但し書き)解消、L3 教本の
Thh:mm追加、全19問の spec_head v1.0.10 統一、1.0.5 で変わった期待出力(# 0 点行)の形式が CLI と Playground の出力関数と一致、Playground 深リンク18本の payload が隣接コードと一致、クロスドメインリンク22本が全て実在。 - 新規面の実測: Patch Tuesday/選挙日/感謝祭の全日付・Windows ガイドの全コマンド出力・Excel の TSV サンプルを実機で再現。MCP サーバはビルド・12テスト・
--version 1.0.10を確認。workflows に秘密情報なし。
4. 推奨アクション(優先順)と検査の網の補強
- H1〜H3(数値の訂正・陳腐化節の削除・算術の訂正)+ 実スイート数との突合検査を1本。
- F2+F1(operator-map 再生成で take/takeLast/at/糖衣定義を追加し「仮称」除去・26 SVG にダーク背景1行)+ 用語検査の対象に SVG を追加(「仮称ゼロ」の盲点を塞ぐ)。
- E1〜E4(Playground の検定導線・llms.txt 正準例・検定 README の
--tz一句・検定サイトの front matter 表示)。 - E5〜E7・T1・F3(MCP 複製のリンク絶対化を bundle-docs に・lock 更新・Windows ガイド2句・snapTo 例・roll 図フッタ)。
- LOW 群はついで修正。
今回の綻びは例外なく「1.0 後に増えた面に、既存の網が未接続」の型です。上記の検査3本(実スイート数・SVG 用語・MCP 複製リンク)を足せば、追補の速度を落とさずに同じ品質が保てます。
5. まとめ
| 項目 | 判定 |
|---|---|
| 表現改訂の意味保存 | 完全(今回の主眼・最重要の安心材料) |
| 図版 | 内容は正確・ダーク描画と operator-map の陳腐化が要修正 |
| 1.0 宣言の貫通 | 完全 |
| 検定(サイト化・追従) | 健全・導線と表示の MEDIUM 2件 |
| 新規面 | HIGH 3(陳腐化・算術)+配布物の MEDIUM 数件 |
| 実スイート | 822/822(記載 816 の更新を) |
1.0 以降も「主張はすべて機械が守る」原則が本体で機能し続けていることは、今回の実測で改めて確認できました。綻びは成長の縁に集中しており、網を3本足せば閉じます。
処置の記録(当方・2026-10-16〜)
(判定の一覧。裏取りの詳細は非公開の作業記録に)
| 番号 | 判定 | 処置 |
|---|---|---|
| H1 | 認める | 入口 6 箇所を実スイートに揃える・実スイート数との突合検査を CI と publish.sh に |
| H2 | 認める | 「次の版」節を Excel レシピへの導線に差し替え(日英) |
| H3 | 認める(8 か月) | patch-tuesday 日英・recipes/README 日英・ブログ第 32 弾(412)を訂正 |
| F1 | 認める | 生成器の dark ブロックに .bg を足して 26 図を再生成 |
| F2 | 認める | operator-map を現行語彙で再生成・用語検査に SVG を追加 |
| F3 | 認める | フッタを「寄せる先は規約が決める」に(日英) |
| T1 | 認める | 範囲を [2026-08-15, 2026-09-01) に(日英) |
| E1 | 認める | Playground 日英の検定リンクを exam.kairos-lang.org に |
| E2 | 認める | llms.txt の正準例を自己完結形に(実走で確認) |
| E3 | 認める | 検定 README に --tz Asia/Tokyo の一句 |
| E4 | 認める | 検定サイトのレイアウトに front matter(§参照・spec_head・verified)の表示を追加 |
| E5 | 認める(1.0.11) | bundle-docs で相対リンクと画像を絶対 URL に |
| E6 | 認める(1.0.11) | mcp の依存範囲と lock を 1.0.10 に |
| E7 | 認める | 残走路は評価範囲の終わり起点・UTC の 17:00 は DST 期のみ(日英) |
| LOW | 個別に | 下の註 |
註(LOW): impl/README のテスト一覧 8 本・70-release の 1.0.10・選挙日レシピの参照・iso-week の「名は仮」・spec/20 の因果・en grammar の推奨・Patch Tuesday の cron OR の一句は処置済み。検定の旧 HEAD スタンプは当時の検証記録として残す(spec_head が追従の印)。Excel レシピの impl/README へのアンカーは公開面で一致を実測(/impl/#--tsvexcelpowershell-向けの表)=問題なし。