Files
Beyond-KLE/journal/2026-09-18-typescript-implementation-plan.md
T
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

5.2 KiB

typescript-implementation-plan.md の再編

結論

  • ファイル名を implementation-plan.md に変更。TypeScriptの採否も技術選定のやり直しに含まれるため
  • 決まったことだけを書く文書にした。本文に残したのは次の2つ
    • PHY Editor の土台(300fb18 で追記した自作の決定)
    • 検証用サンプル(テストケース4種とデータ例)。データ例は旧形式のため変換が必要と明記した。変換はユーザーが後でやる
  • 技術スタック・プロジェクト構造・開発フェーズ・実装優先度・セットアップ手順・次のアクションは、以下に原文のまま移した
  • 未確認事項に P-2 技術選定、P-3 リポジトリ構成を立てた
  • 原本: git show 9ebe302:typescript-implementation-plan.md

各記述の行き先

元の記述 行き先 理由
PHY Editor の土台 本文 決定済み
テストケース4種、データ例 本文「検証用サンプル」 ユーザー判断で残す。データ例は要変換
技術スタック ここ + P-2 選定をやり直す(Vue案もNuxtに慣れているだけ、ユーザー談)
プロジェクト構造 ここ + P-3 技術選定に依存
開発フェーズ 1a/1b ここ 未決。keyboard-design-layers.md の Phase 1〜3 と重複
実装優先度 ここ 優先度評価。期間の根拠なし
開発環境セットアップ ここ 技術スタックに依存
次のアクション、「実装を開始しますか?」 ここ AIとの会話の残骸

移した原文

プロジェクト構造

beyond-kle/
├── packages/
│   ├── core/                 # 共通型定義とユーティリティ
│   │   ├── src/
│   │   │   ├── types/       # 各レイヤーの型定義
│   │   │   ├── validators/  # JSON Schema バリデーター
│   │   │   └── utils/       # 共通ユーティリティ
│   │   └── package.json
│   ├── phy-editor/          # PHYレイヤーエディタ
│   ├── matrix-mapper/       # IDX/ELCレイヤーマッパー
│   ├── keymap-designer/     # MAPレイヤーデザイナー
│   ├── converter/           # 既存フォーマット変換
│   └── firmware-gen/        # ファームウェア生成
├── tools/
│   ├── cli/                 # CLI ツール
│   └── web-editor/          # Web統合エディタ
├── schemas/                 # JSON Schema定義
├── examples/               # サンプルプロジェクト
└── docs/                   # ドキュメント

開発フェーズ

Phase 1a: 基盤実装

  1. 型定義とSchema

    • TypeScript型定義
    • JSON Schema validation
    • テスト用サンプルデータ
  2. 変換エンジン

    • KLE JSON → PHY変換
    • PHY → IDX自動生成
    • QMK/VIA出力
  3. CLIツール

    • 変換機能のコマンドライン提供
    • バリデーション機能

Phase 1b: エディタプロトタイプ

  1. PHY Editor (Web)

    • React + Canvas での編集機能
    • KLE互換インポート
  2. Matrix Mapper

    • 視覚的マトリックス割り当て
    • 最適化アルゴリズム

技術スタック

コア

  • 言語: TypeScript
  • ランタイム: Node.js / Bun
  • パッケージ管理: pnpm + workspace
  • バリデーション: Ajv (JSON Schema)

CLI

  • フレームワーク: Commander.js
  • 出力: chalk (色付き), table

Web Editor

  • フロントエンド: React + Vite
  • 描画: Konva.js / Fabric.js
  • 状態管理: Zustand
  • UI: Mantine / shadcn/ui

テスト

  • テストランナー: Vitest
  • E2E: Playwright

実装優先度

最優先 (2週間)

  1. 型定義とJSON Schema
  2. KLE → PHY変換
  3. PHY → IDX基本変換
  4. CLIでの変換確認

高優先 (1ヶ月)

  1. QMK/VIA出力
  2. 基本的なWebエディタ
  3. マトリックス最適化

中優先 (2ヶ月)

  1. 高度なエディタ機能
  2. プロジェクト管理
  3. 既存ツール連携

開発環境セットアップ

1. プロジェクト初期化

# プロジェクト作成
mkdir beyond-kle-proto
cd beyond-kle-proto

# pnpm workspace設定
echo 'packages:\n  - "packages/*"\n  - "tools/*"' > pnpm-workspace.yaml

# TypeScript設定
pnpm add -D typescript @types/node
npx tsc --init

# 共通依存関係
pnpm add -D vitest ajv

2. パッケージ構成

# Core package
mkdir -p packages/core/src/{types,validators,utils}
cd packages/core && pnpm init

# CLI tool
mkdir -p tools/cli/src
cd tools/cli && pnpm init

# 各エディタパッケージ
mkdir -p packages/{phy-editor,matrix-mapper,keymap-designer}

3. 開発ツール設定

# Linting & Formatting
pnpm add -D eslint prettier @typescript-eslint/eslint-plugin

# Testing
pnpm add -D @vitest/ui

# Build tools
pnpm add -D tsup

次のアクション

  1. GitHub リポジトリ作成
  2. 開発環境セットアップ
  3. 型定義の実装開始
  4. KLE変換機能のプロトタイプ

実装を開始しますか?最初にどの部分から取り組みたいでしょうか?