Commit Graph
87 Commits
Author SHA1 Message Date
ewdernaandClaude Opus 5.5 fe1b048ea4 mock: 階層パネルを閉じたら、キャンバスが空いた幅を埋める(T-30 単位2)
閉じたときも3列の grid-template-columns のままで、キャンバスが1列目に詰まっていた。
閉じている間は2列(キャンバス・プロパティ欄)に切り替える。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NznQtmVPoQAnietqwr1auL
2026-10-22 09:13:34 +09:00
ewdernaandClaude Opus 5.5 e92708dc12 mock: 選択枠を太くし、最前面の描画層に移す(T-30 単位1)
選択枠と長押し候補の枠を NodeSvg の再帰から外し、ノードの描画より後に描く
PhySelectionLayer に移した。枠はワールド変換とローカル矩形から純粋関数
selectionFrames で求め、画面上3.5pxで描く。部品の選択表示は形状上に残す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TDkA8qMQ3Uf1eY3Ar19vjy
2026-10-21 08:42:14 +09:00
ewdernaandClaude Opus 5.5 d110320cb8 provisional: PHY Editorの所感(作り直し1回目)への対応の順番と単位を決める
T-29のコードを作り直さず、所感を8単位(長押しは切り出しと機能追加の2つに分ける)に分けて順に直す。
選択の描画層を最初に作り、クラスター原点とスイッチ位置のオーバーレイをその層に載せる。
キー追加の位置・長押しの2方式・スタビライザー位置は、着手前に決める点を書き出した。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ViPACY39UbXMTH3vztB8eW
2026-10-19 08:38:23 +09:00
ewdernaandClaude Opus 5.5 85f333cb24 chore: Markdownのインデント幅を4に固定し、リストの継続行をスペース4つに揃える
継続行がスペース2つだと、VS Codeがインデント幅を2と自動判定する。
.vscode/settings.json でMarkdownの自動判定を切って幅4に固定し、
既存の継続行もリストの記号から4つ下げた位置に揃える。
変更したファイルに markdownlint --fix をかけた分(journalのURL囲みと空行)も含む。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VbfgHT848s3JbuFw8MKFF8
2026-10-19 08:16:12 +09:00
ewdernaandClaude Opus 5.5 5c9f4c75ab provisional: PHY Editorの所感(作り直し1回目)を追記する
作り直したモックを触った所感を、見出しごとに整理して残す。
選択枠の重なり順、キー追加の位置、長押しの方式比較、原点表示、
switchOffsetの入力欄、スイッチ・スタビライザー位置のオーバーレイなど。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VbfgHT848s3JbuFw8MKFF8
2026-10-19 08:07:56 +09:00
ewdernaandClaude Opus 5.5 4d1eb23cf8 mock: PHY Editorを作り直す(T-29)
provisional/phy-editor-feedback.md の合意事項と phy-editor-keybindings.md の割り当て案に沿って、PHY 画面を一から書き直した。
App.vue は共通のシェル(入出力・履歴・タブ)だけにし、PHY は src/ui/phy/ に、コンポーネント・composable・純粋モジュール(logic.ts, viewport.ts)を分けて置いた。

