diff --git a/SKILL.md b/SKILL.md
index dfd8ce0b..c3b1ec5d 100644
--- a/SKILL.md
+++ b/SKILL.md
@@ -118,7 +118,11 @@ If user provides an image folder:
2. **View each image** — Use the Read tool (Claude is multimodal)
3. **Evaluate** — For each: what it shows, USABLE or NOT USABLE (with reason), what concept it represents, dominant colors
4. **Co-design the outline** — Curated images inform slide structure alongside text. This is NOT "plan slides then add images" — design around both from the start (e.g., 3 screenshots → 3 feature slides, 1 logo → title/closing slide)
-5. **Confirm via AskUserQuestion** (header: "Outline"): "Does this slide outline and image selection look right?" Options: Looks good / Adjust images / Adjust outline
+5. **Diagram Detection** — If images contain flowcharts, cycle diagrams, relationship maps, or architecture diagrams:
+ - Identify the **diagram type**: cycle / pipeline / feedback-loop / hierarchy / hub-spoke
+ - Count **nodes** and **connections**
+ - Flag slides that require diagram layouts — these must NOT use `card-grid` or `bullet-list`
+6. **Confirm via AskUserQuestion** (header: "Outline"): "Does this slide outline and image selection look right?" Options: Looks good / Adjust images / Adjust outline
**Logo in previews:** If a usable logo was identified, embed it (base64) into each style preview in Phase 2 — the user sees their brand styled three different ways.
@@ -182,6 +186,7 @@ If images were provided, the slide outline already incorporates them from Step 1
- [html-template.md](html-template.md) — HTML architecture and JS features
- [viewport-base.css](viewport-base.css) — Mandatory CSS (include in full)
- [animation-patterns.md](animation-patterns.md) — Animation reference for the chosen feeling
+- [diagram-patterns.md](diagram-patterns.md) — Diagram layouts: cycles, pipelines, feedback loops, hierarchies, hubs
**Key requirements:**
@@ -191,6 +196,16 @@ If images were provided, the slide outline already incorporates them from Step 1
- Add detailed comments explaining each section
- Every section needs a clear `/* === SECTION NAME === */` comment block
+**When generating slides from source material containing diagrams:**
+
+1. **DO NOT** convert relationship diagrams into `card-grid`, `bullet-list`, or simple horizontal flows. These destroy the visual topology.
+2. **DO** read `diagram-patterns.md` and use the appropriate layout: `cycle-diagram`, `pipeline-diagram`, `feedback-diagram`, `hierarchy-diagram`, or `hub-diagram`.
+3. For **cycle diagrams** with 4-8 nodes: Use SVG-based circular layout with arrow markers showing direction. Preserve the closed-loop visual.
+4. For **feedback loops**: Use curved SVG paths with arrowheads or dashed-border containers to clearly show the return path. Never rely on text alone (e.g., "↻ 持续迭代").
+5. For **pipeline / hub diagrams**: Use connecting lines (`pipeline-connector-h`, `hub-line`) between nodes. The connection itself carries meaning.
+6. Include the **Diagram CSS** from `diagram-patterns.md` in the presentation's `
@@ -322,6 +331,20 @@ Save processed images with `_processed` suffix. Never overwrite originals.
---
+## Diagram Layouts in HTML
+
+When slides contain relationship diagrams (identified in Phase 1, Step 1.2), use the HTML structures defined in `diagram-patterns.md`.
+
+**Key principles:**
+- Diagrams are **semantic** — the spatial layout carries meaning. Do not flatten them into lists or grids.
+- Use **SVG** for curved connections, arrows, and animated draw-on effects. SVG is zero-dependency and scales perfectly.
+- Use **CSS absolute positioning** for node placement on cycles and hubs.
+- Always include the **SVG ``** for arrow markers once per presentation.
+
+**Common mistake:** Replacing a cycle diagram with a `card-grid` "because it fits the viewport." A grid destroys the closed-loop semantic. Use `cycle-diagram` instead and reduce node count if space is tight.
+
+---
+
## Code Quality
**Comments:** Every section needs clear comments explaining what it does and how to modify it.