Commit Graph
106 Commits
Author SHA1 Message Date
ewdernaandClaude Opus 5.5 3749f267b5 provisional: PHY Editorで異形キーを描き・編集し・追加する方法を仮に決める(T-32)
- 2つの矩形の和の外形を1つの輪郭で描き、選択枠も同じ外形にする
- プロパティ欄は「異形キー」のチェックで2つ目の矩形の欄(X2・Y2・Width2・Height2)を出し入れする
- 1Uの「キーを足す」は残し、隣に「異形キーを足す」selectを置く。候補はdomainのプリセット表から出し、今はISO Enterだけ
- 追加位置は1Uと同じ規則で、外接矩形の左上を合わせる

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xmqw9x7EoryY6zf116i3yM
2026-10-26 08:54:46 +09:00
ewdernaandClaude Opus 5.5 c180642fa8 mock: IDX Editorを作り直す(T-31)
provisional/idx-editor-feedback.md の合意事項と T-31 の仮決定に沿って、IdxPanel を捨てて ui/idx/ に一から書き直した。
並びのリストは置かず、左にバリアントのツリー、中央のキャンバスでドラッグして並べ替え、右にプリセット・取り込み・未登録の登録を置いた。

- order の操作(隠れたキーのくっつき先、挿入、入れ替え、連番の並べ直し)を domain/idxOrder.ts に、
  走査・半身の分割・行の割り当てのずらし・マトリクス順を domain/idxScan.ts に、純粋関数として置いた。行と列の判定は rows.ts をそのまま使う
- QMK keyboard.json・VIA定義・KLE JSON の取り込みは、位置と回転で表示中のキーに照合する(io/layoutImport.ts、domain/idxImport.ts)
- 回転したキーでも出力番号を正立させる
- Codex の設定ファイルが壊れていて起動できなかったため、実装は Claude が直接行った
- 検証: vue-tsc 0件、Vitest 101件(うち新規17件)、Playwright 48件(IDX 8件を書き直し)、prettier --check

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GzX13A7HseQz9n6etGbFDg
2026-10-25 10:59:44 +09:00
ewdernaandClaude Opus 5.5 2321c068f9 provisional: IDX Editorの作り直しの範囲と、所感が定めていない操作の細部を仮に決める(T-31)
- IdxPanel を捨てて ui/idx/ に作り直す。order の操作は domain/ の純粋関数にし、rows.ts は変えずに使う
- 表示する構成はエディタ内の状態にし、output.variantSelection を書き換えない
- ドロップ先のキーの幅で挿入・入れ替えを分け、隠れたキーのくっつき先と、連番の並べ直しでの動き方を決める
- 半身の分け方、向きの指定、プレビューでのずらし方、取り込みの照合方法を決める

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GzX13A7HseQz9n6etGbFDg
2026-10-25 10:44:17 +09:00
ewdernaandClaude Opus 5.5 0838487f4a mock: 変化のないスナップショットをUndo履歴に積まない
数値欄の change がフォーカスを外したときにもう一度届くと、同じ値の変更が履歴に2回積まれ、
Undo 1回で戻らなかった。グループ編集の commit と同じく、直前と同じなら積まない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yoUu9Xd8dhwyQdCfKfaXG
2026-10-23 22:18:50 +09:00
ewdernaandClaude Opus 5.5 785daa23c2 mock: スタビ位置は、どのサイズも何も選ばない状態から始める(T-30 単位8)
候補が1つのサイズも既定で選ばない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yoUu9Xd8dhwyQdCfKfaXG
2026-10-23 22:18:50 +09:00
ewdernaandClaude Opus 5.5 eacf8a1581 mock: スイッチ・スタビの十字をトグルで出し、スタビ候補を選べるようにする(T-30 単位8)
スタビ候補はキーの長辺の長さで引き、キーごとに複数選べる。選択は ProjectFile.ui.phy.stabilizers に持つ。
プロパティ欄に switchOffset の入力欄を置く。異形キーは候補なし。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yoUu9Xd8dhwyQdCfKfaXG
2026-10-23 22:13:07 +09:00
ewdernaandClaude Opus 5.5 2c388e3bdb decisions: T-30 単位8のスタビ候補を幅ごとに決め、選択はuiに持つ
Deskthority wiki の実測と、プレート・基板の生成ツールの値で裏取りした。
6U・6.25Uは候補が複数あるため、キーごとに複数選べるようにし、初期は未選択とする。
switchOffset は2U以上でも必要になる(6U offset、6.25U G80)が、候補とは連動させず手で入れる。
異形キーは候補を出す仕組みだけを入れ、候補は置かない。

