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.
Files changed (33) hide show
  1. package/README-ko.md +258 -0
  2. package/README.md +16 -12
  3. package/bin/ppt-agent.js +195 -1
  4. package/package.json +11 -6
  5. package/runtimes/claude-code/agents/design-critic-agent.md +23 -0
  6. package/runtimes/codex/agents/slides-grab-design-critic.md +22 -0
  7. package/scripts/design-gate.js +241 -0
  8. package/scripts/editor-server.js +1 -0
  9. package/scripts/html2png.js +246 -0
  10. package/scripts/install-runtime.js +216 -0
  11. package/skills/slides-grab/SKILL.md +14 -12
  12. package/skills/slides-grab/references/presentation-workflow-reference.md +1 -1
  13. package/skills/slides-grab-card-news/SKILL.md +1 -1
  14. package/skills/slides-grab-design/SKILL.md +15 -7
  15. package/skills/slides-grab-design/references/design-gate.md +349 -0
  16. package/skills/slides-grab-design/references/design-rules.md +3 -3
  17. package/skills/slides-grab-design/references/design-system-full.md +4 -4
  18. package/skills/slides-grab-export/SKILL.md +5 -4
  19. package/skills/slides-grab-export/references/pptx-skill-reference.md +7 -42
  20. package/skills/slides-grab-plan/SKILL.md +20 -7
  21. package/skills/slides-grab-plan/references/design-md-to-slides-conversion.md +135 -0
  22. package/skills/slides-grab-plan/references/plan-workflow-reference.md +14 -14
  23. package/src/design-diversity-data.js +6932 -0
  24. package/src/design-gate-report.js +244 -0
  25. package/src/design-gate-state.js +294 -0
  26. package/src/design-import.js +164 -0
  27. package/src/design-md-parser.js +415 -0
  28. package/src/design-styles.js +86 -4
  29. package/src/editor/codex-edit.js +61 -2
  30. package/src/editor/editor.html +1 -1
  31. package/src/editor/js/model-registry.js +1 -1
  32. package/templates/design-styles/README.md +2 -1
  33. 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
- Does not write the outline directly delegates the work to `organizer-agent`.
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** | organizer-agent | Draft and revise `slide-outline.md` |
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 — research-agent output)
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. Delegate Draft Creation to organizer-agent
32
+ ### 1. Create the Outline Draft
33
33
 
34
- Use the Task tool to call `organizer-agent` and generate a `slide-outline.md` draft.
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. Call `organizer-agent` again with the existing `slide-outline.md` and feedback
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. **Never write the outline directly** — Always delegate to `organizer-agent`.
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
- ## organizer-agent Call Examples
112
+ ## Outline Worker Prompt Examples
113
113
 
114
114
  ```
115
- Task tool call:
116
- - subagent_type: "organizer-agent"
117
- - prompt: |
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
- Task tool call:
132
- - subagent_type: "organizer-agent"
133
- - prompt: |
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]