日本語 · English(未訳)

Kairos 言語仕様 — RC 履歴

リリース候補(RC)宣言ごとの差分と追補の記録。README(最新ステータス) の前段から移した 当時の記録(追記型・古い順)で、旧仮称や当時の宿題表記はそのまま残す。現況の正本は spec 本文・ 命名の確定状況は §5.4・宿題は ../design/90-open-questions.md。

RC1 → RC2(2026-07-07)

通読レビューで ADR-29/30 の反映漏れと章間齟齬を修正(EBNF へ labels: を追補、前文を独立文とするスコープの EBNF 修正、高階関数の記述修正ほか)、射影一族ほか六語の命名確定、宿題の分類再確認(DoD)。

RC2 追補(2026-07-07)

リファレンス実装(../impl/)の綻び F43〜F50 を解消——例の不整合修正(F45〜F48)と ADR-31(grid の 既定整列+anchor:・紀元 epoch:・stride 一族の from: 必須化)・ADR-32(文字列リテラル。 tz: "Asia/Tokyo")。

RC2 → RC3(2026-07-08)

頻出しながら未定義だった土台の明文化と、最後の未確定機構の確定。受理の締め 2 件(23:59:60 は字句エラー・DST の隙間と重複に落ちる時刻リテラルは明示エラー)。ADR-30/31 に改訂節。標準 premise は 4 本。

ADR-33(TZ の定義)=射影パラメータモデル

ADR-34(label: 付与式の束縛規則)

あわせて

RC3 → RC4(2026-07-08)

最後まで残っていた二つの継続項目の確定。新構文はゼロ(ADR-35)。整列の静的検査を導入(ADR-36)。参照実装は実体・標準導出・整列検査まで追随し 147 テスト全通過(doctest の標準前提も実体経由)。新出の宿題は F67〜F70(../design/40-examples/90-findings.md)。

ADR-35(カレンダー実体の宣言・§3.9 新設)

ADR-36(結合子・軸所属の粒度整合・§4.5)

あわせて

RC4 → RC5(2026-07-08)

評価註釈(I6・ADR-15)の初めての具体化(F61 解消)。EBNF に covering-list と束縛後置を追加。参照実装は註釈の区間輸送・包含検査・分類器・被覆サマリまで追随し 188 テスト全通過。

ADR-37(範囲外出自と covering: の活性化)

輸送表(§4.10 新設)

器と covering の表現域

あわせて

RC5 追補 1(2026-07-08)——所属の意味論の縁の確定

F68・F70 解消。ADR-38。述語 coincides を新設し、stride のシグネチャから軸引数を削除(入力相対)。ADR-37 判断 4 の filter 輸送行を精密化。

(a) 窓所属の述語 coincides(S, w, d)(§4.9 射影一族)

(b) stride は入力相対

あわせて

RC5 追補 2(2026-07-08)——並行リストの結びの確定

F62 解消。ADR-39=テーブルの labels: を segmentBy 窓列へ一般化。新語ゼロ。ADR-30 に改訂節。

意味論(§4.2)

締め

あわせて

RC5 追補 3(2026-07-08)——日付ラベル保存の再錨と多 TZ の実行検証

F69 解消。ADR-40=点変換 rebase(to: "tz")(仮称・§4.4)。ADR-36 改訂 2。参照実装は IANA tz を依存ゼロで実装し、多 TZ を実行検証。

rebase(§4.4)

参照実装

RC5 追補 4(2026-07-09)——営業時間の供給規約と標準導出

F67 本体と F79 の決定。ADR-41=カレンダー実体の細粒度層(§3.9)。あわせて ADR-31 改訂 2(F81/F83)。

供給規約と標準導出(§3.9)

ADR-31 改訂 2

RC5 追補 5(2026-07-09)——位置依存の名前解釈と窓インスタンス参照

F64/F9 解消。ADR-42。新語彙ゼロ。EBNF は stream-atom の修飾適用形(Gregorian.year(2020))のみ追補。

適用の型規則(§2.7 新設)

窓インスタンス参照 W(v)(§4.9)

