Show HN: SlideOps – 리포지토리의 코드와 달라지는 슬라이드를 감지하는 도구
요약
SlideOps는 생성된 문서를 코드처럼 취급하여, 리포지토리의 소스 코드와 슬라이드 내용 간의 불일치(drift)를 감지하고 업데이트하는 도구입니다. 이를 통해 문서화 과정 자체를 빌드 아티팩트처럼 관리할 수 있게 합니다.
핵심 포인트
- 문서화를 코드로 취급하여 버전 관리를 강화합니다.
- 소스 코드와 슬라이드의 변화(Drift)를 자동으로 감지합니다.
- Claude Code 및 호환 에이전트를 위한 Agent Skill로 설계되었습니다.
설치 · 사용 · 기능 · 문서화 · 데모 덱 · 이유
</div>
문서화 작성 자체가 병목 현상이 아닙니다. 진실하게 유지하는 것이 문제입니다. 우리가 두 개의 데이터베이스 마이그레이션을 실행한다고 말했던 덱은, 우리가 10개를 실행하기 시작한 지 1년이 지난 지금도 여전히 '두 개'라고 말하고 있습니다 😅.
SlideOps는 Claude Code 및 호환되는 코딩 에이전트를 위한 Agent Skills 쌍입니다. 이는 생성된 문서를 마치 생성된 코드처럼 취급합니다: 소스에서 구축되었으며, 어느 소스에서 왔는지 기록합니다.
그 근거는 **문서화가 빌드 아티팩트임을 인식하고 그렇게 다루기 시작하세요**에 작성되어 있습니다.

