dimcode-darwin-arm64 0.2.19 → 0.2.20

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.
Files changed (109) hide show
  1. package/bin/dimcode +0 -0
  2. package/bin/skills-assets/chrome-control/SKILL.md +96 -0
  3. package/bin/skills-assets/dim-workflow/SKILL.md +78 -30
  4. package/bin/skills-assets/officecli/SKILL.md +423 -0
  5. package/package.json +1 -1
  6. package/bin/skills-assets/docx/SKILL.md +0 -273
  7. package/bin/skills-assets/docx/assets/styles/academic_styles.xml +0 -250
  8. package/bin/skills-assets/docx/assets/styles/corporate_styles.xml +0 -284
  9. package/bin/skills-assets/docx/assets/styles/default_styles.xml +0 -449
  10. package/bin/skills-assets/docx/assets/xsd/aesthetic-rules.xsd +0 -470
  11. package/bin/skills-assets/docx/assets/xsd/business-rules.xsd +0 -130
  12. package/bin/skills-assets/docx/assets/xsd/common-types.xsd +0 -159
  13. package/bin/skills-assets/docx/assets/xsd/wml-subset.xsd +0 -589
  14. package/bin/skills-assets/docx/references/cjk_typography.md +0 -357
  15. package/bin/skills-assets/docx/references/cjk_university_template_guide.md +0 -184
  16. package/bin/skills-assets/docx/references/comments_guide.md +0 -191
  17. package/bin/skills-assets/docx/references/design_good_bad_examples.md +0 -829
  18. package/bin/skills-assets/docx/references/design_principles.md +0 -819
  19. package/bin/skills-assets/docx/references/openxml_element_order.md +0 -308
  20. package/bin/skills-assets/docx/references/openxml_encyclopedia_part1.md +0 -4061
  21. package/bin/skills-assets/docx/references/openxml_encyclopedia_part2.md +0 -2820
  22. package/bin/skills-assets/docx/references/openxml_encyclopedia_part3.md +0 -3381
  23. package/bin/skills-assets/docx/references/openxml_namespaces.md +0 -82
  24. package/bin/skills-assets/docx/references/openxml_units.md +0 -72
  25. package/bin/skills-assets/docx/references/scenario_a_create.md +0 -284
  26. package/bin/skills-assets/docx/references/scenario_b_edit_content.md +0 -295
  27. package/bin/skills-assets/docx/references/scenario_c_apply_template.md +0 -456
  28. package/bin/skills-assets/docx/references/track_changes_guide.md +0 -200
  29. package/bin/skills-assets/docx/references/troubleshooting.md +0 -506
  30. package/bin/skills-assets/docx/references/typography_guide.md +0 -294
  31. package/bin/skills-assets/docx/references/xsd_validation_guide.md +0 -158
  32. package/bin/skills-assets/docx/scripts/doc_to_docx.sh +0 -40
  33. package/bin/skills-assets/docx/scripts/docx_preview.sh +0 -37
  34. package/bin/skills-assets/docx/scripts/dotnet/Docx.Cli/Docx.Cli.csproj +0 -19
  35. package/bin/skills-assets/docx/scripts/dotnet/Docx.Cli/Program.cs +0 -18
  36. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/AnalyzeCommand.cs +0 -147
  37. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/ApplyTemplateCommand.cs +0 -322
  38. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/CreateCommand.cs +0 -324
  39. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/DiffCommand.cs +0 -155
  40. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/EditContentCommand.cs +0 -487
  41. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/FixOrderCommand.cs +0 -108
  42. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/MergeRunsCommand.cs +0 -122
  43. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/ValidateCommand.cs +0 -107
  44. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Docx.Core.csproj +0 -15
  45. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/CommentSynchronizer.cs +0 -169
  46. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/ElementOrder.cs +0 -80
  47. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/NamespaceConstants.cs +0 -42
  48. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/RunMerger.cs +0 -81
  49. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/StyleAnalyzer.cs +0 -81
  50. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/TrackChangesHelper.cs +0 -99
  51. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/UnitConverter.cs +0 -23
  52. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples.cs +0 -1832
  53. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch1.cs +0 -910
  54. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch2.cs +0 -999
  55. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch3.cs +0 -1048
  56. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch4.cs +0 -1038
  57. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/CharacterFormattingSamples.cs +0 -1020
  58. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/DocumentCreationSamples.cs +0 -1121
  59. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/FieldAndTocSamples.cs +0 -624
  60. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/FootnoteAndCommentSamples.cs +0 -675
  61. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/HeaderFooterSamples.cs +0 -838
  62. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/ImageSamples.cs +0 -917
  63. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/ListAndNumberingSamples.cs +0 -826
  64. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/ParagraphFormattingSamples.cs +0 -1199
  65. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/StyleSystemSamples.cs +0 -1487
  66. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/TableSamples.cs +0 -1163
  67. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/TrackChangesSamples.cs +0 -595
  68. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Typography/CjkHelper.cs +0 -39
  69. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Typography/FontDefaults.cs +0 -24
  70. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Typography/PageSizes.cs +0 -20
  71. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/BusinessRuleValidator.cs +0 -224
  72. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/GateCheckValidator.cs +0 -148
  73. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/ValidationResult.cs +0 -23
  74. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/XsdValidator.cs +0 -69
  75. package/bin/skills-assets/docx/scripts/dotnet/Docx.slnx +0 -4
  76. package/bin/skills-assets/docx/scripts/env_check.sh +0 -196
  77. package/bin/skills-assets/docx/scripts/setup.ps1 +0 -274
  78. package/bin/skills-assets/docx/scripts/setup.sh +0 -504
  79. package/bin/skills-assets/pptx-generator/SKILL.md +0 -248
  80. package/bin/skills-assets/pptx-generator/references/design-system.md +0 -392
  81. package/bin/skills-assets/pptx-generator/references/editing.md +0 -162
  82. package/bin/skills-assets/pptx-generator/references/pitfalls.md +0 -112
  83. package/bin/skills-assets/pptx-generator/references/pptxgenjs.md +0 -420
  84. package/bin/skills-assets/pptx-generator/references/slide-types.md +0 -413
  85. package/bin/skills-assets/xlsx/SKILL.md +0 -137
  86. package/bin/skills-assets/xlsx/references/create.md +0 -691
  87. package/bin/skills-assets/xlsx/references/edit.md +0 -684
  88. package/bin/skills-assets/xlsx/references/fix.md +0 -37
  89. package/bin/skills-assets/xlsx/references/format.md +0 -768
  90. package/bin/skills-assets/xlsx/references/ooxml-cheatsheet.md +0 -231
  91. package/bin/skills-assets/xlsx/references/read-analyze.md +0 -97
  92. package/bin/skills-assets/xlsx/references/validate.md +0 -772
  93. package/bin/skills-assets/xlsx/scripts/formula_check.py +0 -422
  94. package/bin/skills-assets/xlsx/scripts/libreoffice_recalc.py +0 -248
  95. package/bin/skills-assets/xlsx/scripts/shared_strings_builder.py +0 -163
  96. package/bin/skills-assets/xlsx/scripts/style_audit.py +0 -575
  97. package/bin/skills-assets/xlsx/scripts/xlsx_add_column.py +0 -395
  98. package/bin/skills-assets/xlsx/scripts/xlsx_insert_row.py +0 -274
  99. package/bin/skills-assets/xlsx/scripts/xlsx_pack.py +0 -87
  100. package/bin/skills-assets/xlsx/scripts/xlsx_reader.py +0 -362
  101. package/bin/skills-assets/xlsx/scripts/xlsx_shift_rows.py +0 -396
  102. package/bin/skills-assets/xlsx/scripts/xlsx_unpack.py +0 -130
  103. package/bin/skills-assets/xlsx/templates/minimal_xlsx/[Content_Types].xml +0 -9
  104. package/bin/skills-assets/xlsx/templates/minimal_xlsx/_rels/.rels +0 -6
  105. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +0 -19
  106. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +0 -33
  107. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/styles.xml +0 -160
  108. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/workbook.xml +0 -30
  109. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +0 -70
