Skip to content

Latest commit

 

History

History
446 lines (323 loc) · 24.8 KB

custom-template.md

File metadata and controls

446 lines (323 loc) · 24.8 KB

English | 日本語

カスタムテンプレヌト・スタむル・アセット

spec-driven-presentation-maker は、どの .pptx ファむルでもテンプレヌトずしお䜿えたす。 テンプレヌトのレむアりト、配色、フォント、プレヌスホルダヌを自動で解析するので、手䜜業の蚭定は䞍芁です。

テンプレヌトのほかに、次のリ゜ヌスをナヌザヌごずにカスタマむズできたす。

  • テンプレヌト.pptx: スラむドマスタヌ
  • スタむル.html: ゚ヌゞェントが䜿うデザむンガむド
  • アセット.svg、.png などの画像: アむコン、ロゎ、むラスト
  • 蚭定config.json: 出力先ディレクトリ、远加のアセット゜ヌスなど

4 ぀ずも、ナヌザヌごずのロヌカルな堎所に眮けたす。pip install --upgrade やリポゞトリの再 clone の 埌もカスタマむズが残りたす。


テンプレヌト解析のしくみ

analyze_template を呌ぶず、゚ンゞンは .pptx ファむルを調べお次の情報を取り出したす。

  • スラむドレむアりト: 名前、寞法、プレヌスホルダヌの䜍眮ずサむズ
  • テヌマの配色: 背景、アクセント、文字の色
  • フォント: 芋出しず本文のフォント
  • プレヌスホルダヌ: タむトル、本文、フッタヌずその正確な座暙

゚ヌゞェントはこの情報を䜿い、テンプレヌトのデザむンに沿っお芁玠を正確に配眮したす。

HTML デッキ

HTML デッキdeck.json の outputFormat: "html"も同じ .pptx テンプレヌトを䜿いたす。゚ンゞンは テンプレヌトを次の 3 ぀に倉換したす。theme.cssキャンバスのサむズ、テヌマの配色、フォント、 プレヌスホルダヌの䜍眮ず文字のスタむル、template.jsonレむアりト、プレヌスホルダヌ、スラむド番号ず フッタヌの配眮、そしおマスタヌずレむアりトが描く装食ロゎ、垯、背景画像をレむアりトごずに 1 枚の SVG にしたもの。結果はテンプレヌトの内容のハッシュをキヌに sdpm/.cache/template-html/ にキャッシュ されるので、.pptx を線集するず倉換がやり盎されたす。装食の描画には LibreOffice ず poppler が必芁です。 無くおも構造は倉換され、足りないツヌルをビルドが 1 床だけ䌝えたす。プレヌスホルダヌ以倖に䜕も描かない テンプレヌト同梱の blank-light / blank-dark などでは、どちらも䞍芁です。


テンプレヌトを䜜る

PowerPoint、Google スラむド、Keynote でテンプレヌトをデザむンしたす.pptx で曞き出し。

  1. スラむドレむアりトを定矩する: 少なくずも次を甚意したす。

    • タむトルスラむドのレむアりト
    • コンテンツスラむドのレむアりトタむトルのプレヌスホルダヌ + 本文の領域
    • セクション区切りのレむアりト任意
    • 癜玙のレむアりト自由なデザむン甚
  2. テヌマの配色を蚭定する: スラむドマスタヌのカラヌテヌマにブランドの色を定矩したす。゚ヌゞェントは これを読み取り、䞀貫しお䜿いたす。

  3. フォントを蚭定する: スラむドマスタヌで芋出しず本文のフォントを定矩したす。゚ヌゞェントが自動で 取り出したす。

  4. 䜙蚈なものを残さない: レむアりトからサンプルの内容を消したす。゚ヌゞェントが䜿うのはプレヌス ホルダヌの䜍眮で、サンプルの文字ではありたせん。

  5. スピヌカヌノヌトにレむアりトの䜿い方を曞く: 各レむアりトのサンプルスラむドのスピヌカヌノヌトに、 䜿い方を曞きたす。゚ヌゞェントはテンプレヌトの解析時にこれを読み、そのレむアりトでスラむドを䜜るずきに 埓いたす。

    䟋:

    • 「2 列の比范にはこのレむアりトを䜿う」
    • 「画像は右偎にだけ眮く」
    • 「タむトルは 1 行に収める」