RC5 追補 6(2026-07-09)——純命名の一括確定とリテラルの締め

F51・F66/F97。仮称 9 語のうち 8 語を正式名に確定。ADR-43=リテラルの締め 3 件。

命名の確定

ADR-43(リテラルの締め)

RC5 追補 7(2026-07-14)——空テーブルリテラル(実装系還流の初便)

ADR-45=F98 解消。EBNF は変更なし(要素列は既に省略可能——意味論注記のみ改稿)。既存の式の意味は不変(静的エラーだった形の合法化=追加拡張)。

背景(F98)

空テーブルリテラル

あわせて

RC5 追補 8(2026-07-14)——外部供給宣言 external(socket の確定)

ADR-46。宣言語 external を採用(2026-07-14 決定)。EBNF は param-key に kind/source を追加のみ。既存の式の意味は不変(追加拡張)。ADR-26 改訂 3。

背景

設計の核=実行時に解決されるテーブルリテラル

あわせて

RC5 追補 9(2026-07-25)——テーブル後置の順序自由化と窓列被覆域の精密化(発報層還流 第 5 便)

第 3 の適用ドメイン(暦×占い)の実運用検証(発報層還流 第 5 便)が炙り出した 2 件。EBNF §5.6 を改訂(受理拡大)。正しく評価できていた式の意味は不変。

テーブルリテラル後置の順序自由化(F104)

窓列の実効被覆域の精密化(F105・ADR-37 改訂 3)

RC5 追補 10(2026-07-25)——窓列への周期ラベル labels: cycle(ADR-47)

segmentBy の labels: の値位置に周期形 cycle リスト anchor: 実日 を追加。新語彙ゼロ。EBNF は segment-labels/cycle-labels を追加。既存の式の意味は不変(追加拡張)。

背景

意味論

あわせて

RC5 追補 11(2026-07-26)——最後の仮称を rephase に裁定・命名完全確定

窓境界の位相ずらし糖衣の正式名を rephase に確定(旧仮称 shiftBoundary)。2026-07-26 決定。当初「1.0 宣言時」としていた条件 3 を前倒し。意味論・展開・シグネチャは不変(純命名)。これで全語彙が正式名——仮称ゼロ。

根拠(三点)

不採用の候補

置換

RC5 追補 12(2026-08-17)——take・split 親受理拡張・hour 窓と整合検査(ADR-48/49/50)

「書けない」実例調査(40-examples/11=収集 32 項目・実測 17 本)が駆動した三点。参照実装は 552 テスト。

take(n, from:) 新設(ADR-49・§4.7)

split の親受理拡張(ADR-48・§3.6)

hour 窓の標準化と ordinalIn 整合検査(ADR-50・§4.9)

テスト

RC5 追補 13(2026-08-21)——単独時刻リテラルと at・takeLast(ADR-51/52)

還流第 12 便(供給側の運用報告=収蔵 13)が駆動した二点。字句に単独時刻リテラル Thh:mm を追加。参照実装は 603 テスト。

補記(2026-08-26・第 11 回レビュー G の補綴)

単独時刻リテラル Thh:mm と stdlib 糖衣 at(ADR-51・§5.5・stdlib §2)

takeLast(n, until:) 新設(ADR-52・§4.7)

テスト

RC5 追補 14(2026-08-26)——標準糖衣 at の名指し検査(ADR-51 追記)

還流第 15 便(供給側の追随実装知見 5 件=収蔵 16・全件を参照実装で再現確認)が駆動。標準語彙 at に展開前の名指し検査を追加(§5.5・stdlib §2)。参照実装は 607 テスト。

問題

名指し検査(§5.5・stdlib §2)

規約の内と訂正

テスト

RC5 追補 15(2026-08-26)——束縛右辺の名前解決境界とメモ化の正しさ(ADR-53)

還流第 16 便(供給側のメモ化追随の敵対的レビュー=収蔵 17・全 9 再現形を参照実装で確認)が駆動。ADR-53。呼び出し側ラムダ変数への捕獲を静的エラーに(§4.8)。参照実装は 617 テスト。

