Communitygithub.com

mhashim6/teleprompter

단어별로 강조하며 스크립트를 읽어주는 텔레프롬프터 스킬입니다. 일시 정지 비트, 듀얼 테마, 덱별 메모리 기능을 제공하며, 에이전트가 직접 대본을 작성할 수 있습니다.

teleprompter란 무엇인가요?

이 스킬은 AI 에이전트가 원시 자료를 기반으로 완성된 텔레프롬프터 덱(Deck)을 제작할 수 있도록 지원합니다. 에이전트는 인터뷰, 자료 수집, 대본 작성, 수사학적 일시 정지 배치 등 창의적인 작업을 수행하고, `tools/deck.js` 도구를 통해 확정적인 덱 JSON을 생성합니다. 사용자는 슬라이드별 내레이션, 큐 노트 모드를 선택할 수 있으며, 총 발표 시간과 청중에 맞춰 각 슬라이드의 목표 시간을 조정할 수 있습니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용 가능하며, 완성된 덱은 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 tool)를 사용하여 직접 읽습니다(기본 PDF 지원). 스크립트를 사용하지 않습니다.
  • PowerPoint (.pptx) — 사용자 컴퓨터에서 가장 잘 작동하는 방식으로 덱을 텍스트로 변환합니다(references/format.md → "Extracting a .pptx" 참조): 슬라이드별 텍스트 및 발표자 노트를 캡처한 후, 출력 결과가 올바른지 확인하고 초안을 작성합니다. 파일을 신뢰할 수 없는 것으로 간주하고, 작성한 임시 추출 스크립트를 커밋하지 마십시오.

발표자 노트는 내레이션에 가장 좋은 원시 자료입니다. 두 가지가 모두 있는 경우 슬라이드 불릿보다 발표자 노트를 우선 사용하십시오.

2. 의도 및 메타데이터 확인 (질문하고, 추측하지 마십시오)

자료를 바탕으로 슬라이드별 스켈레톤(번호, 제목, type (예: content, section-divider), on-screen 큐(청중이 보는 것), 각 슬라이드의 대략적인 target(분))을 제안하고 확인합니다. 또한 다음을 질문합니다:

  • 전체 목표 시간 (각 슬라이드 목표 시간을 결정합니다).
  • 청중 / 목적 (말투와 깊이를 조정합니다).
  • 콘텐츠 모드 — 전체 내레이션(구어체 대본 작성) 또는 큐 노트(발표자가 자신의 말로 확장할 수 있는 짧은 요점 불릿, 각 요점 후 일시 정지 포함). references/format.md → "Content modes"를 참조하십시오. 사용자가 이미 큐/요점/요약 또는 노트 스타일 덱을 요청한 경우 이 질문을 건너뛰고 큐 모드로 작성하십시오. 그렇지 않으면 질문합니다.
  • 말투 / 목소리. 사용자가 자신의 개인 블로그 스타일을 원하는 경우 blacktree-voice 스킬을 제공하거나, 대화체, 격식체, 에너제틱 또는 중립적 중 하나를 제안합니다. 초안을 작성할 때 해당 말투를 적용합니다. (큐 모드에서는 말투가 작성하는 몇 단어에만 영향을 미치며, 나머지는 발표자가 실시간으로 제공합니다.)
  • 언어 (기본값은 en-GB로, 저장소의 기존 덱과 일치시킵니다).

이러한 분기 선택에 대해 추측하지 말고 AskUserQuestion을 사용하십시오.

3. 내레이션 초안 작성

선택된 말투로 슬라이드별 구어체 대본을 작성합니다. 공개 후, 목록 전, 주제 전환 시 등 수사학적으로 필요한 곳에 [[pause]](1초) 또는 [[pause:1.5]](사용자 지정)를 사용하여 일시 정지 비트를 배치합니다. 이 의미론적 배치는 당신의 작업입니다. 도구는 검증하고 보고만 합니다.

큐 모드에서는 완전한 문장을 작성하지 마십시오: 각 단락에 대해 짧은 요점 불릿 하나를 작성하고 각각을 말하기 예산 일시 정지([[pause:20]]–[[pause:30]], 중요한 요점은 더 길게, 덜 중요한 것은 더 짧게)로 끝냅니다. 일시 정지 크기를 슬라이드의 target에 합산되도록 조정합니다. 몇 단어 불릿은 몇 초 만에 읽히므로, 일시 정지가 목표 시간을 맞추는 주요 요소입니다. 규칙과 보고서의 속도 플래그가 여기서는 무시된다는 점에 대해서는 references/format.md → "Content modes"를 참조하십시오.

모든 내용을 references/format.md의 형식에 따라 decks/<slug>.deck.md에 작성합니다. 각 단락을 하나의 논리적 비트로 유지합니다(도구가 소프트 래핑을 축소합니다).

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 추출 스크립트를 커밋하지 마십시오. 추출, 확인, 정리 후 삭제하십시오.
  • 일시 정지 비트는 절대 시간입니다(속도에 따라 조정되지 않음). 신중하게 사용하십시오.

관련 스킬