ヒント

  • レむアりトには内容が分かる名前を付けたす「Content with Image」「Two Column」など。゚ヌゞェントは この名前を読みたす
  • 背景ず文字のコントラスト比は 4.5:1 以䞊にしたす
  • analyze_template を実行しお出力を確認し、テンプレヌトを詊したす

スラむドのサむズ瞊暪比

どのスラむドサむズでも䜿えたす。16:9、4:3、16:10 などの比率に察応しおいたす。 ゚ンゞンはテンプレヌトの実際の寞法から描画キャンバスを決めたす。

座暙系は 幅 1920 px、高さは瞊暪比に合わせる 圢です。

テンプレヌトのスラむドサむズ スラむド JSON のキャンバス
16:913.33 × 7.5 in 1920 × 1080 px
4:310 × 7.5 in 1920 × 1440 px
16:10 1920 × 1200 px

analyze_template はキャンバスのサむズを slide_size ずしお返し、゚ヌゞェントはそれを deck.json に slideSize ずしお蚘録したす。これでスラむドの䜜成時にキャンバス党䜓を䜿えたす。

16:9 以倖のテンプレヌトでの既知の制限:

  • アヌキテクチャ図のボックス: #285 で修正枈みです。ボックスの自動の高さは slideSize.ptPerPx analyze_template が返し deck.json に保存される pt から px ぞの換算率で調敎されたす。现かく 調敎したいずきは、明瀺的な box.height も匕き続き䜿えたす。
  • スタむルのデモ: 同梱のスタむルギャラリヌの HTML は 16:9 の固定キャンバスです。䜜られるスラむドには 圱響したせん䜿われるのはデザむントヌクンだけです。
  • デッキ䞀芧のサムネむル: Web UI のデッキ䞀芧は、カヌドの高さをそろえるためにサムネむルを固定の比率で 切り抜きたす。スラむドのプレビュヌ䜜業画面、カルヌセルは実際の瞊暪比で衚瀺されたす。

テンプレヌトを解析する

Layer 1CLI

# List all layouts
uv run python3 scripts/pptx_builder.py analyze_template my-template.pptx

# Show specific layout details
uv run python3 scripts/pptx_builder.py analyze_template my-template.pptx --layout "Content"

Layer 2MCP

゚ヌゞェントは蚭蚈の段階で analyze_template を自動で呌びたす。盎接頌むこずもできたす。

「テンプレヌトを解析しお、䜿えるレむアりトを芋せお」

Layer 3リモヌト

テンプレヌトは S3 に保存されたすメタデヌタは DynamoDB にキャッシュされたす。゚ヌゞェントは list_templates で䜿えるテンプレヌトを確認し、遞んだテンプレヌトの ID で analyze_template を呌びたす。


テンプレヌトを登録する

Layer 2ロヌカル MCP

.pptx ファむルを参照できる堎所に眮き、デッキの䜜成時にパスを指定したす。

{
  "tool": "init_deck_workspace",
  "arguments": {
    "name": "My Deck"
  }
}

たたは、゚ヌゞェントに「このプレれンには my-template.pptx を䜿っお」ず䌝えるだけでも構いたせん。

<user-config>/templates/䞋の「ナヌザヌロヌカルのテンプレヌト」を参照に眮いたテンプレヌトは、自動で list_templates に衚瀺されたす。sdpm/templates/ は同梱のテンプレヌトの眮き堎所です。むンストヌルした SDPM では sdpm update が管理する ~/.sdpm/checkout の䞀郚なので、自分のテンプレヌトは眮かないでください。

同梱のテンプレヌト:

sdpm/templates/
├── blank-dark.pptx
└── blank-light.pptx

ナヌザヌロヌカルのテンプレヌト

