deck.yaml スキーマ

brand.yaml でトンマナ(色2つ・フォント)を1回設定し、deck.yaml に内容だけを書きます。

meta:
  title: string          # 必須
  subtitle: string        # 任意
  date: string             # 任意
  author: string            # 任意
  pack: gaishi-strategy | nikkei-soken | keikakusho | modern-tech  # 任意
slides:
  - layout: LayoutName     # 必須。下記カタログ参照
    message: string         # cover/section/closing/appendix-title以外は必須(44字上限)
    chapter: number|string    # 任意
    source: string              # 任意(60字上限)
    note: string                  # 任意(60字上限)
    # ...layout固有フィールド

詳細な型定義は docs/contracts.md、密度上限(文字数上限)は同ファイル §1.2 DENSITY を参照してください。

レイアウトカタログ(全26種)

各レイアウトの実例は Gallery のサンプルデッキ内で確認できます。下表はどのサンプルのどのスライド番号で 実例が見られるかの索引です(サムネイルはライブレンダリング結果の縮小表示です)。

#layout用途実例

CLIの使い方

npx teian new my-deck                          # brand.yaml + deck.yaml の雛形生成
npx teian build deck.yaml -b brand.yaml -o out.html   # HTML生成(既定はsingle-file)
npx teian validate deck.yaml -b brand.yaml     # スキーマ+密度検査
npx teian screenshot out.html -o shots/        # 全スライドをPNG書き出し(Playwright必須)

build は既定で全アセット(CSS/JS/vendor)をインライン化した単一HTMLを出力します。 --assets を付けると vendor への相対パス参照に切り替わり、--offline で Google Fonts CDNの代わりに同梱フォント前提のCSSを出力します。

AI連携ガイド

prompts/AGENT.md は、LLMに deck.yaml だけを生成させるための自己完結プロンプトです。 スキーマ全体・密度上限・良いメッセージラインの書き方・禁止事項(絵文字/実在企業名/Markdown記法など)を 含んでいるので、そのままChatGPTやClaudeなどにコピー&ペーストして使えます。

使い方の流れ:

  1. prompts/AGENT.md の全文をLLMのシステムプロンプトまたは最初のメッセージとして渡す
  2. 「〇〇についての提案資料を作って」のように内容を指示する
  3. 出力された deck.yaml を teian validate で検証する
  4. エラーがあれば該当箇所をLLMに伝えて修正させる
  5. teian build でHTMLを生成する