日本語コンサル風PPTX
このスキルは、pptxスキルの上に日本語特化のレイヤーを追加します。pptxスキルが利用可能な場合(claude.ai: /mnt/skills/public/pptx/SKILL.md)、まずそちらを読み、pptxgenjsの注意点やQAコマンド(validate.py、soffice → pdftoppm)を確認してください。以下はその上書きまたは拡張です。このスキル独自のスクリプトには、Node.js + pptxgenjsとPython 3 + python-pptxのみ必要です。
なぜこれが必要か
デフォルトのパイプラインで作成された日本語スライドは、次の3つの理由で機械的に見えます。視認性の高い順に示します:
- 文体 – ですます調の説明、曖昧表現(〜と言えるでしょう)、空虚な言葉(さまざまな/効率的に)、翻訳構文。
references/writing-style.mdとリンターで修正します。 - 配置 – 中央寄せタイトル、同じ3カード行、アクセントストライプ、不均等な隙間、スライド間で移動するタイトル。
references/layout-and-patterns.mdとライブラリ内の固定レイアウトゾーンで修正します。 - 仕上げ – pptxgenjsは東アジアフォントを空のままにするため、PowerPointは日本語を游ゴシックLightでレンダリングします;テキストの言語タグがen-USになります;禁則処理を無視します。
scripts/postprocess_jp.pyで修正され、ライブラリが自動実行します。
AI的なテキストが聞こえる原因は特定の単語ではなく、内容の空虚さにあります。禁止フレーズを指定すると、モデルが同義語に置き換えます。そのため、原因を修正します:具体性を追加する(誰が、何を、どれだけ、いつまで)か、文を削除します。writing-style.md §0でこれを説明し、3段階の書き換え(削る → 足す → 揃える)に従います。
pptxスキルの上書き
| pptxスキルの設定 | 本スキル |
|---|---|
| タイトル36–44pt、本文14–16pt | タイトル24pt、リード14、本文14、ノート10。日本語コンサル資料は読み物であり、長い日本語タイトルは36ptでは収まりません。投影用の場合は18pt+の本文を使用します。 |
| セーフリストのフォント | ラテン/数字 Arial、日本語 BIZ UDPゴシック(代替:游ゴシック、メイリオ)。createDeckでfont:を設定します。QAでは代替フォントでレンダリングするため、ボックスに約10%の余裕を残します。 |
| すべてのスライドにビジュアル要素が必要 | 構造化テーブル、カラム、またはプロセスがビジュアルとして扱われます。箇条書きのみのスライドは避けてください。これを満たすために装飾アイコンを追加しないでください。 |
| アクセントライン、カラーバーなし | 同様に、カードの端のストライプや全幅ヘッダーバンドも禁止です。 |
ワークフロー
- まずストーリーラインを作成。 すべてのスライドのアクションタイトルをリストとして書き、順に読みます。タイトルだけではストーリーが伝わらない場合、レイアウトの前にストーリーを修正します(
writing-style.md§2)。 - スライドごとにコピーを書く
writing-style.md§1–§5を適用:要素ごとの文体、タイトルや箇条書きでのですます調禁止、基準と出所付きの数値。 - スライドごとにパターンを
layout-and-patterns.md§2のテーブルから選択します。隣接スライドで同じパターンを使ってはいけません。 - ライブラリで構築(以下参照)。タイトル、リード、ノート、ページ番号を手動で配置しないでください。レイアウトがそれらを管理します。
- リンター:
python3 scripts/lint_jp_deck.py deck.pptx。すべてのERRORを修正し、すべてのWARNを読みます。ERRORがなくなるまで再実行します。 - 検証とレンダリング:
validate.py、次に画像に変換して各スライドを検査します(beautify.md§4–§5参照)。新鮮な目でスライドを見て、タイトルの行あふれやブロック間の0.3インチ未満の隙間をチェックします。 - リンターサマリーと、意図的に残したWARN(理由付き)を報告します。
ユーザーが既存の日本語スライドを修正用に提供した場合、まずリンターを実行して問題リストを取得し、writing-style.mdに従ってテキストを編集し、レイアウトルールに違反しない限りレイアウトは維持します。
ライブラリ
const { createDeck } = require("<スキルディレクトリ>/scripts/jp_deck_lib.js");
const d = createDeck({ font: "biz-ud", palette: "ink", title: "…", company: "…", footerText: "Confidential" });
const { L } = d; // ゾーン(インチ): L.body, L.note, …
d.cover({ title, subtitle, meta });
const s = d.content({ title: "結論を言い切るタイトル", lead: "対象・条件", section: "章名" });
d.bullets(s, ["体言止めの行", { t: "補足", lv: 1 }], { x: L.body.x, y: L.body.y, w: 6, h: 3 });
d.barChart(s, { labels, series: [{ name, values }] }, rect, { hi: 0 });
d.table(s, rows, rect, { numCols: [1, 2], hlRow: 2 });
d.columns(s, [{ head, items, foot, hl }], rect);
d.chevrons(s, [{ head, items, out, hl }], rect);
d.takeaway(s, "示唆の一文"); // 本文ゾーンの下部
d.note(s, ["出所:…", "注:…"]);
await d.finish("out.pptx"); // 書き込み後、postprocess_jp.pyを実行
scripts/sample_deck.jsはすべてのコンポーネントを使用した8スライドのサンプル資料を構築します。新しいビルドスクリプトを作成する前に読んでください。線、表、グラフの色オプションにはd.THEME.colorsの16進数が必要です;テキストと塗りつぶしはスキームカラーd.C.*を使用します。postprocess_jp.pyは、スキームカラーが16進数のみのオプションに漏れた場合、大きなエラーを出して失敗します。
カスタムfontFaceを指定してpres.addTextを呼び出さないでください。テーマフォントはラテンと日本語のペアを引き継ぎます。ハードコードされたフォントは東アジアのマッピングを壊します。
リファレンスファイル
references/writing-style.md– 要素ごとの文体、アクションタイトル、AI臭カタログ(NG → OK)、数値表記、箇条書きルール、書き換え手順、出発前チェックリスト。スライドテキストを書く前に読んでください。references/layout-and-patterns.md– ゾーンとグリッド、コンテンツ→パターンテーブル、配置の原則、避けるべきAI的なレイアウト、グラフと表の慣習。references/beautify.md– カラーシステム、タイプスケール、シェイプルール、仕上げチェック、レンダリングの注意点。
リンター
scripts/lint_jp_deck.py deck.pptx [--strict] [--json] [--ignore RULE …] はpython-pptxで.pptxを読み込み、スライドごとにERROR / WARN / INFOを報告します。ERRORが1つでもあると終了コード1(--strictの場合はWARNも対象)。writing-style.md §3の★項目に加え、フォント、言語タグ、オーバーフロー推定、重なり、狭い隙間、マージン、タイトル位置のずれ、中央寄せ本文テキスト、レイアウトの繰り返しをカバーします。タイトルが適切な主張かどうかは判断できないため、タイトルを順に読みながら確認してください。