opencode-sa-assistant 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: pptx
3
+ description: "PowerPoint 프레젠테이션 생성, 편집, 분석. 새 프레젠테이션 생성, 기존 콘텐츠 수정, 레이아웃 작업, 코멘트/발표자 노트 추가 등 모든 .pptx 파일 작업에 사용"
4
+ license: Proprietary
5
+ ---
6
+
7
+ # PPTX creation, editing, and analysis
8
+
9
+ ## Overview
10
+
11
+ A user may ask you to create, edit, or analyze the contents of a .pptx file. A .pptx file is essentially a ZIP archive containing XML files and other resources that you can read or edit. You have different tools and workflows available for different tasks.
12
+
13
+ ## Reading and analyzing content
14
+
15
+ ### Text extraction
16
+ If you just need to read the text contents of a presentation, you should convert the document to markdown:
17
+
18
+ ```bash
19
+ # Convert document to markdown
20
+ python -m markitdown path-to-file.pptx
21
+ ```
22
+
23
+ ### Raw XML access
24
+ You need raw XML access for: comments, speaker notes, slide layouts, animations, design elements, and complex formatting. For any of these features, you'll need to unpack a presentation and read its raw XML contents.
25
+
26
+ #### Unpacking a file
27
+ `python ooxml/scripts/unpack.py <office_file> <output_dir>`
28
+
29
+ #### Key file structures
30
+ * `ppt/presentation.xml` - Main presentation metadata and slide references
31
+ * `ppt/slides/slide{N}.xml` - Individual slide contents (slide1.xml, slide2.xml, etc.)
32
+ * `ppt/notesSlides/notesSlide{N}.xml` - Speaker notes for each slide
33
+ * `ppt/comments/modernComment_*.xml` - Comments for specific slides
34
+ * `ppt/slideLayouts/` - Layout templates for slides
35
+ * `ppt/slideMasters/` - Master slide templates
36
+ * `ppt/theme/` - Theme and styling information
37
+ * `ppt/media/` - Images and other media files
38
+
39
+ ## Creating a new PowerPoint presentation **without a template**
40
+
41
+ When creating a new PowerPoint presentation from scratch, use the **html2pptx** workflow to convert HTML slides to PowerPoint with accurate positioning.
42
+
43
+ ### Design Principles
44
+
45
+ **CRITICAL**: Before creating any presentation, analyze the content and choose appropriate design elements:
46
+ 1. **Consider the subject matter**: What is this presentation about? What tone, industry, or mood does it suggest?
47
+ 2. **Check for branding**: If the user mentions a company/organization, consider their brand colors and identity
48
+ 3. **Match palette to content**: Select colors that reflect the subject
49
+ 4. **State your approach**: Explain your design choices before writing code
50
+
51
+ **Requirements**:
52
+ - ✅ State your content-informed design approach BEFORE writing code
53
+ - ✅ Use web-safe fonts only: Arial, Helvetica, Times New Roman, Georgia, Courier New, Verdana, Tahoma, Trebuchet MS, Impact
54
+ - ✅ Create clear visual hierarchy through size, weight, and color
55
+ - ✅ Ensure readability: strong contrast, appropriately sized text, clean alignment
56
+ - ✅ Be consistent: repeat patterns, spacing, and visual language across slides
57
+
58
+ ### Workflow
59
+ 1. **MANDATORY - READ RESOURCE FILE**: Read `references/html2pptx.md` completely for detailed syntax, critical formatting rules, and best practices
60
+ 2. Create an HTML file for each slide with proper dimensions (e.g., 720pt × 405pt for 16:9)
61
+ - Use `<p>`, `<h1>`-`<h6>`, `<ul>`, `<ol>` for all text content
62
+ - Use `class="placeholder"` for areas where charts/tables will be added
63
+ - **CRITICAL**: Rasterize gradients and icons as PNG images FIRST using Sharp, then reference in HTML
64
+ 3. Create and run a JavaScript file using the `html2pptx.js` library to convert HTML slides to PowerPoint
65
+ 4. **Visual validation**: Generate thumbnails and inspect for layout issues
66
+
67
+ ### AWS SA Presentation Style
68
+ AWS Solutions Architect 스타일의 프레젠테이션을 생성할 때는 `references/sa_pptx_template.md` 파일을 참조하세요.
69
+ AWS 브랜드 색상 팔레트, 표준 슬라이드 구성, HTML 템플릿 예제가 포함되어 있습니다.
70
+
71
+ ## Editing an existing PowerPoint presentation
72
+
73
+ When editing slides in an existing PowerPoint presentation, you need to work with the raw Office Open XML (OOXML) format.
74
+
75
+ ### Workflow
76
+ 1. Unpack the presentation: `python ooxml/scripts/unpack.py <office_file> <output_dir>`
77
+ 2. Edit the XML files (primarily `ppt/slides/slide{N}.xml` and related files)
78
+ 3. **CRITICAL**: Validate immediately after each edit
79
+ 4. Pack the final presentation: `python ooxml/scripts/pack.py <input_directory> <office_file>`
80
+
81
+ ## Creating a new PowerPoint presentation **using a template**
82
+
83
+ When you need to create a presentation that follows an existing template's design:
84
+
85
+ ### Workflow
86
+ 1. **Extract template text AND create visual thumbnail grid**:
87
+ * Extract text: `python -m markitdown template.pptx > template-content.md`
88
+ * Create thumbnail grids: `python scripts/thumbnail.py template.pptx`
89
+
90
+ 2. **Analyze template and save inventory to a file**
91
+
92
+ 3. **Create presentation outline based on template inventory**
93
+
94
+ 4. **Duplicate, reorder, and delete slides using `rearrange.py`**
95
+
96
+ 5. **Extract ALL text using the `inventory.py` script**
97
+
98
+ 6. **Generate replacement text and save the data to a JSON file**
99
+
100
+ 7. **Apply replacements using the `replace.py` script**
101
+
102
+ ## Dependencies
103
+
104
+ Required dependencies:
105
+ - **markitdown**: `pip install "markitdown[pptx]"` (for text extraction)
106
+ - **pptxgenjs**: `npm install -g pptxgenjs` (for creating presentations)
107
+ - **playwright**: `npm install -g playwright` (for HTML rendering)
108
+ - **sharp**: `npm install -g sharp` (for SVG rasterization)
109
+ - **LibreOffice**: For PDF conversion
110
+ - **Poppler**: For pdftoppm
@@ -0,0 +1,89 @@
1
+ # SA PPTX Template - AWS Architecture Review Style
2
+
3
+ AWS Solutions Architect 아키텍처 리뷰 프레젠테이션 템플릿입니다.
4
+
5
+ ## 색상 팔레트
6
+
7
+ ```javascript
8
+ const SA_TEMPLATE_COLORS = {
9
+ // Primary
10
+ PRIMARY_DARK: "232F3E", // AWS Squid Ink - 헤더, 제목
11
+ PRIMARY_ORANGE: "FF9900", // AWS Orange - 강조, CTA
12
+
13
+ // Secondary
14
+ SECONDARY_GRAY: "545B64", // Anchor - 본문 텍스트
15
+ LIGHT_GRAY: "879596", // Harbor - 보조 텍스트
16
+ BG_GRAY: "F2F3F3", // Cloud - 배경
17
+
18
+ // Status Colors
19
+ SUCCESS_GREEN: "1B660F",
20
+ WARNING_YELLOW: "F2B705",
21
+ ERROR_RED: "D13212",
22
+ INFO_BLUE: "0073BB",
23
+
24
+ // Chart Colors
25
+ CHART: ["FF9900", "232F3E", "1B660F", "0073BB", "8C4FFF", "DD344C"]
26
+ };
27
+ ```
28
+
29
+ ## 슬라이드 템플릿
30
+
31
+ ### 1. 타이틀 슬라이드
32
+
33
+ ```html
34
+ <body style="background: #232F3E;">
35
+ <div class="container">
36
+ <p class="subtitle">AWS ARCHITECTURE REVIEW</p>
37
+ <h1 class="title">[고객사명] 아키텍처 리뷰</h1>
38
+ <p class="info">2025년 1월 | AWS SA Team</p>
39
+ </div>
40
+ </body>
41
+ ```
42
+
43
+ ### 2. 아젠다 슬라이드
44
+
45
+ ```html
46
+ <div class="header"><h1>Agenda</h1></div>
47
+ <div class="content">
48
+ <div class="agenda-item">
49
+ <div class="number"><p>1</p></div>
50
+ <p>프로젝트 개요</p>
51
+ </div>
52
+ <!-- ... -->
53
+ </div>
54
+ ```
55
+
56
+ ### 3. 섹션 구분 슬라이드
57
+
58
+ 2단 레이아웃: 왼쪽 다크 패널 (섹션 번호 + 제목), 오른쪽 라이트 패널 (설명)
59
+
60
+ ### 4. 콘텐츠 슬라이드 (텍스트 + 다이어그램)
61
+
62
+ 헤더 + 2단 레이아웃: 왼쪽 35% (텍스트), 오른쪽 65% (다이어그램 placeholder)
63
+
64
+ ### 5. 비교 슬라이드 (As-Is vs To-Be)
65
+
66
+ 2단 레이아웃: 왼쪽 (빨간색 테두리, ✕ 아이콘), 오른쪽 (녹색 테두리, ✓ 아이콘)
67
+
68
+ ### 6. 비용 분석 슬라이드
69
+
70
+ 2단 레이아웃: 왼쪽 (비용 카드), 오른쪽 (서비스별 내역 + 차트 placeholder)
71
+
72
+ ### 7. 타임라인 슬라이드
73
+
74
+ 가로 타임라인: Phase 1 → Phase 2 → Phase 3 → Go-Live
75
+
76
+ ### 8. 다음 단계 슬라이드
77
+
78
+ 3단 카드 레이아웃: 각 카드에 번호, 제목, 설명, 담당자/기한
79
+
80
+ ### 9. 감사 슬라이드
81
+
82
+ 중앙 정렬: "Thank You" + 구분선 + "Questions & Discussion" + 연락처
83
+
84
+ ## 사용 가이드
85
+
86
+ 1. 위 템플릿 중 필요한 슬라이드 선택
87
+ 2. 고객/프로젝트 정보로 내용 수정
88
+ 3. html2pptx로 각 슬라이드 변환
89
+ 4. PptxGenJS로 차트/다이어그램 추가