--- name: doc-generator description: > GUARDiA Messenger 개발/배포 가이드 마크다운 작성 + PDF(reportlab) + PPTX(python-pptx) 자동 생성. manual/ 폴더에 저장. 트리거: 가이드 작성, PDF 생성, PPTX 생성, 문서화, 발표자료, 개발 가이드, 배포 가이드, 스토어 가이드 관련 요청 시 반드시 사용. --- # GUARDiA Messenger 문서 생성 스킬 ## 출력 파일 목록 | 파일 | 경로 | 내용 | |------|------|------| | 마크다운 가이드 | `C:\GUARDiA\manual\34_GUARDiA_Messenger_개발가이드.md` | 전체 개발·빌드·배포 가이드 | | PDF | `C:\GUARDiA\manual\35_GUARDiA_Messenger_개발가이드.pdf` | 8페이지 PDF | | PPTX | `C:\GUARDiA\manual\36_GUARDiA_Messenger_발표자료.pptx` | 8슬라이드 16:9 | ## PDF 생성 패턴 (reportlab) ```python from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.platypus import SimpleDocTemplate, Paragraph, Table, TableStyle from reportlab.lib.styles import ParagraphStyle from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont import os BRAND = colors.HexColor("#1a3a6b") ACCENT = colors.HexColor("#4f6ef7") # 한글 폰트 등록 for fn, alias in [("malgun.ttf","Malgun"),("NanumGothic.ttf","NanumGothic")]: for d in ["C:/Windows/Fonts", "/usr/share/fonts/truetype/noto"]: fp = os.path.join(d, fn) if os.path.exists(fp): pdfmetrics.registerFont(TTFont(alias, fp)) font = alias; break if font != "Helvetica": break ``` ## PPTX 생성 패턴 (python-pptx) ```python from pptx import Presentation from pptx.util import Inches, Pt from pptx.dml.color import RGBColor from pptx.enum.text import PP_ALIGN W, H = Inches(13.33), Inches(7.5) # 16:9 prs = Presentation() prs.slide_width = W; prs.slide_height = H BRAND = RGBColor(0x1a, 0x3a, 0x6b) def blank(): return prs.slides.add_slide(prs.slide_layouts[6]) def rect(sl, x, y, w, h, fill=None): s = sl.shapes.add_shape(1, x, y, w, h) if fill: s.fill.solid(); s.fill.fore_color.rgb = fill else: s.fill.background() s.line.fill.background() return s def text(sl, t, x, y, w, h, sz=14, bold=False, color=RGBColor(0x1e,0x29,0x3b), align=PP_ALIGN.LEFT): tb = sl.shapes.add_textbox(x, y, w, h) tf = tb.text_frame; tf.word_wrap = True p = tf.paragraphs[0]; p.alignment = align r = p.add_run(); r.text = t r.font.size = Pt(sz); r.font.bold = bold; r.font.color.rgb = color ``` ## 문서에 반드시 포함할 내용 1. **앱 개요** (목적, 기술 스택, 서버 연결) 2. **개발 환경 설정** (Node.js, Expo CLI, EAS CLI) 3. **화면 구조** (6개 화면 설명) 4. **EAS 빌드 가이드** (명령어 + 성공/실패 체크리스트) 5. **빌드 이슈 이력** (4개 이슈 + 해결책) ← 가장 중요 6. **스토어 등록 절차** (Play Store + App Store) 7. **테스트 방법** (APK 직접 설치) 8. **접속 정보** (서버 URL, 계정)