参照は必須であり、オプションではありません
このスキルには 6つの参照ファイル と references/examples/ 内の2つの実例が含まれています。
必要なステップの 前 に該当する参照を読み、後から確認するために読むのは避けてください。
references/data-integrity.md: ソースデータからアブストラクトを再現する (フェーズ 1)references/venues.md: 会場のルールを見つけて日付を特定する; 機関のブランドキット (フェーズ 0 および 2)references/design-rules.md: 読みやすさの下限、タイプスケール、レイアウト、ハウススタイル (フェーズ 3)references/build-and-charts.md: ネイティブチャート、修復トリガー、python-pptxの落とし穴 (フェーズ 4)references/rendering-qa.md: レンダリング、読みやすさと重なりのチェック、QRコード (フェーズ 5)references/citations.md: 検証、フォーマット、ハイパーリンク (フェーズ 2)
目標
PDFのアブストラクトから、提出可能でブランドに沿った学会ポスターを作成します。成果物は編集可能なPowerPoint(.pptx)、PDF、プレビューPNGです。デフォルトで、テキスト、セクションバンド、統計タイル、チャートはすべてネイティブで編集可能です。データ、数値、引用は常に実在し検証済みです。デザインは遠くからでも読みやすく、余白が適切で、著者のハウススタイルに合わせられます(参照用ポスターが提供された場合はそこから抽出します)。
このスキルは、実践で鍛えられたワークフローをコード化しています。必要なステップの 前 に該当する参照を読み、後から確認するために読むのは避けてください(その時点で出力にエラーが発生しています)。すでに解決されている部分(チャートの安全性、レンダリング、タイポグラフィスケール)を再発明しないでください。スクリプトは ${CLAUDE_SKILL_DIR}/scripts/ に、実例と詳細なガイダンスは ${CLAUDE_SKILL_DIR}/references/ にあります。レンダリングにはLibreOffice(クロスプラットフォーム)またはmacOS上のMicrosoft PowerPointを使用します。詳細は references/rendering-qa.md を参照してください。
必要条件
- python 3 with: python-pptx (>= 1.0), matplotlib, pdfplumber, pypdfium2, pillow, pypdf, pymupdf。
- レンダラー: LibreOffice(
soffice/libreofficeがPATHに存在すること、任意のOS)または macOS + Microsoft PowerPoint。 チャート修復チェック(scripts/check_charts.py)は任意のOS上でpythonのみが必要です。 - インストール:
pip install python-pptx matplotlib pdfplumber pypdfium2 pillow pypdf pymupdf(QRコード用にqrcodeを追加するか、macOSではscripts/qr.swiftを使用)。pipが "externally-managed-environment" で拒否する場合は、venvを使用します:python3 -m venv ~/.venvs/poster && ~/.venvs/poster/bin/pip install <同じリスト>、そのpythonでビルドを実行し、render.shにPYTHON=~/.venvs/poster/bin/pythonを渡します。
コンパニオンスキル
このスキルに必要なものはすべてバンドルされています。ビルド、レンダリング、チェックはここにあるスクリプトだけで実行されます。以下のオプションスキルは洗練された仕上げを追加します。インストールされているものがあれば使用してください。不足している場合は、なしで続行し、ユーザーに1行のインストールコマンドを一度だけ伝え、決して処理を停止しないでください。
| スキル | 追加機能 | インストール方法(Claude Code内) |
|---|---|---|
Anthropic pptx + pdf (document-skills) | 既存のポスターの編集、難しいPDF | /plugin marketplace add anthropics/skills、その後 /plugin install document-skills@anthropic-agent-skills |
frontend-design | パレット、タイプの組み合わせ、レイアウト方向 | /plugin install frontend-design@claude-plugins-official |
K-Dense citation-management (MIT) | PubMed / DOI ルックアップ、フォーマットされた参考文献 | skills/citation-management を github.com/K-Dense-AI/scientific-agent-skills から ~/.claude/skills/ にコピー |
K-Dense scientific-visualization (MIT) | ジャーナルスタイルのmatplotlib図表 (画像チャートルート) | 同じリポジトリ、skills/scientific-visualization |
K-Denseの pptx-posters(同じリクエストを競合するHTML/CSSポスタールート)と scientific-writing(ポスターに必要な箇条書きを禁止する原稿散文)は除外します。引用チェックに追加のスキルは必要ありません。PubMed、Crossref、doi.orgに対するウェブ検索とフェッチで十分です。
実行コンテキスト
インタラクティブ または 完全自律で実行します。以下の各ゲートは、推奨デフォルトが明確にマークされた AskUserQuestion であるため、自律実行では単にデフォルトを採用してそれを明示します。
- 🟢 自動 (確認なし): 入力を読み取り、調査し、ハウススタイルを抽出し、ビルドし、レンダリングし、セルフQAと反復を行い、ポスター専用の作業ディレクトリでgit init + commitし、中間ファイルをクリーンアップします。
- 🟡 確認 (推奨デフォルトあり): ポスターの寸法/会場仕様、著者+所属+ロゴの確認、トーンレベル、引用の深さ、チャートエンジン(編集可能なネイティブ vs 画像)、およびデータが最終版かどうか。
- 🔴 絶対に行わないこと: いかなる数値、結果、または引用も捏造しないこと。研究の報告された所見を変更しないこと。ユーザーがすでに最終決定したファイルを上書きしないこと(常に別のコピーを書き込むこと)。PowerPointの修復プロンプトをトリガーするファイルを出荷しないこと。患者レベルのデータを著者のファイルからコピーしたり、Webサービスに送信したりしないこと(その場で読み取り、集計のみを保存すること)。
原則
- ユーザーと作業する場合は、計画を繰り返して確認してからビルドすること。質問には常に推奨を添えて、ワークフローを自律的に実行できるようにすること。
- 調査して検証し、推測しないこと。ウェブ検索とウェブリーダーで調査すること。使用前にAPIの最新ライブラリドキュメントを参照すること。すべての引用をPubMedまたはDOIに対して検証すること。
- 簡潔に保ち、DRYにすること。バンドルされたスクリプトと例を再利用し、適応させ、再構築しないこと。すべてのチャートと注釈を1つの編集可能なデータブロックから駆動し、数値が一箇所で更新されるようにすること。
- 意図的にデザインすること: 強力な視覚的階層、十分な余白、高いコントラスト、遠くからでも読みやすいタイプ。ネオン、強烈なグラデーション、グロー、AI生成画像は避けること。著者の会場の慣習に合わせること。
- TDDライト: ビルド前にすべてのチャートのパーセンテージがソース数値に再計算されることをアサートすること。
- ユーザーに提示する前に高い水準でセルフQAを行うこと: レンダリング、確認、修正、繰り返し。
- データや引用を決して捏造せず、報告された所見を決して変更しないこと。
プロセス
フェーズ 0: 情報収集 + 確認
- 入力を収集する: アブストラクトPDF(必須); オプションのハウススタイル用参照ポスター(.pptx); オプションのロゴファイル; 更新されたデータ。
- 理解した内容を繰り返し、その後ゲートをバッチ処理する(1回または2回の
AskUserQuestion呼び出しで、各オプションに推奨デフォルトをマーク)。推奨デフォルトは括弧内:- 寸法/会場: 最初に会場のePoster仕様を確認する [デフォルト]; それ以外は16:9の単一スライド (48x27 インチ) で、これはほとんどの画面上のePosterビューアに一致します。
- 著者、所属、ロゴ: アブストラクトの提出ブロックではなく、著者に対して確認すること(多くの場合、最終版ではありません)。複数の機関がある場合は、複数のロゴを意味します [どれにするか尋ねる]。
- トーン: 中程度の学術的な洗練 [デフォルト]; データと所見は決して変更しません。
- 引用: クリック可能なDOI/URLを持つ4~6件の検証済み参考文献 [デフォルト]。
- チャートエンジン: 編集可能なネイティブチャート [デフォルト]; リクエストに応じて洗練された画像。
- データは最終版か、それとも追加が予定されているか? 継続中の場合は、数値を簡単に更新できるように(単一データブロック)ビルドし、暫定的なフレーミングを維持すること。
- 1枚のポスターか、それともプレゼンデッキか? 「会議用のPowerPoint」はどちらも意味し得ます [ポスター]。
- 著者のデータファイルが提供され、アブストラクトと矛盾する場合: どの数値をポスターに載せるか [著者の分析ファイルを入手する; それ以外の場合は再計算して再現する、data-integrity.mdを参照]。
- QRコード用のリンク(動画、全文)。欠落しているリンクはマークされたプレースホルダーになる [デフォルト]。
- アップロード期限: 受理メールを尋ねること。期限が迫っている可能性があります。
- 自律モード: デフォルトを採用し、それを明示して、処理を進めます。
フェーズ 1: すべての入力を完全に読み取る
- オプションで、環境にコンパニオンスキルがあれば使用する(document/pptx と pdf、dataviz、frontend design、citation management、scientific visualization)。これらは拡張機能です。以下のワークフローはpython-pptx、matplotlib、レンダラーを介して自己完結しています。
- アブストラクトを完全に読み取る:
pdfplumberによるテキスト(.docx の場合はpython-docx)、視覚的レンダリング、およびOCR/画像チェックにより、図を見逃さないようにする。タイトル、著者、所属、すべての数値、およびそれぞれのn/Nを取得する。 - 著者が基礎データを提供した場合、その構造を値より先に読み取り、そのデータからアブストラクト内のすべての数値を
analysis.pyで再現し、それらをアサートして集計をdata.jsonに書き込む。SD vs SE、ペア vs グループ平均、各数値の独自のn、元のノートに対するカテゴリラベル、および最初のデータ行をチェックする。references/data-integrity.mdを参照。 - 参照ポスターが提供された場合、そのハウススタイルを抽出する: スライドサイズ、パレット(バンド + アクセント塗りつぶし)、フォントとサイズ、セクションバーの構造、ロゴ。
bash ${CLAUDE_SKILL_DIR}/scripts/render.shでレンダリングして確認する。references/design-rules.mdを参照。 - Pythonの依存関係を確認する:
pip install python-pptx matplotlib pdfplumber pypdfium2 pillow pypdf pymupdf。
フェーズ 2: 調査
- 今年の学会のページで会場のePoster仕様(アスペクト比、フォント、メディア、アップロードベンダー、期限、必要な開示文言)を確認し、日付を特定する。各ソースがどの組織に関するものかを確認する。
references/venues.mdを参照。これには、機関が公開しているブランドキットからパレット、書体、ロゴを取得することも含まれます。 - 引用を検証して取得する: 実在し、PubMed/DOIで確認済みで、ハイパーリンクとアクセス日を含むもの。著者が実際に使用しているレジストリや灰色文献ソースも含め、ジャーナルのみに限定しない。
references/citations.mdを参照。引用を決して捏造しないこと。 - 導入に必要な背景情報を引き出す。ビルド時には最新のライブラリドキュメントを参照すること。
フェーズ 3: デザイン
- ハウススタイルトークン、カラムグリッド、明確な視覚的階層、ポスターサイズのタイポグラフィ、呼吸するようなパディング、強いコントラストを設定する。
references/design-rules.mdを参照。 - チャートタイプを正直に選択する: 全体の一部のみにドーナツ/円グラフを使用。独立した、または相互に排他的でない割合には棒グラフ。単一の数値には大きな数字タイル。各チャートにそのn/Nをラベル付けする。
references/build-and-charts.mdを参照。 - すべてのチャートと注釈を駆動する1つの編集可能なデータブロックを定義する。
フェーズ 4: ビルド (python-pptx、TDDライト)
references/examples/build_poster_example.py(編集可能なネイティブチャート)またはreferences/examples/make_charts_example.py(matplotlib画像)をコンテンツとハウススタイルに適応させる。- PowerPointで安全なスタイリングのみを使用して、ネイティブの編集可能なチャートをビルドする。唯一の絶対ルール: ドーナツ/円グラフのデータラベルの 位置 を決して設定しないこと。この設定がPowerPointにチャートの修復と削除を引き起こします。スライスごとの塗りつぶし、凡例、パーセンテージラベル、数値形式、軸フォントはすべて安全です。凡例にドーナツのパーセンテージを入れ、穴に大きな数字を入れます。完全なレシピは
references/build-and-charts.mdにあります。 - TDDライト: 保存前に、表示されるすべてのパーセンテージがソース数値に再計算されることをアサートする。
- フェーズ0に従って、著者、所属、ロゴを正しく設定する。
- 読みやすさゲート: 1つのタイプスケールテーブルからすべてのサイズを下限(48インチスライドで22 pt)で設定し、すべてのチャートに
chart.font.sizeを設定し、保存されたファイル内のサイズが下限を下回っている場合にビルドを失敗させる(scripts/check_fonts.py)。references/design-rules.mdを参照。 - 準備完了ゲート: 未確認の項目(著者リスト、所属、開示事項、リンク)をビルド内の CONFIRMED チェックリストに保持する。すべてがTrueになるまで、出力に
..._DRAFT.pptxという名前を付け、各ギャップをポスター上に可視化し、まだ未解決のものを印刷する。
フェーズ 5: レンダリング + セルフQAループ
bash ${CLAUDE_SKILL_DIR}/scripts/render.sh <pptx> <out.pdf> <out.png> 1.7でレンダリングし(LibreOffice、またはmacOSのPowerPoint)、PNGを表示する。- ネイティブチャートの場合、
python3 ${CLAUDE_SKILL_DIR}/scripts/check_charts.py <pptx>を実行する: ドーナツ/円グラフがデータラベルの位置を持っている場合に失敗し、これはPowerPointが開封時にチャートを削除する設定です。 scripts/check_fonts.py <pptx>とscripts/check_overlap.py <rendered.pdf>を実行し、レンダリングを1920x1080にダウンスケーリングし、最も密度の高い領域を1:1のクロップとして表示する。レンダリングからすべてのQRコードをデコードする。references/rendering-qa.mdを参照。references/rendering-qa.mdのチェックリストに照らして修正する: オーバーフローやクリッピングがないこと、十分な大きさのタイプ、呼吸するようなパディング、高いコントラスト、整列したカラム、正しい数値。ユーザーに表示する前に、本当に良い状態になるまで繰り返す。
フェーズ 6: 配信 + git + クリーンアップ
- 別の、明確に名前付けられたコピーを書き込む。ユーザーが最終決定したファイルを決して上書きしない。
- .pptx、提出用PDF、プレビューPNGを配信する。
- 必要に応じてポスターの作業ディレクトリでgit initを行い、明確なメッセージでコミットする(既存のポスターで反復する場合は最初にベースラインをコミットし、以前のバージョンが保持されるようにする)。
- 中間レンダリングと一時ファイルを削除する。再現可能なビルドスクリプトは保持する。
成功基準
- 成果物は編集可能な.pptxと、それに一致するPDF(検証済みページサイズ)およびプレビューPNGである
- チャートはネイティブで編集可能であり(デフォルト)、PowerPointで開いても修復プロンプトが表示されない
- すべてのパーセンテージがソース数値に再計算される。n/Nが表示される。進行中のデータの場合は暫定的なフレーミングが保持される
- 引用はすべて実在し検証済みであり、DOI/URLハイパーリンクがある
- 著者、所属、ロゴがユーザーと確認されている
- アブストラクトに記載されているすべての数値がソースデータから再現されている(データが提供された場合)
- 下限を下回るテキストがない(check_fonts.py)、重なっているテキストがない(check_overlap.py)、1080pビューの1:1クロップで判読可能。パディングは呼吸するように適切で、コントラストは強く、カラムは整列している
- すべてのQRコードがレンダリングから正確にそのリンクにデコードされる。プレースホルダーはファイルをDRAFTのままにする
- 参照ポスターが提供された場合、ハウススタイルが一致する
- 別のコピーが書き込まれた。ユーザーが最終決定したファイルは上書きされていない