---
name: moc-build
description: 指定テーマから新しい MOC を 1 つ作る。TRIGGER:「〜のMOCを作って」「〜の地図を作りたい」など MOC 新規作成を指示されたとき。DO NOT TRIGGER: 候補を提案するだけでよいとき（→ moc-propose）。
user-invocable: true
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Skill
context: fork
model: opus
effort: high
---

# MOC Build

## Run

### Step 1: moc_type を決めてファイルを作る

`moc_type` は synthesis / narrative / framework / root / bridge / method の6種類。判断基準は `references/moc_type_definitions.md` を読む。迷ったら synthesis を選ぶ。root は上位入口で、子に MOC のみを取り、Personal/Permanent を直接の子にしない（その場合は synthesis）。

`Brain/MOC/<キーワード>.md` を Write で作成する。frontmatter は description を【対象】何を扱うか / 【接続】何を束ねるか / 【用途】いつ参照するか の3要素で1〜2文に圧縮する。「〜のMOC」では受理しない。

```yaml
---
title: <キーワード>          # root なら先頭に絵文字
description: "【対象】... 【接続】... 【用途】..."
moc_type: <type>
aliases: [MOC_<キーワード>]  # root は root-<slug> 形式
---
```

H1 直下にイントロ文は書かない。description が説明を担う。骨格は H1 + `Up: [[親MOC名]]` + 仮セクション + 探索候補セクション。

```markdown
# <キーワード>

Up: [[親MOC名]]

## 📁 テーマ別MOC

## (テーマ別見出し1)

## (テーマ別見出し2)

---
## 🔍 探索候補
### Seed / 1st Hop
### 2nd Hop
```

### Step 2: 候補を集める

```bash
python3 ".claude/skills/moc-build/scripts/explore_and_append.py" "<キーワード>" --output "Brain/MOC/<キーワード>.md"
```

探索対象は `Brain/Permanent` と `Brain/Personal` の両方。素材ヒントがあれば `obsidian search:context` で追加する。

### Step 3: 構造化する

探索候補を見出しの下に配置する。見出しは単なるリンク列ではなく、その節が何を束ねているかが一文で言える単位にする。

Permanent / Personal リンクには説明文（`：〜`）を付けない（命題形タイトルが自己完結する）。子 MOC へのリンクは `## 📁 テーマ別MOC` セクションにまとめ、`- [[子MOC名]] — スコープの説明` の形でスコープを1行添える。

type 別の設計指針は次の通り。narrative は Personal を厚めに置き、時系列で並べる。bridge は description にどの領域とどの領域をどう接続するかまで書き、両領域をまたぐノートを優先的に配置する。method は定義・根拠・実践のうち2軸以上を持たせ、再配置できるノートを優先する。

root を構造化するときは薄く作る。子 MOC は `→ [[子MOC名]]` + 1行説明だけで済ませ、Permanent ノートを直接列挙しない。セクション数の目安は 3〜5。

構造化が一通り終わったら `🔍 探索候補` セクションを Edit で削除し、frontmatter に残った `status: draft` も外す。

### Step 4: 監査して root につなぐ

```bash
python3 ".claude/skills/moc-build/scripts/moc_audit_common.py" --path "Brain/MOC/<キーワード>.md"
```

壊れリンク・title/H1 不一致・不要 YAML はエラーとして扱い直す。リンク数や見出し数の警告は参考値で、数合わせの追記はしない。`SPLIT_SUGGESTION:` が出たら `moc-split` を検討する。

監査が通ったら `moc-add` を呼び、新しい MOC のパス・配置先 root・セクション・配置理由を渡して親 root につなぐ。自然な root が見つからないときは Vault の root MOC（`moc_type: root` のMOC、サンプルでは `Brain/MOC/🌌サンプル知の全体図.md`）に仮置きしてユーザーに配置先を相談する。仮置きすら判断に迷う場合は完成扱いにせずユーザーに戻す。