@@ -1,413 +0,0 @@
1
- # Slide Page Types
2
-
3
- Classify **every slide** as **exactly one** of these 5 types:
4
-
5
- ## 1. Cover Page
6
-
7
- - **Use for**: Opening + tone setting
8
- - **Content**: Big title, subtitle/presenter, date/occasion, strong background/motif
9
-
10
- ### Layout Options
11
-
12
- **Asymmetric Left-Right Layout**
13
- - Text concentrated on one side, image on the opposite
14
- - Best for: Corporate presentations, product launches, professional reports
15
- ```
16
- | Title & Subtitle | Visual/Image |
17
- | Description | |
18
- ```
19
-
20
- **Center-Aligned Layout**
21
- - Content centered with background image
22
- - Best for: Inspirational talks, event presentations, creative pitches
23
- ```
24
- | |
25
- | [Background Image] |
26
- | MAIN TITLE |
27
- | Subtitle |
28
- | |
29
- ```
30
-
31
- ### Font Size Hierarchy
32
-
33
- | Element | Recommended Size | Ratio to Base |
34
- |---------|-----------------|---------------|
35
- | Main Title | 72-120px | 3x-5x |
36
- | Subtitle | 28-40px | 1.5x-2x |
37
- | Supporting Text | 18-24px | 1x (base) |
38
- | Meta Info (date, name) | 14-18px | 0.7x-1x |
39
-
40
- **Key Principles:**
41
- 1. **Dramatic Contrast**: Main title should be at least 2-3x larger than subtitle
42
- 2. **Visual Anchor**: The largest text becomes the focal point
43
- 3. **Readable Hierarchy**: Viewers should instantly understand what's most important
44
- 4. **Avoid Similarity**: Never let adjacent text elements be within 20% of each other's size
45
-
46
- ### Content Elements
47
-
48
- 1. **Main Title** — Always required, largest font
49
- 2. **Subtitle** — When additional context is needed (clearly smaller than title)
50
- 3. **Icons** — When they reinforce the theme
51
- 4. **Date/Event Info** — When relevant (smallest text)
52
- 5. **Company/Brand Logo** — When representing an organization
53
- 6. **Presenter Name** — For keynotes (small, subtle)
54
-
55
- ### Design Decisions
56
-
57
- Consider: Purpose (corporate/educational/creative), Audience, Tone, Content Volume, Visual Assets needed.
58
-
59
- ### Workflow
60
-
61
- 1. **Analyze**: Understand topic, audience, purpose
62
- 2. **Choose Layout**: Select based on content
63
- 3. **Write Slide**: Use PptxGenJS. Use shapes and SVG elements for visual interest.
64
- 4. **Verify**: Generate preview as `slide-XX-preview.pptx`. Extract text with `python -m markitdown slide-XX-preview.pptx`, verify all content present and no placeholder text remains.
65
-
66
- ---
67
-
68
- ## 2. Table of Contents
69
-
70
- - **Use for**: Navigation + expectation setting (3-5 sections)
71
- - **Content**: Section list (optional icons / page numbers)
72
-
73
- ### Layout Options
74
-
75
- **Numbered Vertical List** — Best for 3-5 sections, straightforward presentations
76
- ```
77
- | TABLE OF CONTENTS |
78
- | |
79
- | 01 Section Title One |
80
- | 02 Section Title Two |
81
- | 03 Section Title Three |
82
- ```
83
-
84
- **Two-Column Grid** — Best for 4-6 sections, content-rich presentations
85
- ```
86
- | TABLE OF CONTENTS |
87
- | |
88
- | 01 Section One 02 Section Two |
89
- | Description Description |
90
- | 03 Section Three 04 Section Four |
91
- ```
92
-
93
- **Sidebar Navigation** — Best for 3-5 sections, modern/corporate
94
- ```
95
- | ▌01 | Section Title One |
96
- | ▌02 | Section Title Two |
97
- | ▌03 | Section Title Three |
98
- ```
99
-
100
- **Card-Based** — Best for 3-4 sections, creative/modern
101
- ```
102
- | TABLE OF CONTENTS |
103
- | ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ |
104
- | │ 01 │ │ 02 │ │ 03 │ │ 04 │ |
105
- | │Title│ │Title│ │Title│ │Title│ |
106
- | └─────┘ └─────┘ └─────┘ └─────┘ |
107
- ```
108
-
109
- ### Font Size Hierarchy
110
-
111
- | Element | Recommended Size | Ratio to Base |
112
- |---------|-----------------|---------------|
113
- | Page Title ("Table of Contents" / "Agenda") | 36-44px | 2.5x-3x |
114
- | Section Number | 28-36px | 2x-2.5x |
115
- | Section Title | 20-28px | 1.5x-2x |
116
- | Section Description | 14-16px | 1x (base) |
117
-
118
- **Key Principles:**
119
- 1. **Clear Numbering**: Section numbers should be visually prominent — bold, accent color, or larger size
120
- 2. **Scannable Structure**: Viewer should scan all sections in 2-3 seconds
121
- 3. **Consistent Spacing**: Equal vertical spacing between sections
122
- 4. **Visual Markers**: Colored dots, lines, numbers, or icons to anchor each section
123
- 5. **Avoid Clutter**: Descriptions one line max or omit entirely
124
-
125
- ### Content Elements
126
-
127
- 1. **Page Title** — Always required ("Table of Contents", "Agenda", "Overview")
128
- 2. **Section Numbers** — Consistent format (01, 02... or I, II...)
129
- 3. **Section Titles** — Clear and concise
130
- 4. **Section Descriptions** — Optional one-line summaries
131
- 5. **Visual Separators** — SVG dividers or spacing
132
- 6. **Decorative Elements** — Subtle accent shapes
133
- 7. **Page Number Badge** — **MANDATORY**
134
-
135
- ### Design Decisions
136
-
137
- 1. **Section Count**: 3 → vertical list; 4-6 → grid or compact; 7+ → multi-column
138
- 2. **Description Length**: Long → vertical list; None → compact grid/cards
139
- 3. **Tone**: Corporate → numbered list; Creative → card-based; Academic → Roman numerals
140
- 4. **Consistency**: Match visual style of cover page
141
-
142
- ### Workflow
143
-
144
- 1. **Analyze**: Section list, count, presentation context
145
- 2. **Choose Layout**: Based on section count and content
146
- 3. **Plan Visual Hierarchy**: Numbering style, font sizes, spacing
147
- 4. **Write Slide**: Use PptxGenJS. Use shapes for decorative elements. **MUST include page number badge.**
148
- 5. **Verify**: Generate preview, extract text with markitdown, verify content and badge.
149
-
150
- ---
151
-
152
- ## 3. Section Divider
153
-
154
- - **Use for**: Clear transitions between major parts
155
- - **Content**: Section number + title (+ optional 1-2 line intro)
156
-
157
- ### Layout Options
158
-
159
- **Bold Center** — Best for minimal, modern presentations
160
- ```
161
- | 02 |
162
- | SECTION TITLE |
163
- | Optional intro line |
164
- ```
165
-
166
- **Left-Aligned with Accent Block** — Best for corporate, structured presentations
167
- ```
168
- | ████ | 02 |
169
- | ████ | SECTION TITLE |
170
- | ████ | Optional intro line |
171
- ```
172
-
173
- **Split Background** — Best for high-contrast, dramatic transitions
174
- ```
175
- | ██████████ | SECTION TITLE |
176
- | ██ 02 ██ | Optional intro |
177
- | ██████████ | |
178
- ```
179
-
180
- **Full-Bleed Background with Overlay** — Best for creative, bold presentations
181
- ```
182
- | ████████████████████████████████████ |
183
- | ████ large 02 █████████ |
184
- | ████ SECTION TITLE █████████ |
185
- | ████████████████████████████████████ |
186
- ```
187
-
188
- ### Font Size Hierarchy
189
-
190
- | Element | Recommended Size | Notes |
191
- |---------|-----------------|-------|
192
- | Section Number | 72-120px | Bold, accent color or semi-transparent |
193
- | Section Title | 36-48px | Bold, clear, primary text color |
194
- | Intro Text | 16-20px | Light weight, muted color, optional |
195
-
196
- **Key Principles:**
197
- 1. **Dramatic Number**: Section number = most prominent visual element
198
- 2. **Strong Title**: Large but clearly secondary to the number
199
- 3. **Minimal Content**: Just number + title + optional one-liner
200
- 4. **Breathing Room**: Leave generous whitespace — dividers are pause moments
201
-
202
- ### Content Elements
203
-
204
- 1. **Section Number** — Always required. Format: `01`, `02`... or `I`, `II`... Match TOC style.
205
- 2. **Section Title** — Always required. Clear, concise.
206
- 3. **Intro Text** — Optional 1-2 line description.
207
- 4. **Decorative Elements** — SVG accent shapes (bars, lines, geometric blocks).
208
- 5. **Page Number Badge** — **MANDATORY**.
209
-
210
- ### Design Decisions
211
-
212
- 1. **Tone**: Corporate → accent block; Creative → full-bleed; Minimal → bold center
213
- 2. **Color**: Strong palette color for background/accent; high-contrast text
214
- 3. **Consistency**: Same divider style across all dividers in one presentation
215
- 4. **Contrast with content slides**: Visually distinct (different background color, more whitespace)
216
-
217
- ### Workflow
218
-
219
- 1. **Analyze**: Section number, title, optional intro
220
- 2. **Choose Layout**: Based on content and tone
221
- 3. **Write Slide**: Use PptxGenJS. Use shapes for decorative elements. **MUST include page number badge.**
222
- 4. **Verify**: Generate preview, extract text, verify content and badge.
223
-
224
- ---
225
-
226
- ## 4. Content Page
227
-
228
- Pick a subtype based on the content. Each content slide belongs to exactly ONE subtype:
229
-
230
- ### Subtypes
231
-
232
- **Text** — Bullets, quotes, or short paragraphs
233
- - Must still include icons or SVG shapes — never plain text only
234
- ```
235
- | SLIDE TITLE |
236
- | * Bullet point one |
237
- | * Bullet point two |
238
- | * Bullet point three |
239
- ```
240
-
241
- **Mixed Media** — Two-column or half-bleed image + text
242
- ```
243
- | SLIDE TITLE |
244
- | Text content | [Image/Visual] |
245
- | and bullets | |
246
- ```
247
-
248
- **Data Visualization** — Chart (SVG bar/progress/ring) + takeaways
249
- - Must include data source
250
- ```
251
- | SLIDE TITLE |
252
- | [SVG Chart] | Key Takeaway 1 |
253
- | | Key Takeaway 2 |
254
- | Source: xxx |
255
- ```
256
-
257
- **Comparison** — Side-by-side columns or cards (A vs B, pros/cons)
258
- ```
259
- | SLIDE TITLE |
260
- | ┌─ Option A ─┐ ┌─ Option B ─┐ |
261
- | │ Detail 1 │ │ Detail 1 │ |
262
- | └────────────┘ └────────────┘ |
263
- ```
264
-
265
- **Timeline / Process** — Steps with arrows, journey, phases
266
- ```
267
- | SLIDE TITLE |
268
- | [1] ──→ [2] ──→ [3] ──→ [4] |
269
- | Step Step Step Step |
270
- ```
271
-
272
- **Image Showcase** — Hero image, gallery, visual-first layout
273
- ```
274
- | SLIDE TITLE |
275
- | ┌────────────────────────────────┐ |
276
- | │ [Hero Image] │ |
277
- | └────────────────────────────────┘ |
278
- | Caption or supporting text |
279
- ```
280
-
281
- ### Font Size Hierarchy
282
-
283
- | Element | Recommended Size | Notes |
284
- |---------|-----------------|-------|
285
- | Slide Title | 36-44px | Bold, top of slide |
286
- | Section Header | 20-24px | Bold, for sub-sections within slide |
287
- | Body Text | 14-16px | Regular weight, left-aligned |
288
- | Captions / Source | 10-12px | Muted color, smallest text |
289
- | Stat Callout | 60-72px | Large bold numbers for key statistics |
290
-
291
- **Key Principles:**
292
- 1. **Left-align body text** — never center paragraphs or bullet lists
293
- 2. **Size contrast** — title must be 36pt+ to stand out from 14-16pt body
294
- 3. **Visual elements required** — every content slide must have at least one non-text element
295
- 4. **Breathing room** — 0.5" minimum margins, 0.3-0.5" between content blocks
296
-
297
- ### Content Elements
298
-
299
- 1. **Slide Title** — Always required, top of slide
300
- 2. **Body Content** — Text, bullets, data, or comparisons based on subtype
301
- 3. **Visual Element** — Image, chart, icon, or SVG shape — always required
302
- 4. **Source / Caption** — When showing data or external content
303
- 5. **Page Number Badge** — **MANDATORY**
304
-
305
- ### Design Decisions
306
-
307
- 1. **Subtype**: Determine first — drives the entire layout
308
- 2. **Content Volume**: Dense → multi-column or smaller font; Light → larger elements with more whitespace
309
- 3. **Data vs Narrative**: Data-heavy → charts + stat callouts; Story-driven → images + quotes
310
- 4. **Variety**: Each content slide should use a different layout from the previous one
311
- 5. **Consistency**: Typography, colors, and spacing must match the rest of the presentation
312
-
313
- ### Workflow
314
-
315
- 1. **Analyze**: Content, determine subtype, plan layout
316
- 2. **Choose Layout**: Best fit for subtype and content volume
317
- 3. **Write Slide**: Use PptxGenJS. Use shapes for charts, decorative elements, icons. **MUST include page number badge.**
318
- 4. **Verify**: Generate preview as `slide-XX-preview.pptx`. Extract text with markitdown, verify all content present, no placeholder text, badge included.
319
-
320
- ---
321
-
322
- ## 5. Summary / Closing Page
323
-
324
- - **Use for**: Wrap-up + action
325
- - **Content**: Key takeaways, CTA/next steps, contact/QR, thank-you
326
-
327
- ### Layout Options
328
-
329
- **Key Takeaways** — Best for educational, corporate, data-driven presentations
330
- ```
331
- | KEY TAKEAWAYS |
332
- | ✓ Takeaway one |
333
- | ✓ Takeaway two |
334
- | ✓ Takeaway three |
335
- ```
336
-
337
- **CTA / Next Steps** — Best for sales pitches, proposals, project kick-offs
338
- ```
339
- | NEXT STEPS |
340
- | [1] Action item one |
341
- | [2] Action item two |
342
- | Contact: email@example.com |
343
- ```
344
-
345
- **Thank You / Contact** — Best for conference talks, keynotes
346
- ```
347
- | THANK YOU |
348
- | name@company.com |
349
- | @handle | website.com |
350
- ```
351
-
352
- **Split Recap** — Best for presentations needing both recap and action
353
- ```
354
- | SUMMARY | NEXT STEPS |
355
- | * Point one | Contact us at |
356
- | * Point two | email@co.com |
357
- | * Point three | [QR Code] |
358
- ```
359
-
360
- ### Font Size Hierarchy
361
-
362
- | Element | Recommended Size | Notes |
363
- |---------|-----------------|-------|
364
- | Closing Title ("Thank You" / "Summary") | 48-72px | Bold, commanding |
365
- | Takeaway / Action Item | 18-24px | Clear, scannable |
366
- | Supporting Text | 14-16px | Regular weight |
367
- | Contact Info | 14-16px | Muted color |
368
-
369
- **Key Principles:**
370
- 1. **Strong closing statement**: Main message should be largest, most prominent
371
- 2. **Scannable items**: Takeaways/action items concise (one line each)
372
- 3. **Contact clarity**: Legible but not dominant
373
- 4. **Memorable finish**: Confident, polished ending
374
-
375
- ### Content Elements
376
-
377
- 1. **Closing Title** — Always required
378
- 2. **Takeaway Points** — 3-5 concise summary points (if applicable)
379
- 3. **Call to Action** — Clear next steps (if applicable)
380
- 4. **Contact Info** — Email, website, social handles (if provided)
381
- 5. **Decorative Elements** — SVG accents for visual consistency
382
- 6. **Page Number Badge** — **MANDATORY**
383
-
384
- ### Design Decisions
385
-
386
- 1. **Closing Type**: Recap, CTA, thank-you, or combination
387
- 2. **Content Volume**: Many takeaways → list; Simple closing → centered thank-you
388
- 3. **Audience Action**: Audience needs to do something → CTA; Informational → takeaways
389
- 4. **Tone Consistency**: Match energy of cover page
390
- 5. **Visual Distinction**: Special but not disconnected from the rest
391
-
392
- ### Workflow
393
-
394
- 1. **Analyze**: Closing content — takeaways, CTA, contact, thank-you
395
- 2. **Choose Layout**: Based on content type
396
- 3. **Write Slide**: Use PptxGenJS. Use shapes for decorative elements. **MUST include page number badge.**
397
- 4. **Verify**: Generate preview, extract text, verify content and badge.
398
-
399
- ---
400
-
401
- ## Additional Layout Patterns
402
-
403
- Use these across content slides for visual variety:
404
-
405
- - **Two-column** (text left, illustration right)
406
- - **Icon + text rows** (icon in colored circle, bold header, description below)
407
- - **2x2 or 2x3 grid** (image on one side, grid of content blocks on other)
408
- - **Half-bleed image** (full left or right side) with content overlay
409
- - **Large stat callouts** (big numbers 60-72pt with small labels below)
410
- - **Comparison columns** (before/after, pros/cons)
411
- - **Timeline or process flow** (numbered steps, arrows)
412
- - **Icons in small colored circles** next to section headers
413
- - **Italic accent text** for key stats or taglines
@@ -1,137 +0,0 @@
1
- ---
2
- name: xlsx
3
- description: "Open, create, read, analyze, edit, or validate Excel/spreadsheet files (.xlsx, .xlsm, .csv, .tsv). Use when the user asks to create, build, modify, analyze, read, validate, or format any Excel spreadsheet, financial model, pivot table, or tabular data file. Covers: creating new xlsx from scratch, reading and analyzing existing files, editing existing xlsx with zero format loss, formula recalculation and validation, and applying professional financial formatting standards. Triggers on 'spreadsheet', 'Excel', '.xlsx', '.csv', 'pivot table', 'financial model', 'formula', or any request to produce tabular data in Excel format."
4
- metadata:
5
- version: "1.0"
6
- category: productivity
7
- sources:
8
- - ECMA-376 Office Open XML File Formats
9
- - Microsoft Open XML SDK documentation
10
- ---
11
-
12
- # XLSX Skill
13
-
14
- Handle the request directly. Do NOT spawn sub-agents. Always write the output file the user requests.
15
-
16
- ## Task Routing
17
-
18
- | Task | Method | Guide |
19
- |------|--------|-------|
20
- | **READ** — analyze existing data | `xlsx_reader.py` + pandas | `references/read-analyze.md` |
21
- | **CREATE** — new xlsx from scratch | XML template | `references/create.md` + `references/format.md` |
22
- | **EDIT** — modify existing xlsx | XML unpack→edit→pack | `references/edit.md` (+ `format.md` if styling needed) |
23
- | **FIX** — repair broken formulas in existing xlsx | XML unpack→fix `<f>` nodes→pack | `references/fix.md` |
24
- | **VALIDATE** — check formulas | `formula_check.py` | `references/validate.md` |
25
-
26
- ## READ — Analyze data (read `references/read-analyze.md` first)
27
-
28
- Start with `xlsx_reader.py` for structure discovery, then pandas for custom analysis. Never modify the source file.
29
-
30
- **Formatting rule**: When the user specifies decimal places (e.g. "2 decimal places"), apply that format to ALL numeric values — use `f'{v:.2f}'` on every number. Never output `12875` when `12875.00` is required.
31
-
32
- **Aggregation rule**: Always compute sums/means/counts directly from the DataFrame column — e.g. `df['Revenue'].sum()`. Never re-derive column values before aggregation.
33
-
34
- ## CREATE — XML template (read `references/create.md` + `references/format.md`)
35
-
36
- Copy `templates/minimal_xlsx/` → edit XML directly → pack with `xlsx_pack.py`. Every derived value MUST be an Excel formula (`<f>SUM(B2:B9)</f>`), never a hardcoded number. Apply font colors per `format.md`.
37
-
38
- ## EDIT — XML direct-edit (read `references/edit.md` first)
39
-
40
- **CRITICAL — EDIT INTEGRITY RULES:**
41
- 1. **NEVER create a new `Workbook()`** for edit tasks. Always load the original file.
42
- 2. The output MUST contain the **same sheets** as the input (same names, same data).
43
- 3. Only modify the specific cells the task asks for — everything else must be untouched.
44
- 4. **After saving output.xlsx, verify it**: open with `xlsx_reader.py` or `pandas` and confirm the original sheet names and a sample of original data are present. If verification fails, you wrote the wrong file — fix it before delivering.
45
-
46
- Never use openpyxl round-trip on existing files (corrupts VBA, pivots, sparklines). Instead: unpack → use helper scripts → repack.
47
-
48
- **"Fill cells" / "Add formulas to existing cells" = EDIT task.** If the input file already exists and you are told to fill, update, or add formulas to specific cells, you MUST use the XML edit path. Never create a new `Workbook()`. Example — fill B3 with a cross-sheet SUM formula:
49
- ```bash
50
- python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
51
- # Find the target sheet's XML via xl/workbook.xml → xl/_rels/workbook.xml.rels
52
- # Then use the Edit tool to add <f> inside the target <c> element:
53
- # <c r="B3"><f>SUM('Sales Data'!D2:D13)</f><v></v></c>
54
- python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
55
- ```
56
-
57
- **Add a column** (formulas, numfmt, styles auto-copied from adjacent column):
58
- ```bash
59
- python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
60
- python3 SKILL_DIR/scripts/xlsx_add_column.py /tmp/xlsx_work/ --col G \
61
- --sheet "Sheet1" --header "% of Total" \
62
- --formula '=F{row}/$F$10' --formula-rows 2:9 \
63
- --total-row 10 --total-formula '=SUM(G2:G9)' --numfmt '0.0%' \
64
- --border-row 10 --border-style medium
65
- python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
66
- ```
67
- The `--border-row` flag applies a top border to ALL cells in that row (not just the new column). Use it when the task requires accounting-style borders on total rows.
68
-
69
- **Insert a row** (shifts existing rows, updates SUM formulas, fixes circular refs):
70
- ```bash
71
- python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
72
- # IMPORTANT: Find the correct --at row by searching for the label text
73
- # in the worksheet XML, NOT by using the row number from the prompt.
74
- # The prompt may say "row 5 (Office Rent)" but Office Rent might actually
75
- # be at row 4. Always locate the row by its text label first.
76
- python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/xlsx_work/ --at 5 \
77
- --sheet "Budget FY2025" --text A=Utilities \
78
- --values B=3000 C=3000 D=3500 E=3500 \
79
- --formula 'F=SUM(B{row}:E{row})' --copy-style-from 4
80
- python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
81
- ```
82
- **Row lookup rule**: When the task says "after row N (Label)", always find the row by searching for "Label" in the worksheet XML (`grep -n "Label" /tmp/xlsx_work/xl/worksheets/sheet*.xml` or check sharedStrings.xml). Use the actual row number + 1 for `--at`. Do NOT call `xlsx_shift_rows.py` separately — `xlsx_insert_row.py` calls it internally.
83
-
84
- **Apply row-wide borders** (e.g. accounting line on a TOTAL row):
85
- After running helper scripts, apply borders to ALL cells in the target row, not just newly added cells. In `xl/styles.xml`, append a new `<border>` with the desired style, then append a new `<xf>` in `<cellXfs>` that clones each cell's existing `<xf>` but sets the new `borderId`. Apply the new style index to every `<c>` in the row via the `s` attribute:
86
- ```xml
87
- <!-- In xl/styles.xml, append to <borders>: -->
88
- <border>
89
- <left/><right/><top style="medium"/><bottom/><diagonal/>
90
- </border>
91
- <!-- Then append to <cellXfs> an xf clone with the new borderId for each existing style -->
92
- ```
93
- **Key rule**: When a task says "add a border to row N", iterate over ALL cells A through the last column, not just newly added cells.
94
-
95
- **Manual XML edit** (for anything the helper scripts don't cover):
96
- ```bash
97
- python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
98
- # ... edit XML with the Edit tool ...
99
- python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
100
- ```
101
-
102
- ## FIX — Repair broken formulas (read `references/fix.md` first)
103
-
104
- This is an EDIT task. Unpack → fix broken `<f>` nodes → pack. Preserve all original sheets and data.
105
-
106
- ## VALIDATE — Check formulas (read `references/validate.md` first)
107
-
108
- Run `formula_check.py` for static validation. Use `libreoffice_recalc.py` for dynamic recalculation when available.
109
-
110
- ## Financial Color Standard
111
-
112
- | Cell Role | Font Color | Hex Code |
113
- |-----------|-----------|----------|
114
- | Hard-coded input / assumption | Blue | `0000FF` |
115
- | Formula / computed result | Black | `000000` |
116
- | Cross-sheet reference formula | Green | `00B050` |
117
-
118
- ## Key Rules
119
-
120
- 1. **Formula-First**: Every calculated cell MUST use an Excel formula, not a hardcoded number
121
- 2. **CREATE → XML template**: Copy minimal template, edit XML directly, pack with `xlsx_pack.py`
122
- 3. **EDIT → XML**: Never openpyxl round-trip. Use unpack/edit/pack scripts
123
- 4. **Always produce the output file** — this is the #1 priority
124
- 5. **Validate before delivery**: `formula_check.py` exit code 0 = safe
125
-
126
- ## Utility Scripts
127
-
128
- ```bash
129
- python3 SKILL_DIR/scripts/xlsx_reader.py input.xlsx # structure discovery
130
- python3 SKILL_DIR/scripts/formula_check.py file.xlsx --json # formula validation
131
- python3 SKILL_DIR/scripts/formula_check.py file.xlsx --report # standardized report
132
- python3 SKILL_DIR/scripts/xlsx_unpack.py in.xlsx /tmp/work/ # unpack for XML editing
133
- python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/work/ out.xlsx # repack after editing
134
- python3 SKILL_DIR/scripts/xlsx_shift_rows.py /tmp/work/ insert 5 1 # shift rows for insertion
135
- python3 SKILL_DIR/scripts/xlsx_add_column.py /tmp/work/ --col G ... # add column with formulas
136
- python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/work/ --at 6 ... # insert row with data
137
- ```