felo-slides について
felo-slidesは、プロンプトやアウトライン、ローカルファイルからプレゼンテーションを作成するスキルです。Felo PPTのタスクを送信して状態を確認し、共有用リンクを返します。
主な機能
- 01テーマやアウトラインからPPTを生成
- 02ローカル画像や文書を入力に使用
- 03スライド枚数とPPTテーマを指定
- 04タスクの確認とタスクIDによる再開
- 05PPTまたはLive Docのリンクを返却
活用シーン
- 01メモからスライド資料を作成
- 02ローカルのPDFや画像からスライドを作成
- 03元画像をPPTに挿入
- 04タイムアウトした生成タスクを再開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ felo-inc/ felo-skills --skill felo-slidesインストール後、Claude Code で/felo-slidesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
clawhub.jsonLICENSEREADME.mdscripts/run_ppt_task.mjs詳細
Felo Slides スキル
使用する場面
プレゼンテーションファイルの作成に関するリクエストでは、このスキルを使用します。
- トピックやアウトラインからスライドを作成/生成する
- メモを PPT デッキにまとめる
- ローカルの画像、PDF、ドキュメントからスライドを作成する
- アップロードされた元画像を生成する PPT に挿入する
- ページ数の要件に沿ってプレゼンテーションを作成する
- プレゼンテーションの内容を共有可能なスライドリンクとしてエクスポートする
トリガーとなるキーワード:
- スライドやプレゼンテーションの作成に関する中国語のプロンプト
- 英語:slides、PPT、presentation deck、generate presentation
- 明示的なコマンド:
/felo-slides、"use felo slides"
このスキルを使用しない場面:
- リアルタイムの情報検索(
felo-searchを使用) - ローカルのコードベースファイルに関する質問
- スライド生成を必要としないテキストのみのタスク
セットアップ
1. API キーを取得する
- felo.ai にアクセスします
- Settings -> API Keys を開きます
- API キーを作成してコピーします
2. 環境変数を設定する
Linux/macOS:
export FELO_API_KEY="your-api-key-here"
Windows PowerShell:
$env:FELO_API_KEY="your-api-key-here"
実行方法
Bash ツールのコマンドを使用し、次のワークフローに正確に従ってください。
ステップ 1:API キーを事前確認する
if [ -z "$FELO_API_KEY" ]; then
echo "ERROR: FELO_API_KEY not set"
exit 1
fi
キーがない場合は、処理を停止してセットアップ手順を案内します。
ステップ 2:Node スクリプトを実行する(作成+ポーリング)
同梱のスクリプトを使用します(jq への依存はありません)。
node felo-slides/scripts/run_ppt_task.mjs \
--query "USER_PROMPT_HERE" \
--interval 10 \
--max-wait 1800 \
--timeout 60
ユーザーがローカルの画像またはファイルを提供した場合は、絶対パスを --file に渡します。プロンプトには、元のアセットをどのように使用するかを含めてください。例:
node felo-slides/scripts/run_ppt_task.mjs \
--query "Create exactly 2 slides and place the uploaded original image directly in the PPT" \
--file "/absolute/path/to/source.jpg" \
--interval 10 \
--max-wait 1800 \
--timeout 60
ユーザーが元のファイルまたは画像を PPT に使用するよう明示的に求めている場合、--file をテキストによる説明に置き換えてはいけません。
特定のテーマを適用するには、まず felo ppt-themes で利用可能なテーマを一覧表示してから、テーマ ID を渡します。
node felo-slides/scripts/run_ppt_task.mjs \
--query "USER_PROMPT_HERE" \
--theme "THEME_ID_HERE" \
--interval 10 \
--max-wait 1800 \
--timeout 60
スクリプトの動作:
POST https://openapi.felo.ai/v2/pptsでタスクを作成します- オプションの
--file <path>を使用して、ローカルファイルを 1 つmultipart/form-dataでアップロードできます - オプションの
--theme <id>を使用して、PPT テーマを適用できます(ppt_config.ai_theme_idを送信します) - オプションの
--livedoc-id <id>を使用して、新しい LiveDoc を自動作成する代わりに既存の LiveDoc を再利用できます - オプションの
--task-id <id>を使用して、既存のタスクのポーリングを再開できます(作成はスキップします) GET https://openapi.felo.ai/v2/tasks/{task_id}/historicalでポーリングしますCOMPLETED/SUCCESSを成功の終端ステータスとして扱います(大文字と小文字を区別しません)FAILED/ERRORを失敗の終端ステータスとして扱います- 終端ステータスになったら、直ちにポーリングを停止します
- 成功時に
ppt_urlを出力します(フォールバック:live_doc_url)
オプションのデバッグ出力:
node felo-slides/scripts/run_ppt_task.mjs \
--query "USER_PROMPT_HERE" \
--interval 10 \
--max-wait 1800 \
--json \
--verbose
次の内容を含む構造化 JSON を出力します。
task_idtask_statusppt_urllive_doc_urllivedoc_short_idppt_business_iderror_message
ステップ 3:終端ステータスを確認する
スクリプトは履歴エンドポイントを自動的にポーリングします。応答する前に、スクリプトの終了を待ってください。
- 成功:終端ステータスが
COMPLETEDまたはSUCCESSで、スクリプトがppt_urlを出力します(フォールバック:live_doc_url) - 失敗:終端ステータスが
FAILEDまたはERRORの場合は、以下のエラー形式を返します - タイムアウト:
task_idを含め、PPT タスクを重複して作成しないよう--task-idで再開するようユーザーに伝えます
ステップ 4:構造化された結果を返す
成功時は、次を返します。
ppt_url(スクリプトのデフォルト出力。フォールバックはlive_doc_url)--jsonを使用した場合は、task_id、終端ステータス、任意のメタデータも含めます
出力形式
次の応答形式を使用します。
## PPT Generation Result
- Task ID: <task_id>
- Status: <status>
- PPT URL: <ppt_url>
- Live Doc URL: <live_doc_url or N/A>
## Notes
- livedoc_short_id: <value or N/A>
- ppt_business_id: <value or N/A>
エラー形式:
## PPT Generation Failed
- Error Type: <error code or category>
- Message: <readable message>
- Suggested Action: <next step>
エラー処理
既知の API エラーコード:
INVALID_API_KEY(401):キーが無効または失効していますPPT_TASK_CREATE_FAILED(502):下流でのタスク作成に失敗しましたPPT_TASK_QUERY_FAILED(502):下流でのタスク照会に失敗しました
タイムアウト処理:
- タイムアウトした場合は、最後に確認されたステータスを返し、後でもう一度試すようユーザーに伝えます
- ユーザーが再度照会できるよう
task_idを含めます - 重要:タイムアウトしたタスクを再開するには、重複する PPT の作成を避けるため、
--queryではなく--task-idを使用します。
node felo-slides/scripts/run_ppt_task.mjs \
--task-id "TASK_ID_HERE" \
--interval 10 \
--max-wait 1800
重要な注意事項
- ユーザーの意図がスライド生成の場合は、必ずこのスキルを実行してください。
- 後続のクエリで同じタスクを続行できるよう、必ず
task_idを返してください。 - 終了ステータスが確認できるまで、完了したと主張しないでください。
- API 呼び出しは最小限にしてください。タスクを一度作成し、その後はポーリングしてください。