バグ 2 件

処置 (1) 束縛右辺の名前解決境界(§4.8)

処置 (2) メモ化ヒット時の再検査

テスト

RC5 追補 16(2026-08-28)——ADR-53 の完遂と記録条件の精密化(還流第 17 便)

供給側の ADR-53 追随レビュー(収蔵 19)が駆動。仕様の字面変更なし(§4.8 の明文に実装が追いつく形)。テスト 5 本追加=623 テスト。

①判断 3 の完遂

②判断 5 の記録条件の精密化

テスト

追補 16 補綴(同日)——EBNF の棚卸し(第 11 回レビュー LOW・文法凍結前の一度きり)

受理言語の実態は不変=文法記述の精密化のみ。日英同時。

RC5 追補 17(2026-08-28)——順序独立の完全化: ヒット時再実行の再記録(還流第 18 便)

追補 16 の記録条件精密化が作った退行の修正。供給側の追随レビューが検出し、叩き台 3 行を採用。値は正しく、壊れたのは警告の一貫性。witness 3 本追加=626 テスト。

退行

修正

あわせて

RC5 追補 18(2026-08-31)——テストの網の補強: 診断全文の固定と bizDay 経路 witness(還流第 19 便)

受理言語・意味論・診断文言とも不変(テスト側のみ)。供給側の変異試験が検出した 3 件を手当て。627 テスト。ADR-53 追記 4。

検出 3 件と手当て

テスト

1.0(2026-09-14)——RC5 から 1.0 へ

受理言語・意味論・演算子族・文法(EBNF)・字句を 1.0 として凍結する。RC5(2026-07-08 宣言)から 追補 18(2026-08-31)までの精密化はすべて「受理言語を変えない」制約の下で行われ、本節はそれを版として 封じる宣言である。参照実装は npm kairos-lang 1.0.0(プロトタイプ・実行時依存ゼロ)。以後の変更は 「1.0 追補 N」として本ファイルに追記する(状態行の追補番号検査は同じ網で読み替える)。

1.0 追補 19(2026-09-24)——派生 premise の前文メンバー継承・roll: メンバー・正準例の改名(還流 2026-09-23 の 2 便)

受理言語・字句・文法は不変。参照実装 npm kairos-lang 1.0.2。

派生 premise の前文メンバー継承(ADR-35 改訂 3・spec §3.7)

前文メンバー roll:(spec §3.3)

正準例の改名(reference/segmentBy.md)

テスト

1.0 追補 20(2026-09-29)——strideBy の 0 幅を静的エラーに・CLI の stdout 欠落を修正(レッドチーム監査の指摘 2 件)

受理言語・字句・文法は不変。参照実装 npm kairos-lang 1.0.3。

strideBy の 0 幅は静的エラー(F112)

CLI の stdout 欠落(F113)

テスト

1.0 追補 21(2026-09-29)——メモ化の文脈キーに前文メンバー全語と在圏 premise を含める・前文メンバーの自己参照を誘導つきエラーに(還流 2026-09-28 定期便)

受理言語・字句・文法は不変。参照実装 npm kairos-lang 1.0.4。

メモ化の文脈キー(F114)

前文メンバーの自己参照(F115)

文書

テスト

1.0 追補 22(2026-09-29)——list の 0 点表示・window-clip 警告・入口の Limits 節(レッドチーム監査の手当て (a)〜(c))

文法(EBNF)は不変。1.0.4 で評価できる定義の点の集合は 1.0.5 でも変わらない。変わるのは表示と警告、黙って通っていた形がエラーになること、偽エラーだった 2 形(F144・F145)が評価できること。参照実装 npm kairos-lang 1.0.5。

list の 0 点は黙らない

window-clip 警告

入口の Limits 節

境界チェックリストで見つかった 31 件(F116〜F146)

文言

テスト

1.0 追補 23(2026-10-01〜06)——覆域端で閉じた最終窓の終端は未確定(ADR-37 改訂 6)・機械可読の契約(JSON Schema・source/line・エラー JSON・--explain・表示形の一意性)

