一键导入
create-brand-guidelines
Create or update a brand-guidelines.md file for any brand — the single source of truth for all branded content generation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create or update a brand-guidelines.md file for any brand — the single source of truth for all branded content generation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
End-of-session procedure that captures learnings into memory topic files, verifies index consistency, updates current-state.md, and syncs changes to team-lib.
Send an on-demand manual pulse to the ClickUp Pulse channel and optionally register thread-to-task mappings.
Graduated to team-lib — see team-lib/skills/session-debrief/. This stub demonstrates the my-lib → team-lib graduation pattern.
Add aliases, functions, or env vars to ~/.bashrc with section-aware placement
Check and upgrade local workspace files against latest team-lib templates
Compose base + type-override templates with brand tokens to produce fully resolved branded templates. Deep merges base+override, resolves tokenRef dot-paths against brand-tokens.json, and applies brand preference fan-out.
| name | create-brand-guidelines |
| description | Create or update a brand-guidelines.md file for any brand — the single source of truth for all branded content generation. |
| summary | Interactive skill that produces a structured brand-guidelines.md by ingesting source materials (style guides, PDFs, websites, logos), extracting brand tokens, validating coverage, and walking the user through gap-filling. Supports create mode (new brand) and update mode (existing brand). Outputs brand-guidelines.md and brand-tokens.json. |
| version | 1.2.0 |
| template | skill-definition |
| created | "2026-03-16T00:00:00.000Z" |
| last_updated | "2026-03-16T00:00:00.000Z" |
| maintainer | pvragon |
| dependencies | ["node"] |
| tags | ["branding","design-tokens","brand-guidelines","content-pipeline"] |
team-lib/context/indexed/companies/{brand-name}/brand/Source materials This skill (orchestration)
(PDFs, images, URLs, → Read/view materials, extract values,
existing configs) sample for user verification
↓
brand-guidelines-template.md
(blank template with all token paths)
↓
Populated brand-guidelines.md
(filled with extracted + user-provided values)
↓
parse-brand-guidelines.js --validate
(extract tokens, compute derivatives,
check accessibility, report coverage)
↓
brand-tokens.json
(W3C-aligned, machine-readable,
fully resolved — never hand-edited)
Start from scratch for a new brand. The agent:
Revisit an existing brand-guidelines.md. The agent:
Ask the user:
team-lib/context/indexed/companies/{brand-name}/brand/)If the company directory doesn't exist, create the folder structure:
mkdir -p team-lib/context/indexed/companies/{brand-name}/brand/assets
Ask the user for any available brand materials:
Read/view each provided material using your multimodal capabilities. Do not use external extraction scripts — read the materials directly.
From the source materials, extract values for as many tokens as possible. Track gaps as you go — partial extraction is expected and handled in Step 7.
Token mapping guide: Source materials rarely use our token names. Use this mapping:
| Source material says | Maps to token |
|---|---|
| Primary / main / brand color | color.brand.primary |
| Secondary / accent / highlight color | color.brand.accent |
| Third / tertiary / supporting color | color.brand.tertiary |
| Body / dark / default text | color.text.default |
| Muted / gray / secondary text | color.text.subtle |
| White text / text on brand color | color.text.onPrimary |
| Page / card / default background | color.background.default |
| Alternate / subtle / light background | color.background.subtle |
| Tinted / callout / highlight background | color.background.accent |
| Border / divider / rule color | color.border.default |
| Light border / separator | color.border.subtle |
| Link / hyperlink color | color.link.default |
| Heading font / display font | typography.font.primary |
| Body font (if different from heading) | typography.font.secondary |
| Code / mono font | typography.font.monospace |
From style guide images/PDFs:
From websites:
From existing configs:
From legacy SKILL.md brand guidelines:
Present a sample of 3-5 extracted values to the user for verification:
I extracted these values from your materials — can you confirm they're correct?
1. Primary color: #532BDA (Brand Purple) ← from style guide image
2. Font family: Inter ← from CSS/style guide
3. Accent color: #FF5455 (Secondary Red) ← from style guide image
4. Body weight: 400 (Regular) ← from typography spec
5. Dark text: #161129 ← from style guide image
Are these correct? (If yes, I'll apply all extracted values. If any are wrong, let me know which.)
If the sample is confirmed accurate, apply all extracted values to the template. If any are wrong, flag the source material as unreliable for that category and ask the user to provide correct values manually.
Create mode: Copy brand-guidelines-template.md from this skill's directory, fill in extracted values.
Update mode: Edit the existing brand-guidelines.md in place.
Frontmatter: Update the YAML frontmatter immediately:
summary: → one-line description of this brand (e.g., "Meridian Analytics brand guidelines — data analytics platform with ocean blue + amber identity")created: / last_updated: → today's datemaintainer: → keep as pvragon (or the brand owner if external)schema: brand-guidelines-v1 unchangedFill sections in this order:
For each section:
color.text.onPrimary is almost always white), fill with the value and add "(inferred)" in the Usage columnHeading Colors note: The Fallback column in the heading table is system documentation — it shows what the parser uses when the Hex column is blank. Do not modify the Fallback column. If the brand specifies an explicit hex for a heading level, put it in the Hex column; the explicit value always wins over the fallback.
Common case — single heading color: If the brand wants all headings in the same color (e.g., all primary blue), you MUST explicitly fill h1, h2, AND h3 in the Hex column. The h2 fallback defaults to the accent color, so leaving h2 blank gives it the wrong color. Set the strategy to primary-only and fill h1-h3 with the primary hex.
Template Metadata: Leave meta.coveragePercent, meta.tokenCount, meta.missingRequired, and meta.missingOptional blank for now — these are filled in Step 10 after the parser runs.
Present an agent-estimated coverage summary to the user. This is your own count based on the sections you just filled — the authoritative parser numbers come later in Step 9.
Brand Guidelines Coverage (estimated): [Brand Name]
Sections complete: 8/11
Tokens filled: ~45/67
Tokens inferred: 6 (marked in Usage column, verify when possible)
Tokens missing: ~16
Missing required:
- color.border.default
- color.border.subtle
- company.address
- company.phone
Missing optional:
- color.brand.tertiary
- color.link.hover
- color.link.visited
- typography.font.secondary
- [content-type preferences left at defaults]
Would you like to fill in any missing sections now, or save and continue later?
This estimate helps the user decide whether to continue filling gaps or move to validation. Exact numbers will be reported by the parser in Step 9.
For each missing section the user wants to complete:
Run the parser to generate the machine-readable token file:
node team-lib/skills/create-brand-guidelines/scripts/parse-brand-guidelines.js \
--input team-lib/context/indexed/companies/{brand-name}/brand/brand-guidelines.md \
--output team-lib/context/indexed/companies/{brand-name}/brand/brand-tokens.json
Run validation first, then coverage. Run these sequentially, not in parallel — --validate exits with code 1 when contrast failures exist, which can cancel a parallel --coverage call.
node team-lib/skills/create-brand-guidelines/scripts/parse-brand-guidelines.js \
--input team-lib/context/indexed/companies/{brand-name}/brand/brand-guidelines.md \
--validate
node team-lib/skills/create-brand-guidelines/scripts/parse-brand-guidelines.js \
--input team-lib/context/indexed/companies/{brand-name}/brand/brand-guidelines.md \
--coverage
Note: --validate exit code 1 means contrast failures were found — this is a report, not a crash. Proceed to --coverage regardless.
Present the final summary:
color.derivative section of the JSON to report the count)Contrast failures: If any color combination fails the brand's target contrast level:
After the parser has run, update the Template Metadata section at the bottom of brand-guidelines.md with the authoritative values:
| Field | Source |
|---|---|
meta.createdBy | Already filled in Step 5 |
meta.createdDate | Already filled in Step 5 |
meta.lastModifiedBy | Agent name or "create-brand-guidelines skill" |
meta.lastModifiedDate | Today's date |
meta.coveragePercent | From parser --coverage output (e.g., 83.2) |
meta.tokenCount | From parser --coverage output, format as N defined + M derived (e.g., 79 defined + 18 derived) |
meta.missingRequired | Comma-separated list from parser, or none if all required tokens are present |
meta.missingOptional | Comma-separated list from parser, or none if all optional tokens are present |
companies/{brand-name}/brand/The blank template is at:
team-lib/skills/create-brand-guidelines/brand-guidelines-template.md
Schema version: brand-guidelines-v1 (template v1.2.0)
| Section | Contains | Parsed into tokens? |
|---|---|---|
| Brand Personality | Visual identity description, color application rules | No — narrative guidance |
| Core Identity | Colors (brand, text, bg, border, link, status), extended palette | Yes |
| Typography | Font families, font weights | Yes |
| Logo Assets | Core logo tokens + additional variants table + usage notes | Core logos: yes. Variants/notes: no |
| Company Information | Name, legal name, address, contact | Yes |
| Voice & Tone | Tone, perspective, formality, avoidance | Yes |
| Heading Hierarchy | Per-level heading colors + strategy preferences | Yes |
| Content Presentation Preferences | Enumerated choices for 7 content types + free-text notes | Enums: yes. Notes: no |
| Accessibility | Contrast ratio targets | Yes |
| Template Metadata | Creation/modification tracking, coverage stats | Auto-filled |
Located at: team-lib/skills/create-brand-guidelines/scripts/parse-brand-guidelines.js
# Generate brand-tokens.json
node scripts/parse-brand-guidelines.js \
--input path/to/brand-guidelines.md \
--output path/to/brand-tokens.json
# Validate only (no output file)
node scripts/parse-brand-guidelines.js \
--input path/to/brand-guidelines.md \
--validate
# Coverage report only
node scripts/parse-brand-guidelines.js \
--input path/to/brand-guidelines.md \
--coverage
See my-lib/runtime/.tmp/260314-brand-tokens-schema-draft.json for the full schema with Pvragon example values. Key sections:
$schema + $generated — metadata and coverage statscolor.* — all colors in W3C { "$value", "$type", "$description" } formattypography.* — fonts and weights in W3C formatlogo.* — file paths, absolute paths, dimensionscompany.* — plain stringsvoice.* — plain stringspreference.* — native JSON types (string/number/boolean)accessibility.* — targets + computed contrast ratioscolor.extended.brandLight: F2EEFF), it takes precedence over the computed tint of the primary color.skills/brand-guidelines/ directory, now removed). Brand identity lives in context/indexed/companies/{brand}/brand/brand-guidelines.md.