lessonlisted
Install: claude install-skill aliksir/lesson-skill-loop
# lesson — 教訓を記録する
開発中に得た教訓をタグ付きで記録する。skill-loopと連携し、教訓⇔スキルのフィードバックループを回す。
## 対応環境
Claude Code と Claude Cowork の両方で動作する。Bashは不要(Read/Write/Globのみ使用)。
## サブコマンド判定
引数 `$ARGUMENTS` からサブコマンドを判定する:
| パターン | サブコマンド |
|---------|------------|
| `list` | **list** — 記録済みの教訓を一覧表示 |
| `tags` | **tags** — タグの出現回数を集計 |
| `search キーワード` | **search** — キーワードで教訓を検索 |
| それ以外のテキスト | **add** — 教訓として記録 |
## 教訓ファイルの場所
以下の優先順で教訓ファイルを探す:
1. プロジェクトルートの `lessons/dev-lessons.md`
2. プロジェクトルートの `lessons/` 内の任意の `.md` ファイル(listやtagsで全件対象)
addコマンドの書き込み先は常に `lessons/dev-lessons.md`。ファイルやディレクトリが存在しない場合は新規作成する。
---
## add(デフォルト)
引数のテキストを教訓として記録する。
### 引数の解析ルール
引数からタグとタイトルを分離する:
- `[tag]` 形式(角括弧で囲まれた英数字・ハイフン・アンダースコア)をタグとして抽出
- 残りのテキストをタイトルとして使用
- タグが1つもない場合はユーザーに確認:「タグなしで記録しますか?タグがあると後でskill-loopで分析できます」
### 入力例と解析結果
```
/lesson [api] [auth] Rate limitのヘッダーを見忘れて429
→ タグ: [api], [auth] タイトル: Rate limitのヘッダーを見忘れて429
/lesson [electron] BrowserWindowのpreloadパスはpathで解決する
→ タグ: [electron] タイトル: BrowserWindowのpreloadパスはpathで解決する
/lesson npmの依存は定期的にauditすべき
→ タグ: なし タイトル: npmの依存は定期的にauditすべき
```
### 記録フォーマット
`lessons/dev-lessons.md` の末尾に以下を追記する:
```markdown
### {タイトル} `[tag1]` `[tag2]`
- 記録日: {YYYY-MM-DD}
- 状況: (ユーザーが入力した原文をそのまま保持)
```
### 手順
1. `lessons/dev-lessons.md` が存在するか確認(Globで検索)
2. 存在しない場合、ファイルを新規作成する:
```markdown
# Development Lessons
教訓の記録。`/skill-loop` で分析し、スキル化候補を検出できます。
```
3. 引数からタグとタイトルを解析
4. 記録フォーマットに従って末尾に追記(Editツールでファイル末尾に追加、またはReadで読んでWriteで上書き)
5. 「✅ 教訓を記