- 画面確認で見つかった不具合(読み込み時の全体表示、Shift+クリック、削除の確認の大きさ、Alt+↑、フォーカス中の二重描画、長押し中の選択など)を直し、キャンバス上の実際の操作で確かめる e2e を足した
- 階層パネルでクラスターの子を余分な折りたたみで包まず、件数を配下のキー・部品の数にそろえた
- 実装は Codex(Luna)。検証: vue-tsc 0件、Vitest 64件、Playwright 30件、prettier --check

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VbfgHT848s3JbuFw8MKFF8
2026-10-07 20:54:37 +09:00
ewdernaandClaude Opus 5.5 beac52c20b provisional: IDX Editorのバリアント選択と、欠番を作らないことを決める
- 欠番は作らない(現行仕様のまま)。構成をまたいで番号をそろえる場面を挙げられないため
- 複数行にまたがるキーは上端の行の位置に置く
- 左ペインをVariantGroupのツリーにし、キャンバスには選択した構成だけを表示して並べ替える
- 隠れたキーは同じVariantGroupで選択中のキーにくっつけ、決まらなければ手前のキーにくっつける

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TYqQUp9AZ5TqvtELdpcwC6
2026-10-06 08:43:40 +09:00
ewdernaandClaude Opus 5.5 fd21d64bcf provisional: IDX Editorの行と列の判定規則と、適用前のプレビューを決める
- そろっている軸は座標でまとめ、ずれている軸は隣とのつながりでたどる(両方たどると循環する)
- 隣り合う列の対応は1対1にする。誤った1か所で2行が合体するため
- 縦長キーは上端の行、横長キーは左端の列に属させ、外れたら手で直す
- 適用前に判定した行を表示し、列ごとに↑/↓で1行ずらして直せるようにする
- なぞって連番を振る操作は後回しにし、キー列から連番で並べ直す操作を共通の入り口にする

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XGuRxrp4fZwztsK45G21jt
2026-10-06 08:17:47 +09:00
ewdernaandClaude Opus 5.5 af2aa31518 provisional: IDX Editorのプリセットを対象・走査・向きの組み合わせにする
- 種類ごとのプリセットをやめ、対象(全体/選択範囲)・走査・向きの3軸で表す
- 既存定義(QMK layout[]・VIA・KLE)からの取り込みは別の操作にする
- 行は隣の列で最も近いy座標のキーとつなげて判定する
- 排他キー同士の前後は出力番号に影響しないので任意とする

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XGuRxrp4fZwztsK45G21jt
2026-10-06 08:17:47 +09:00
ewdernaandClaude Opus 5.5 1d24de0e79 provisional: PHY Editorの作り直しの範囲と、貼り付け・クラスター内の隙間の扱いを決める
- 作り直すのは ui/phy/ だけ。domain/・io/ とテストは流用する(T-29)
- 貼り付け・複製は選択中のノードと同じ親に、グリッド1刻みずらして置く
- コピーはアプリ内に持ち、システムのクリップボードからはKLE JSONだけを読む
- クラスターの矩形内の隙間は何もない場所として扱う

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jmj4oW3phJrVNNcjMVqo8Q
2026-10-05 08:31:02 +09:00
ewdernaandClaude Opus 5.5 88f18b3b20 provisional: 移動の刻みをグリッドの状態にし、候補を1U・0.25U・0.125U・1/12Uにする
T-28の固定0.25Uは、所感の「刻みはグリッドの状態として持つ」と食い違っていた。
1/12Uは実際に使う刻みなので候補に含める。0.5Uは使わないので入れない。
サイズは0.25U・回転は15度の固定のまま。
キー割り当て案の古い「コピー&ペーストは未議論」をT-11への参照に直す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jmj4oW3phJrVNNcjMVqo8Q
2026-10-05 08:29:55 +09:00
ewdernaandClaude Opus 5.5 65db845dbb provisional: コピー&ペーストのIDと参照の扱いを仮決定に足す
- 複製の範囲の中で閉じた参照(VariantGroupのdefault)は新しいIDへ付け替える
- 複製したキーはIDXに登録せず未登録のままにする。MAPの割り当ても当面複製しない
- 同じプロジェクト内のカット&ペーストはreparentとして扱い、IDと参照を保つ
- PHY Editorではクリップボードの KLE JSON を貼り付けで取り込めるようにする
- 別のプロジェクトへ貼るときのProfileの扱いは問いとして残す

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jmj4oW3phJrVNNcjMVqo8Q
2026-10-05 08:16:21 +09:00
ewdernaandClaude Opus 5.5 d7c35add15 chore: provisional/decisions.md にMarkdownのlint修正をかける
内容は変えない。見出し直後の空行と表の区切り行の書式だけ。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jmj4oW3phJrVNNcjMVqo8Q
2026-10-05 08:16:14 +09:00
ewdernaandClaude Opus 5.5 2ecc535c16 provisional: PHY Editorの呼び方・見出しとバリアントの切り替え方を合意に移す
- 要素の呼び方を仕様書に揃え、バリアントに「レイアウト」を使わない
- reparentは「移し先…」とし、候補の一覧で行き先を見せる
- 操作ボタンはキャンバスの上に置き、階層パネルとキャンバスの見出しをなくす
- バリアントはグループ右上のバッジとV / Shift+Vで切り替える
- タブ名と検証結果欄の呼び方は全エディタ共通の課題として残す

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ABrbf2SmjALke8YHxqeLuC
2026-10-04 20:24:46 +09:00
ewdernaandClaude Opus 5.5 101ffb73d1 provisional: PHY Editorのキー割り当てを「モックで試して決める」に移す
叩き台ができたので、残りはモックに入れて触って詰める。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ABrbf2SmjALke8YHxqeLuC
2026-10-04 18:53:32 +09:00
ewdernaandClaude Opus 5.5 3894df8069 provisional: PHY Editorのキー割り当ての叩き台を置く
KLEから移ってくる利用者を想定し、KLEの割り当てを土台にした。
Shift+矢印はサイズ変更(KLEと同じ)。移動の刻みは修飾キーでなくグリッドの状態で持ち、ドラッグと共有する。
回転はPgUp/PgDnでPgUpが正方向。4方向で隣のキーへ移る操作は当面作らず、Tabの順送りで試す。
キーの判定は記号・文字をevent.key、Shift+数字をevent.codeで行う基準を足した。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ABrbf2SmjALke8YHxqeLuC
2026-10-04 18:47:26 +09:00
ewdernaandClaude Opus 5.5 c5ac41b1cc provisional: PHY Editorのクラスター選択とフォーカスモードの方向を合意に移す
クラスターは長押しで選び、押している間に直近の親から順に上がってループする。
フォーカスモードはダブルクリック(始めた時点で選ばれていたクラスター)かEnterで入り、Escで出る。
キー操作の候補一覧とモディファイアを振る基準を phy-editor-keybindings.md に置いた。
要検討は「モックで試して決める」と「画面仕様までに決める」に分けた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SMS99uQoYnBW1LHuyyufQc
2026-10-03 18:11:29 +09:00
ewdernaandClaude Opus 5.5 f604ca4043 chore: Markdownのlint規則をリポジトリに置き、コミット前に修正をかける
VS Codeは保存時にmarkdownlintの修正を入れるが、規則(MD007のインデント4)がユーザー設定にしかなく、
CLIからは参照されなかった。そのためコミット直後に差分が出ていた。
規則を .markdownlint.jsonc に移し、コミット前に変更したファイルへ --fix をかける指示をCLAUDE.mdに足した。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TsCdfhhE6uxxHkrdJtwFXF
2026-10-01 23:09:55 +09:00
ewdernaandClaude Opus 5.5 8f6e74758e provisional: MAP Editorモックの所感を画面仕様の入力としてまとめる
PHY・IDX・ELC Editorの所感と同じ構成にし、Remapの現状を参考として添えた。
Remapをほぼ正解とみなし、引くものと足すものを洗い出す形で進める。
StaticとDynamicでモードを分けるかは要検討として残す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TsCdfhhE6uxxHkrdJtwFXF
2026-10-01 23:05:01 +09:00
ewdernaandClaude Opus 5.5 91f21dc191 provisional: ELC Editorモックの所感を画面仕様の入力としてまとめる
PHY・IDX Editorの所感と同じ構成で、合意できた方向・要検討・モックの実装上の問題に分けた。
片側だけの配線を保存できるようにする方向と、ボードを提供者にする方向は合意したが、本決定は別途行う。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcF371oTXSea3TGHnZFfGC
2026-10-01 08:57:24 +09:00
ewdernaandClaude Opus 5.5 f03858daa9 backlog: GPIOに直結したLEDの表し方をELC-P-4として追加する
ELCはWS2812系のチェーンしか定めておらず、インジケータなどの直結LEDを表す場所がない。
チェーンとキーの配線は直結LEDと独立に扱えるので保留にする。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcF371oTXSea3TGHnZFfGC
2026-10-01 08:57:24 +09:00
ewdernaandClaude Opus 5.5 ef55ff9c81 provisional: IDX Editorモックの所感を画面仕様の入力としてまとめる
PHY Editorの所感と同じ構成で、合意できた方向・要検討・モックの実装上の問題に分けた。
欠番の要否は、構成をまたいで番号を揃えたい具体例が出るまで現行の連番方式で進める。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcF371oTXSea3TGHnZFfGC
2026-10-01 08:27:53 +09:00
ewdernaandClaude Opus 5.5 c23513bae7 provisional: PHY Editorモックの所感を画面仕様の入力としてまとめる
モックを触った所感と議論を、合意できた方向・要検討・モックの実装上の問題に分けた。
画面仕様を一から作り直すときの入力にし、仕様へ反映したら消す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S3k9PGptCqsJ2ozisjemH7
2026-09-28 09:00:21 +09:00
ewdernaandClaude Opus 5.5 7695d0f51d provisional: kbd-editorの見直しをT-5から外す
kbd-editorを止めたのは失敗ではなく、目的が違うと分かったため(ユーザー談)。フレームワークの本決定の前提にしない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AATqjRyp6rrnwTNdYw8XBT
2026-09-25 22:47:42 +09:00
ewdernaandClaude Opus 5.5 fccbc28bee mock: 仮決定に沿ってモックを実装する(PHY Editor・IDX・ELC・MAP・Generator)
provisional/decisions.md の仮決定(T-1〜T-28)に従い、mock/ に Vue 3 + Vite + TypeScript のモックを置いた。
T-3 の1〜3(回転したクラスター内のドラッグと保存の往復、IDX・MAPとの連携、ELCと出力の対応表)まで。疑似デバイスとの往復(T-24)は未着手。

