---
name: moc-propose
description: 新しい MOC 候補を提案する（ファイルは作らない）。TRIGGER: 「どんな MOC が必要か」「MOC の候補を出して」「この領域をどう整理するか」など候補出しを求められたとき。DO NOT TRIGGER: 実際に MOC を作るとき（→ moc-build）。
user-invocable: true
allowed-tools: Bash, Read, Glob, Grep
context: fork
model: sonnet
---

# MOC Propose

## Run

提案は最大5件まで。

### Step 1: クラスタを抽出する

```bash
python3 ".claude/skills/moc-propose/scripts/propose_moc_candidates.py" --recent-limit 24 --seed-limit 8 --related-limit 5 --second-hop-limit 3 --min-notes 3 --representative-limit 3 --parent-root-limit 3 --limit 5
```

スクリプトは最近ノートを集め、1-hop の反応が強いものを seed にして 2-hop 探索を行い、重なった候補を統合し、既存 MOC と重複するものを除いて「クラスタパケット」を出す。最近ノートと seed には強めの重みが乗る。出力の `recent_notes` 3件・`representative_notes` 3件・`parent_roots` 3件を中心に読む。

### Step 2: クラスタを採点する

各クラスタについて次を見る。ノート数3件以上あること、`recent_notes` がそのクラスタの意味を表していること、単独ノートでは入口が弱いこと、親 root 候補3件のうち少なくとも1件は自然であること。bridge 候補なら2領域以上にまたがっていること、method 候補なら定義・根拠・実践の束として育ちそうであること。条件を満たさないクラスタは提案から落とす。

### Step 3: 提案する

クラスタごとに以下を提示する。

- クラスタ ID
- 今 MOC 化する価値がある理由
- 最近ノート3件
- 含めるべき代表ノート3件
- 想定 `moc_type`
- 親 root 候補1〜3件
- bridge なら何と何をどう接続するクラスタか
- method ならどの方法が中核で、何を定義・根拠・実践として束ねるか

### Step 4: 候補監査

```bash
python3 ".claude/skills/moc-propose/scripts/audit_moc_propose.py" --candidate "<候補名>" --note "<代表ノート1>" --note "<代表ノート2>" --note "<代表ノート3>"
```

監査に失敗した候補は提案から外す。既存 MOC と重複するテーマは新規候補から除く。
