Imported from tokiokashi/keydist (
AGENTS.md). Install upstream withnpx skills add tokiokashi/keydist. Copyright stays with the author.
AGENTS.md
このリポジトリで作業するエージェント(Codex・Claude Code など)向けの入口。
まず CLAUDE.md と CONTRIBUTING.md を読むこと。 規約の正はそちらにある。
このファイルは、それを読む前に破ると手戻りになる項目だけを先出しする。
リモートと作業開始
- このリポジトリの
originは GitHub(tokiokashi/keydist)。Issue と PR は GitHub で扱い、Gitea 用の取得・編集手順は使わない。 - 作業前に
git status --shortで未コミット変更を確認し、変更が無ければmainでgit pull --ff-only origin mainを実行してから作業ブランチを切る。
破ると手戻りになる 5 項目
- 依存を増やさない。 devDependencies は vite / typescript / @types/node の 3 つだけで、
ランタイム依存はゼロ。テストランナーは Node 組み込みの
node --test。 作図ライブラリも入れない(図は SVG を直接書く。src/chart.tsに前例がある) - 仕様が先、実装が後。 モデルの挙動を変える変更は
spec/distance-model.mdを、 再生の時間の決め方を変える変更はspec/playback-timing.mdを先に直す。 §11 に節を挿入したら、以降の節番号とコード内の参照コメントを漏れなく振り直す - コミットメッセージは Angular 規約(
CONTRIBUTING.md)。commit-msg フックと CI が機械的に検査する。 clone 直後にgit config core.hooksPath .githooksを実行する mainに直接 push しない。 ブランチを切って PR を出す。 受け入れ条件を満たし、CI が通り、レビューの指摘が残っていなければマージしてよい- push 前に
npm testとnpm run buildを通す。 CI も同じものを回す
数値を扱う時
このリポジトリの成果物は数値なので、数値の扱いに固有の作法がある。
- 数値が期待と食い違ったら、推測で説明を書かず、同じ条件で測り直して原因を特定する。
「モデルが変わったから」「丸め誤差だろう」で片付けない。条件(配列・ローマ字の綴り・
窓幅
N・物理形状・指の割り当て・テキストの前処理)を揃えれば原因は必ず割れる - 測る時はアプリと同じ前処理を通す。
src/main.tsはSAMPLE_TEXT_JA.replace(/\s+/g, '')してから評価器に渡す。ソースの定数をそのまま使うと文字数がずれる - リファクタでは数値が 1 u も動かないのが正しい。 動いたらリファクタの失敗であって仕様変更ではない。 変更前後を測って PR に載せる
- 測定値を書く時は条件を併記する。綴りが違うだけで大西配列は 153u と 149u に分かれる
- 数値は必ず実行して出す。 コードを読んで妥当な値を推定してはならない。 実行できない環境なら「実行していないので数値は出せない」と答える
- 優劣の判定・順位付け・合成スコアを作らない。 詳細は
CLAUDE.mdの「数値を外に出す時」
判断に迷ったら
勝手に決めず、PR 本文に「決めきれなかった点」として書き残す。 選択肢と、それぞれを選んだ場合に何が変わるかを添える。