원클릭으로
ppt-writer
DMAP 표준 2단계 PPT 빌드 오케스트레이션 — N 산출물을 pptx-spec-writer로 명세 작성 후 pptxgenjs build.js를 직접 실행하여 각 .pptx 생성 (다중 deck 루프)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
DMAP 표준 2단계 PPT 빌드 오케스트레이션 — N 산출물을 pptx-spec-writer로 명세 작성 후 pptxgenjs build.js를 직접 실행하여 각 .pptx 생성 (다중 deck 루프)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
FOCUS 정규화 & 통합 가시성 — 3 CSP + SaaS LLM → FOCUS v1.3 + AI 확장 5종, 태깅 거버넌스, 이상 탐지, Chart.js 9차트 대시보드
체계화 — 단위경제 KPI 6종, 자동화 5단계, 게이트 6종, 주/월/분기 리뷰 런북, Crawl→Walk 12개월 전환
줄이기 — 유휴 리소스 탐지, Right-sizing 3대안(CSP+AI), GPU 활용, 모델 다운그레이드, RI/SP/Spot 3시나리오
최종 독립 검증 — 4단계 정합성, FOCUS 커버리지, COVERS·게이트 규칙 ID 역참조, 3시나리오 수치 일관성, Ownership 전환 실행 가능성
WHY 정의 & 성숙도 진단 — 비즈니스 이슈를 FinOps 3대 가치에 매핑, Ownership×Capability 진단, COVERS 정렬, 12개월 스킬셋 로드맵 수립
finops 플러그인 사용 안내 (명령 목록 · 자동 라우팅)
| name | ppt-writer |
| description | DMAP 표준 2단계 PPT 빌드 오케스트레이션 — N 산출물을 pptx-spec-writer로 명세 작성 후 pptxgenjs build.js를 직접 실행하여 각 .pptx 생성 (다중 deck 루프) |
| type | orchestrator |
| user-invocable | true |
[PPT_WRITER 활성화]
FinOps 파이프라인 산출물을 선별하여 DMAP 표준 2단계 PPT 빌드 패턴으로 다중 .pptx를 생성함:
pptx-spec-writer 에이전트가 산출물당 1 spec.md 작성 (N회 루프)pptxgenjs로 build.js를 직접 작성·실행 (N회 루프, 각 deck.pptx 생성)DMAP 표준 Office 빌드 패턴 준수:
{DMAP_PLUGIN_DIR}/resources/guides/office/pptx-build-guide.mdanthropic-skills:pptx 등) 의존 제거spec.md가 유일한 중간 산출물다음 중 하나 이상 해당 시 활성화됨:
@ppt-writer 멘션/finops:ppt-writer 직접 호출| 에이전트 | FQN | 티어 | 담당 |
|---|---|---|---|
| pptx-spec-writer | finops:pptx-spec-writer:pptx-spec-writer | MEDIUM | Phase 2 (산출물당 1 spec 작성, N회 루프) |
resources/guides/combine-prompt.md에 따라 AGENT.md + agentcard.yaml + tools.yaml 합치기Agent(subagent_type=FQN, model=tier_mapping 결과, prompt=조립된 프롬프트) 호출gateway/runtime-mapping.yaml 참조워크플로우 단계에 Agent: {agent-name}이 명시된 경우,
메인 에이전트는 해당 단계를 직접 수행하지 않고,
반드시 위 프롬프트 조립 규칙에 따라 해당 에이전트를 호출하여 결과를 받아야 함.
서브에이전트 호출 없이 메인 에이전트가 해당 산출물을 직접 작성하면 스킬 미준수로 간주함.
build.js를 Write + Bash로 직접 작성·실행anthropic-skills:pptx에 Skill→Skill 위임 금지ulw 활용)다음 항목을 순서대로 확인:
out/ 디렉토리에 PPT 선별 가능한 산출물 최소 2종 존재 확인
/finops:core 선행 실행 안내 후 중단gateway/tools/.env 존재 여부 확인 → GEMINI_API_KEY 유효성 체크pptxgenjs 설치 확인: Bash cd out && node -e "require('pptxgenjs')" 실행
/finops:setup 재실행 안내 후 중단 (runtime_dependencies 설치 필요)AskUserQuestion으로 이미지 포함 여부를 질의:
GEMINI_API_KEY 존재 시에만 선택지 제공ulw 활용)외부 에이전트 위임 없이 orchestrator가 직접 수행:
out/**/*.md 스캔
why-statement, maturity-diagnosis, rightsize-plan, commit-strategy,
review-runbook, maturity-transition, review-report 등out/ppt-scripts/index.md에 저장 — 대상 목록 + 선정 근거 + 예상 슬라이드 수generate_image 커스텀 도구 직접 호출
finops-ppt-addendum.md §6의 파일명 규칙 준수out/ppt-scripts/images/{finops_*}.png + out/ppt-scripts/images/index.md (이미지↔슬라이드 매핑)out/ppt-scripts/index.md에 "이미지 모드: 스킵" 명기ulw 활용)Phase 1에서 선별된 산출물 N건 각각에 대해 pptx-spec-writer 에이전트에 루프 위임:
{대상}-spec.md) 작성out/ppt-scripts/{대상}-spec.md (패턴 A~F 매핑 + 이미지 참조){DMAP_PLUGIN_DIR}/resources/guides/office/pptx-build-guide.md 1~5절 필독{PLUGIN_DIR}/agents/pptx-spec-writer/references/finops-ppt-addendum.md 필독 (산출물별 표준 흐름 §1) 형식out/{대상}.md 경로, 이미지 목록, 목표 슬라이드 수, 대상 청중루프 완료 후 N개 {대상}-spec.md 존재 확인.
ulw 활용)외부 스킬 위임 없이 orchestrator가 직접 수행 (산출물 N건 각각):
{DMAP_PLUGIN_DIR}/resources/guides/office/pptx-build-guide.md 전체 읽기
(특히 6절 "코드 생성 시 필수 검증 규칙" 11항 모두 준수)out/ppt-scripts/{대상}-spec.md 읽고 슬라이드별 패턴(A~F) 매핑
b. 빌드 코드 작성: Write 도구로 out/ppt-scripts/{대상}-build.js 생성
pptx.shapes.RECTANGLE/ROUNDED_RECTANGLE 사용 (ShapeType 금지)defineLayout({name:"CUSTOM", width:16, height:9})async function createSlideXX(pptx) 패턴slide.addTable() 사용 (수동 셀 그리기 금지)fs12() 헬퍼로 12pt 미만 폰트 차단main().catch(e => { console.error(...); process.exit(1); }) 진입점
c. 빌드 실행: Bash로 cd out/ppt-scripts && node {대상}-build.js 실행
→ out/ppt-scripts/{대상}-deck.pptx 생성pptxgenjs가 플러그인 루트(finops-lab/node_modules/)에 설치됨
(Node 해석 경로: out/ppt-scripts → out → finops-lab/node_modules ✓)Cannot find module 'pptxgenjs' 발생 시 /finops:setup 재실행하여 플러그인 루트에 설치
d. 검증 A — 빌드 확인:.pptx 파일 존재 및 0바이트 초과 확인.temp/export-{대상}.ps1을 생성 후 슬라이드별 PNG 추출$pptxPath = '<절대경로\{대상}-deck.pptx>'
$outDir = '<절대경로\preview\{대상}>'
if (-not (Test-Path $outDir)) { New-Item -ItemType Directory -Path $outDir | Out-Null }
Add-Type -AssemblyName Microsoft.Office.Interop.PowerPoint
$ppt = New-Object -ComObject PowerPoint.Application
$pres = $ppt.Presentations.Open($pptxPath, 0, 0, 0)
foreach ($i in 1..$pres.Slides.Count) {
$pres.Slides.Item($i).Export("$outDir\slide-$i.png", 'PNG', 1600, 900)
}
$pres.Close(); $ppt.Quit()
Get-Process POWERPNT -ErrorAction SilentlyContinue | Stop-Process -Force로 파일 잠금 해제{대상}-build.js 수정 → 재빌드 → 재검토 (최대 2회)images/ 폴더)은 절대 삭제하지 말 것 — 레이아웃·크기만 조정Remove-Item '<preview경로>\*.png' -Force; Remove-Item '.temp\export-{대상}.ps1' -Force/oh-my-claudecode:verify 활용)루프 전체에 대해 다음 항목을 검증:
{대상}-spec.md 파일 존재 (Phase 2 결과){대상}-build.js 파일 존재 (Phase 3 결과){대상}-deck.pptx 파일 존재 및 크기 > 10KB## 슬라이드 N: 항목 수와 일치images/*.png 파일이 실제 존재 (참조된 항목)완료 시 생성된 .pptx 파일 목록·경로·크기·슬라이드 수를 표로 안내.
out/ppt-scripts/index.md) 존재{대상}-spec.md 생성 (Phase 2){대상}-build.js 생성 (Phase 3){대상}-deck.pptx 생성 (Phase 3)out/ppt-scripts/images/ 디렉토리 및 index.md 존재.pptx 크기 > 10KB{대상}-spec.md의 ## 슬라이드 N: 매치 수 = 빌드된 .pptx의 슬라이드 수 참조 파일 모두 디스크에 존재/finops:setup 안내MUST
cd out && node -e "require('pptxgenjs')")build.js 작성·실행 (산출물당 1회 루프)pptx-build-guide.md 전체(특히 6절 11항) 필독{대상}-build.js)를 산출물로 보존.pptx 파일 생성 및 >10KB 검증MUST NOT
anthropic-skills:pptx 등 외부 변환 스킬 호출anthropic-skills:pptx에 Skill→Skill 위임build.js 작성*-deck.md) 산출 (폐기됨 — spec.md가 유일한 중간 산출물)images/ 폴더의 기존 이미지 파일 삭제 (레이아웃·크기 조정만 허용)임시 상태 파일 미사용. 산출물은 out/ppt-scripts/ 경로에 영구 저장.
빌드 스크립트(*-build.js)도 산출물과 함께 보존 → 재빌드·디버깅 가능.
cancelomc 입력 시 현재 Phase 중단. 이미 생성된 .pptx 파일은 보존.
out/ppt-scripts/index.md 존재 → Phase 1 완료 판정{대상}-spec.md 존재 → Phase 2 해당 deck 완료 판정{대상}-deck.pptx 존재 → Phase 3 해당 deck 완료 판정## PPT-Writer 생성 결과 (DMAP 2단계 빌드)
### 성공한 .pptx 파일
| 파일명 | 슬라이드 수 | 파일 크기 | 빌드 스크립트 |
|---|---|---|---|
| out/ppt-scripts/{대상1}-deck.pptx | N | NKB | {대상1}-build.js |
| out/ppt-scripts/{대상2}-deck.pptx | N | NKB | {대상2}-build.js |
### 실패한 deck (있을 경우)
| 대상 | 단계 | 오류 | 조치 |
|---|---|---|---|
| {대상3} | Phase 3 빌드 | ... | 재빌드 또는 spec 수정 |
### 이미지 생성 현황
- 모드: [이미지 포함 | 텍스트만]
- 이미지 수: N개
### 파일 경로
- 선별 결과: out/ppt-scripts/index.md
- 이미지: out/ppt-scripts/images/ (이미지 모드 시)
- Spec md: out/ppt-scripts/{대상}-spec.md
- 빌드 스크립트: out/ppt-scripts/{대상}-build.js
- PowerPoint: out/ppt-scripts/{대상}-deck.pptx