73 lines
3.5 KiB
Markdown
73 lines
3.5 KiB
Markdown
# Deck Templates
|
|
|
|
**Deck = full-PPT replica.** Each deck reverse-engineers a specific organization's branded presentation and bundles its **identity + structure + middle** segments into one atomic asset. Use a deck when you want the complete look of a particular institution (color, typography, logo, page structure, voice) preserved as a whole.
|
|
|
|
Single source of truth for what decks exist: [`decks_index.json`](./decks_index.json) (`deck_id → { summary, canvas_format, page_count, primary_color }`). This README explains the kind; it does **not** enumerate decks.
|
|
|
|
Full data model: [`docs/zh/templates-architecture.md`](../../../../docs/zh/templates-architecture.md).
|
|
|
|
---
|
|
|
|
## Trigger rule
|
|
|
|
Deck selection is **opt-in by explicit path**. The main workflow defaults to free design. A deck is only used when the user gives an explicit directory path in their initial message (e.g. `skills/ppt/templates/decks/招商银行/`). Bare names do not trigger. See [`SKILL.md`](../../SKILL.md) Step 3.
|
|
|
|
`decks_index.json` is a **discovery aid**, not a trigger — it lets the AI answer "what decks exist?" by listing ids and paths. Listing alone never advances the pipeline.
|
|
|
|
---
|
|
|
|
## design_spec.md schema
|
|
|
|
Decks carry the full set of segments (identity + structure + middle). Minimum schema:
|
|
|
|
```markdown
|
|
---
|
|
deck_id: <slug>
|
|
kind: deck
|
|
summary: <one-line use cases>
|
|
canvas_format: ppt169
|
|
page_count: 5
|
|
primary_color: "#XXXXXX"
|
|
---
|
|
|
|
# [Brand / Organization Name] - Design Specification
|
|
|
|
## I. Template Overview # Middle — Use cases / Design intent
|
|
## II. Canvas Specification # Structure
|
|
## III. Color Scheme # Identity — role / HEX / provenance / notes
|
|
## IV. Typography # Identity — role / family / weight
|
|
## V. Logo # Identity — file / form / usage rules (if logo bundled)
|
|
## VI. Page Structure # Structure — layout grid / decorative DNA
|
|
## VII. Page Types # Structure — per-page roles
|
|
## VIII. SVG Page Roster # Structure — file list + per-file purpose
|
|
```
|
|
|
|
Decks may include additional supporting sections (Voice & Tone, Icon Style, Layout Modes, Spacing Specification, SVG Technical Constraints, Placeholder Specification, Asset Specification, Usage Notes). Use them when meaningful for the replica.
|
|
|
|
---
|
|
|
|
## Fusion behavior at Step 3
|
|
|
|
When the user gives a deck path **alone**, Strategist locks all segments; Eight Confirmations narrows to deck-content fields (target audience / page count / outline / tone tweaks).
|
|
|
|
When the user gives a deck path **with** a brand path or layout path, identity / structure segments are overridden by the higher-priority source (brand wins on identity, layout wins on structure). See [`SKILL.md`](../../SKILL.md) Step 3 fusion table.
|
|
|
|
---
|
|
|
|
## Creating a new deck
|
|
|
|
1. Run [`workflows/create-template.md`](../../workflows/create-template.md) (default kind is `deck`)
|
|
2. Resulting directory lands under `templates/decks/<id>/`
|
|
3. Validate: `python3 skills/ppt/scripts/svg_quality_checker.py templates/decks/<id> --template-mode --format ppt169`
|
|
4. Register: `python3 skills/ppt/scripts/register_template.py <id> --kind deck`
|
|
|
|
The register step updates [`decks_index.json`](./decks_index.json) — the single source of truth for deck discovery.
|
|
|
|
---
|
|
|
|
## See also
|
|
|
|
- [`templates/layouts/`](../layouts/) — structure-only templates without identity
|
|
- [`templates/brands/`](../brands/) — identity-only presets without page rosters
|
|
- [`docs/zh/templates-architecture.md`](../../../../docs/zh/templates-architecture.md) — three-class data model + fusion rules
|