概要
スキルの プリセット機能 を導入し、ユーザーがよく使うスキルの組み合わせを名前付きで保存して、複数のエージェントに一括適用できるようにする。
背景 / ユースケース
現状、ユーザーはスキルを エージェント単位で個別に install / symlink / copy する必要がある。用途別にスキルセットを束ねて管理できれば、以下のシナリオを高速化できる。
- 新規エージェント追加時のセットアップ(テンプレ適用)
- プロジェクト/ワークフロー別のスキル構成の切替
- 複数エージェント間でスキル構成を揃えたいケース
例:
| プリセット |
含まれるスキル |
対象エージェント |
| Frontend 開発 |
React, TypeScript, Tailwind 系 |
Claude Code, Cursor |
| ドキュメント執筆 |
blog-writing, editing, grammar |
Universal 全体 |
| Code Review |
review, security-review, lint |
Claude Code のみ |
想定する機能
- プリセットの CRUD(作成 / 名前変更 / 削除)
- プリセット内のスキルリスト編集(追加・削除)
- 既存エージェントのスキル構成からプリセットを生成(逆引き / "Save current as preset")
- プリセット適用 = Sync と同じ two-phase UX(preview → confirm → execute)
- SyncResultDialog パターンを再利用し、スキル×エージェント単位で created / replaced / skipped / error を表示
UI 構成案
- Sidebar: Bookmarks セクションの下に Presets セクションを追加
- PresetDetailModal: クリックでモーダル表示。対象エージェントを multi-select → Apply
- PresetEditorModal: プリセットの作成・編集(スキル選択は既存の skill list を流用)
参考にする既存パターン
| 既存機能 |
参考ポイント |
| Bookmarks (v0.7.0) |
Sidebar + DetailModal、Redux 永続化の型 |
| Sync (v0.6.x〜) |
two-phase execution, conflict resolution, SyncResultDialog |
| Copy skill to agents |
multi-agent select modal、symlink vs local の差異ハンドリング |
技術的メモ
- データ構造候補: `Preset { id: PresetId (branded), name: string, skillNames: SkillName[], defaultAgents?: AgentId[] }`
- 永続化: electron-store もしくは既存の bookmark と同じ localStorage + Redux 方式
- IPC: `presets:apply` を追加、内部的に syncService のサブセットを利用
- Discriminated union でエラー行を型強制(`action: 'created'|'replaced'|'skipped'|'error'`、`error: string`)
オープンクエスチョン
概要
スキルの プリセット機能 を導入し、ユーザーがよく使うスキルの組み合わせを名前付きで保存して、複数のエージェントに一括適用できるようにする。
背景 / ユースケース
現状、ユーザーはスキルを エージェント単位で個別に install / symlink / copy する必要がある。用途別にスキルセットを束ねて管理できれば、以下のシナリオを高速化できる。
例:
想定する機能
UI 構成案
参考にする既存パターン
技術的メモ
オープンクエスチョン