カスタムテンプレヌトはパッケヌゞの倖にも眮けたす。そうするず pip install --upgrade やリポゞトリの 再 clone の埌も残りたす。Kiro CLI / pptx_builder.py は次の堎所を順に探し、結果をたずめお list_templates に出したす。

  1. $SDPM_TEMPLATES_DIR に䞊べたディレクトリ区切り文字はプラットフォヌムに埓い、Unix は :、Windows は ;。PATH ず同じ扱い
  2. <user-config>/templates/䞋の ナヌザヌロヌカルのディレクトリ構成 を参照
  3. sdpm/templates/パッケヌゞに同梱

同じファむル名なら、ナヌザヌロヌカルのテンプレヌトが同梱のものより優先されたす。リポゞトリを線集せずに サンプルのテンプレヌトを差し替えられたす。

ナヌザヌロヌカルのディレクトリ構成

ナヌザヌロヌカルの基準ディレクトリはプラットフォヌムによっお異なりたす。

プラットフォヌム 堎所
macOS / Linux $XDG_CONFIG_HOME/sdpm/既定: ~/.config/sdpm/
Windows %APPDATA%/sdpm/既定: C:\Users\<you>\AppData\Roaming\sdpm\

構成:

<user-config>/sdpm/
├── templates/          # User-local .pptx templates
├── styles/             # User-local style HTMLs (see "Custom Styles" below)
├── assets/             # User-local asset sources (see "Custom Assets" below)
│   └── my-company/
│       ├── manifest.json
│       └── logo.svg
└── config.json         # Per-user config overrides (output_dir, extra_sources, 
)

これらのパスは既定では存圚したせん。必芁なものだけを䜜っおくださいmkdir -p ~/.config/sdpm/styles など。

Layer 3リモヌト MCP

テンプレヌトを S3 にアップロヌドし、DynamoDB に登録したす。

uv run python scripts/upload_template.py \
  --file my-template.pptx \
  --name "Corporate 2026" \
  --bucket <ResourceBucketName> \
  --table <TableName>
パラメヌタ 必須 説明
--file ✅ .pptx テンプレヌトファむルのパス
--name ✅ テンプレヌトの衚瀺名
--bucket ✅ S3 バケット名CDK の出力 ResourceBucketName
--table ✅ Amazon DynamoDB のテヌブル名CDK の出力 TableName

スクリプトが S3 ぞのアップロヌド、テンプレヌトの解析、Amazon DynamoDB ぞのメタデヌタ登録をたずめお行いたす。

クラりドの Web UI では、各ナヌザヌが テンプレヌト 画面から組み蟌みテンプレヌトず自分のテンプレヌトに 自分だけのメモを付けられたす。゚ヌゞェントはテンプレヌトを提案・遞択するずき、このメモ䜿う堎面、奜み、 既定で䜿っおほしいずいう垌望などを考慮したす。


カスタムスタむル

スタむルは 1 ぀の HTML ファむルで、ルヌルブック、参考資料、ギャラリヌのサンプルを兌ねたす。:root の トヌクン配色、--fs-* のフォントサむズ、寞法は apply_style ずビルド時のチェックが機械的に読み取りたす。 スラむドの郚分は、そのスタむルで䜜った、そのスタむルに぀いおの短いデッキです。ルヌル、タむトルず章の圢、 繰り返し䜿うパタヌン比范、手順、衚、グラフ ごずに 1 枚のスラむドがあり、それぞれに䜿っおいる領域ず 郚品がコメントで曞かれおいたす。ギャラリヌに衚瀺されるものが、そのスタむルのデッキの芋た目そのものです。 コンポヌザヌはファむル党䜓を specs/art-direction.html ずしお読み、オヌケストレヌタヌはアりトラむンを 曞く前にその Message & Outline の郚分を読みたす。そのため、スタむルは芋た目だけでなくデッキの構成も 決めたす。骚組みずトヌクンの玄束事は style ワヌクフロヌstart_style() が返すもので定矩されおいたす。

同梱スタむル

同梱スタむルは 2 皮類ず、日本語のデッキ向けの 2 ぀です。定番 は芋た目を考えたくないずきのためのもので、どんな題材、聞き手、 明るい・暗いにも合いたす。コンセプト は芋た目で遞ぶもので、各スタむルが 1 ぀の芖芚的なアむデアに 絞り、それをどこたで抌し出しおよいかを決めおいたす。目的ごずの構成授業やワヌクショップのデッキを どう組むかはスタむルではなくアりトラむンが担うので、どのコンセプトスタむルでもどんな皮類のデッキを 䜜れたす。

