KLE互換ドキュメント2本を廃止し、裏取りした事実をPHYに書き戻す
kle-compatibility.md / kle-compatibility-analysis.md は埋め込み前提の 設計で、KLE往復の決定と矛盾していた。KLE本家ソースで確認できた事実だけを PHYレイヤー.md に書き戻し、2本は削除した。 - ConfigObject の回転角度キーを ra から r に修正し、fa sm sb st を追加 - KLE出力で失われる情報、KLEの p がPHYのプロファイルと別物であることを明記 - KLEは保存時にキーを並べ替えるため、配列順は照合に使わない - 過去のKLE JSONはPHYデータなしでも読めなければならない、という制約を追加 - 未確認事項に P-3 クラスター自動推定、P-4 KLE固有の形状・属性の受け止め先を追加 Journal: journal/2026-09-18-kle-compat-docs-retire.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# KLE互換ドキュメント2本の廃止と書き戻し
|
||||
|
||||
## 結論
|
||||
|
||||
- kle-compatibility.md / kle-compatibility-analysis.md を作業ツリーから削除した
|
||||
- 原本: `git show 1a9a2a0:kle-compatibility.md` / `git show 1a9a2a0:kle-compatibility-analysis.md`
|
||||
- 経緯: compatibility は初期PHYドキュメントをもとに検討しながら更新したもの。analysis はそれをさらに分析したもの(ユーザー談)
|
||||
- PHYレイヤー.md に書き戻したもの(KLE本家ソースで裏取り済み)
|
||||
- ConfigObject の修正: `ra` → `r`、`fa` `sm` `sb` `st` を追加
|
||||
- 回転角度は正規化せず出力できる(15度はUIの操作単位)
|
||||
- ユニットサイズ・ビジュアルオフセット・クラスター構造はKLEに出力されない
|
||||
- KLEの `p` はキーキャップのプロファイル名で、PHYのプロファイルとは別物
|
||||
- KLEは保存時にキーを並べ替えるので、配列順は照合に使えない
|
||||
- P-1 に行まとめの手がかりを追記
|
||||
- 新たに本文に加えた制約: 過去のKLE JSONはPHYデータなしでも読めなければならない(ユーザー要件。変換は可)
|
||||
- 未確認事項として立てたもの: P-3 クラスター自動推定(未決。代わりに欲しい機能を思い出すきっかけ)、P-4 KLE固有の形状・属性の受け止め先
|
||||
|
||||
## 各記述の行き先
|
||||
|
||||
| 元の記述 | 行き先 |
|
||||
|---|---|
|
||||
| 階層を畳む flattenElements | 既にPHYにある(階層を畳んで絶対座標に変換) |
|
||||
| ID保持方法の比較、`_beyondkle` ハイブリッド、ID復元 | 捨てた。2026-09-18-kle-roundtrip で不採用 |
|
||||
| 往復で構造が一致することを保証するテスト | 捨てた。「構造の復元は保証しない」と矛盾 |
|
||||
| ConversionSettings, バージョン管理メタデータ | 捨てた。埋め込み前提 |
|
||||
| autoDetectClusters | PHY 未確認事項 P-3 |
|
||||
| CLI コマンド例 (export/import) | 捨てた。CLIの形は実装計画側で決める |
|
||||
| KLE Key クラスのプロパティ一覧、互換性マトリックス | 事実部分のみ ConfigObject とKLE出力の制約として書き戻し |
|
||||
| 「プロファイル設定 ↔ p が1:1対応」 | 誤り。KLEの p はキャップ形状名 |
|
||||
| KLE UI改造の項目・難易度・80/15/5%・フェーズ分け | 捨てた。KLE改造か自作かを検討するときは原本を git show で読む |
|
||||
| ゴーストキーによる階層クラスター | 捨てた。2026-09-18-kle-roundtrip で不採用 |
|
||||
| 15度回転制約の分析 | 結論のみ書き戻し。analysis 中の kb.js 引用コードは実物と一致(kb.js:817) |
|
||||
|
||||
## 検証ログ
|
||||
|
||||
ijprest/keyboard-layout-editor master (2026-09-18 取得)
|
||||
|
||||
- serial.js:92-100 sortKeys。角度((a+360)%360) → rotation_x → rotation_y → y → x の順に並べ替える
|
||||
- serial.js:187 serialize の中で sortKeys を呼ぶ。保存のたびに並べ替わる
|
||||
- serial.js:193-198 行が切り替わる条件は y の変化か (r, rx, ry) の変化
|
||||
- serial.js:219-269 出力されるプロパティは r rx ry y x c t g p sm sb st a f f2 fa w h w2 h2 x2 y2 n l d で決め打ち。未知のプロパティは落ちる
|
||||
- 2026-09-18-kle-roundtrip で「未確認」とした「シリアライザは既知プロパティしか書かない」はこれで確定
|
||||
- serial.js:105 defaultKeyProps で profile は "cap appearance" に分類されている
|
||||
- serial.js:176-178 メタデータは keyboard.meta の全キーをループで書き出す。未知のメタデータキーも保存時に残る(今回の決定では使わない)
|
||||
- kb.js:78 rotateStep = 15。kb.js:817 プロパティ入力は ±180 にクランプするだけ。kb.js:1119 キー操作による回転は Math.round で整数度に丸める
|
||||
- kb.css:94 `.ghosted { opacity: 0.5; }`。ゴーストキーは半透明で表示される。analysis の「見た目に影響しない」は誤り
|
||||
Reference in New Issue
Block a user