Commit Graph
20 Commits
Author SHA1 Message Date
ewdernaandClaude Opus 5 8c47e547b4 layers: レイヤー構造を確定した仕様に追従させる
ELCがPHYのノードIDを直接参照すると決めたので、IDX→ELCの直列フローを
PHY→ELC / PHY→IDX の並列に改めた。row/colとLED番号をIDXの出力から外し、
KLEをビュワーとして扱う記述に合わせた。ツール名2つが捨てたモデルを
含んでいたため改名。アナログ値の解釈を持つ層が未定なのでP-1に立てた。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 21:48:43 +09:00
ewdernaandClaude Opus 5 5bba75d1e8 ELC: ELCレイヤーの初版。ピン提供者による配線表現
muxを「ピンを増やす装置」として抽象化し、提供者が提供する論理ピンを
キーの端子が指す形にした。直結もmux経由も同じ形になり、多段muxは
入れ子で表せる。

配線方式(マトリクス / direct / charlieplexing)は列挙せず、端子の
接続先の組み合わせとして表す。row / col は正本に含めない。

射程は配線のみとし、センサの品種・出力特性・キャリブレーションは
持たない。PCB設計の手前までというPHYの線に揃えた。

Journal: journal/2026-09-20-elc-pin-provider.md
Journal: journal/2026-09-20-elc-scope.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 20:24:56 +09:00
ewdernaandClaude Opus 5 eb96ff02d8 PHY: LEDの識別番号をELCが持つことを明記(P-11解消)
RGB効果が使うのは物理座標で、インデックスは配線で決まるアドレス。
チェーン順序を設計者が恣意的に決めてよいのは確かだが、決めた順序は
そのまま配線の指示になるため、電気的な情報としてELCが持つ。

IDXに別の論理インデックスを置くと二重管理になり、食い違えば別のLEDが
光るため、IDXはLEDの番号を持たない。

検証ではなく決めによる解消。

Journal: journal/2026-09-20-led-index-layer.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 20:24:56 +09:00
ewdernaandClaude Opus 5 900dfff65e schema: PHYスキーマをPHYレイヤー.mdに追従させる
size に x2〜h2、key に switchOffset / partGroup / orientation /
perKeyLED / decal / ghost / labels を追加し、部品ノードを component
として定義して root と cluster.children に加えた。

key.metadata は廃止し、labels をトップレベルへ移した。残る見た目の
属性は保持する先の層が決まっていない(P-6)ため、構造化せず
kleCompatibility に不透明なまま置く。

PHYレイヤー.md 側の「スキーマが追従していない」注記を削除。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 14:31:47 +09:00
ewdernaandClaude Opus 5 b9997f8272 PHY: 各ノードがIDを持つことを明記
木の中のノードを一意に指すために必要で、キーのIDはIDXからの参照先に
なっている。スキーマ側には元からあったが本文に書いていなかった。
部品ノードも同じ形でIDを持つ。
あわせて木の説明から部品ノードが抜けていたのを補った。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 14:31:31 +09:00
ewderna d8db442fd5 chore: table style 2026-09-20 14:09:03 +09:00
ewdernaandClaude Opus 5 58c952f6a3 PHY: クラスター自動推定をやめ、手動の組み替え操作を持つ(P-3解消)
絶対配置を保ったままクラスターを作り、原点と基準角度を動かせる操作を持つ。
reparent と reframe の2演算に還元され、Transform が剛体変換なので結果は必ず表せる。
これに伴い、スナップは手作業入力時のみ・相対グリッドとし、計算結果には適用しない。

Journal: journal/2026-09-20-cluster-manual-grouping.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 14:04:02 +09:00
ewdernaandClaude Opus 5 2ec3dd4a1a PHY: LEDをキーのbooleanと汎用の部品ノードに分ける(P-10解消)
per-key LEDは位置に自由度がないため、キーが持つboolean 1つにする。
設計者が位置を決める部品はLED専用ノードにせず、変換と部品グループだけを持つ
部品ノードとして一般化する。表裏とチェーン順序はPHYに持たない。

Journal: journal/2026-09-20-led-node.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 10:53:57 +09:00
ewdernaandClaude Opus 5 bbea89798d PHY: スイッチの品種を持たず、部品グループのラベルだけ残す
フットプリントの選択はPCB設計ツール側の仕事で、Beyond KLEはその手前までを扱う。
前の決定で品種を持つ根拠にした「3pinの明示」はKiCadに渡す情報の話だったため、
端子配置とソケット方式を落とし、解釈しない部品グループのラベルと向きだけを残す。
キーごとの検出方式はELCが持つ(2端子前提ではHEの配線を組めないため)。

未知の端子配置の問い(P-9)は、品種を持たなくなったので消滅。

Journal: journal/2026-09-20-switch-terminal-reversal.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RCUFZ7vmSqQyGAPUFNWoiz
2026-09-20 09:26:44 +09:00
ewdernaandClaude Opus 5 1e22853218 PHY: スイッチを端子配置・ソケット方式・向きの3軸で持つ(P-7解消)
ブランドは持たない。同じボードに対して利用者がスイッチを選べるため、
ボード設計の情報ではない。KLEの sm, sb, st は端子配置と対応させず、
見た目の属性と同じく不透明なまま退避して書き戻す。

未知の端子配置の扱い(P-9)とLEDノード(P-10)を未確認事項に追加。

