本文へ移動
cccskills
無料GitHub で公開

editorial-swarm

技術記事の並列レビュー Council。anti-ai-slop / fact-checker / narrative-critic / reader-advocate を並列 spawn、severity 付き findings を最大3ラウンドで収束。Zenn などのドラフト完成後に使う。

「記事レビュー」「editorial swarm」「編集会議」「記事推敲」「記事添削」で発動。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md9.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Editorial Swarm - 並列編集レビュー 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 ラウンド程度で収束を期待できる品質大規模書き直し → 手で構造から見直す

Step 1: 前提確認

AskUserQuestion で以下を一括確認:

  1. 対象読者プロファイル(未指定なら必須): 「Claude Code 経験者」「Web エンジニア一般」「非エンジニア」等
  2. 最大ラウンド数: デフォルト 3。2 にしたいか
  3. 自動 apply 範囲: デフォルト「low + 非競合のみ」。widen したいか、手動のみか

対象記事が存在しない場合は AskUserQuestion で path を再確認する。

作業ディレクトリ準備

mkdir -p .editorial

Step 2: Team 作成 + 4 エージェント並列 spawn

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 を記録)。

レビュアー別の prompt テンプレート

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 準拠。

並列 spawn

4 エージェントを 1 メッセージ内で同時 spawn。Agent tool の subagent_type: general-purpose でよい。各 agent の output (Council JSON schema 準拠の 1 オブジェクト) は .editorial/round-N/reviewer-X.json に保存する。

Step 3: Findings 集約(Council JSON schema 入力)

各 reviewer の JSON を読み込み、schema_version == "1" を確認した上で findings[] 配列を flatten し、統合テーブル を作成:

#reviewercategorylineseverityconfidenceissuefixquotes
1anti-ai-slopai-slop12-15high88.........

衝突検出: 同じ line_range を複数 reviewer が指摘している場合は「conflict」フラグを立てる(自動 apply しない)。

集約結果を .editorial/round-N/findings.md に保存する(good_points と memo も併記)。

schema 違反時のフォールバック

reviewer が schema 違反の出力を返した場合は、JSON パースを再実行依頼(最大 1 回)。それでも失敗なら その reviewer のラウンドはスキップ し、.editorial/round-N/skipped.md に [NOTE] schema 違反: <reviewer> を記録。他 reviewer 分の findings はそのまま処理する(1 reviewer 失敗で全体停止しない)。

Step 4: Low severity を自動 apply(confidence 重み付け)

Step 1 で「自動 apply: low + 非競合のみ」が選ばれた場合:

  1. severity == "low" かつ conflict フラグなしの findings を抽出
  2. confidence >= 70 のもののみ自動 apply 対象(confidence 低い low はノイズの可能性が高いので保留)
  3. Edit ツールで順次 apply(line_range の大きいほうから apply して位置ずれを回避)
  4. apply できなかったもの・confidence 不足で保留したものは .editorial/round-N/skipped.md に記録

Step 5: Medium/High + 保留 low を AskUserQuestion で一括承認

以下を AskUserQuestion で提示:

  • severity in ("medium", "high") の findings
  • conflict ありの findings
  • Step 4 で保留された low (confidence < 70)

1 件ずつではなく 一度に最大 20 件を checkboxes で 提示(API 制約に応じて分割)。各選択肢には [severity/confidence] reviewer: issue の形で表示し、ユーザーが優先度判断しやすくする。

ユーザーが承認したものだけ Edit で apply。却下したものは .editorial/round-N/rejected.md に理由ごと記録(次ラウンドで重複提案を回避する材料)。

Step 6: diff 保存 + 収束判定

# 現在の記事と 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

収束判定:

  • 全 high finding が apply または却下されている → クローズ
  • high が残っている かつ round < MAX_ROUNDS → Step 2 に戻る(再レビュー)
  • MAX_ROUNDS に到達 → クローズ(残 issue をサマリで明示)