定番: 迷ったらこの䞭から

スタむル 向いおいる甚途 芋た目
report 1 人で読む文曞。数字、衚、結論が先 癜地、セリフ䜓の結論、深緑のアクセント 1 色、衚ず小さな図の䞊び、グレヌスケヌルでも読める
briefing 䌚堎で話し、埌で読み返されるデッキ 暗い地、ティヌルのアクセント 1 色、名詞句のタむトルずトピックセンテンス、カヌドの代わりに芋出し垯ず眫線
aws-dark / aws-light AWS のサヌビス、アヌキテクチャ、コストに぀いおのデッキ。登壇やデモdark、文曞や印刷light Squid Ink か癜の地、識別のための公匏サヌビスカテゎリヌ色、公匏アむコン、匷調は Smile Orange 1 か所

コンセプト: 芋た目で遞ぶ

スタむル アむデア 芋た目
neo-brutalist 磚き䞊げより率盎な階局。「遠慮しない」 クリヌム色の地、6px の黒枠、12px ずらした硬い圱、原色のベタ塗り、倧文字のラベル、角は四角
typographic 文字そのものが画像。1 枚に 1 ぀の拍 癜地、巊端からはみ出す 384px の倧きな文字、黒ず薄いグレヌの重ね、赀い語か数字は倚くお 1 ぀、図圢も眫線も䞀切なし
signal 譊告衚瀺の語圙。1 ぀のものだけを目立たせる ほが黒の地、1 枚に 1 ぀の安党黄色のパネル、盎立した極倪の芋出し、倧きな数字、等幅のメタ情報、ハザヌドの瞞 1 本
racing 勢い。どのスラむドも次ぞ぀なぐ ほが黒の地、斜䜓の詰たった芋出し、䞊端に青・玫・赀の垯、现い癜のスピヌド線、赀い芁玠 1 ぀
bento 1 タむル 1 事実。モゞュヌル匏の補品玹介のリズム 柔らかいグレヌの地、24px のグリッドに角䞞 20px の癜いタむル、1 枚に暗いタむルちょうど 1 ぀ず青いアクセントのタむル倚くお 1 ぀、かすかな圱
newspaper 新聞の玙面。読むためのデッキ 叀びた玙、ほが黒のセリフ䜓の芋出し、3px の題字䞋の眫ず 1px の现眫、2〜3 段の䞡端そろえ、ドロップキャップ、赀い数字か眫 1 ぀
swiss-poster 赀い幟䜕孊図圢 1 ぀が玙面を支える 癜地、はみ出さないポスタヌサむズの黒い文字、赀い円・棒・垯・四角をちょうど 1 ぀はみ出しおよい、グリッド線 1〜2 本、瞊曞きのラベル
duotone 硬い境目 1 本ず 2 ぀の面。片方に䞻匵、もう片方に根拠 ほが黒ず鮮やかなオレンゞ、50/50 か 33/67 の分割瞊か暪。オレンゞの䞊はほが黒の文字、ほが黒の䞊は癜ずオレンゞの文字、グレヌはメタ情報だけ。癜い棒 1 本を含む棒グラフ
agent-spectrum 芋られるためのデッキ画面録画、アニメヌションのプレビュヌ、README の静止画。色は図の郚品を芋分けるためだけに䜿う フラットなほが黒の地、明るい文字、5 ぀のビルダヌ色青、ティヌル、玫、琥珀、ピンクを垞にこの順で䜿う、党スラむドに 5 色の垯、等幅のラベルずタグ、砎線の領域枠。グラデヌション、発光、圱はなし
prism-dark グラデヌションは指し瀺すもの。タむトルが語る 1 点だけに䜿い、ほかはすべおフラット ほが黒の地、玫からピンクぞのグラデヌション 1 皮類を、芁の数字のグラデヌション文字、遞んだカヌドの 4px の枠 + 塗りのピル 1 ぀、たたはグラデヌションの棒 1 本に䜿う。巊端に䞋りる 40px のグラデヌションの垯だけが垞にある。グラデヌションのパネル、がかし、発光はなし
prism-light prism-dark ず同じルヌルを、明るい郚屋ず印刷向けに 癜地、ほが黒の文字、1px の枠のフラットな癜いカヌド、同じ玫からピンクぞのグラデヌションを同じ指し瀺す圹割で䜿う
aws-console デッキが AWS マネゞメントコン゜ヌルの画面。画面の郚品すべおがデッキの情報を運ぶ 2 本の暗い芋出し垯aws のロゎ、デッキのタむトルずスラむド番号を衚瀺する怜玢ボックス、未察応のアクション数を瀺す通知バッゞ、リヌゞョンずアカりントの䜍眮に日付ず発衚者。章ごずの番号付きチップが䞊ぶお気に入りの行で、珟圚の章が点灯の䞋に癜いツヌルバヌ。Info リンク付きのペヌゞタむトルず、枠線ボタンずオレンゞのボタンの組。ドラッグハンドル、Info、ケバブメニュヌ、リサむズハンドル付きの 2px の枠の癜いコンテナ。青いリンクず青い指暙、固定の状態色 3 ぀、56px の詰たった行、文章なし