Journal: journal/2026-09-20-switch-terminal.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 08:42:41 +09:00
ewdernaandClaude Opus 5 f6ca7434bc PHY: スイッチ位置をキーごとのオフセットとして持つ(P-5解消)
キャップ形状からはスイッチ位置が決まらない(Stepped Caps Lockはずれ、XFERはずれない)ため、
(w, h) 矩形の中心からのオフセットをキーのローカル座標系で持つ。既定値0。

Journal: journal/2026-09-19-switch-offset.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 11:15:03 +09:00
ewdernaandClaude Opus 5 13df64f6ff PHY: KLE固有の形状・属性の受け止め先を決める(P-4解消)
- 長方形でないキーは Size に x2, y2, w2, h2 を加えて持つ
- デカール・ゴーストはキーとして持ち、フラグで区別する
- ラベルは参考情報として持つ(取り込み時の照合に使う)
- 見た目の属性はKLEへ書き戻せるよう保持する。保持する層は未決
未決部分は P-5〜P-8 に分離。空の見出し「何かある?」も削除。

Journal: journal/2026-09-19-kle-key-attributes.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 11:14:43 +09:00
ewdernaandClaude Opus 5 7493fe2939 過去の自作 kbd-editor を土台にせず、コードも持ち込まない
kbd-editor はフラットな絶対座標の Key[] を直接書き換える作りで、
kle-ng と同じく PHY の相対座標の木とは合わない。加えて作者の記憶では
KLE本体(全権利留保)を参考に書いた部分が多く、由来を切り分けられない。
概念の参考は可とした。

P-2 に振り返りで得た材料(Nuxt不要・SVG描画が有力)を追記し、
格上げ条件から「振り返り」を外した。

Journal: journal/2026-09-19-kbd-editor-review.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 10:19:08 +09:00
ewdernaandClaude Opus 5 ec36a5139a typescript-implementation-plan.md を運用ルールに沿って再編
決まったことだけを書く文書にし、implementation-plan.md に改名した。
TypeScriptの採否も技術選定のやり直しに含まれるため。

本文には自作の決定と検証用サンプルを残した。データ例は旧形式なので
変換が必要と明記した(変換は後日)。技術スタック・構成・フェーズ・
優先度・セットアップ手順はjournalに原文のまま移し、未確認事項に
P-2 技術選定、P-3 リポジトリ構成を立てた。CLAUDE.md の地図も更新。

Journal: journal/2026-09-18-typescript-implementation-plan.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:24:02 +09:00
ewdernaandClaude Opus 5 9ebe302691 json-schema: PHYスキーマを相対座標モデルとKLE往復の決定に合わせる
cd6a94f(相対座標・回転中心なし)と 1a9a2a0(KLE往復は照合)の反映漏れを直す。

- position を $defs/transform (x, y, rotation) に置き換え、rotationOrigin を削除
- size を width/height から w/h に揃え、親の変換を受けないことを明記
- elements を root / children に改名
- kleCompatibility.originalIndex を削除(KLEは保存時にキーを並べ替える)
- 使用例を新しい形に更新し、スキーマで検証が通ることを確認

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:17:36 +09:00
ewdernaandClaude Opus 5 300fb18e4a PHY Editor は既存エディタを改造せず自作する
PHYの正本を相対座標の木にしたため、フラットな絶対座標配列を直接
書き換える既存エディタ(KLE, kle-ng)を改造しても、編集操作の中核は
書き直しになる。ijprest KLE は全権利留保でフォーク不可。

実装計画の既存記述は未整理のまま、決定と制約だけを冒頭に追記した。
kle-serial2 の書き出しコードの出自を未確認事項 P-1 として残した。

Journal: journal/2026-09-18-editor-base.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:16:37 +09:00
ewdernaandClaude Opus 5 bb1108763a 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>
2026-09-18 21:18:49 +09:00
ewdernaandClaude Opus 5 1a9a2a06c5 PHY: KLE JSONに識別・構造情報を埋め込まず、取り込みは照合で行う
KLEは既存のビュワーとして使えればよく、KLEで編集された時点で
Beyond KLEのデータではないと線引きした。KLE JSONは素の形式で出力し、
他ツールにそのまま渡せる状態を保つ。

取り込みは手元のPHYデータとの形状+ラベル照合で行い、照合できない
キーはroot直下に置く。構造の復元は保証しない。照合基準の詳細は
未確認事項 P-2 として残した。

labelへのID埋め込み、別ファイルのクラスターJSON、ゴーストキー案は
いずれも不採用。

Journal: journal/2026-09-18-kle-roundtrip.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 21:01:34 +09:00
ewdernaandClaude Opus 5 cd6a94f4f4 PHY: 座標を親からの相対に統一し、回転中心パラメータを廃止
クラスター単位の移動・回転を親ノード1つの書き換えで済ませるため、
各ノードは親から見た変換 (x, y, rotation) を持つことにし、絶対座標は
保持しないことにした。回転軸は常に自分自身のローカル原点に固定し、
KLE の rotation_x / rotation_y に相当するパラメータは持たない。

あわせてスナップの基準系をローカル座標系と明記し、親の変換を受けない
w, h を Transform から分離した。KLE出力時の行のまとまりは未解決の問い
として未確認事項に立てた。

Journal: journal/2026-09-18-phy-coordinate-model.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MdLT5x5ka5y6CaWLeE3EKb
2026-09-18 08:44:22 +09:00
ewdernaandClaude Opus 5 55243f626d 初期検討段階のドキュメントと運用ルールを取り込む
ルール策定前に書かれた設計ドキュメント7点を、以降の基準点として
そのままの状態で記録する。CLAUDE.md のルール1〜4は未適用。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MdLT5x5ka5y6CaWLeE3EKb
2026-09-18 08:43:01 +09:00