- KLE JSONの入出力は、KLE本家の serial.js の deserialize の結果を期待値とする fixture(tests/fixtures/kle-oracle.json)で照合した。本家のコードは取り込んでいない(T-7)
- 基本キーコードの表は QMK の data/constants/keycodes/keycodes_0.0.1_basic.hjson(1e340cd)から抽出した
- 実装は Codex(Luna)、レビューは Codex(Sol)。検証: Vitest 53件、Playwright 20件、vue-tsc、vite build
- TypeScript は vue-tsc が 7 系に未対応のため 6 系に固定した
- 操作性の改善(ELCの提供者の表示、一括配線とGeneratorのピン設定の引き継ぎ、キー内の文字のはみ出し)は別途行う

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AATqjRyp6rrnwTNdYw8XBT
2026-09-25 22:42:30 +09:00
ewdernaandClaude Opus 5.5 937fc27dbd provisional: モックの仮実装に向けて未決事項を仮決定し、provisional/ に退避する
メインドキュメントの未確認事項・backlog・暗黙の未決事項について、モック用に進路を1つに固定した。
仕様ではなく、本決定は /decide で行う。ドキュメント間の食い違いは直さず一覧にした。
Codex(Sol・Astra)への相談の原文を consultation/ に置く。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AATqjRyp6rrnwTNdYw8XBT
2026-09-25 17:31:54 +09:00
ewdernaandClaude Opus 5.5 af6ce99364 plan: Cr0wn60のVIA定義をcharlieplexingの検証用サンプルに加える
- samples/via/cr0wn60.json を追加し、テストケースにcharlieplexingを加える
- ピンの割り当てとマスクの参照先としてファームウェアのコミット68d9249を記録する
- CLAUDE.mdのドキュメント地図にsamples/を載せる

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017W6AsoJYTiN3bnxvSMS87f
2026-09-24 23:00:26 +09:00
ewdernaandClaude Opus 5.5 1a443c562d plan: 検証用サンプルを実在のキーボードのKLE JSONで定める
- 60%はCr0wn60、分割はcrkbdとjisplit89、分割+バリアントはKyriaとIris Rev.7、マクロパッドは自作の4x4
- Cr0wn60(MIT、作者本人)と4x4は samples/kle/ に置く
- the-via/keyboardsのもの(GPL-3.0)はコピーせず、コミット9e3e9f4とパスだけを記録する
- 旧リストのErgonomic layoutはcrkbdとKyriaで扱う

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017W6AsoJYTiN3bnxvSMS87f
2026-09-24 22:56:12 +09:00
ewdernaandClaude Opus 5.5 73e913e776 plan: 60% ANSIのサンプルを現行のPHYスキーマの形式に書き換える
- keys/position/size.width/metadata.label を root/type/transform/size.w/labels に置き換える
- 値は変えない。PHYスキーマで検証済み
- 旧形式である旨の注記を外し、見出しに抜粋と明記する

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017W6AsoJYTiN3bnxvSMS87f
2026-09-24 22:47:26 +09:00
ewdernaandClaude Opus 5.5 1c99f60719 hst: IMEレイヤーをHSTレイヤーとし、ホストによるキーコードの解釈の記述に範囲を絞る
- 役割はホスト(OS×ホスト配列)がキーコードをどう解釈するかの記述。IMEの変換はOSの責務で対象外
- データはキーボードに依存しないプロファイルの共有カタログ。識別はOS×ホスト配列(+入力方式)
- プロファイルは順方向の表・成立の前提・対応可否(3値)だけを持つ。逆引きと実現可否の判断は使う側(P-1で要確認)
- MAPはキーコードを保存し、逆引きは一方向の入力補助とする
- 複数ホストの扱いをP-2とし、MAP-P-5の参照をHSTへ向ける

