Help us improve
Share bugs, ideas, or general feedback.
From mas-designer
STEP 3 경영진 발표 PPT 생성 (spec-writer 위임 + generate_image + pptxgenjs 빌드)
npx claudepluginhub unicorn-plugins/mas-designer --plugin mas-designerHow this skill is triggered — by the user, by Claude, or both
Slash command
/mas-designer:generate-pptxThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
[GENERATE-PPTX 활성화]
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Compacts the current conversation into a handoff document for another agent to continue the work, with suggested skills and redacted sensitive info.
Share bugs, ideas, or general feedback.
[GENERATE-PPTX 활성화]
STEP 1 기획·STEP 2 MAS 설계 산출물을 입력받아 경영진 발표용 PPT를 자동 생성함. 2단계 패턴 적용:
pptx-spec-writer 에이전트가 GREAT 2 WHY·방향성·MAS 아키텍처 필수 슬라이드 포함 명세(spec.md) 및 이미지 프롬프트 JSON 작성generate_image로 슬라이드별 이미지 생성 후 pptxgenjs 기반 빌드 스크립트를 Write하여 실행, .pptx 산출외부 변환 스킬(anthropic-skills:pptx 등) 미사용 — Cursor·Cowork 등 모든 런타임 호환.
사용자가 /mas-designer:generate-pptx 호출 시 또는 "경영진 발표 PPT", "프리젠테이션 생성", "pptx 빌드" 키워드 감지 시.
| 에이전트 | FQN |
|---|---|
| pptx-spec-writer | mas-designer:pptx-spec-writer:pptx-spec-writer |
resources/guides/combine-prompt.md에 따라 AGENT.md + agentcard.yaml + tools.yaml 합치기gateway/runtime-mapping.yaml 참조 (MEDIUM → sonnet-4-6)워크플로우 단계에 Agent: {agent-name}이 명시된 경우,
메인 에이전트는 해당 단계를 직접 수행하지 않고,
반드시 위 프롬프트 조립 규칙에 따라 해당 에이전트를 호출하여 결과를 받아야 함.
서브에이전트 호출 없이 메인 에이전트가 해당 산출물을 직접 작성하면 스킬 미준수로 간주함.
선행 조건:
output/{project}/plan/*.md(문제해결방향성 등) +output/{project}/step2/mas-architecture.md존재 필수. 없으면/mas-designer:plan·/mas-designer:design-mas먼저 실행하도록 안내 후 중단.
AskUserQuestion으로 확인 (기본값 사용 시 스킵):
output/{project}/step3/)스토리라인 초안 작성 후 output/{project}/step3/1-storyline.md에 저장.
output/{project}/step3/1-storyline.mdoutput/{project}/step3/2.script.md + output/{project}/step3/image-prompts.jsonreferences/pptx-build-guide.md 1~5절 스타일 준수, 슬라이드당 본문 ≤7줄, 이미지 참조는 , 고객 WHY/기업 WHY 문장은 문제해결방향성.md 원문 재사용output/{project}/step3/image-prompts.json 로드mkdir -p output/{project}/step3/imagespython gateway/tools/generate_image.py \
--prompt "{prompt}" \
--output-dir output/{project}/step3/images \
--output-name "{filename without .png}"
image-fallback.log에 기록 후 플레이스홀더 처리ralph 활용)skills/generate-pptx/references/pptx-build-guide.md 전체 읽기 (특히 6절 검증 규칙 11항)2.script.md 파싱하여 슬라이드별 패턴(A~F) 매핑output/{project}/step3/build.js 생성
pptx.shapes.RECTANGLE/ROUNDED_RECTANGLEdefineLayout({name:"CUSTOM", width:16, height:9})async function createSlideXX(pptx) 패턴slide.addTable() (수동 셀 그리기 금지)fs12() 헬퍼로 12pt 미만 차단main().catch(e => { console.error(...); process.exit(1); }) 진입점cd output/{project}/step3 && node build.js3.{project}.pptx 존재 + 크기 > 0.temp/export-pptx.ps1을 생성 후 슬라이드별 PNG 추출$pptxPath = '<절대경로\3.{project}.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-pptx.ps1' -Force산출물 체크리스트:
사용자에게 완료 보고 + 승인 요청.
images/ 기존 파일 삭제 금지 (레이아웃·크기 조정만 허용)anthropic-skills:pptx 등) 미호출각 Phase 완료 시 AGENTS.md의 ## 워크플로우 상태 > ### generate-pptx 섹션의 마지막 완료 Phase를 갱신.
완료 시 임시 파일 없음. images/ 디렉토리는 산출물로 보존.
AGENTS.md의 ## 워크플로우 상태 > ### generate-pptx 섹션에서 마지막 완료 Phase를 읽음spec.md·image-prompts.json이 존재하면 Phase 3 스킵. 마지막 완료 Phase의 다음 Phase부터 진행