再ラウンド時は rejected.md を各 reviewer の prompt に「これは既に却下された提案なので重複して出さない」として渡す。

Step 7: 最終サマリ

## 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 としても書き出す。

Gotchas

  • 個別 reviewer prompt を肥大化させない: 4 並列で context を食い合うので、各 prompt は 30 行以内に抑える。詳しい基準は facets/references/editorial-swarm-prompts.md に集約
  • 自動 apply を widen しない: severity=low 以外を自動適用すると意図しない書き換えが起きる。ユーザーが明示的に widen 指示したときのみ
  • WebFetch の並列度: fact-checker が多数 URL を触ると遅くなる。prompt で「確信できない 5 件以内に絞って検証」と制限する
  • Zenn の front matter(title / emoji / tags)は触らない: line 1-10 あたりは reviewer から除外対象と明記する
  • 記事全体書き換えが必要な指摘が出たら収束させない: editorial-swarm は「推敲」が責務。構造書き換えは手で戻して再度呼ぶ
  • conflict 処理: 同一行に複数 reviewer の異なる fix が来たら AskUserQuestion で必ず人間判断。自動マージ禁止
  • schema 違反 reviewer のスキップ: Council JSON schema 違反 (旧形式の配列直返し / 前置き混入) は再実行 1 回 → それでも違反ならその reviewer をラウンドからスキップ。1 reviewer 失敗で全体停止しない

Step 1 の前提確認から開始してください。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

atom-suggest

無料日本語概要

backlog(atoms/pipeline/outputs)と skill ヘルス(usage/duration/unused)を統合分析し 1 レポートで提示する。kawai 氏型 analytics ループの起点。「次に何やる?」「atom 整理」「放置案件」「stale」「振り返り」「retro」「skill 使用統計」「unused skill」「atom-suggest」で発動。

kok1eee/o-m-cc62026年6月9日 更新

deep-interview

無料日本語概要

要件が曖昧なとき、ソクラテス式に1問ずつ質問して要件を掘り下げる。十分に明確になったら discovery-council にハンドオフ。「要件が曖昧」「何を作ればいいか」「掘り下げて」「インタビューして」で発動。※ 完成した plan/design を詰問するなら grill、非対話で一括批判するなら critic。

kok1eee/o-m-cc62026年6月9日 更新

design

無料日本語概要

designer エージェントによるアーキテクチャ設計。requirements.md を基に design.md を作成。「設計して」「アーキテクチャ設計して」「アーキテクチャを考えて」「設計書を作って」で発動。

kok1eee/o-m-cc62026年6月9日 更新

discovery-council

無料日本語概要

3エージェント(researcher, analyst, scout)による並列要件分析 Council。peer-to-peer で相互検証し requirements.md を確定。「要件を整理して」「要件定義して」「現状分析して」「要件をまとめて」で発動。

kok1eee/o-m-cc62026年6月9日 更新

evolve

無料日本語概要

スキルの自己進化。auto-memory と実行履歴から学びを抽出し、各スキルの Gotchas セクションに自動追記する。セッション終了前、定期的な改善サイクル、問題に遭遇した後に使う。「スキルを進化させて」「学びを反映して」「Gotchas を更新」「evolve」で発動。

kok1eee/o-m-cc62026年6月9日 更新

experiment

無料日本語概要

実験駆動の反復改善ループ(autoresearch 方式)。毎回フレッシュなサブエージェントで 1変更→測定→保持 or revert。progress.md がイテレーション間の記憶。パフォーマンス最適化、リファクタリング、UI改善、バグ修正の試行錯誤に使う。「最適化して」「パフォーマンス改善」「リファクタリング」「試行錯誤して」「実験的に改善」で発動。

kok1eee/o-m-cc62026年6月9日 更新

kok1eee のスキルをすべて見る

このスキルの問題を報告する