Journal: journal/2026-09-24-hst-layer-scope.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017W6AsoJYTiN3bnxvSMS87f
2026-09-24 22:39:50 +09:00
ewdernaandClaude Opus 5.5 7c927f5e12 map: 固有コード非対応の項目を対応範囲の一覧へ戻す
1414a7dでVIA移行の段落を一覧の途中に挿入し、固有コードの項目が一覧から離れていたのを直す。内容の変更なし。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zrYqwC8nXQX5Kg9Fur6Td
2026-09-24 08:35:10 +09:00
ewdernaandClaude Opus 5.5 a37fdd4abd map: VIAで読み書きする項目と、機能はビルド設定を正とする確認方法を定める
- バージョン、レイヤー数、キーコード割り当て、マクロに対応。エンコーダはMAP-P-4、layout optionはP-3
- リセット系、デバイスの識別表示、キーテスター、custom channelは当面非対応
- 有効な機能は新規キーボードではGeneratorのビルド設定、既存キーボードでは利用者の申告を正とし、容量は実機から読んで照合する
- P-2を実機で未検証という推測に置き換える

Journal: journal/2026-09-24-via-read-write-scope.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zrYqwC8nXQX5Kg9Fur6Td
2026-09-24 08:32:03 +09:00
ewdernaandClaude Opus 5.5 333c651491 map: 最初の対応環境をQMK 0.34.4とする
- QMK 0.34.4(08c662f)、キーコード体系0.0.9、VIAプロトコル0x000D。VIAは同梱の従来実装
- P-2の未決事項から対応コミットとキーコード体系を外す

Journal: journal/2026-09-24-qmk-feature-inventory.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zrYqwC8nXQX5Kg9Fur6Td
2026-09-24 08:25:08 +09:00
ewdernaandClaude Opus 5.5 0dc7933077 backlog: Cコードの生成とユーザーのCの組み込みをMAP-P-9として追加する
keymap.jsonではタップダンス・コンボ・キーごとの設定等を表現できず、Cの生成が必要になる。
JSONを正本にしつつ、ユーザーのC/hで一部を上書きする方法を保留する。フック方式が有力。

