日本語 · English(未訳)

保守の手引き(Maintenance)

Kairos を「止めずに保つ」ために要る作業は少ない。年 1 回の表の更新と、ドメインの更新、CI が赤になったときの見分けだけ。 仕様は 1.0 で凍結しているので、言語を変える作業は無い(方針は design/75-stewardship.md)。

1. 年 1 回: 例の祝日表を翌年まで延ばす

Playground の例(暮らしの例・業務の例)は前文に祝日表を埋めている。表は年で尽きる。 言語は年で腐るデータを配らないが、例は資産として毎年延ばす。表の外は ⚠ の範囲外註釈で黙らない。 ただし「今日から 4 週間」の有視界の例は、表の終端の 28 日前から ⚠ が出る=式を読まない人の入口としては壊れたのと同じになる。

時期

出所(上流の権威は上流に)

対象

手順

  1. CSV を取得し、翌年の行を抜く。core.js の各表に YYYY-.. の行を足し、covering: 2026..YYYY の右端を延ばす。
  2. impl/ で npx vitest run test/next-window-and-playground.test.ts test/ics.test.ts。通ったら全スイート(npx vitest run と TZ=UTC npx vitest run)。
  3. spec/CHANGELOG.md の次の追補に 1 行「例の祝日表を YYYY 年まで延長」。
  4. Playground の指紋は変わらない(core.js は指紋の外)。再構築は不要。

注意

2. 鮮度の検査(Freshness)

3. CI が赤になったとき

公開物は CI と独立に残る。赤は「見栄え」と「次の公開の支障」の問題で、利用者の手元は壊れない。見分け方:

赤の種類 原因 直し方
鮮度 表の終端が近い 1 の手順
actions の非推奨・Node の版 GitHub や Node の側の変更 .github/workflows/*.yml の uses: の版や node-version を上げる
Dependabot の PR 開発依存の更新 配布物に影響しない。取り込むなら impl/・mcp/ で npm install → 検査 → commit。TypeScript は 6 系に留める(7 は Playground 構築に要る JS API を同梱しない)
テスト数の突合 入口 6 箇所の記載と実スイート数のずれ node impl/scripts/check-test-count.mjs の指す箇所を実数に
文書の整合(doc-consistency) リンク切れ・孤立ページ・表記 検査のメッセージが指す箇所を直す

4. 公開の仕組み(版を出すとき)

5. 受け付けを止めるとき(保守モード)


Maintenance (English summary)

Kairos is frozen at 1.0, so maintenance is small:

  1. Once a year (February), extend the example holiday tables in playground/core.js (7 tables; sources: Cabinet Office of Japan CSV and OPM Federal Holidays), update the expected lists in impl/test/next-window-and-playground.test.ts, run the suite, and add one line to spec/CHANGELOG.md. The CLI examples under impl/examples/ stay as they are (they show the ⚠ annotation on purpose).

  2. Freshness check: .github/workflows/freshness.yml runs monthly and goes red when a table ends within “today + 4 weeks + 60 days”. Red means “extend the tables”; nothing published is broken.

  3. Red CI from deprecated actions, Node versions or Dependabot does not affect published artifacts. Keep TypeScript at 6.x (7.x ships no JS compiler API, which the Playground build needs).

  4. Releases: push a tag v1.0.x; the publish workflows build and publish to npm with provenance after approval, then attach the Windows standalone to the Release.

  5. Maintenance mode: state it at the top of the README, answer issues with the same text, and keep the domain renewed.