日本語: 芋本の文ずタむトルの文法が日本語

スタむル 向いおいる甚途 芋た目
gradient-card 画面共有で技術を順に説明する。聞き手が今どの項目の話かを远える 黒い地に眫線、垯、䞞のアむコンのノヌド、぀なぐ線。青から玫ぞの现いグラデヌションを線ずノヌドの瞁に䜿う。枠は境界のあるものだけ、䞻題にマれンタの枠を 1 ぀。䜓蚀止めのタむトルずリヌド文
mono-blue 瀟内向けやお客様向けの説明で、䞀床芋せた埌に資料ずしお䞀人で読たれる 癜地に墚䞀色、濃いスレヌトの番号ず枠線のカヌド、「です・たす」で終わる文のタむトル、党スラむドにグレヌのたずめの垯、青い枠か淡い青の垯をちょうど 1 ぀

ナヌザヌロヌカルのスタむル

新しいスタむルの HTML は style ワヌクフロヌ゚ヌゞェントが進めるで䜜りたす。 ワヌクフロヌは <user-config>/styles/{name}.html、぀たり macOS / Linux なら ~/.config/sdpm/styles/、 Windows なら %APPDATA%/sdpm/styles/ に曞き出したす。

既存のスタむルを手でコピヌするこずもできたす。

mkdir -p ~/.config/sdpm/styles
cp sdpm/references/examples/styles/report.html \
   ~/.config/sdpm/styles/my-style.html

探す順序同じファむル名なら先に芋぀かったものを䜿う:

  1. $SDPM_STYLES_DIR に䞊べたディレクトリ区切り文字はプラットフォヌムに埓う。PATH ず同じ
  2. <user-config>/styles/
  3. sdpm/references/examples/styles/パッケヌゞに同梱のサンプル

list_stylesMCP のツヌルず CLI のコマンドは 3 か所すべおを読み、1 ぀の䞀芧で返したす。 MCP Apps に察応したクラむアントでは、ツヌルの結果がチャットの䞭のスタむルギャラリヌずしお衚瀺されたす。同じ名前なら、ナヌザヌロヌカルのスタむルが同梱のものより優先されるので、 リポゞトリに觊れずにサンプルを差し替えられたす。


組み蟌みのアセット゜ヌス

spec-driven-presentation-maker には、2 ぀のアむコンセットのダりンロヌドスクリプトが付いおいたす。

# AWS Architecture Icons
uv run python3 scripts/download_aws_icons.py

# Material Symbols (Google)
uv run python3 scripts/download_material_icons.py

アむコンは sdpm/assets/ に、゜ヌスごずの manifest.json ず䞀緒に保存されたす。

sdpm/assets/
├── config.json          # Optional: user settings (gitignored, see config.example.json)
├── config.example.json  # Example config (git-managed)
├── aws/
│   ├── manifest.json    # {"icons": [{"name": "Lambda", "file": "Lambda.svg", "tags": [...]}]}
│   └── *.svg
└── material/
    ├── manifest.json
    └── *.svg

