| name | m3e-scratch |
| description | ユーザーの思いつき・アイデア・バグ報告・メモをM3Eマップの scratch ノードに即座に追加するスキル。 追加だけでなく、scratch配下の整理(カテゴリ分け・グルーピング)も行う。 以下の場面でトリガーする: - 「メモ」「アイデア」「バグ」「思いつき」「scratch」「プールして」「覚えておいて(マップに)」と言われたとき - ユーザーが箇条書きで複数のアイデアやタスクを列挙したとき - 「これ scratch に入れて」「マップにメモ」「あとでやる」「TODO的に残して」と言われたとき - 「scratch 整理して」「分類して」「まとめて」と言われたとき - 開発中に気づいたバグや改善点を記録したいとき ユーザーが何かを「残したい」「プールしたい」意図を示したら、このスキルの出番。
|
m3e-scratch
ユーザーの思いつき、アイデア、バグ報告をM3Eマップの scratch ノード配下にプールするスキル。
scratch はタスクの種(seed)置き場 — 後で整理・昇格・削除する前提の気軽な場所。
場所
M:(開発)> SYSTEM > DEV >> scratch
scratch ノードID: n_new_scratch_1775637602039
機能1: ノード追加
1. ユーザー入力を解析
ユーザーの発言から以下を抽出する:
- テキスト: ノードの本文(簡潔に。ユーザーの言葉をなるべくそのまま使う)
- 種別:
idea / bug / memo / task のいずれか(文脈から判断)
- 詳細: 補足があれば
details フィールドに入れる
- 複数項目: 箇条書きや列挙なら、それぞれ別ノードとして追加
2. マップに書き込む
マップAPIを使う:
- GET
http://localhost:4173/api/maps で label="開発" の mapId を discovery し、対象 map を取得
- 新しいノードを作成:
{
"id": "n_{timestamp}_{random6}",
"parentId": "n_new_scratch_1775637602039",
"children": [],
"nodeType": "text",
"text": "ユーザーの入力テキスト",
"collapsed": false,
"details": "補足情報があれば",
"note": "",
"attributes": {
"kind": "idea|bug|memo|task"
},
"link": ""
}
- カテゴリフォルダが既にあり、そこに入るべき内容なら
parentId をそのフォルダにする
- 親ノードの
children 配列の末尾に新ノードIDを追加
- POST で全体を書き戻す
- レスポンスの
"ok": true を確認
3. ID生成
n_{Date.now()}_{Math.random().toString(36).slice(2, 8)}
Bashで生成する場合:
echo "n_$(date +%s%3N)_$(cat /dev/urandom | tr -dc 'a-z0-9' | head -c 6)"
4. ユーザーへの応答
追加したら簡潔に報告:
scratch に追加:
- [idea] レイアウトエンジンにgrid表示モード
- [bug] ノード削除後にalias参照が残る
機能2: scratch 整理
scratch 配下のノードが増えてきたら、カテゴリごとにグルーピングして見通しを良くする。
整理ルール
- 葉ノードは絶対に削除しない — 葉はユーザーのアイデアそのもの。消すのはユーザーだけ
- 整理はフォルダノード(中間ノード)の追加・移動のみで行う
- カテゴリフォルダの例:
UI/UX — 見た目・操作感に関するもの
データモデル — ノード構造・属性・型に関するもの
バグ — 不具合報告
インフラ — ビルド・デプロイ・CI/CD
アイデア — 大きな構想・将来のビジョン
- カテゴリは固定ではない。内容に応じて柔軟に作る
- 1〜2個しかないカテゴリは無理にフォルダを作らない(scratch直下のままでOK)
- 既存のフォルダ構造があればそれを尊重し、追加・調整する
整理の手順
- GET でマップ取得
- scratch 配下の全ノードを走査し、内容を把握
- カテゴリ分けの計画を立てる
- 必要なフォルダノードを作成(
nodeType: "text", attributes: { "role": "category" })
- 葉ノードの
parentId を適切なフォルダに変更
- 旧親の
children から削除、新親の children に追加
- POST で書き戻す
- ユーザーに整理結果を報告:
scratch を整理しました:
- UI/UX (3件): grid表示, ダークモード, ツールチップ改善
- バグ (2件): alias参照残り, 折りたたみ状態リセット
- 未分類 (1件): ライセンス検討
注意点
- scratch は気軽な場所。ユーザーの言葉を過度に整形しない — 雰囲気が伝わることが大事
- 種別(kind)の判断に迷ったら
memo にしておく
- 同じ内容が既にあるか軽くチェックし、明らかな重複は避ける(ただし厳密な重複排除は不要)
- マップAPIが応答しない場合はユーザーに「ビューワーが起動していないようです」と伝える
- user-facing path では canonical display path
M:(map label)> A > B >> C を使う。/ は legacy/API compatibility only、\ は filesystem only
- 整理時に葉ノードを削除することは禁止 — フォルダの作成と移動のみ