From o-m-cc
Runs a parallel editorial review council (anti-ai-slop, fact-checker, narrative-critic, reader-advocate) on a completed tech article draft, collecting severity-tagged findings and converging in up to 3 rounds.
How this skill is triggered — by the user, by Claude, or both
Slash command
/o-m-cc:editorial-swarm <article path> [target reader profile]<article path> [target reader profile]sonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
4 人のレビュアー(anti-ai-slop, fact-checker, narrative-critic, reader-advocate)が peer-to-peer でドラフトをレビューし、severity 付きの提案を集約する。discovery-council の「文章版」。
4 人のレビュアー(anti-ai-slop, fact-checker, narrative-critic, reader-advocate)が peer-to-peer でドラフトをレビューし、severity 付きの提案を集約する。discovery-council の「文章版」。
共通プロトコル: ハンドオフの 4 原則(path 渡し優先 / 長文上・指示下 / coverage-first / quote-first)は
facets/policies/plan-handoff.mdを参照。各 reviewer prompt は閾値カットなしで全件返し、自動 apply は集約側 (Step 4) のみが判断する。
$ARGUMENTS
| 使う | 使わない |
|---|---|
| ドラフトが概ね完成(v0.9 以上)、最終推敲したい | 構成から考える → まず手で書く |
| Zenn / note / ブログ用の技術記事 | 社内メモ・議事録(レビューコスト過剰) |
| 対象読者が明確 | 読者不明 → まず /deep-interview 等で固める |
| 3 ラウンド程度で収束を期待できる品質 | 大規模書き直し → 手で構造から見直す |
AskUserQuestion で以下を一括確認:
対象記事が存在しない場合は AskUserQuestion で path を再確認する。
mkdir -p .editorial
TeamDelete:
team_name: "editorial" # エラーが出なければスキップ
TeamCreate:
team_name: "editorial"
description: "Editorial Swarm: 記事の並列レビュー"
4 つのレビュアーを同時 spawn。各エージェントは facets/policies/council-output-schema.md の 共通 Council JSON schema に従う JSON オブジェクト 1 つを返す:
{
"reviewer": "anti-ai-slop",
"schema_version": "1",
"summary": "1-2 文の総評",
"findings": [
{
"id": "F001",
"category": "ai-slop",
"line_range": "12-15",
"issue": "問題の要約",
"fix": "具体的な修正案(diff 風でなくテキスト置換可能な形)",
"confidence": 85,
"severity": "high",
"quotes": ["問題箇所の引用 30 文字程度"]
}
],
"memo": "free-form notes(任意)"
}
reviewer 別の category 値: ai-slop / fact / narrative / reader-fit。
file フィールド: 記事ファイルが 1 つなので各 finding では省略可(reviewer ごとに memo で記事 path を記録)。
4 reviewer(anti-ai-slop / fact-checker / narrative-critic / reader-advocate)の prompt テンプレートは facets/references/editorial-swarm-prompts.md に集約(段階的開示)。
Read してそのまま各 agent に渡す($ARTICLE_PATH / $READER_PROFILE を実値に置換)。各 prompt は 30 行以内・出力は上記 Council JSON schema 準拠。
4 エージェントを 1 メッセージ内で同時 spawn。Agent tool の subagent_type: general-purpose でよい。各 agent の output (Council JSON schema 準拠の 1 オブジェクト) は .editorial/round-N/reviewer-X.json に保存する。
各 reviewer の JSON を読み込み、schema_version == "1" を確認した上で findings[] 配列を flatten し、統合テーブル を作成:
| # | reviewer | category | line | severity | confidence | issue | fix | quotes |
|---|---|---|---|---|---|---|---|---|
| 1 | anti-ai-slop | ai-slop | 12-15 | high | 88 | ... | ... | ... |
衝突検出: 同じ line_range を複数 reviewer が指摘している場合は「conflict」フラグを立てる(自動 apply しない)。
集約結果を .editorial/round-N/findings.md に保存する(good_points と memo も併記)。
reviewer が schema 違反の出力を返した場合は、JSON パースを再実行依頼(最大 1 回)。それでも失敗なら その reviewer のラウンドはスキップ し、.editorial/round-N/skipped.md に [NOTE] schema 違反: <reviewer> を記録。他 reviewer 分の findings はそのまま処理する(1 reviewer 失敗で全体停止しない)。
Step 1 で「自動 apply: low + 非競合のみ」が選ばれた場合:
severity == "low" かつ conflict フラグなしの findings を抽出confidence >= 70 のもののみ自動 apply 対象(confidence 低い low はノイズの可能性が高いので保留)line_range の大きいほうから apply して位置ずれを回避).editorial/round-N/skipped.md に記録以下を AskUserQuestion で提示:
severity in ("medium", "high") の findings1 件ずつではなく 一度に最大 20 件を checkboxes で 提示(API 制約に応じて分割)。各選択肢には [severity/confidence] reviewer: issue の形で表示し、ユーザーが優先度判断しやすくする。
ユーザーが承認したものだけ Edit で apply。却下したものは .editorial/round-N/rejected.md に理由ごと記録(次ラウンドで重複提案を回避する材料)。
# 現在の記事と originals の diff を保存
jj diff "$ARTICLE_PATH" > .editorial/round-N/applied.diff 2>/dev/null || \
git diff "$ARTICLE_PATH" > .editorial/round-N/applied.diff 2>/dev/null
収束判定:
再ラウンド時は rejected.md を各 reviewer の prompt に「これは既に却下された提案なので重複して出さない」として渡す。
## Editorial Swarm 結果(N ラウンド)
### 確定 apply
- [R1] anti-ai-slop: 〜 (line 12-15)
- [R1] fact-checker: 〜 (line 80)
### ユーザー却下
- [R1] narrative-critic: 〜 (理由: 意図的な構成)
### 未解決(MAX_ROUNDS 到達)
- [R3] fact-checker: 〜(要手動検証)
### 成果物
- 記事: $ARTICLE_PATH
- 各ラウンドの diff: .editorial/round-*/applied.diff
- findings 履歴: .editorial/round-*/findings.md
.editorial/summary.md としても書き出す。
facets/references/editorial-swarm-prompts.md に集約Step 1 の前提確認から開始してください。
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub kok1eee/o-m-cc --plugin o-m-cc