仕様駆動開発のアプローチでプレゼンテーション資料を作成するオープンソースツールキット。 「何を伝えるか」を先に設計し、「どう見せるか」を AI が構築します。
従来の資料作成は「スライドを開いて、考えながら埋める」アプローチです。 構成が定まらないまま見た目の調整に時間を取られ、伝えたいメッセージがぼやけがちです。
仕様駆動プレゼンテーションは、ソフトウェア開発の仕様駆動開発(Spec-Driven Development)を資料作成に応用します。
| 従来の資料作成 | 仕様駆動プレゼンテーション | |
|---|---|---|
| 起点 | 白紙のスライド | ソース資料・要件 |
| 設計 | 作りながら考える | 先に論理構造を設計書として定義 |
| 構築 | 手作業でレイアウト | AI がテンプレートに準拠して自動構築 |
| 品質 | 属人的 | 設計書に基づくレビュー可能なプロセス |
🚀 まずは試してみたい? CloudShell から数分でフルスタックデプロイできます。ローカルに CDK や Docker は不要です。 CloudShell デプロイ手順を参照してください。
skill/ を Kiro CLI のスキルディレクトリにコピーするだけで使えます。
エンジンを Python パッケージとしてインストールすることもできます:
# 最新版
pip install git+https://github.com/aws-samples/sample-spec-driven-presentation-maker.git#subdirectory=skill
# バージョン指定
pip install git+https://github.com/aws-samples/sample-spec-driven-presentation-maker.git@v0.1.0#subdirectory=skillインストール済みバージョンの確認:
import sdpm
print(sdpm.__version__)cd mcp-local && uv syncMCP クライアントの設定に追加:
{
"mcpServers": {
"spec-driven-presentation-maker": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-local", "python", "server.py"]
}
}
}cd infra
cp config.example.yaml config.yaml # スタックの有効/無効を設定
npm install && npx cdk deploy --all各レイヤーの詳細なセットアップ手順ははじめにを参照してください。
4 層アーキテクチャで構成されています。各レイヤーは前のレイヤーの薄いラッパーです。必要なレイヤーだけ選んで使えます。
| ユースケース | レイヤー | AWS |
|---|---|---|
| Kiro CLI で個人利用 | Layer 1: skill/ |
不要 |
| ローカル MCP(Claude Desktop, VS Code, Kiro) | Layer 2: skill/ + mcp-local/ |
不要 |
| チームデプロイ | Layer 3: + mcp-server/ + infra/ |
必要 |
| フルスタック | Layer 4: + agent/ + api/ + web-ui/ |
必要 |
詳細はアーキテクチャを参照してください。
- 認証: Cognito User Pool による JWT トークン認証(Layer 4)
- 認可: API・ストレージ層でのリソースレベル RBAC
- 暗号化: S3 サーバーサイド暗号化(SSE-S3)、DynamoDB 保存時暗号化
- ネットワーク: CloudFront + OAI による静的アセット配信、API Gateway + Cognito 認可
- WAF: AWS WAF による IP アドレス制限(IPv4/IPv6)を CloudFront・API Gateway にオプション適用
| ドキュメント | 説明 |
|---|---|
| アーキテクチャ | 4 層構成、データフロー、認証モデル、MCP ツール一覧 |
| はじめに | Layer 1〜4 のセットアップとデプロイ手順 |
| CloudShell デプロイ | CloudShell からワンコマンドデプロイ(CDK/Docker 不要) |
| エージェント接続 | Amazon Bedrock AgentCore Gateway と MCP クライアントの接続方法 |
| Teams・Slack 連携 | チャットプラットフォーム連携 |
| テンプレート・アセット | カスタムテンプレートとアセットの追加 |
spec-driven-presentation-maker/
├── skill/ Layer 1 — エンジン、リファレンス、テンプレート
├── mcp-local/ Layer 2 — ローカル stdio MCP サーバー
├── mcp-server/ Layer 3 — Streamable HTTP MCP サーバー(LibreOffice 内蔵)
├── infra/ Layer 3-4 — CDK スタック
├── agent/ Layer 4 — Strands Agent
├── api/ Layer 4 — 統合 REST API Lambda
├── web-ui/ Layer 4 — React Web UI
├── shared/ 共有モジュール(認可・スキーマ)
├── scripts/ デプロイ・運用ヘルパー
├── tests/ ユニットテスト
└── docs/ ドキュメント
make all # リント + ユニットテスト
make test # ユニットテストのみ
make lint # ruff リントのみコントリビューションを歓迎します。詳細は CONTRIBUTING.md を参照してください。
This project has adopted the Amazon Open Source Code of Conduct.
これはデモおよび教育目的のサンプルコードであり、本番環境での使用を想定していません。 デプロイ前に、組織のセキュリティ・規制・コンプライアンス要件を満たすよう、 セキュリティチームおよび法務チームと確認してください。
- すべてのS3バケットはサーバーサイド暗号化(SSE-S3)を使用
- DynamoDBテーブルはAWSマネージド暗号化を使用
- 転送中のすべてのデータはTLSで暗号化
- すべてのS3バケットでBlock Public Accessが有効
- S3 バケット: パブリックアクセスブロック、サーバーサイド暗号化(SSE-S3)、バージョニング有効
- DynamoDB: 保存時暗号化、ポイントインタイムリカバリ有効
- IAM: サービスごとにスコープされた最小権限ロール、ワイルドカードリソース権限なし
- API Gateway: 全エンドポイントに Cognito JWT 認可
- CloudFront: Origin Access Identity(OAI)、HTTPS のみ、セキュリティヘッダー
- シークレット: ハードコードされた認証情報なし、環境変数または IAM ロール経由
- AI/GenAI: モデル出力は AI 生成として明示、データセットコンプライアンス文書化済み
- ログ: CloudWatch Logs(保持期間設定可能)、Bedrock 呼び出しログ(オプション)
- 監査ログ用に AWS CloudTrail を有効化
- VPC 内で実行する場合は S3・DynamoDB の VPC エンドポイントを設定
- CloudFront と API Gateway に AWS WAF ルールを設定(組み込みサポート:
config.yamlでwaf.allowedIpV4AddressRanges/waf.allowedIpV6AddressRangesを設定 — 複数 CIDR 範囲指定可、またはdeploy.shの--waf-ipv4/--waf-ipv6を使用) - ドメインに合わせて CORS 設定を見直し
- 全バケットで S3 アクセスログを有効化
- Cognito の高度なセキュリティ機能(MFA、漏洩認証情報検出)を設定
- Amazon Bedrock のモデルアクセスとリージョン設定を確認 — データ主権が懸念される場合はクロスリージョン推論プロファイルの使用を避けること
See CONTRIBUTING.md for more information.
This project is licensed under the MIT-0 License.