点集合は不変(註釈の追加と出力形式の追加のみ)。参照実装 npm kairos-lang 1.0.6。

覆域端で閉じた最終窓の終端は未確定(ADR-37 改訂 6)

機械可読の契約(2026-10-05〜06 決定)

テスト

1.0 追補 24(2026-10-06)——.ics 書き出し(CLI --ics・Playground「カレンダーに入れる」)と暮らしの例の導線

言語は不変(文法・意味論・spec の本文に変更なし)。参照実装 npm kairos-lang 1.0.7。

--ics(list/next・--json と排他)

Playground「カレンダーに入れる(.ics)」(日英)

暮らしの例

テスト

1.0 追補 25(2026-10-08)——.ics の実機知見(Google カレンダー): 折り返しの堅牢化・同じ UID の取り込み直しは更新・スマホの Google カレンダーアプリでは「1 点ずつ」が既定

言語は不変。参照実装 npm kairos-lang 1.0.8。1.0.7 公開直後の実機取り込み(PC の Google カレンダー Web と Android のアプリ・2026-10-08)の反映。

折り返しの堅牢化

同じ UID の取り込み直しは「更新」

スマホの Google カレンダーアプリは RDATE を読まない

文書とテスト

1.0 追補 26(2026-10-10)——--json の results[].uid・Playground の例の祝日表を 2027 年まで

言語は不変。参照実装 npm kairos-lang 1.0.9。

--json に results[].uid(2026-10-08 決定)

Playground の例の祝日表を 2027 年まで(2026-10-09 決定)

テスト

1.0 追補 27(2026-10-16)——CLI --tsv(表形式の書き出し・言語不変)

言語は不変。参照実装 npm kairos-lang 1.0.10。

CLI --tsv(2026-10-12 決定)

テスト

1.0 追補 28(2026-10-19)——error.kind: 解決値の契約違反を supply に(言語不変)

言語は不変。参照実装 npm kairos-lang 1.0.11・kairos-lang-mcp も同じ関数を使うので揃う。

変更(2026-10-15 決定)

対象=評価器の契約検査が割るもの全部:

変わらないもの:

理由: 消費側(供給側)が「自分のデータが悪い」と「定義が悪い」を kind で見分けられなかった。 発報層プロファイル(付録 A A.4)の「supply では止めず劣化運転」の規則が、契約違反のデータでも効くようになる。

同梱物と配布(1.0.11 で配布・言語不変)

テスト

1.0 追補 29(2026-10-26)——範囲外シグナルの構築を軽く・結果の出口にラベル・next の警告・.ics の註釈・文言の揃え(言語不変)

言語は不変。参照実装 npm kairos-lang 1.0.12・kairos-lang-mcp も同じ評価器を使うので揃う。束は 5 点=範囲外シグナルの構築を軽く・next の確定再評価は window-clip を報告しない・--ics は点 0・註釈だけの範囲でも註釈の予定を書く・結果の出口にラベル・運用信号の文言と文書の揃え。小節は決定順。

範囲外シグナルの構築を軽く(2026-10-18)

変わらないもの:

理由: at 展開の内部述語は、覆域つき入力を参照すると覆域外の点を万単位で評価する。点ごとに投げる範囲外シグナルの構築(スタック採取)が支配項になっていた(実運用側の profile で自己時間の首位・33.9%)。採取を止めると出力は同じで 2.0〜2.5 倍(design/90-open-questions.md 2-1 ①。② tick 生成域の絞り込みは別途)。

next の確定再評価は window-clip を報告しない(2026-10-19)

--ics/--ics-series: 点 0・註釈だけの範囲は註釈の予定だけを書く(2026-10-19)

結果の出口にラベルを添える(2026-10-19)

規則は 2 行:

出口だけが変わる:

運用信号の文言と文書を揃える(2026-10-19)

文書の訂正(言語・実装は不変)。表の終端跨ぎの実地検証(同梱例 jp-holidays.kairos を 2026-12〜2027-02 で評価)で見えた 3 点:

テスト

文書