Journal: journal/2026-10-23-stabilizer-positions.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yoUu9Xd8dhwyQdCfKfaXG
2026-10-23 22:05:39 +09:00
ewdernaandClaude Opus 5.5 b383fcf844 mock: 長押しにループ方式とリスト方式を入れ、ツールバーで切り替える(T-30 単位7b)
どちらも押した位置に円形インジケータを、少し離して選択先のリストを出す。
間隔は600msで始まり1000msごとに進む(500ms/450msは早いという所感への対応)。
リスト方式は、ポインタがリストに入ると巡回を止め、離したときに指している行で確定する。
リストへ向かう動きをドラッグと取り違えないよう、リスト方式では長押し後のドラッグをしない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ShoEXYqi8PWTjB9E86Ltot
2026-10-23 21:07:04 +09:00
ewdernaandClaude Opus 5.5 37ed6d5186 mock: 「移し先…」セレクトの幅を固定する
閉じたセレクトの幅は最長の候補名で決まるため、キーを足すなどで候補が変わると
ツールバーが折り返し、キャンバスが縮んで全体表示がやり直されていた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ShoEXYqi8PWTjB9E86Ltot
2026-10-23 21:04:16 +09:00
ewdernaandClaude Opus 5.5 a4eabe3691 mock: キャンバスの viewBox を、ツールバーを除いた SVG の大きさに合わせる
ResizeObserver がツールバーを含むペインを見ていたため、viewBox の高さが SVG の実寸より
ツールバーの分だけ大きく、描画が縮んでいた。ツールバーが折り返すとずれが広がる。SVG 自身を見る。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ShoEXYqi8PWTjB9E86Ltot
2026-10-23 20:59:42 +09:00
ewdernaandClaude Opus 5.5 b314309e8c mock: 長押しの処理を usePhyLongPress に切り出す(T-30 単位7a)
候補・巡回のタイマー・表示ラベルを usePhyLongPress に移し、
usePhyCanvasPointer はドラッグ・クリックとの接続だけを持つ。挙動は変えない。
7b で2方式を入れる土台にする。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BKxNtqjjPyttUfT1TgC7Qt
2026-10-23 08:36:09 +09:00
ewdernaandClaude Opus 5.5 50e672768b mock: バリアントグループを選んでキーを足すと、表示中のバリアントに新しい行を作る(T-30 単位6)
クラスターを選んだときと同じ挙動にそろえる。これまではグループの右隣(親の中)に足していた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XsamNKrWY3obJwR746oQRq
2026-10-23 08:23:44 +09:00
ewdernaandClaude Opus 5.5 e5678d79e6 mock: クラスターを選んでキーを足すと、そのクラスターに新しい行を作る(T-30 単位6)
これまではクラスターを1つのノードとして扱い、その右隣(親の中)に足していた。
クラスターの中に新しい行を作り、その左端に置く。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XsamNKrWY3obJwR746oQRq
2026-10-23 08:18:22 +09:00
ewdernaandClaude Opus 5.5 f64d632136 mock: キー・部品を足したあと、足したノードを選ぶ
ツリーの最後のノードを新しいノードとみなしていたため、クラスター内に足すと
ツリーでそれより後ろにある別のキーを選んでいた。追加前後のIDの差で特定する。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XsamNKrWY3obJwR746oQRq
2026-10-23 08:09:24 +09:00
ewdernaandClaude Opus 5.5 9254d0649b mock: キー追加を、選択中のキーの行の右端、または新しい行の左端に置く(T-30 単位6)
行の判定は idx-editor-feedback.md の規則(そろっている軸は座標でまとめ、
ずれている軸は隣とのつながりで1対1にたどる)を domain/rows.ts に実装し、
IDX Editor でも使えるよう列の判定も合わせて置いた。
何も選んでいないときは、コンテナの全キーの下に新しい行を作り、その左端に置く。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XsamNKrWY3obJwR746oQRq
2026-10-23 07:54:53 +09:00
ewdernaandClaude Opus 5.5 0697e7a3b4 mock: バリアントのバッジをノードより後に描き、キーの下に隠れないようにする
バッジは NodeSvg の再帰の中で各バリアントグループの <g> に描いていたため、
後から描かれる兄弟のキーに隠れていた。選択の描画層の後に PhyBadgeLayer を置き、
位置は純粋関数 variantBadges でワールド座標に直して正立で描く。
フォーカス中、フォーカス外のバッジは薄く描き、クリックを受けない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NznQtmVPoQAnietqwr1auL
2026-10-22 14:24:49 +09:00
ewdernaandClaude Opus 5.5 812e2edfc2 mock: 選択中のクラスターにだけ原点の丸を出す(T-30 単位5)
単位1の選択の描画層に、選択中のクラスターとバリアントグループの原点の丸を描く。
長押しの候補になっているだけのクラスターには出さない。丸の大きさは画面上で固定する。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NznQtmVPoQAnietqwr1auL
2026-10-22 09:42:32 +09:00
ewdernaandClaude Opus 5.5 e50722948d mock: キーを画面の端へ寄せると、キャンバスを自動でスクロールする(T-30 単位4)
ノードのドラッグ中にポインタがSVGの端から32px以内か外にあると、
requestAnimationFrame で pan を動かし続け、DOM更新後の最後のポインタ位置で
ドラッグ位置を計算し直す。速度は端に近いほど速く、上限480px/秒(autoPanVelocity)。
範囲選択とパンのドラッグは対象外。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NznQtmVPoQAnietqwr1auL
2026-10-22 09:39:19 +09:00
ewdernaandClaude Opus 5.5 38954e9b36 mock: バリアントの既定の印・バッジ・作成先を直す(T-30 単位3)
ポップオーバーの既定の印を「既定」の札にする。バッジには名前を書かず、
表示中のバリアント名はツールチップで示す(はみ出しをなくす。T-30の着手前の決定を反映)。
バリアントグループは選択の入れ物(クラスター・バリアント)の中に作る。
そのため domain に createVariantGroupInParent を足し、variant のIDを渡すと
例外になっていた parentNodes を直した。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NznQtmVPoQAnietqwr1auL
2026-10-22 09:19:06 +09:00
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