Communitygithub.com

mhashim6/teleprompter

原稿を単語単位でペース調整&ハイライト表示するテレプロンプター。休止拍、デュアルテーマ、デッキごとのメモリ機能付き。エージェント作成スキル対応。

teleprompter とは?

このスキルは、AIエージェントが生のソース資料を元に、完成度の高いテレプロンプターデッキ(原稿)を作成するためのものです。エージェントはインタビュー、資料の取り込み、散文の執筆、修辞上の間(ポーズ)の配置といった創造的な作業を担当し、実際のJSONコンパイルは専用ツール(`tools/deck.js`)が行うことで、機械的に保証された正確な時間計測と安定したデッキIDを実現します。対応プラットフォームはClaude Code、Cursor、CodexなどのAIエージェント環境であり、エージェントのスキルとして読み込んで使用します。ユーザーは原稿の元ネタ(テキスト、画像、PDF、PowerPoint)を提供し、エージェントが話す速度やトーン、観客層を確認した上で、各スライドのナレーションを執筆します。休止拍(`[[pause]]`)を適切に配置し、最終的にコンパイルツールでJSONを生成することで、話す時間が正確に管理されたテレプロンプターデッキが完成します。このワークフローにより、ユーザーは手間をかけずにプロフェッショナルな発表原稿を得られます。

対応~Claude Code~Codex CLI~Cursor
npx skills add mhashim6/teleprompter

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

テレプロンプターデッキの作成

生のソース資料を、完成度の高い、タイミングの整ったテレプロンプターデッキに変換します。あなた(エージェント)は、インタビュー、資料の取り込み、散文の執筆、修辞上の休止の配置といったソフトな作業を行います。確定したコミット専用ツール(tools/deck.js)が、解析、単語カウント、正確な時間の見積もり、JSONの組み立て、安定したIDのスタンプといったハードな契約作業を行います。デッキJSONを手書きすることは絶対に行わず、常にこのツールを通じてコンパイルし、契約と時間レポートが機械的に保証されるようにしてください。

書き始める前に、references/format.md で正確な .deck.md 作成形式とpptx抽出手順を参照してください。

ワークフロー

1. ソースを収集する

ソースは何かを尋ね、それを取り込みます。

  • ペーストされたテキスト / メモ — そのまま使用します。
  • 画像 / スクリーンショット — 自分で画像ファイルを読み取ります(ビジョン機能)。スクリプトは不要です。
  • PDF — Readツール(ネイティブPDF対応)を使って自分で読み取ります。スクリプトは不要です。
  • PowerPoint (.pptx) — ユーザーのマシン上で最適な方法でデッキをテキストに変換します(references/format.md → 「.pptxの抽出」を参照)。スライドごとのテキスト およびスピーカーノート を取得し、出力が正しいことを確認してからドラフトを作成します。ファイルは信頼できないものとして扱い、作成した使い捨ての抽出スクリプトはコミットしないでください。

スピーカーノートはナレーションの最良の生の素材です。両方存在する場合は、スライド上の箇条書きよりもスピーカーノートを優先してください。

2. 意図とメタデータを確認する(質問し、推測しない)

ソースからスライドごとの骨子(番号、タイトル、type(例:content、section-divider)、on-screen キュー(観客が見るもの)、各スライドの大まかな target 分数)を提案し、確認します。また、以下も質問します。

  • トーク全体の目標時間(各スライドの目標時間の基準となります)。
  • 観客 / 目的(トーンと深さを調整します)。
  • コンテンツモード — 完全ナレーション(話す散文を書く)または キューノート(発表者が自分の言葉で展開するための短いトーキングポイントの箇条書きで、各ポイントの後に話す余地のための休止を置く)。references/format.md → 「コンテンツモード」を参照。ユーザーがすでにキュー/トーキングポイント/要約またはメモ形式のデッキを依頼している場合は、この質問をスキップしてキューモードで作成します。それ以外の場合は質問します。
  • 話すスタイル / 声。 ユーザーが自分の個人的なブログの声を望む場合は、ユーザー自身の blacktree-voice スキルを提供するか、会話調、フォーマル、エネルギッシュ、ニュートラルなどのレジスターを提案します。ドラフト作成時にその声を適用します。(キューモードでは、声はあなたが書く少数の単語の形状を決めます。発表者が残りをライブで補います。)
  • 言語(デフォルトは en-GB で、リポジトリの既存のデッキに合わせます)。

