---
name: moc-add
description: 新しく作ったノートを既存 MOC へ安全に追加し、監査まで行う。TRIGGER: ノート作成後に「MOCに追加して」「目次に載せて」と言われたとき、または create-my-stance・moc-build から自動呼び出し。
user-invocable: true
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Skill
context: fork
model: sonnet
---

# MOC Add

## Run

`$ARGUMENTS` にノートパスが複数行（改行区切り）で渡された場合は、各ノートについて以下の手順を繰り返す。配置先の判断と監査はノートごとに行う。

### Step 1: 配置先 MOC とセクションを決める

対象ノートの本文・description・本文内 WikiLink を読み、ノートが何を主張しているかを掴む。`Brain/MOC` 配下なら「目次ノートをより大きな目次ノートへつなぐ」、それ以外は「通常ノートをより具体的な目次ノートへ入れる」とみなす。

1回の実行では1配置先を扱うが、同じノートを複数MOCに置くこと自体は健全([[アトミックノートは複数のMOCに並べてもよい]])。文脈が違う複数の配置先が思いつく場合は、本スキルを複数回呼んで別MOCにも置く方向で動く。MECEに振り分けようとしない。

```bash
obsidian search query="<ノートの中心語>" path="Brain/MOC" limit=10
```

ヒットした MOC のうち、本文中の MOC リンクや `Up: [[...]]` を辿って大きな地図から下る。配置判断は「この目次ノートに置くと何の文脈で再利用しやすいか」を一文で言えるかで決める。スコアや件数で決めない。通常ノートを大きすぎる目次ノートへ直接入れず、そこから辿れるより具体的な目次ノートを選ぶ。

配置先 MOC が決まったら、その中の追記先セクションを選ぶ。

```bash
obsidian outline path="Brain/MOC/<対象MOC>.md" format=json
obsidian links path="Brain/MOC/<対象MOC>.md"
```

追記先は対象節の切り口に合うところに限定する。末尾へ雑に足さず、MOC 構造を壊してまで追加しない。

`Brain/MOC` 配下に既存 MOC が1つもない場合、または自然な配置先が見つからない場合、または「新しい目次ノートの中心にした方が自然」と判断した場合は、ここで止めて `moc-propose` を呼ぶ。

### Step 2: スクリプトで追加する

```bash
python3 ".claude/skills/moc-add/scripts/moc_add.py" \
  --target "Brain/MOC/<対象MOCまたは親root>.md" \
  --child "Brain/<作成したノートのパス>.md" \
  --section "<追記先の見出し>" \
  --summary "<その切り口に置く理由を一文で>" \
  --sync-up-link
```

スクリプトを必ず使い、本文を手で編集して追加しない。`--child` が目次ノートなら親 MOC への追加と `Up:` 同期、通常ノートならより具体的な目次ノートへの追記を行う。通常ノートに大きすぎる目次ノートを指定するとスクリプトが停止する。

追記形式は、Permanent / Personal なら `- [[title]]`（説明文を付けない）、子 MOC なら `## 📁 テーマ別MOC` セクションに `- [[MOC名]] — スコープの説明` で配置する。

### Step 3: 監査する

```bash
python3 ".claude/skills/moc-audit/scripts/run_moc_audit.py" --path "Brain/MOC/<対象MOC>.md"
```

追記先の MOC を1回監査する。親 root の監査は不要。`SPLIT_SUGGESTION:` が出たら `moc-split` を検討する。監査が落ちたまま完了扱いにしない。少修正で直せない場合は追加を見送り、ユーザーに戻す。