Journal: journal/2026-09-24-generator-c-override.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zrYqwC8nXQX5Kg9Fur6Td
2026-09-24 08:22:20 +09:00
ewdernaandClaude Opus 5.5 dccc5f095f map: 対応環境をQMKのコミットと使うモジュールの一覧で固定する
- 各モジュールは出所とコミットで指定し、QMK同梱のものはQMKのコミットで決まる
- VIAもモジュールの1つとして扱い、QMKリポジトリ外へ移っても同じ形で指定できるようにする
- MAP-P-6の未決事項からモジュールの指定方法を外す

Journal: journal/2026-09-24-via-module-migration.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zrYqwC8nXQX5Kg9Fur6Td
2026-09-24 08:21:59 +09:00
ewdernaandClaude Opus 5.5 1414a7d725 map: VIAがCommunity Modulesへ移ってもVIAモジュールで追従する
- QMKはVIAをモジュールへ移し、旧実装を将来削除すると告知している(0.34.4 ChangeLog)
- QMKとVIAの両方に追従する方針は変えず、Community Modules非対応の例外としてVIAモジュールに対応する
- 移行がmasterに入る前に対応するため、MAP-P-6の再開条件に#26315のdevelop取り込みを加える

Journal: journal/2026-09-24-via-module-migration.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zrYqwC8nXQX5Kg9Fur6Td
2026-09-24 08:21:45 +09:00
ewdernaandClaude Opus 5.5 49b023ceaa map: キーコードをQMK表記とし、キーごとの設定をMAP、全体設定をGeneratorに置く
- キーコードはQMKの表記を基本とし、レイヤーとStatic定義は名前で参照する
- キーボード全体の設定値はFirmware Generator、キーごとの上書きはMAPが持つ。QMKの機能ごとに所属を判断しないため
- P-1を動作定義とキーごとの設定の保存形式に絞り、初期対応範囲の問いを削除する
- QMK以外のファームウェアでのキーコード表記をMAP-P-8としてbacklogへ

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P4UAjpgV7DLqJqF3sEf1bi
2026-09-23 21:18:59 +09:00
ewdernaandClaude Opus 5.5 e8fe11bfa1 backlog: 再ビルド時に実機の調整を失わないワークフローをMAP-P-7として追加する
QMK本家のVIAは、実機に保存したVIAのデータをビルド日時をもとにした値で検証し、一致しなければ初期化する。
再ビルドの前に実機の調整を読み出す手順が必要になる。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P4UAjpgV7DLqJqF3sEf1bi
2026-09-23 21:09:22 +09:00
ewdernaandClaude Opus 5.5 18e060d390 map: QMKはVIAのみDynamic対応とし、他の公式機能をStatic、非公式機能を当面非対応とする
- DynamicはQMK本家masterのVIAプロトコルが公開する項目に限る
- 公式機能のうちVIAで変更できないものはFirmware Generatorで生成する対象とする
- フォーク・master以外のブランチ・Community Modulesは当面非対応(MAP-P-6)、固有コードは原則非対応
- 対応QMKはコミット固定とし、UIと実機照合はVIAプロトコル・キーコード体系のバージョンで行う
- Static定義への参照は名前で持ち、VIA管理外のEEPROM設定は読み出せない制約を明記
- P-3のインデントを修正

Journal: journal/2026-09-23-qmk-dynamic-scope.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P4UAjpgV7DLqJqF3sEf1bi
2026-09-23 20:33:43 +09:00
ewdernaandClaude Opus 5.5 cceb9a3e53 map: キーコードの表示を当面US配列とし、表示用OS配列をMAP-P-5で保留する
US/JISの切り替えや他言語対応、IMEレイヤーとの関係は未定。割り当てと
実機との読み書きは表示用の配列と独立に実装できるため保留とする。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBmwYrXocgCoFJfxVcKSGH
2026-09-23 14:52:17 +09:00
ewdernaandClaude Opus 5.5 cd502e260f backlog: ON/OFF以外の入力への割り当てをMAP-P-4として追加する
エンコーダはPHYで部品ノードとして置かれ、キーIDを参照するMAPからは
割り当てられない。キーへの割り当てはこれを扱わずに実装できるため保留とし、
MAPのP-1(割り当てる動作の範囲)とは独立に扱う。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBmwYrXocgCoFJfxVcKSGH
2026-09-23 14:52:16 +09:00
ewdernaandClaude Opus 5.5 44035a7915 map: 新規作成したMAPは未割り当てから始める
PHYのラベルからの自動適用は行わない。ラベルからの移植はPHY-P-8として
保留中のため、保留課題にPHYへのリンクを置く。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBmwYrXocgCoFJfxVcKSGH
2026-09-23 14:51:21 +09:00
ewdernaandClaude Opus 5.5 76406e2f02 map: 実機で調整した割り当てをStaticの初期キーマップへ反映できるようにする
プロジェクトのMAP、組み込んだ初期キーマップ、実機の現在値を区別する。
実機の保存内容を初期化しても調整後の割り当てに戻せるようにするため。
初期キーマップとの差分・反映の操作はP-3で扱う。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBmwYrXocgCoFJfxVcKSGH
2026-09-23 14:51:21 +09:00
ewdernaandClaude Opus 5.5 46905b1e79 map: P-3に排他キーが実機の割り当て先を共有する問題を追加する
VIAの割り当てはrow/col単位で保存されるため、同じ接続先の排他キーは
実機では1つの割り当て先を共有する。書き込み・読み出しでのPHYキーとの
対応を未決事項と完了条件に加え、未決事項を箇条書きに分けた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBmwYrXocgCoFJfxVcKSGH
2026-09-23 14:51:21 +09:00
ewdernaandClaude Opus 5.5 63da6e77d8 map: キーマップレイヤーを並び順と独立した名前で識別する
レイヤーを切り替える動作も名前で参照し、番号へは出力時に並び順から
変換する。並べ替えや挿入で参照先がずれないようにするため。
スキーマのlayerからidを外し、MAP内で一意なnameを識別子とする。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBmwYrXocgCoFJfxVcKSGH
2026-09-23 14:51:21 +09:00
ewdernaandClaude Opus 5 54f292b08e agent: decide/doc-lintを更新し、.agents と .claude を同期
codexが .agents 側で更新した内容を .claude へ取り込み、名前依存の箇所だけ
置換した。両ツリーの差分はCLAUDE.md/AGENTS.mdとパスの表記のみ。

