返回 ppt-master
create-brand.md
1 ---
2 description: Create Brand workflow for an identity-only reusable workspace without an SVG page roster.
3 ---
4
5 # Create Brand Workflow
6
7 Enter this child workflow only after [`Create Template`](../create-template.md) dispatches `kind: brand`.
8
9 ## Responsibility Boundary
10
11 | Owner | Responsibilities |
12 |---|---|
13 | Create Template | Child-workflow dispatch plus the shared `library` / `project` scope, confirmation gate, collision preflight, registration, completion, and Generate PPTX handoff contract |
14 | Create Brand | End-to-end brand-specific analysis, identity brief, identity-only `design_spec.md`, adopted brand assets, and brand-specific validation |
15
16 **Hard rule — child workflow, not a top-level route**: Create Brand executes only inside Create Template. It uses the parent workflow's single shared confirmation/preflight/registration contract and never creates a competing entry route or second confirmation gate.
17
18 **Hard rule — identity only**: A brand owns color, typography, logo, voice, and icon style. It owns no canvas, spacing system, page roster, SVG prototype, Master/Layout graph, placeholder contract, or preview PPTX.
19
20 ## Invocation Points
21
22 1. Use §1–2 below for brand analysis and identity fields, then execute Create Template Steps 2–3 with those child-owned fields.
23 2. After Create Template Step 4 resolves and preflights `<template_workspace>`, use §3 to materialize the confirmed identity.
24 3. Run §4, then return its evidence to Create Template Steps 5, 7, and 8. Create Brand always skips shared Step 6.
25
26 ## 1. Brand Input Analysis
27
28 | Input | Read path | Facts it may support |
29 |---|---|---|
30 | SVG logo | Read the SVG and inspect literal `fill` / `stroke` values | Logo asset and literal colors |
31 | PNG/JPG logo | Inspect visually | Logo asset and approximate colors |
32 | Official brand site or manual | Convert/read the source | Published colors, fonts, voice, usage restrictions |
33 | Branded PPTX/PDF | Use the existing source converters and theme/package facts | Observed colors, typography, logo assets, and tone |
34 | Pasted text, Markdown, or text document | Use direct text or the parent workflow's converted text output | Explicit identity values, usage rules, voice, and restrictions |
35 | Verbal brief | Use the user's words directly | Any identity field the user explicitly supplies |
36 | Mixed reference bundle | Run every applicable row and retain per-source provenance | Combined identity evidence; unresolved conflicts go to the shared confirmation gate |
37 | No reference | No analysis | Empty skeleton only when the user explicitly requests it |
38
39 Use these provenance labels in the proposal and final Color Scheme table:
40
41 - `fact` — literal value from an official asset or manual.
42 - `user` — value explicitly authored by the user, whether in chat, pasted text, or a user-written brief file.
43 - `approx` — visual estimate or pattern observed in an existing deck/site.
44
45 **Hard rule — no inferred brand truth**: Do not promote a visual estimate, presentation convention, or observed neutral into an official brand fact. Do not invent semantic success/warning/error colors.
46
47 ## 2. Identity Brief Fields
48
49 Surface these through Create Template's single shared Step 2–3 gate:
50
51 | Field | Requirement |
52 |---|---|
53 | Brand display name and use cases | Required |
54 | Primary color | Required; `#RRGGBB` plus provenance |
55 | Secondary/accent/text/background colors | Include only when confirmed or supported by evidence; every written color uses `#RRGGBB` plus provenance |
56 | Title/body typography | Required; retain provenance in surrounding prose when it is not official |
57 | Logo | Optional; identify the default presenting entity, file, usage rule, and any trademark restriction |
58 | Voice and tone | Required; formality, grammatical person, emoji policy, abbreviation policy |
59 | Icon style | Required; `linear`, `filled`, `duotone`, or a confirmed custom description |
60 | Adopted assets | Optional; list included and excluded candidates with reasons |
61
62 When the user explicitly requests an empty skeleton, all identity values remain TODO comments, materialization stops after writing the file, and Create Template reports that the workspace is incomplete and unregistered.
63
64 ## 3. Materialize the Confirmed Brand
65
66 Create Template supplies an already resolved and collision-checked `<template_workspace>`. Write only:
67
68 ```text
69 <template_workspace>/
70 ├── templates/
71 │ └── design_spec.md
72 ├── images/ # optional; logo/photos/illustrations only when adopted
73 └── icons/ # optional; branded icon overrides only when adopted
74 ```
75
76 Do not create optional directories or `exports/` solely to retain empty paths. An initialized project may already contain empty scaffolding; leave it untouched and do not report it as Brand output. Bitmap references from `templates/design_spec.md` use `../images/<name>`; branded icon references use `../icons/<name>`.
77
78 Write this personality-only schema:
79
80 ```markdown
81 ---
82 brand_id: <confirmed slug>
83 kind: brand
84 summary: <one-line use case>
85 primary_color: "#XXXXXX"
86 ---
87
88 # <Display Name> Brand Specification
89
90 > Identity-only preset. No SVG page roster — pages are composed freely under these constraints.
91
92 ## I. Brand Overview
93 | Property | Value |
94 |---|---|
95 | Brand Name | <display name> |
96 | Use Cases | <summary> |
97 | Tone | <one-line tone summary> |
98 | Sources | <official URL or bundled asset paths; include version/retrieval date when known> |
99
100 ## II. Color Scheme
101 | Role | HEX | Provenance |
102 |---|---|---|
103 | primary | #XXXXXX | fact \| approx \| user |
104 | secondary | #XXXXXX | fact \| approx \| user |
105 | accent | #XXXXXX | fact \| approx \| user |
106
107 ## III. Typography
108 | Role | Family | Weight |
109 |---|---|---|
110 | title | <family> | <weight> |
111 | body | <family> | <weight> |
112
113 ## IV. Logo
114 - File: `../images/logo.<ext>` or `none`
115 - Usage: cover-only \| every-page \| never
116
117 ## V. Voice & Tone
118 - Formality: formal \| neutral \| casual
119 - Person: informal-you \| formal-you \| we \| none
120 - Emoji: allowed \| forbidden
121 - Abbreviations: spell-out-first \| common-abbrev-allowed
122
123 ## VI. Icon Style
124 - Preference: linear \| filled \| duotone \| <custom>
125
126 ## VII. Visual Assets
127 - Include this section only when real `images/` or `icons/` assets exist.
128 ```
129
130 Preserve a supplied logo's extension. When multiple lockups exist, use descriptive filenames and name exactly one default presenting entity. Keep subsidiary/campaign alternates explicit; create another brand workspace when their identity differs materially.
131
132 ## 4. Brand Validation
133
134 Return these facts to Create Template:
135
136 - `templates/design_spec.md` exists and contains `brand_id`, `kind: brand`, `summary`, and `primary_color`.
137 - `brand_id` matches the confirmed workspace ID in library scope.
138 - Required sections I–VI exist; Page Roster and Signature Design Elements do not exist.
139 - No `*.svg`, `native_structure_mode`, Master/Layout, placeholder, canvas, or page-count fields were written.
140 - Every color is `#RRGGBB`, the primary table row matches frontmatter, and provenance is `fact`, `approx`, or `user`.
141 - Every referenced asset exists under the same workspace; this workflow created no optional directory or `exports/` directory solely to leave it empty. Pre-existing initialized-project scaffolding is allowed and remains untouched.
142
143 For both scopes, Create Template Step 5 validates the portable Brand contract without registration:
144
145 ```bash
146 python3 skills/ppt-master/scripts/svg_quality_checker.py "<template_workspace>/templates" --template-mode
147 ```
148
149 For `library` scope, additionally validate the directory/index identity with:
150
151 ```bash
152 python3 skills/ppt-master/scripts/register_template.py <brand_id> --kind brand --dry-run
153 ```
154
155 After that gate passes, Create Template Step 7 registers with:
156
157 ```bash
158 python3 skills/ppt-master/scripts/register_template.py <brand_id> --kind brand
159 ```
160
161 For `project` scope, run only the shared validator, skip both registrar commands, and report `Not registered (project workspace)`. Downstream consumption always uses the explicit workspace root through Generate PPTX Step 3; a bare brand name never activates it.
162
162 lines MARKDOWN