section-merger について
section-merger は、既存の論文セクションを単一の Markdown 草稿にまとめる決定論的なスキルです。アウトライン順に配置し、許可されたつなぎ文や付録表を挿入できますが、本文の書き換えや創作は行いません。
主な機能
- 01アウトラインに沿った順序設定
- 02Markdown 草稿の組み立て
- 03つなぎ文の任意挿入
- 04付録表の挿入
- 05マニフェストのハッシュ検証
活用シーン
- 01小節ファイルのレビュー用統合
- 02LaTeX 変換用草稿の作成
- 03論文草稿への付録表の追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ willoscar/ research-units-pipeline-skills --skill section-mergerインストール後、Claude Code で/section-mergerを入力して読み込まれたか確認します。
同梱ファイルscripts/run.py
詳細
セクションの結合
トリガーとルーティング
- トリガー:セクションを結合する、草稿を結合する、セクションファイルをまとめる、sections/ -> output/DRAFT.md、小節を結合する、草稿をつなげる。
- 使用する場面:
sections/に単位ごとの文章ファイルがあり、推敲・レビュー・LaTeX 用に単一のoutput/DRAFT.mdを作成したい場合。
目的は、以下から論文形式の output/DRAFT.md を作成することです。
sections/(セクション/サブセクションごとの文章)outline/transitions.md(任意の接続候補。transition-weaverが生成)outline/tables_appendix.md(読者向けの付録表。appendix-table-writerが生成)
結合順序は outline/outline.yml によって決まります。草稿のタイトルは、
GOAL.md がある場合はそこから取得します。Pipeline の契約によって
sections/sections_manifest.jsonl が指定されている場合、結合するすべてのセクションは
記録されたバイト数と SHA-256 ハッシュに一致する必要があります。
このスキルは決定論的です。コンテンツを書き換えたり文章を作成したりせず、生成済みの成果物を結合するだけです。
トランジション(明示的なオプトイン)
- デフォルトでは、生成されたトランジションは挿入されません。
- H3 のトランジションを挿入するには、
outline/transitions.insert_h3.okを作成します。 - H2 のトランジションを挿入するには、
outline/transitions.insert_h2.okを作成します。 - 書式の契約:H3 の項目には
- 3.1 -> 3.2: <text>を使用します。 - 互換性:
→も使用できますが、制御文字のエンコード問題を避けるため、契約では->を推奨します。 - トランジションは草稿に挿入されたテキストとして扱います。結合後に
post-merge-voice-gateを実行し、修正はoutline/transitions.mdに反映します(結合済みの草稿は修正しないでください)。
表(2 層)
この Pipeline では、次の 2 層の表を使用します。
-
outline/tables_index.md(内部インデックス。table-fillerが生成)- 計画/デバッグ用の成果物
- 論文に挿入しないでください
-
outline/tables_appendix.md(読者向けの付録表。appendix-table-writerが生成)- 公開可能な表(整ったレイアウトと高い情報密度)
section-mergerによって、単一の付録見出しの下に挿入されます
付録の挿入動作
section-mergerは、草稿の末尾に## Appendix: Tablesという見出しを付けてoutline/tables_appendix.mdを挿入します。- 挿入されるブロックには見出しがありません(表ファイル内に誤って含まれている
#見出しはすべて削除されます)。 - オプトアウト(まれ):ワークスペース内に
outline/tables.insert.offを作成します。
入力
outline/outline.yml(セクション/サブセクションの順序を決定)outline/transitions.md(必須)sections/sections_manifest.jsonl(実行可能な survey Pipeline で必須。鮮度ゲート)GOAL.md(タイトル用。任意)
arxiv-survey Pipeline の場合(デフォルトの契約):
outline/tables_appendix.md(オプトアウトしない限り必須)
出力
output/DRAFT.mdoutput/MERGE_REPORT.md
スクリプト
クイックスタート
uv run python .codex/skills/section-merger/scripts/run.py --helpuv run python .codex/skills/section-merger/scripts/run.py --workspace <workspace>
すべてのオプション
--workspace <workspace>(必須)--unit-id <id>(任意。ランナーの記録管理にのみ使用)--inputs <a;b;c>(任意。入力を上書き。デフォルトはプロファイルに応じて決定)--outputs <draft_rel;report_rel>(任意。デフォルトはoutput/DRAFT.md;output/MERGE_REPORT.md)--checkpoint <C#>(任意。マージャーでは無視されます)
例
-
デフォルト設定で結合(プロファイルに応じた表の挿入):
uv run python .codex/skills/section-merger/scripts/run.py --workspace <workspace> -
出力先を明示して結合:
uv run python .codex/skills/section-merger/scripts/run.py --workspace <workspace> --outputs output/DRAFT.md;output/MERGE_REPORT.md
トラブルシューティング
問題:マージレポートにサブセクションファイルが見つからないと表示される
考えられる原因:
- 必須の
sections/*.mdファイルがまだ作成されていません。
解決方法:
sections/に不足している単位のファイルを作成し(通常はsubsection-writerを使用)、結合を再実行します。
問題:統合されたドラフトで付録の表が欠落しています
修正方法:
outline/tables_appendix.mdが存在し、プロファイルに応じた最低数の表(コース論文:1 つ以上、サーベイ/詳細調査:2 つ以上)が含まれ、プレースホルダーがないことを確認します。outline/tables.insert.offを作成していないことを確認します。section-mergerを再実行します。