설치 (Install)
Claude Code
이 리포지토리는 자체 마켓플레이스이므로, 두 개의 명령어만으로 모든 설정이 완료되며, 스스로 최신 상태를 유지하는 유일한 설치 방법입니다. 마켓플레이스를 추가하세요:
/plugin marketplace add glukicov/slideops
그리고 다음 명령어로 플러그인을 설치합니다:
/plugin install slideops@slideops
skills CLI를 가진 모든 에이전트
한 줄로, 어디서든 작동합니다:
npx skills add glukicov/slideops
Codex, Copilot CLI, OpenCode
아니면 일반적인 체크아웃 방식:
git clone https://github.com/glukicov/slideops && cd slideops
./install.sh
네 가지 에이전트 모두 SKILL.md를 읽으며, 그들 사이에 포팅할 필요가 없습니다. 심볼릭 링크(symlink) 및 스냅샷 설치의 경우, 각 에이전트별 표와 업데이트 방식은 **docs/install.md**를 참조하세요.
[!NOTE]
타사 마켓플레이스는 기본적으로 자동 업데이트가 비활성화되어 있습니다./plugin→ Marketplaces에서 한 번 켜거나, 수동으로/plugin marketplace update slideops를 실행할 때만 새 버전이 도착합니다.
사용법
리포지토리를 열고 다음과 같이 말하세요:
[!TIP]
💬 이 리포에 대한 슬라이드를 만들어줘 (make slides about this repo)
SlideOps가 먼저 리포를 스캔한 다음, 간결하게 질문 세트를 요청합니다: 어떤 주제(발견된 구체적인 후보군을 제시하며, 각각
⚠️ 중요
💬 아키텍처 데크가 여전히 정확한가?
이 에이전트는 데크 폴더를 스캔하고 상태별로 분류합니다. 단순히 이동한 내용은 다시 인용하고, 주장이 더 이상 유효하지 않을 수 있는 슬라이드를 표시합니다. 데크 전체를 재생성하는 대신 변경된 부분을 수정하여, 처음 승인했던 페이스와 내러티브가 유지되도록 합니다.
주요 기능
- 신선도 확인(Freshness checking).
scripts/check.py는 전체docs/slides/폴더를 스캔하여 데크가 생성된 이후 코드가 변경, 이동 또는 사라진 슬라이드를 보고하고, 수정 방안을 제안하거나 에이전트에게 JSON 형식의 수리 개요(repair brief)를 전달합니다. 모델이나 네트워크, 토큰 없이 표준 라이브러리 Python으로 작동하며 밀리초 단위로 실행됩니다. - 동일한 보장 수준을 가진 Markdown 문서.
.md컨테이너는 속성 대신 HTML 주석을 사용하고, 슬라이드 번호 대신 제목(headings)을 사용하며, 모든 상태, 스캔 결과, 수리 개요를 데크와 공유합니다. 작동 예시는 이 저장소의 CI에서 검사한skill-demo.md입니다. - 데크당 하나의 독립 파일. 빌드 단계나 CDN이 필요 없으며, 오프라인으로 작동하고 이메일에 첨부할 수 있습니다.
- 탐색: 화살표 키, 클릭하여 진행(click-to-advance), URL 해시 딥 링크, Esc를 눌러 토글하는 개요 그리드, 그리고
N에서 발표자 노트(절대 스크린샷이나 내보내기에서 보이지 않음). - 13가지 슬라이드 패턴: 제목, 의제, 섹션 구분선, 산문 + 카드, 참고표, 전/후 코드 비교, 주석이 달린 스니펫 (반 너비 및 전체 너비), 흐름도(flow diagram), 레인 비교(lane comparison), 이미지 + 캡션, 채팅 버블, 마무리.
- 4가지 테마, 각 블록별. 모든 색상은
color-mix()를 통해 단일:root토큰 블록에서 파생되므로, 테마 전환은 한 번의 대체로 이루어집니다: Ledger Light (기본값), Ledger Dark, Midnight, Graphite. 또는 브랜드의 실제 CSS 값에 맞추고 이를 토큰 역할에 매핑할 수도 있습니다.
| Ledger Light (기본값) | Ledger Dark |
|---|---|
![]() | ![]() |
| 동일한 데크, 동일한 마크업, 동일한 콘텐츠. | 하나의 :root 블록 차이. |
- Mermaid 다이어그램은 빌드 시점에 인라인 SVG로 사전 렌더링되며, 프레젠테이션(deck) 자체의 토큰을 사용하여 테마가 적용되므로, 이 프레젠테이션은 외부 의존성 없이 유지됩니다.
- 검증된 PDF 내보내기. 보조 스킬(companion skill)이 완성된 PDF를 이미지로 다시 렌더링하고 페이지들을 확인합니다. 이는 PDF가 올바른 페이지 수를 가지고 있어도 빈 이미지를 제공할 수 있기 때문입니다.
문서화 (Documentation)
| 페이지 | 내용 |
|---|---|
| 📦 설치(Install) | 모든 설치 경로, 네 가지 에이전트 모두, 업데이트 방법, 요구 사항, 무엇이 설치되는지 |
| ... | |
내부 스킬에서는 skills/slideops/references/ 폴더가 에이전트가 읽는 사양(specifications)을 담고 있습니다: 신선도(freshness), 자동화(automation), 스타일(style), 테마(themes), 다이어그램, 그리고 검증(verification). |
크레딧 (Credits)
알아두면 좋은 선행 기술(Prior art): 시각 중심의 테마 선택을 위한 frontend-slides와 SlideOps가 의존하는 렌더링 후 확인(render-then-look) 시각적 QA 루프를 개척한 presentation-skills입니다. SlideOps가 추가한 것은 Ops 부분, 즉 리포지토리에 기반을 둔 콘텐츠와 나중에 여전히 유효한지 확인할 수 있는 저렴한 방법입니다.
라이선스 (Licence)
MIT. LICENSE를 참조하세요. 사용하고, 포크(fork)하고, 상업적으로 배포해도 됩니다. 출처 표기(attribution)가 유일한 조건입니다. 어떤 경우든 생성된 프레젠테이션은 사용자 자신의 콘텐츠입니다.
<div align="center"> <br>설치 · 문서화 · 변경 로그(Changelog) · 릴리스(Releases)
<sub style="font-size: 0.9em;">SlideOps로 빌드되었으며, SlideOps에 관한 내용입니다. 이 리포지토리의 슬라이드가 코드와 일치하지 않는다면, <code style="background-color: #eee; padding: 2px 4px;">check.py</code>가 알려줍니다.<sub/style></sub >
</div >AI 자동 생성 콘텐츠
본 콘텐츠는 HN OpenAI Codex의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
