slides-grab 1.2.6 → 1.3.1
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.
- package/README-ko.md +258 -0
- package/README.md +16 -12
- package/bin/ppt-agent.js +195 -1
- package/package.json +11 -6
- package/runtimes/claude-code/agents/design-critic-agent.md +23 -0
- package/runtimes/codex/agents/slides-grab-design-critic.md +22 -0
- package/scripts/design-gate.js +241 -0
- package/scripts/editor-server.js +1 -0
- package/scripts/html2png.js +246 -0
- package/scripts/install-runtime.js +216 -0
- package/skills/slides-grab/SKILL.md +14 -12
- package/skills/slides-grab/references/presentation-workflow-reference.md +1 -1
- package/skills/slides-grab-card-news/SKILL.md +1 -1
- package/skills/slides-grab-design/SKILL.md +15 -7
- package/skills/slides-grab-design/references/design-gate.md +349 -0
- package/skills/slides-grab-design/references/design-rules.md +3 -3
- package/skills/slides-grab-design/references/design-system-full.md +4 -4
- package/skills/slides-grab-export/SKILL.md +5 -4
- package/skills/slides-grab-export/references/pptx-skill-reference.md +7 -42
- package/skills/slides-grab-plan/SKILL.md +20 -7
- package/skills/slides-grab-plan/references/design-md-to-slides-conversion.md +135 -0
- package/skills/slides-grab-plan/references/plan-workflow-reference.md +14 -14
- package/src/design-diversity-data.js +6932 -0
- package/src/design-gate-report.js +244 -0
- package/src/design-gate-state.js +294 -0
- package/src/design-import.js +164 -0
- package/src/design-md-parser.js +415 -0
- package/src/design-styles.js +86 -4
- package/src/editor/codex-edit.js +61 -2
- package/src/editor/editor.html +1 -1
- package/src/editor/js/model-registry.js +1 -1
- package/templates/design-styles/README.md +2 -1
- package/templates/design-styles/preview.html +1088 -6
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# DESIGN.md → DESIGN.slides.md Conversion
|
|
2
|
+
|
|
3
|
+
Web-flavored `DESIGN.md` files (Google Stitch / voltagent/awesome-design-md
|
|
4
|
+
convention) describe **marketing websites**: top-nav, hero-band, CTA buttons,
|
|
5
|
+
pricing cards, footer-band, multi-section scrolling pages.
|
|
6
|
+
|
|
7
|
+
A slide is a **720pt × 405pt single frame, no scroll, no clicks, no nav**.
|
|
8
|
+
Pasting a web design system into slides produces deck pages that look like
|
|
9
|
+
landing pages — wrong slot.
|
|
10
|
+
|
|
11
|
+
This document is the canonical reference the agent uses to translate a
|
|
12
|
+
DESIGN.md into a sibling `DESIGN.slides.md` that fits the slide medium.
|
|
13
|
+
|
|
14
|
+
## Output contract
|
|
15
|
+
|
|
16
|
+
The agent MUST produce a file named `DESIGN.slides.md` next to the source
|
|
17
|
+
`DESIGN.md` at the deck root. The original `DESIGN.md` MUST be left untouched.
|
|
18
|
+
|
|
19
|
+
`DESIGN.slides.md` MUST contain the following sections, in this order:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
---
|
|
23
|
+
version: alpha
|
|
24
|
+
name: <inherited from DESIGN.md `name`>
|
|
25
|
+
description: <one-sentence slide-flavored mood — not a marketing paragraph>
|
|
26
|
+
derived-from: <relative path to source DESIGN.md, e.g. ./DESIGN.md>
|
|
27
|
+
medium: slides-16x9
|
|
28
|
+
colors:
|
|
29
|
+
<token-name>: <#hex>
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Overview
|
|
33
|
+
One short paragraph describing the slide deck's atmosphere — material, energy,
|
|
34
|
+
typographic voice. No mention of pages, scroll, nav, CTA, pricing, or routes.
|
|
35
|
+
|
|
36
|
+
## Background
|
|
37
|
+
Solid fills only. List 1-3 canvas modes that alternate across slides.
|
|
38
|
+
|
|
39
|
+
## Colors
|
|
40
|
+
Markdown table of the slide-active palette. Drop any role that exists only
|
|
41
|
+
for hover/focus/disabled states (those don't apply to static slides).
|
|
42
|
+
|
|
43
|
+
## Typography
|
|
44
|
+
Two faces: a display face for headlines and a body face for everything else.
|
|
45
|
+
Optionally a mono face for eyebrows / IDs / code motifs. Include working
|
|
46
|
+
font-stack fallbacks (Google Fonts that render in Playwright capture).
|
|
47
|
+
|
|
48
|
+
## Slide Layouts
|
|
49
|
+
Enumerate the slide archetypes this design system supports. ALWAYS include
|
|
50
|
+
at least these five:
|
|
51
|
+
- **Cover** — single dominant headline, no nav, no CTA buttons
|
|
52
|
+
- **Section divider** — short anchor headline, optional eyebrow
|
|
53
|
+
- **Content** — copy + single supporting visual (60/40 or 50/50 split)
|
|
54
|
+
- **Statistic** — one oversized number, one short caption
|
|
55
|
+
- **Closing** — final thesis line, footer/page-number strip
|
|
56
|
+
|
|
57
|
+
For each layout, describe the dominant rhythm in 1-3 bullets — what scale
|
|
58
|
+
carries the slide, what's allowed in the corners, what's NOT allowed.
|
|
59
|
+
|
|
60
|
+
## Signature Motifs
|
|
61
|
+
Two-to-five small visual elements that make the deck recognizably this brand.
|
|
62
|
+
Examples: a colored underline, a strike-through wordmark, a dot cluster,
|
|
63
|
+
a serif italic accent on one word per slide. Each motif MUST be reproducible
|
|
64
|
+
purely with inline HTML + CSS on a single slide.
|
|
65
|
+
|
|
66
|
+
## Avoid
|
|
67
|
+
Explicit list of web-only patterns the slides MUST NOT carry. ALWAYS include:
|
|
68
|
+
- top-nav bars, sticky headers, menu rows
|
|
69
|
+
- clickable CTA buttons ("Sign up", "Start free trial", "Read docs")
|
|
70
|
+
- multi-column footer-bands beyond a single thin strip with attribution + page number
|
|
71
|
+
- pricing tier grids
|
|
72
|
+
- hover/focus/active state styling
|
|
73
|
+
- atmospheric multi-stop gradients (unless the source spec mandates them)
|
|
74
|
+
Plus any AVOID rules carried over from the source DESIGN.md.
|
|
75
|
+
|
|
76
|
+
## Source mapping (for traceability)
|
|
77
|
+
A short bullet list showing how each web concept was mapped. Format:
|
|
78
|
+
- `<web concept from DESIGN.md>` → `<slide concept in DESIGN.slides.md>` OR `dropped`
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Web → slide mapping rules
|
|
82
|
+
|
|
83
|
+
Apply these mappings while converting. The left column is what DESIGN.md
|
|
84
|
+
contains; the right column is the slide-appropriate replacement.
|
|
85
|
+
|
|
86
|
+
| DESIGN.md (web) | DESIGN.slides.md (slide) |
|
|
87
|
+
|---|---|
|
|
88
|
+
| `top-nav` / sticky header | A 12pt-tall mono **eyebrow strip** at the top of each slide with section number + brand wordmark — never a horizontal menu of items |
|
|
89
|
+
| `hero-band` (h1 + sub + dual CTA + illustration card) | **Cover layout** — single oversized headline, single sub, footer strip with page number. CTA buttons → discarded (no clicks possible). Illustration card → optional single visual anchor |
|
|
90
|
+
| `feature-card grid (3-up / 4-up)` | **Content layout** with 3-up grid OK, but cards must be cardless-leaning (whitespace-driven) — drop the marketing icon + blurb pattern, prefer pull quotes or per-track/per-member rows |
|
|
91
|
+
| `pricing tier grid` | **Discard entirely** — pricing has no slide analogue |
|
|
92
|
+
| `connector tile grid` | **Discard or convert to small badge row** — never a 4×4 grid of generic logos |
|
|
93
|
+
| `CTA banner` (full-bleed coral / brand) | **Section divider** or **closing** layout — keep the full-bleed color, replace CTA buttons with a thesis sentence and a page number |
|
|
94
|
+
| `product-mockup-card-dark` (code editor screenshot card) | **Content motif** — fine to keep as a single dark surface inside a content slide, but it can NOT dominate every slide |
|
|
95
|
+
| `footer-band` (4-column legal/sitemap) | **Single thin footer strip** — at most 1 line: brand wordmark left, page number right |
|
|
96
|
+
| `button-primary` / `button-secondary` | **Kicker text only** — write the verb as plain text ("Read the next issue") without box/border/click affordance |
|
|
97
|
+
| Hover / focus / pressed / disabled states | **Drop all of them** — slides are static |
|
|
98
|
+
| Multi-stop atmospheric gradients | **Drop unless source spec calls for one or two** — convert to a single accent shape |
|
|
99
|
+
| Spike-mark / asterisk-style brand glyph | **Keep as a small motif** — inline SVG at the slide eyebrow or footer |
|
|
100
|
+
|
|
101
|
+
## Preservation rules (do NOT translate away)
|
|
102
|
+
|
|
103
|
+
The conversion MUST carry over from DESIGN.md unchanged:
|
|
104
|
+
|
|
105
|
+
- The **color palette** (canvas, surface, ink, primary accent, secondary accents)
|
|
106
|
+
- The **type pairing** — display face vs body face vs mono face
|
|
107
|
+
- The **mood / atmosphere** — warm-editorial vs dark-product vs pastel-pop is the
|
|
108
|
+
whole reason the user imported this DESIGN.md; the slide deck must still feel
|
|
109
|
+
like the source brand
|
|
110
|
+
- **Brand-specific signature motifs** (spike-mark, hard offset shadow, slab-serif italic
|
|
111
|
+
accent, etc.) — translate the surface, not the identity
|
|
112
|
+
|
|
113
|
+
## Process checklist for the agent
|
|
114
|
+
|
|
115
|
+
1. Read `./DESIGN.md` in full.
|
|
116
|
+
2. Identify which sections are web-only and slot them through the mapping table.
|
|
117
|
+
3. Identify the design tokens (colors, type, spacing) that survive unchanged.
|
|
118
|
+
4. Draft `./DESIGN.slides.md` using the Output Contract template.
|
|
119
|
+
5. Show the user a short summary: 5–10 lines covering kept tokens + dropped
|
|
120
|
+
web sections + new slide layouts inferred.
|
|
121
|
+
6. Wait for explicit user approval ("looks good" or specific edits) before
|
|
122
|
+
moving to outline / slide generation.
|
|
123
|
+
7. Once approved, record `style: ./DESIGN.slides.md` in `slide-outline.md`.
|
|
124
|
+
|
|
125
|
+
## When DESIGN.slides.md should be re-converted
|
|
126
|
+
|
|
127
|
+
Suggest a re-conversion when:
|
|
128
|
+
- The source `DESIGN.md` is replaced / re-imported with a different brand
|
|
129
|
+
- The user explicitly asks for a different deck flavor (e.g. "more editorial",
|
|
130
|
+
"less code-heavy")
|
|
131
|
+
- A slide deck visibly carries web-only artifacts (nav bars, CTAs, footers
|
|
132
|
+
with link columns) that the current DESIGN.slides.md doesn't forbid
|
|
133
|
+
|
|
134
|
+
A `DESIGN.slides.md` is never regenerated automatically. It is the agent's
|
|
135
|
+
job, in conversation with the user.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A **supervisor skill** that takes a user topic, generates a `slide-outline.md` outline, and manages a revision loop until the user approves.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Keeps the outline process separate from slide design. Use a runtime-native subagent/task for drafting when available, or draft directly from this reference when the current runtime has no subagent mechanism.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -11,14 +11,14 @@ Does not write the outline directly — delegates the work to `organizer-agent`.
|
|
|
11
11
|
| Role | Owner | Responsibility |
|
|
12
12
|
|------|-------|----------------|
|
|
13
13
|
| **Supervisor** | plan-skill (you) | User communication, quality control, revision loop management |
|
|
14
|
-
| **Worker** |
|
|
14
|
+
| **Worker** | Outline worker | Draft and revise `slide-outline.md` |
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
18
|
## Input
|
|
19
19
|
|
|
20
20
|
- User topic (required)
|
|
21
|
-
- Research results (optional
|
|
21
|
+
- Research results (optional)
|
|
22
22
|
- Reference materials, tone/mood requests, etc.
|
|
23
23
|
|
|
24
24
|
## Output
|
|
@@ -29,9 +29,9 @@ Does not write the outline directly — delegates the work to `organizer-agent`.
|
|
|
29
29
|
|
|
30
30
|
## Workflow
|
|
31
31
|
|
|
32
|
-
### 1.
|
|
32
|
+
### 1. Create the Outline Draft
|
|
33
33
|
|
|
34
|
-
Use
|
|
34
|
+
Use a runtime-native task/subagent to generate a `slide-outline.md` draft when available. If the runtime has no such mechanism, write the draft directly using the format below.
|
|
35
35
|
|
|
36
36
|
**Include in the prompt:**
|
|
37
37
|
- User topic and requirements
|
|
@@ -52,7 +52,7 @@ Read the generated `slide-outline.md` and present to the user:
|
|
|
52
52
|
|
|
53
53
|
When user provides feedback:
|
|
54
54
|
1. Organize the feedback
|
|
55
|
-
2.
|
|
55
|
+
2. Revise the existing `slide-outline.md` with the feedback, using a runtime-native task/subagent when available
|
|
56
56
|
3. Present the revised outline to the user
|
|
57
57
|
4. Repeat until user approves
|
|
58
58
|
|
|
@@ -65,7 +65,7 @@ Complete the outline stage when the user explicitly approves.
|
|
|
65
65
|
## Absolute Rules
|
|
66
66
|
|
|
67
67
|
1. **Never proceed to the next stage without approval** — Maintain the revision loop until the user explicitly signals approval ("looks good", "approved", "OK", "proceed", etc.).
|
|
68
|
-
2. **
|
|
68
|
+
2. **Keep the outline stage separate** — Do not generate slide HTML while drafting or revising the outline.
|
|
69
69
|
3. **Never start HTML generation** — This skill's scope ends at `slide-outline.md` approval. HTML generation is the responsibility of `design-skill`.
|
|
70
70
|
|
|
71
71
|
---
|
|
@@ -109,12 +109,12 @@ Complete the outline stage when the user explicitly approves.
|
|
|
109
109
|
|
|
110
110
|
---
|
|
111
111
|
|
|
112
|
-
##
|
|
112
|
+
## Outline Worker Prompt Examples
|
|
113
113
|
|
|
114
114
|
```
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
Runtime-native task/subagent prompt:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
118
|
Create a presentation outline for the following topic.
|
|
119
119
|
|
|
120
120
|
Topic: [user topic]
|
|
@@ -128,9 +128,9 @@ Task tool call:
|
|
|
128
128
|
For feedback revisions:
|
|
129
129
|
|
|
130
130
|
```
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
Runtime-native task/subagent prompt:
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
134
|
Revise the existing outline.
|
|
135
135
|
|
|
136
136
|
Current outline: [slide-outline.md content]
|