- 非採用一覧の掲載基準をルール1の変更に合わせる
- 本文の「未決」はリンク・課題追加・言及削除のいずれかを判断する(ルール4)
- 責務を外へ移したあと、担当範囲が分かる一文と参照が残っているか確認する
- doc-lintに未確認事項リンクの参照先・ラベル整合の検査(ERROR)と、
  リンクのない課題番号・参照なしの「未決」「未定」の検出(WARN)を追加
- load() のコードフェンス処理が ~~~ や長さ違いを扱えていなかったのを修正
- .Codex という実在しないパスの参照を .agents に修正

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MtVk8W4yK6j3eCqQpEQBLS
2026-09-22 22:32:18 +09:00
ewdernaandClaude Opus 5 2fa910ed74 docs: 検討済み・非採用の掲載基準を再提案防止の必要性に変える
件数と古さで機械的に落とすと、再提案を防ぐために必要な案が先に消える。
掲載の可否を「実際に検討した別方針で再提案されうるか」で判断し、本文の
制約文で足りるものは重複させない。落とした案がなければセクションを設けない。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MtVk8W4yK6j3eCqQpEQBLS
2026-09-22 22:32:08 +09:00
ewdernaandClaude Opus 5 bc2d33f856 docs: 本文から未確認事項へのリンク形式を運用ルール4に追加
本文で「未決」とだけ書くと、末尾のどの項目に対応するか読む側が追えない。
同一ファイル内・他ファイルからのリンク形式を定め、問いの内容は
`## 未確認事項` にだけ置いて二重管理を避ける。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MtVk8W4yK6j3eCqQpEQBLS
2026-09-22 22:04:29 +09:00
ewdernaandClaude Opus 5 142357a440 map: MAPレイヤーを新設し、実機との読み書きとVIA対応を決める
MAPエディタは割り当ての編集に加え、実機への書き込みと読み出しを一組で
提供する。新規キーボードの設計から実機での調整までを主眼に置くため。
最初の通信プロトコルはVIAとし、独自プロトコルの追加やそのための
ファームウェアのフォークは行わない。

VIA向けキーボード定義の生成はFirmware Generator、ビルドと書き込みは
IDEの責務として、MAP編集の外に置いた。VIAで通信できることと、MAPが
そのデータを所有することは区別する。

Journal: journal/2026-09-22-map-via-workflow.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MtVk8W4yK6j3eCqQpEQBLS
2026-09-22 22:04:16 +09:00
ewderna 26df6edc06 agent: add skills for codex( simply copy) 2026-09-22 21:27:25 +09:00
ewderna a80f5ea215 agent: add AGENTS.md for codex (simply redirect) 2026-09-22 19:57:13 +09:00
ewdernaandClaude Opus 5 5b671976d5 docs: 保留課題をbacklogへ分離し、運用ルール5を追加
未確認事項が「現在の仕様が答えに依存するもの」と「答えが出なくても進められる
もの」を混ぜて抱えていた。後者を backlog/README.md へ移し、仕様書の未確認事項を
前者だけに絞る。移す際は保留中の対応範囲・暫定仕様を仕様書本文に明記し、
backlogへの移動が仮説の採用を意味しないようにする。

