日本語 · English(未訳)

40-examples — 表現力検証(既知スケジュールのサンプル集)

Kairos が「利用者が実際に書きたい既知のスケジュール」を表現できるかを、サンプルを書いて検証する 作業層。RC(リリース候補)策定の一環で、方法論は INDEX の「説明を書いて綻びを炙り出す」—— サンプル記述そのものが綻び出しである。ここは探索の記録であり、確定仕様は ../../spec/、確定した 綻びの解消は ADR と draft(../30-syntax/)へ送る。

判定基準

各サンプルに三値の判定を付す。

検証は当初は実装が無いため期待値照合による(05 以降はリファレンス実装の doctest で実行検証): 各サンプルに公知の具体日付(2026 年の祝日・旧正月・ 節気など)を期待値として付し、式の読み下しと突き合わせる。天文・暦データの期待値は国立天文台 令和8年(2026)暦要項の実データで照合済み95-reference-data.md に一次データと照合結果)。 実データ投入により、時点だけのテーブルでは「立春」を意味的に選べない綻び(F32/F33)が新たに露見し、 射影一族(labelOf)の必要性が具体的に裏づけられた。

記法の規約

ファイル構成

ファイル 対象
01-jp-holidays.md 国民の祝日一式(固定日・ハッピーマンデー・春分秋分・振替・国民の休日・五輪特例)+生活系(給料日・ゴミ収集・中国調休)
02-cycles.md 十干・十二支(日/年)・干支 60・六曜・一粒万倍日
03-astronomical.md 二十四節気・旧暦・雑節・月齢月相・イースター・ISO 週番号
04-projections.md 射影一族(ordinalIn/labelOf/snapTo/epochOrdinal/label:)の綻び出し
05-astronomical-calendars.md 天文由来の暦法の横断検証(ティティ=実行検証・イスラム暦/バハーイー暦/日没起点の日=机上)。```kairos ブロックは doctest 実行
06-business-hours.md 営業時間・半日休(F67 の綻び出し)。壁時計 vs 経過時間の二意味論・帯+証人パターン・DST 切替日と深夜営業の実行検証(多 TZ 例は # eval: の後置 tz:
07-injected-origin.md 実行起点相対の分解(注入された時点からの次回計算=spec §7.7 の doctest 4 例・誤形の整列エラー実測)
08-backup-schedules.md バックアップの多段世代(日次増分・週次差分・月次フル・上位優先の抑止・開始時刻の漸減=有限場合分け+結合子。doctest 2 例)
90-findings.md 綻びログの集約(F1〜F105)と補完機構への写像
95-reference-data.md NAOJ 令和8年暦要項の一次データ(節気・朔弦望・春分秋分)と照合結果

仕分けマトリクス(全要素)

暦要素 判定 主な依存
固定日の祝日(元日・建国記念の日 等) 書ける cycle ラベル述語・月への cycle
ハッピーマンデー(成人の日 等) 書ける cycle ラベル述語(WKST 非依存)
春分の日・秋分の日(官報版) 要外部データ テーブルリテラル
振替休日 書ける 導出ストリームを roll の軸に
国民の休日(挟まれ) 書ける —(積 & の実用例)
年限定特例(五輪移動) 書ける テーブルリテラル・asof/source
給料日(25 日・前営業日) 書ける
ゴミ収集日(第 1・第 3 水曜) 書ける
中国の調休(反転) 書ける テーブルリテラル・カスケード差
十干・十二支(日) 書ける anchor=権威データ
十干・十二支(年)・丙午 書ける 年窓への cycle
干支 60 書けるが鈍い (cycle の積は述語合成で代替可)
六曜 要補完+要外部データ 窓内序数・窓ラベル射影・旧暦
一粒万倍日(選日) 構造は書ける 節気データ・ラベル射影・in
二十四節気 要外部データ テーブルリテラル・snapTo
旧暦(朔・大小月・閏月) 要外部データ+要補完 窓ラベル付与・層またぎ規則
雑節(八十八夜・二百十日・彼岸) 節気があれば書ける 範囲 shift は列挙
月齢・月相 要外部データ イベント化して持ち込む
イースター(Computus) 値は書ける・時点化で要補完 点→値の射影 or 値→時点の持ち上げ
ISO 週番号 要補完 窓ラベル射影(年度ラベルと同族)
毎営業日 9 時(壁時計) 書ける strideBy の市民時幅・coincides(06)
営業時間帯+半日休(11:30 引け) 書ける(冗長=F77 糖衣候補) segmentBy 帯+証人パターン・時刻付きテーブル(06)
深夜営業の帯(日跨ぎ) 書ける(帰属は修理形=F85) 証人パターンの二段掛け(06)
バックアップ多段世代(抑止・時刻漸減) 書ける day 集合の差・場合分け+結合子・壁時計 tick(08)

総括: 「書けない構造」は無かった。欠けているのは (1) データの持ち込み口(テーブルリテラル)、 (2) 窓→値の射影一族(窓内序数・窓ラベル・snap)、(3) 細部の値語彙(in・日付範囲・非 ASCII ラベル)の三群に集約される。詳細は 90-findings.md