実行時 (Runtime)
Slidesアーキテクチャ
プレゼンテーションPressの構造方法 — 各フォルダーが1枚のスライドに対応し、順序付けられたインデックスファイル、SlideMeta、およびビルド時のobjectId注入。
OpenPressにおいて、プレゼンテーション(Slides)のアーキテクチャ設計は、従来の単一の長いファイルの形式から意図的に逸脱し、高度にモジュール化されたディレクトリストラクチャを採用しています。この設計の背後には、特にAI Agentのワークモデルに適応するための深い配慮があります。
各フォルダーが1枚のスライドに対応する哲学
OpenPressのプレゼンテーションは、「各フォルダーが1枚のスライドに対応する(Folder-per-slide)」という概念を採用しています。各スライドは独立したディレクトリであり、独自のロジックとスタイルを持っています。
なぜ同じファイルに書かないのか?
- 認知的負荷の軽減: AI Agent(または人間の開発者)にとって、1000行のプレゼンテーションファイルを一度に理解して修正することは非常にエラーを起こしやすいです。スライドをフォルダーとして独立させることで、単一のスライドのコンテンツとロジックに焦点を当てることができます。
- 構造化されたメタデータ: 各スライドは視覚的な表現だけでなく、専用のメタデータ(Meta)も保持しています。これらの情報には、レイアウトの意図、一文での要約、要点の整理、さらには視覚要素のプレーンテキストでの説明が含まれます。これらの隠された情報は、AI Agentに豊富なコンテキストを提供し、デザインとレイアウトをよりスマートに支援することを可能にします。
- 明確な所有権と分離: 異なるスライド間でお互いに干渉することはありません。この分離性により、並行でのコラボレーションとバージョン管理がはるかに簡単かつ安全になります。
順序とインデックスの分離
スライドが異なるディレクトリに分散している場合、システムはそれらの再生順序をどのように知るのでしょうか?
これは専用の「インデックスファイル」に依存しています。このファイルはプレゼンテーション全体のバックボーンであり、その唯一の役割はスライドの順序を定義することです。スライドを並べ替えたり、特定の場面で一部のスライドをスキップしたりする必要がある場合、物理的なスライドディレクトリ自体を動的に移動させる必要はまったくなく、この構造的なインデックスを変更するだけで済みます。これにより、物理ファイルの安定性が維持されます。
ビルド時のスマートな注入
開発段階(Workbench)でスムーズなインライン編集とコメント機能を提供するために、システムは画面上で各スライドの境界を正確に識別する必要があります。
OpenPressは、作者が手動で各スライドのルート要素にマークアップを追加することを要求するのではなく、「ビルド時」にコンパイラーを通じてこれらの識別子を自動的に注入することを選択しました。これにより、ソースコードの純粋さが保たれるだけでなく、人為的なミスによる識別子エラーの可能性も排除されます。これは、「エンジンに退屈な関連付けとバインディングを処理させ、作者とAgentはコンテンツと構造に集中させる」というOpenPressのコア原則を体現しています。