PHY・ELC・IDXの10件を移し、3ファイルとも未確認事項が空になった。
ルール4では、事実確認の「格上げ条件」と意思決定の「完了条件」を区別する。
仕様書側の保留課題はbacklogの区分へのリンク箇条書きだけに固定し、
末尾は保留課題 → 検討済み・非採用 → 未確認事項の順に置く。

doc-lintをルール5に対応させ、backlogを検査対象に加えた。回帰テストを追加。

Journal: journal/2026-09-22-document-backlog.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DKW58HEg8zAQoLrkWByPfD
2026-09-22 19:52:39 +09:00
ewdernaandClaude Opus 5 66a594a378 elc: 走査方向の決定と追加指定をFirmware Generatorに置く
ELCは配線を保存し、どちら側のピン群を駆動してどちら側から読み取るかは
出力器が選ぶ。追加指定が必要な場合は出力設定で受け取る。
複数の適切な方法から出力器が選べるなら一意性は要らないので、配線だけから
全方式の走査手順が一意に決まることをELCの成立条件にしない。

これは責任分担の決定であり、各方式の実配線を検証した結果ではない。
P-3は方式ごとの走査設定の確認として残す。

Journal: journal/2026-09-22-elc-scan-settings.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DKW58HEg8zAQoLrkWByPfD
2026-09-22 19:52:14 +09:00
ewdernaandClaude Opus 5 76c349fa0c idx: 全バリアントを1つのorderに並べ、出力時に取捨して番号を詰める
排他キーも別々の要素として並べる。出力はバリアントを選択した構成を単位とし、
対象外のキーを除いた並びの位置をそのままキー番号にする。同じ配線の排他キーは
選択後に同時には残らないため、番号を共有させる必要がない。
保存したorderは選択で書き換えず、番号の互換性は出力レイアウトごとに扱う。

6d0eba9 で「IDXは番号を共有できる」と書いたが、共有をやめる形に変える。
コミュニティレイアウトの並びを取捨で得られるかは、この方式では未検証のため
IDXのP-1として残す。

Journal: journal/2026-09-22-idx-variant-output.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DKW58HEg8zAQoLrkWByPfD
2026-09-22 18:36:09 +09:00
ewdernaandClaude Opus 5 c31360a772 phy: 行の先頭以外の r, rx, ry を取り込みで受け入れる(P-16解消)
KLE本家は拒否するが、VIAとRemapは読む。Remapで扱える基板を取り込めない
状態にしないため、位置を問わず受け入れる。本家のコードから行頭チェックを
外した挙動をそのまま採る。出力は従来どおり行頭にのみ置く。

Journal: journal/2026-09-21-kle-lenient-row.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SSKcJLPAaPLchG4LXxk6cY
2026-09-21 21:57:45 +09:00
ewdernaandClaude Opus 5 6d0eba9346 phy: 複数のバリアントで成立するキーはVariantごとに複製して置く
隣り合うキャップが同じフットプリントを食い合う基板(MACRO1)があり、選択を独立な
VariantGroupに必ず分解できるわけではない。分解を強いると、キャップが重なる組み合わせを
作れてしまう。複製してもELCは接続先を、IDXは番号を共有できるので他レイヤーは壊れない。
どのキーノードが同じ物理キーかはBeyond KLEが判定せず、設計者の情報として扱う。

前のコミットで「独立したVariantGroupに分けて表す」と書いたが、MACRO1は下段を含めると
分解できない。あわせて訂正する。

Journal: journal/2026-09-21-variant-shared-key.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 21:34:10 +09:00
ewdernaandClaude Opus 5 8e7d21534d phy: 未確認事項のP-16を番号順の位置へ移す
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 19:01:27 +09:00
ewdernaandClaude Opus 5 e1aee6c92c elc: LEDチェーンをバリアントごとに分けないことを確定する
QMKの rgb_matrix はボードに1つで、レイアウトごとに分かれない。
バリアント固有の位置にLEDが載る基板も載らない基板も実在するが、どちらもチェーンは1本で、
選択によって並びが変わらない。載らないキーはPHYのper-key LEDの有無でそのまま表せる。

Journal: journal/2026-09-21-led-chain-variant.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 19:01:00 +09:00
ewdernaandClaude Opus 5 d7a0f99cb4 idx: コミュニティレイアウトの並びが取捨だけでは得られない場合を記録する
QMKの実データで、コミュニティレイアウトとの173組のうち30組(すべてISO系)が
`LAYOUT_all` の並びの部分列にならない。同じマトリクス位置がレイアウトによって
別の物理キーになり、残ったキーの読み順が変わるため。
埋め方は未定として未確認事項に残す。

Journal: journal/2026-09-21-community-layout-order.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 19:01:00 +09:00
ewdernaandClaude Opus 5 ea7bf01e72 phy: 選択肢をまたぐ共通キーは独立したVariantGroupに分けて表す
VIAの定義824件を調べ、複数の選択肢で成立するキーを持つ基板を2件見つけた(LW67、MACRO1)。
どちらも独立した2つの選択を1つの選択肢リストに畳んだもので、VariantGroupを2つ置けば
キーを複製せずに表せる。残るのは、積のうち一部しか提供しない基板の扱いだけになった。

