zcbot/skills/ppt/templates/brands
caoqianming 13835a315a feat(ppt): 加商务红品牌预设 + 配图默认主动提议(bump 0.33.5)
用户两个需求:(1) 加一款红色主题;(2) 用户没给图时在需要处主动配图。

- 商务红品牌预设:新增 templates/brands/business-red/design_spec.md(同 anthropic
  格式:#C00000 全色表 + primary-deep/gold/info/positive/alert/surface/border/muted
  派生色 + 宋体标题/黑体正文字体栈(栈尾收预装字体)+ 实心图标偏好 + 政企口吻;无
  logo,注明用文字 wordmark / 可后补)+ brands_index.json 加条目。红色承载在 brand
  而非 visual-style(后者不带色)。同时把商务红设为 strategist §e 默认配色候选:中文
  政企/集团/科研商务汇报默认列入 ≥3 候选(红金 #BF9B5F / 红蓝 #2B4C7E 二选一点缀,
  纯红只压标题/关键数据)。SKILL §默认主题 + 八条对齐 h 行同步指向。

- 配图默认主动提议:strategist §h + SKILL h 行改——用户没给图时不再默认整本 A
  (no images);封面/分节/概念/breathing/氛围页主动把 ai 配图作为候选提给用户(数据/
  列表/流程页仍走图表→§VII,不配装饰图)。仍全程 gated:用户在 h 确认 + imagegen
  自带成本门(提议免费,确认才花钱)。

附:scripts/config.py 的 INDUSTRY_COLORS 未移植(ppt-master 残留引用),strategist
文档表是实际依据,已直接在表里加商务红行。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 15:57:52 +08:00
..
anthropic feat(ppt): skill 重构为 SVG-first(移植 ppt-master,弃 python-pptx 版式件)(bump 0.33.0) 2026-06-29 16:38:58 +08:00
business-red feat(ppt): 加商务红品牌预设 + 配图默认主动提议(bump 0.33.5) 2026-06-30 15:57:52 +08:00
google feat(ppt): skill 重构为 SVG-first(移植 ppt-master,弃 python-pptx 版式件)(bump 0.33.0) 2026-06-29 16:38:58 +08:00
README.md fix(ppt): 修生成 PPT 缺图标(图标管线四层断点)+ 沙箱 SVG 预览渲染(bump 0.33.3) 2026-06-30 13:59:00 +08:00
brands_index.json feat(ppt): 加商务红品牌预设 + 配图默认主动提议(bump 0.33.5) 2026-06-30 15:57:52 +08:00

README.md

Brand Identity Presets

This directory holds brand-only templates: identity bundles (color / typography / logo / voice / icon style) without an SVG page roster. Strategist locks the brand's identity segment as truth; Executor designs pages freely under those constraints.

Brand is one of three template kinds in the library — alongside layouts/ (structure-only) and decks/ (full-PPT replica). Full data model: docs/zh/templates-architecture.md.

How brands are consumed

Brand application follows the same explicit-path rule as all template kinds at SKILL.md Step 3, and lands in the same project directory (<project_path>/templates/):

User input at SKILL.md Step 3 Behavior
An explicit brand directory path (e.g. templates/brands/anthropic/) Copy design_spec.md + logo files + asset subdirectories into <project_path>/templates/; Strategist locks identity segment
Bare brand name only ("use anthropic brand"), brand mention without path, or silence Skip — same mechanical rule as all template kinds: bare names never trigger
Brand path + layout path Fuse into one design_spec.md — brand owns identity segment (color / typography / logo / voice / icon style); layout owns structure segment (canvas / page roster). See SKILL.md Step 3.
Brand path + deck path Fuse — brand identity overrides deck identity; structure + middle segments come from deck
Brand path + layout path + deck path Three-way fuse — brand=identity, layout=structure, deck=middle
Two brand paths Conflict resolution prompt before fusion — user picks per-segment source

brands_index.json is discovery-only; listing brands never advances the pipeline.

Creating a new brand

Run the standalone workflow:

Read skills/ppt/workflows/create-brand.md

Three input paths are supported: brand asset (logo / brand site URL / branded PPTX / brand PDF), verbal spec dictated in chat, or empty skeleton for the user to fill in later.

Package structure

Every brand directory is self-contained:

templates/brands/<brand_id>/
├── design_spec.md            # required — brand identity spec (7 sections)
├── logo.<ext>                # optional — primary brand logo (single-lockup brands)
│   …or…
├── <brand>_wordmark.<ext>    # optional — wordmark variant (dual-lockup brands)
├── <brand>_mark.<ext>        # optional — symbol / icon variant (dual-lockup brands)
├── images/                   # optional — branded photos
├── illustrations/            # optional — branded illustrations
└── icons/                    # optional — branded icon overrides

Logo filenames are descriptive, not contractual — design_spec.md §IV lists the exact files and the contexts in which each is used. Single-lockup brands typically ship one logo.<ext>; dual-lockup brands (e.g. Google's wordmark + G mark) ship separately named files.

design_spec.md carries a YAML frontmatter block with kind: brand and is the single source of truth for the brand identity. The six required sections are: I Brand Overview / II Color Scheme / III Typography / IV Logo / V Voice & Tone / VI Icon Style.

Discovery index

brands_index.json is a slim machine-readable map (brand_id → { summary, primary_color }). It is refreshed by register_template.py --kind brand <brand_id> after a brand is created or edited.

Listing the index does not trigger any pipeline action — Step 3 triggers only on an explicit directory path supplied by the user, regardless of whether the brand appears in the index.