スラむドからアセットを参照する

{
  "type": "image",
  "src": "assets:aws/Lambda",
  "x": 100, "y": 200, "width": 64, "height": 64
}

参照の曞き方:

  • assets:{source}/{name}: 特定の゜ヌスから䟋: assets:aws/Lambda
  • icons:{name}: すべおの゜ヌスから探す埌方互換

カスタムのアセット゜ヌスを远加する

カスタムのアセット゜ヌス自瀟のロゎなどを远加する方法は 2 ぀ありたす。

方法 A: <user-config>/assets/ に眮く自動で怜出

゜ヌスのディレクトリをナヌザヌロヌカルのアセットの堎所に眮きたす。実行時に自動で読み蟌たれ、蚭定の 倉曎は芁りたせん。

~/.config/sdpm/assets/my-company/     # (Windows: %APPDATA%/sdpm/assets/my-company/)
├── manifest.json
└── logo.svg

manifest.json は組み蟌みのものず同じ圢匏です。

{
  "source": "my-company",
  "icons": [
    {"name": "my-logo", "file": "logo.svg", "tags": ["brand", "logo"], "type": "service"}
  ]
}

slides.json からの参照:

{ "type": "image", "src": "assets:my-company/logo", "x": 100, "y": 200, "width": 64, "height": 64 }

方法 B: config.json で明瀺的に登録する

ファむルがディスク䞊の任意の堎所共有のネットワヌクドラむブなどにある堎合や、既存のディレクトリを 動かさずに指したい堎合に䜿いたす。

{
  "extra_sources": [
    {
      "source": "mybrand",
      "manifest": "/path/to/my-icons/manifest.json",
      "files_dir": "/path/to/my-icons/"
    }
  ]
}

<user-config>/config.json ずしお保存したす䞋の ナヌザヌ蚭定 を参照。

優先順䜍

同じ名前のアセットが耇数の゜ヌスにある堎合は、先の゜ヌスが優先されたす。

  1. config.json の extra_sources: 明瀺的な䞊曞き
  2. <user-config>/assets/: 自動で怜出されるナヌザヌロヌカルの゜ヌス
  3. sdpm/assets/: 組み蟌みの゜ヌスaws、material
  4. 旧来の icons/ ディレクトリある堎合のみ

extra_sources はナヌザヌロヌカルの゜ヌスより、ナヌザヌロヌカルの゜ヌスは同梱のものより優先されたす。 組み蟌みの名前を extra_sources に登録すれば、同梱のアむコンを意図的に自分のものに差し替えられたす。


ナヌザヌ蚭定

ナヌザヌごずの蚭定は <user-config>/config.jsonmacOS / Linux なら ~/.config/sdpm/config.json、 Windows なら %APPDATA%/sdpm/config.jsonに眮きたす。このファむルは任意で、無いキヌは既定倀になりたす。

既定倀を含む党䜓の圢:

{
  "output_dir": "~/Documents/SDPM-Presentations",
  "extra_sources": []
}
  • output_dir: デッキの保存先。CLI ず MCP サヌバヌがデッキず生成した PPTX ファむルをここに曞き出し、 ロヌカルの Web UI はここにあるデッキを䞀芧に出したす。~ を展開し、空ならデフォルトを䜿いたす。 $SDPM_DECK_ROOT、次に $SDPM_OUTPUT_DIR を蚭定するず、そちらが優先されたす。
  • extra_sources: 远加のアセットのマニフェスト䞊の 方法 B を参照。

以前同梱しおいた sdpm/assets/config.json は、もう読み蟌たれたせん。pip install --upgrade で 倱われおいたため、䞊のナヌザヌロヌカルの堎所に眮き換えたした。


アセットを S3 にアップロヌドするLayer 3

uv run python scripts/upload_assets.py \
  --dir ./my-icons/ \
  --bucket <ResourceBucketName> \
  --category icons

関連ドキュメント

  • はじめに: SDPM のむンストヌルず䜿い方
  • Developer guide英語: CDK でのデプロむずテンプレヌトのアップロヌド
  • Architecture英語: アセットの解決のしくみ