Journal: journal/2026-09-21-variant-shared-key.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 19:00:46 +09:00
ewdernaandClaude Opus 5 12a47fe822 phy: 公開KLE JSON 1505件で変換可否を確かめ、書き戻しの制約を加える
VIAの定義とKLE本家のプリセット・サンプルを集め、本家の serial.js を通して往復させた。
幾何は全件無損失で、PHYで表せないKLEの幾何情報は無かった。
KLEは p, sm, sb, st を空文字に戻す指定を無視するため、混在する配置は書き戻せない。
本家が読めないJSONも実在するので、取り込みの寛容さを問いとして残す。

Journal: journal/2026-09-21-kle-corpus.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 19:00:32 +09:00
ewdernaandClaude Opus 5 ebe1434860 phy: KLE出力の rx, ry をクラスター原点で共有し、座標を丸める
KLEが1行にまとめるのは r, rx, ry が一致し y が厳密に等しいキーだけなので、
同じ絶対角度のキーには共通の軸を与え、絶対座標への変換で入った誤差は丸めて落とす。
ErgoDox・Kinesis Advantage で元のKLE JSONとバイト単位で一致する出力になった。

Journal: journal/2026-09-21-kle-output-rowgroup.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 19:00:17 +09:00
ewdernaandClaude Opus 5 69d9c73fff phy: プロファイルをファイル単位の器に置き、キーはIDで参照する
保存形式に PhyFile を書き、profiles を木の外に出した。同じ定義を複数のキーに
複製しないため、Key.profile は実体ではなくIDの参照にする。
ビジュアル表現は上面矩形の4辺インセット + R とし、非対称な上面を表せる形にした。
プロファイル内の距離はすべてmmに統一。

Journal: journal/2026-09-21-profile-container.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
2026-09-21 18:58:38 +09:00
ewdernaandClaude Opus 5 a175ee3c53 PHY: レイアウトバリアントを木のノードとして導入し、ELC/IDXの扱いを決める
交換可能なキークラスタ(ISO Enter、スペース周りのキー数など)を、
VariantGroup / Variant の2ノードでPHYの木に表す。全バリアントのキーを
同時に持ち、単一の配置を要求する出力のときだけ1つ選んで畳む。

ELCは選択に関係なくsupersetを配線する。排他キー同士は同じ接続先を共有してよい。
IDXはキー番号の空間を1つに保ち、同じ接続先に配線された排他キーは
`order` の配列要素として同じ番号を共有する。

Journal: journal/2026-09-21-multi-layout.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JPCpuPv6hDN76RgNe2PsRR
2026-09-21 09:34:51 +09:00
ewdernaandClaude Opus 5 2eb2867c13 IDX: キー番号の正本としてIDXレイヤーを確定し、MAPの参照をPHYへ移す
キー番号はPHYの幾何からもELCの配線からも導出できない決めごとなので、IDXが正本を持つ。
公開した基板のキー番号は他人のキーマップが依存する公開インターフェースであり、
出力のたびに生成し直さず固定する。

「最も重要な抽象化層」「最も欠けている層」という位置づけは誤りだったので落とした。
QMKのLAYOUTマクロの引数順、ZMKのmatrix transformのmap、KMKのcoord_mappingとして
既に存在していて、形式化されていないだけである。

あわせて2点。MAPはキー番号ではなくPHYのキーIDを参照する(IDXへの挿入でMAPがずれないため)。
IDXの保存形式は order: string[] とし、ELCのLEDChain.orderと同じく並びの位置を番号とする。

phase1-json-schema.md の P-1 を解消。

Journal: journal/2026-09-21-idx-necessity.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 08:52:27 +09:00
ewdernaandClaude Opus 5 fdd3c7def1 workflow: 既存フローとの対応だけを残し、確定した仕様に追従させる
解決策・プロトコル・次のアクションの各節は layers と phase1 の重複だったため削除し、
工程分析とその課題だけの文書にした。レイヤーの定義は layers を正とする旨を冒頭に置く。
工程の対応先は、回路設計をELCのみ、ファームウェア基本設定をPHY+IDX+ELCに修正。
PCB製造は品種とフットプリントを持たないため対応なしとした。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 22:02:39 +09:00
ewdernaandClaude Opus 5 d858361586 schema: IDX/ELCスキーマを確定した仕様に追従させる
ELCをELCレイヤー.mdの保存形式で書き直した。microcontrollerとmatrixの列挙は
捨てたモデルなので削除し、提供者・端子・LEDチェーンに置き換え。参照先もIDXからPHYへ。
IDXからはrow/colとラベルを外し、キーIDとキー番号の対応だけにした。
PHYはcompatibilityブロックを、キー側と同じ形のファイル単位kleCompatibilityに置換。
clusterのnameは保存形式に無いため必須から外した。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 21:56:32 +09:00
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