opener-variator について
opener-variator は、論文の小節冒頭を修正するライティング Skill です。対象を指摘された冒頭に限定し、論旨と引用を保ちながら、セルフループレポートに沿って改稿します。
主な機能
- 01指摘された小節ファイルの特定
- 02冒頭段落や文の改稿
- 03論旨と引用の維持
- 04異なる冒頭構成の活用
- 05writer-selfloop による再確認
活用シーン
- 01小節冒頭の反復を減らす
- 02概要説明を内容に即した導入へ変更
- 03セルフループレポートに基づく論文修正
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ willoscar/ research-units-pipeline-skills --skill opener-variatorインストール後、Claude Code で/opener-variatorを入力して読み込まれたか確認します。
同梱ファイルscripts/run.py
詳細
Opener Variator(H3 の最初の段落の書き換え)
トリガーとルーティング
- トリガー: opener variator, opener rewrite, rewrite openers, overview opener, 开头改写, 小节开头, 去overview, 去旁白.
目的:構造上のゲートを通過してしまう、強い自動生成の兆候を取り除きます。
- 多くの H3 が同じ修辞的な型で始まっている
- 内容を伝える枠組みの代わりに、「概要」を説明するナレーションが使われている
このスキルの対象は意図的に絞っています。
- 対象として指定された H3 ファイルの最初の段落(または最初の 2~4 文)のみを書き換えます
- 論旨の展開と引用はそのまま維持します
入力
必須:
output/WRITER_SELFLOOP_TODO.md(Style Smells セクション)- 参照先の
sections/S<sub_id>.mdファイル
任意(整合性を保つのに役立ちます):
outline/writer_context_packs.jsonl(opener_mode、tension_statement、thesisを使用)
出力
この対象を絞ったパスは、style-harmonizer の直後、論理の
推敲前に実行します。この決定論的スクリプトは認定アダプターです。最新の
writer-selfloop レポートに対象ファイルがまだ記載されている場合、またはレポートが
いずれかの sections/*.md ファイルより古い場合、マーカーの作成を拒否します。意味上の書き換えは
この Skill または担当する上流のライターを通じて行い、writer-selfloop を再実行してから、
アダプターを再試行してください。合格マーカーには、認定済み Section ツリーの SHA256 が記録されます。
- 更新された
sections/S<sub_id>.mdファイル(引き続き本文のみ。見出しは含めません)
ワークフロー(セルフループレポートに基づく)
output/WRITER_SELFLOOP_TODO.mdを開き、## Style Smellsを見つけます。- 対象範囲を今回のパスで指定された
sections/S*.mdの一覧のみに限定します。 - 対象ファイルごとに、次を行います。
- 任意:
outline/writer_context_packs.jsonlで該当エントリーを確認し、opener_mode/tension_statement/thesisを読んで整合性を保ちます。 - 実際の書き換えは
subsection-writerまたはchapter-lead-writerで上流から行います。安易なローカルの正規表現による処理に頼らないでください。 - 3 案から最良の導入を選ぶサンプリング(推奨):異なる導入モードで段落の候補を 2~3 案作成し、その中から内容が最も充実し、H3 間での重複が最も少ない案を選びます。
- 任意:
writer-selfloopを再実行し、Style Smells の一覧が減ったことを確認します。
役割プロンプト:Opener Editor(論文調)
You are rewriting the opening paragraph of a survey subsection.
Goal:
- replace narration/overview openers with a content-bearing framing
- vary opener cadence across subsections so the paper reads authored
Constraints:
- do not invent facts
- do not add/remove/move citation keys
- do not change the subsection’s thesis
Checklist:
- sentence 1 is content-bearing (tension/decision/failure/protocol/contrast), not “what we do in this section”
- paragraph 1 ends with a clear thesis/takeaway
- no slide navigation (“Next, we…”, “In this subsection…”, “This section provides an overview…“)
削除する表現(強いナレーションの兆候)
導入に次のいずれかが含まれている場合は、すぐに書き換えます。
- 「This section/subsection provides an overview …」
- 「In this section/subsection, we …」
- 「This subsection surveys/argues …」
- 「Next, we move/turn …」
- 繰り返される導入ラベル(「Key takeaway:」の乱用)
置き換えに使う表現(導入の展開)
H3 ごとに導入モードを 1 つ選びます(writer pack が opener_mode を提案する場合があります)。
ラベルをそのまま使わず、自然な文章を書いてください。
使用できる導入の展開(1 つ選択し、具体的に書く):
- 緊張関係から始める:実際のトレードオフを示し、それが重要な理由を説明して、主張で締めくくります。
- 意思決定から始める:制約下でのビルダーの選択を提示し、主張で締めくくります。
- 失敗から始める:この観点が必要となる失敗モードから始め、主張で締めくくります。
- プロトコルから始める:比較可能性の制約(予算/ツールへのアクセス)から始め、主張で締めくくります。
- 対比から始める:A と B を対比する文で始め、その理由を説明して、主張で締めくくります。
- 観点から始める:章の観点を示し、この小節の問いへと絞り込みます。
簡単な例(言い換えて使用し、そのままコピーしないでください)
悪い例(概要を説明するナレーション):
This subsection provides an overview of tool interfaces for agents.
よりよい例(内容を伝える):
Tool interfaces define what actions are executable; interface contracts therefore determine which evaluation claims transfer across environments.
悪い例(作業手順のナレーション):
In this subsection, we discuss memory mechanisms and then review retrieval methods.
よりよい例(緊張関係から始める):
Memory improves long-horizon coherence, but it also expands the failure surface: retrieval can be stale, wrong, or adversarial, and agents rarely know which.
完了チェックリスト
- 指摘されたファイルの冒頭に「overview/narration」系の語句がありません。
- 第1段落の末尾が主張/要点になっています(意味は同じです)。
- 引用キーに変更がありません(追加・削除・移動がありません)。
-
writer-selfloopが引き続き PASS し、Style Smells が減少しています。
スクリプト
クイックスタート
uv run python .codex/skills/opener-variator/scripts/run.py --workspace <workspace>
すべてのオプション
--workspace <dir>(必須)--unit-id <U###>--inputs <semicolon-separated>--outputs <semicolon-separated>--checkpoint <C#>
使用例
- 調査用ワークスペースの冒頭文を書き換える:
uv run python .codex/skills/opener-variator/scripts/run.py --workspace workspaces/survey-llm-agents