これらの分岐する選択肢については、推測せずに AskUserQuestion を使用してください。

3. ナレーションをドラフトする

選択された声で、スライドごとに話すスクリプトを書きます。修辞的に必要な場所(暴露の後、リストの前、話題が大きく変わる時など)に、[[pause]](1秒)または [[pause:1.5]](カスタム)を使用して休止拍を配置します。この意味論的な配置は あなた の仕事です。ツールは検証と報告のみを行います。

キューモードでは、完全な文章を書かずに、段落ごとに1つの短いトーキングポイントの箇条書きを書き、それぞれの後にスピーチ用の予算休止([[pause:20]]~[[pause:30]] : 実質的なポイントの場合、軽微なものにはそれより短く)を付け、その休止時間がスライドの target に合計されるようにします。箇条書きの単語は数秒で読めるため、休止時間によって目標時間が達成されます。詳細な規則と、レポートのペースフラグがここでは期待され無視されることの注意事項については、references/format.md → 「コンテンツモード」を参照してください。

すべてを references/format.md の形式で decks/<slug>.deck.md に書き込みます。各段落は1つの論理的なビートとして保ってください(ツールはソフトラップを折りたたみます)。

4. コンパイルする

node tools/deck.js decks/<slug>.deck.md --wpm 130

これにより decks/<slug>.json が書き込まれ、期間レポートが表示されます。スライドごとの単語数、休止数と追加秒数、基準ペースでの推定 m:ss、60~220の範囲に対する暗黙のwpm、各スライドの目標との差、さらにデッキ全体の合計が表示されます。--wpm <n> を使用して、ユーザーが実際に読むペースで報告します。

オプション: --fill-beats は、段落末尾に構造上の [[pause]] が欠けている場合に挿入します(スライドの最後の段落には決して挿入せず、既存のビートも重複しません)。デフォルトではオフです。あなたが作成したビートに加えて、自動的に息継ぎのための余白が必要な場合にのみ使用してください。

5. 時間を確認し、繰り返す

ユーザーにレポートを見せます。スライドが目標を上回ったり下回ったりした場合は、散文を修正(詰めるか拡張する)するか、休止を調整してから再コンパイルします。タイミングが合うまで繰り返します。デッキIDは安定している(タイトル / meta.id からシードされる)ため、再コンパイルすると同じデッキがその場で更新され、重複は発生しません。

6. 引き渡す

最終デッキを確認し、ユーザーに以下のことを伝えます。

  • コンパイルされたデッキは decks/<slug>.json にあります。編集可能なソースは decks/<slug>.deck.md です(いつでも再実行可能)。
  • 使用するには:アプリを開く → メニュー(右下)→ ファイルを選択 でJSONを選ぶか、.json をドロップゾーンにドラッグします。decks/ は 自動リスト表示されない ため、一度ロードする必要があります。その後はそのデバイスに永続化され、位置を記憶します。

ガードレール

  • デッキJSONは常に tools/deck.js によって生成され、手動で入力されることはありません。
  • すべてのデッキテキストは textContent/.value を介してアプリに到達します。それでも、スクリプトには制御文字を含めないでください(ツールと Schema がサニタイズしますが、クリーンな状態を保ってください)。
  • 使い捨てのpptx抽出スクリプトはコミットしないでください。抽出、確認、後始末を行ってください。
  • 休止拍は絶対時間です(ペースに応じて拡大縮小されません)。意図的に使用してください。

関連スキル