Token导航 LogoToken导航

Agent Skill · 前端设计

brand(brand 搜索)

brand 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

brand 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描有提醒项,按安装量在前端设计类的 10,216 个 Skill 里排第 5,287。

总安装 703周安装 29GitHub Stars 55下载 230核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:brand(brand 搜索)
来源仓库:https://github.com/adobe/skills
仓库路径:skills/brand
安装命令:
npx skills add https://github.com/adobe/skills --skill brand
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/adobe/skills --skill brand

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

brand 用于从品牌指南中提取品牌标识并生成视觉品牌板供设计师审批。适用于用户提供品牌指南或要求修改品牌配置文件时的品牌梳理与视觉输出场景。通过 /stardust:brand 命令调用,需结合项目实际路径和配置文件使用。安装前请确认仓库权限、维护状态及是否涉及文件读写或外部内容处理。

brand 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/brand

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/adobe/skills --skill brand;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

brand 怎么安装?

在终端执行 npx skills add https://github.com/adobe/skills --skill brand。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

brand 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

brand 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

brand 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

brand 用的人多吗?

公开数据是累计安装 703 次,近一周安装 29 次,下载 230 次,GitHub 55 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

brand 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
brand

brand 搜索 · 本页

70355操作浏览器未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Brand Extraction

Extract brand identity from guidelines and produce a visual brand board for designer approval.

When to use this skill

  • The user provides brand guidelines (URL, PDF, or conversational description) and asks to extract, create, or capture brand identity.
  • The user asks to change, refine, review, critique, or iterate on stardust/brand-profile.json, stardust/brand-board.html, or .impeccable.md.
  • The user types /stardust:brand.

Do NOT use this skill

  • For page copy, headlines, or intent — those live in briefings. Hand off to briefings.
  • For visual layout, spacing, or prototype styling — those belong to prototype.
  • To render wireframes. Hand off to wireframes.

Pre-flight

Run the procedure in ../_shared/preflight.md first. .impeccable.md is optional input; if absent this skill may create it.

Contract

Needs (reads if present):

  • Brand URL, PDF, or conversational description from the user
  • .impeccable.md (design personality, if any)

Produces:

  • stardust/brand-profile.json
  • stardust/brand-board.html
  • stardust/assets/logo.<ext> (extracted or synthesized)
  • .impeccable.md (created or updated)

If missing:

  • No URL/PDF/anchor-set/description → deliver the "no reference" warning in the Inputs section below before synthesizing. If the designer proceeds without any reference, roll a deterministic random seed from ../_shared/divergence-toolkit.md §2, stamp _divergence.divergence_warning = true on the profile, and use the seed as a hard constraint on visual decisions. Stamp provenance per ../_shared/skill-contract.md.
  • No .impeccable.md → prefer the designer-authored path (see Phase 3). Only fall back to synthesis after the "last chance" prompt has been declined, and stamp authored_by: synthesized in frontmatter.

Inputs

The designer provides ONE of:

  1. Brand guidelines URL — a web-based brand guide (Corebook, Frontify, Brandfolder) or a live marketing site.
  2. Brand guidelines PDF — uploaded document.
  3. Reference anchor set — a moodboard URL (Are.na, Pinterest, Dribbble collection) OR 3–5 uploaded reference images with short context notes. This is NOT a brand guideline — it is a visual anchor that keeps the extraction honest.
  4. No reference (conversational) — the explicit escape hatch. See warning below.

When the designer has no reference

The skill defaults to requiring at least option 3 (anchor set). Before proceeding without any reference, stop and say, verbatim:

Without a reference, visual decisions will be synthesized from the assistant's defaults. The assistant has known recurring moves (see ../_shared/divergence-toolkit.md §1) that tend to appear across unrelated brands. Options: - Provide a reference anchor set (option 3 above) — 2 minutes, biggest divergence payoff. - Run /impeccable teach yourself first — produces a personal .impeccable.md that pushes back on assistant defaults. - Proceed anyway with source: conversation. The profile will be stamped with a divergence warning and the skill will roll a random seed per ../_shared/divergence-toolkit.md §2.

If the designer proceeds anyway, set _provenance.source = "conversation" and _divergence.divergence_warning = true in the emitted brand-profile.json. The skill then rolls a deterministic random seed from §2 of the toolkit (decade × craft × register) and uses it as a hard constraint on visual synthesis. Downstream skills read both flags and adjust.

Phase 1: Extract

If guidelines URL or PDF provided:

Always use a real browser (Playwright or equivalent) to extract brand signals from a URL. Do NOT rely on WebFetch or raw HTML — it misses JS-rendered copy, computed styles, and the visual identity cues that actually make a brand recognizable.

WebFetch inference produces generic brand profiles ("Inter body, pill buttons, deep blue accent") that could describe any product. The goal here is *specificity* — the quirks that make the brand itself, not a generic version of its category.

1. Drive a real browser

Use Playwright (Chromium, viewport 1440×900, deviceScaleFactor 2) to load the URL, wait for network idle + ~1.5s, then both:

  • Take screenshots — a hero clip (1440×900) and a full-page screenshot. Save to a scratch dir.
  • Evaluate computed styles in the page context and capture:

- :root / html CSS custom properties (brand often exposes design tokens here) - <body> computed background-color, color, font-family - All unique font-family values in use (walk body, body *) - First 10 headings: tag, text, font-family, font-weight, font-size, line-height, letter-spacing, color - First <p> body sample with the same style props — note color carefully (Arc uses rgba(0,0,0,0.65), not pure ink) - <em>, <i>, or [class*="italic"] elements — the italic display accent often lives here and is brand-specific (Exposure VAR, etc.) - First 8 CTAs (a[class*="button"], button, [class*="cta"]): text, background-color, color, border-radius, padding, font-family, font-weight. Capture multiple CTA variants — primary/inverted/inked patterns matter. - Section background colors (walk section, header, main > div) — surface a variant cream, a variant ink, or an off-white you'd otherwise miss - <img> and <svg> with logo/brand/hero classes — source paths - Meta tags, especially theme-color (the brand's official color), description, og:* - Hero copy text (first 6 h1/h2/p contents)

2. Identify identity traits, not just tokens

After extraction, explicitly look for and record:

  • Signature border-radius — brands often pick a specific non-round value (10px, 14px). Record it as componentStyle.borderRadius.default.
  • Body text opacity — is body copy at full ink or softened (e.g. 65%)? This is a recurring brand trait.
  • Display metrics — if headings run tight (line-height < 1.0, letter-spacing < -0.03em), capture both values verbatim. These feel-of-type details are what separate a real brand from a generic clone.
  • Multiple CTA patterns — if you see inked-black, branded-color, and inverted buttons, record all three with their exact styles.
  • Color variants for context — capture "cream on blue" as a separate color if the value differs from "cream on cream" (e.g. #FFFADD vs #FFFCEC).
  • Visual motifs beyond logos/colors — look at the screenshot and name them: dashed dividers, aurora gradients, squiggle separators, noise textures, hand-drawn elements. Add a motifs array to the brand profile with name, description, usage. These motifs are what signal the brand before a word is read.
2.5 Locate and save the real logo

The logo is a real asset — download it, don't synthesize it. Walk this fixed order and stop at the first hit:

  1. Inline <svg> inside the page header or <nav> — look for header svg, nav svg, [class*="logo" i] svg. Serialize the outer HTML and save as stardust/assets/logo.svg.
  2. <img> with a logo-shaped src or class — header img, nav img, img[src*="logo" i], img[class*="logo" i], img[alt*="logo" i]. Download the resolved URL. Prefer SVG; fall back to the highest-resolution PNG or WebP.
  3. <link rel="icon">, <link rel="apple-touch-icon">, og:image — in that order. These are branded marks even if not full wordmarks.
  4. Favicon — /favicon.ico or /favicon.svg at the site root. Last resort.
  5. No logo found — create a minimal placeholder SVG with the brand name as text, save to stardust/assets/logo.svg, and add "logo: synthesized placeholder — no mark found on source" to _provenance.synthesized_inputs.

Save all downloads to stardust/assets/ (not icons/ — the design phase is platform-agnostic; icons/ is a convention some downstream systems use, e.g. AEM Edge Delivery Services, which would leak structure into stardust).

Record the outcome in the brand profile's logo object:

"logo": {
  "path": "stardust/assets/logo.svg",
  "format": "svg",
  "source": "inline svg in <header> | <img src=...> | apple-touch-icon | favicon | synthesized"
}

For the PDF path, extract embedded images — prefer vector — and save the same way.

For the conversational path, synthesize a placeholder as described above and stamp _provenance.synthesized_inputs.

3. Voice examples from live copy

Pull real copy from the rendered page (hero headlines, CTAs, micro-copy) for voice.examples.do. Real examples beat invented ones. Note rhetorical devices — em-dashes, rhythmic triplets, single-word italic accents — and call them out in voice.rules.

4. PDFs and non-URL sources

If the input is a PDF or uploaded asset, read it directly (PDF viewer / Read tool) and extract palette, typography, and voice cues inline from the rendered pages. Playwright is the primary path for URLs; direct read is the path for static assets.

5. Write the profile

Map everything to the brand profile schema — consult brand-profile-schema.md.

Every brand-profile.json MUST start with a _provenance block per ../_shared/skill-contract.md. Populate:

  • generated_by: "brand"
  • date — today, ISO format
  • source — URL, PDF path, or "conversation"
  • extraction_method — the actual method used (e.g. Playwright string, PDF read, conversation only)
  • synthesized_inputs — enumerate every field the skill filled in but did not extract from source. Examples: "personas (mottos, values) — composed from extracted voice signals, not read from the page"; "contentPillars descriptions — inferred from nav + hero copy"; "voice.examples.dont — LLM-composed to match extracted voice rules". If you genuinely extracted every field from source, pass an empty array and note it.
  • screenshots — scratch paths

Readers use synthesized_inputs to decide what to trust. Be honest and specific. "Some fields" is not acceptable — list each one.

Do not emit a separate extraction block. All source-of-extraction info lives inside _provenance.

Pay special attention to:

  • Voice examples — do/don't copy pairs. Critical for content generation. Extract from live copy.
  • Photography direction — style rules, composition, subject matter. Feeds image generation.
  • Logo variants — primary mark always saved to stardust/assets/logo.<ext> (see Step 2.5). Additional variants (white-on-dark, mono, stacked) also go under stardust/assets/ with descriptive names like logo-white.svg.
  • Color roles — don't just capture hex, capture what each color is FOR (CTAs, headings, backgrounds, on-blue text).
  • Motifs — the non-obvious visual gestures. Without these the board reads as a generic palette.

If no guidelines (conversational):

  1. Run the soft-deps discovery decision before asking anything inline: If /brainstorm is registered in this session (detect per ../_shared/soft-deps.md): hand off to /brainstorm with a seeded prompt naming the brand (if known) and the discovery topics below. Wait for its output; use the result to populate brand-profile.json. Do NOT run an inline interview once this delegation is made. Otherwise (superpowers not installed): announce the fallback exactly once per session, using the verbatim text from ../_shared/soft-deps.md ("superpowers announcement"). Then run the inline interview. Either path covers the same topics: brand name, mission, target audience, personality (3-5 adjectives), colors they like/dislike, typography preference (serif/sans/mixed), photography style, competitive positioning. The user must be able to tell which path ran — either by /brainstorm's visible hand-off UI or by the one-time announcement. Silent inline interviews are a bug.
  2. From the conversation, construct stardust/brand-profile.json with whatever was discussed.
  3. Mark optional fields as null — the designer can fill them in later.

Phase 2: Palette Selection

Before writing the palette into brand-profile.json, the designer picks from a set of candidate palettes pulled from the bundled library at ../_shared/palettes/. Every candidate palette's colors come from coolors.co/palettes/trending and carry a source URL back to the original — zero assistant-invented hexes.

See ../_shared/palette-picker.md for the full classifier vocabulary, filter scoring rules, and HSL helpers. See reference/pick-ui-template.md for the UI structure and template.

Skip this phase when

  • The brand has authoritative guidelines and the URL/PDF extraction produced a real palette — use the extracted palette as-is (record _divergence.palette_source.method = "extracted-from-source").
  • The designer explicitly provides a palette file at stardust/palettes/brand.json — use it verbatim (method = "designer-provided").
  • Running in fully-automated pipeline mode with no description — fall back to auto-classification from brand voice + seed (method = "auto-classified").

Otherwise, run all six steps below.

Step A · Derive the palette description

  1. If the designer provides a natural-language palette brief (e.g. *"freaking bold and shocking"*, *"clean and superbly engineered"*, *"muted sage, considered"*), use it verbatim.
  2. Otherwise synthesize one short descriptor from: Example: for a Lagos dance collective with seed 1960s × folded-paper × travel-brochure × saturated, a reasonable synthesized description is *"bold youthful outdoor, 1960s travel brochure, saturated"*.

- the brand's content pillars, - the brand voice traits, - the seed triple from _divergence.seed (decade × craft × register), - any ground-family hint from _divergence.seed.ground.

Stamp the description in _divergence.palette_source.description_used.

Step B · Classify the description

Apply the keyword vocabulary from ../_shared/palette-picker.md § 1 to extract the five descriptor dimensions:

  • energy (1–5)
  • contrast (1–5)
  • saturation_level (1–5)
  • hue_bias (hot / warm / mustard / green / teal / cool / violet / neutral / rainbow)
  • ground_family (cream / stark-white / pale-gray / saturated / dark / monochrome-tint)

Any dimension the description doesn't trigger keywords for stays null (no constraint). Keyword matching is whole-word, case-insensitive. Record the full classification in _divergence.palette_source.classification.

Step C · Filter and score the library

Load palettes from ../_shared/palettes/ — either from the consolidated library.json or by walking each <ground-family>/*.json file. Apply the filter scoring from ../_shared/palette-picker.md § 2:

  • ground_family exact match: +100
  • hue_bias exact match: +50 / loose match (hue group): +20
  • saturation_level difference: max(0, 30 − 10·diff)
  • energy difference: max(0, 20 − 8·diff)

Keep palettes with score > 0. Sort descending by score. Take the top 5 as candidates.

Compute the recommended pick via byte[0] of MD5(description + YYYY-MM-DD) mod len(top_5). This is the default the designer can accept with a single keypress; the others are alternatives at the same score tier.

Step D · Render the pick UI

Write stardust/_palette-pick.html following the template structure in reference/pick-ui-template.md:

  • Shows the description and the classifier output at the top
  • Renders the 5 candidates as numbered cards (1 = recommended, 2–5 = alternatives)
  • Card 1 gets a gold border and larger swatches
  • Each card: swatches with hex labels, anchor marker (★), cream-family flag if present, palette name linked to Coolors source, classification tags
  • Footer instruction: "Tell the assistant a number (1–5), a palette name, or 'refine' to change the description."

Immediately after writing the file, open it in the designer's default browser per ../_shared/skill-contract.md *Opening HTML artifacts*. On macOS: open stardust/_palette-pick.html. Do not require the designer to open it manually.

Then say:

"Your palette pick UI is open. Five candidate palettes from the library. Tell me a number (1–5), a palette name, or 'refine' to change the description."

Step E · Designer picks

Wait for the designer's input. Valid responses:

  • Integer 1–5 → pick that card
  • Palette name substring match → pick the matching card
  • refine / none → re-ask Step A for a new description, re-run B–D
  • pick / Enter → accept the recommended (index 1)

Pipeline automation: when invoked as part of a full end-to-end pipeline run (no interactive designer), auto-accept the recommended pick and continue.

Step F · Record and write to brand-profile

Write the chosen palette into the in-memory brand profile (not yet on disk — Phase 4 writes the file). Each Coolors hex becomes a colors.primary[] entry:

{
  "name": "Ankara Burnt Orange",   // brand-native if the designer names it, else derived from Coolors palette name + swatch-role
  "hex": "#DD5B26",                 // from the picked palette
  "role": "Ankara",                 // brand-native role (see brand-profile-schema.md token-level enforcement)
  "use": "primary saturated ground, CTA fill"  // technical qualifier
}

Role-naming rule from reference/brand-profile-schema.md Role Naming — enforced applies: no Primary / Accent / Brand / Background / Neutral tokens in the role field. If the designer hasn't provided brand-native role names, derive from the brand's subject matter (e.g., "Bar Beach", "Grove", "Lamination").

Record the full chain in _divergence.palette_source:

"palette_source": {
  "method": "library-pick",
  "library_version": "v0.6.0",
  "library_source": "coolors.co/palettes/trending (scraped 2026-04-24)",
  "description_used": "freaking bold and shocking",
  "classification": {
    "energy": 5, "contrast": 5,
    "saturation_level": null, "hue_bias": null,
    "ground_family": "saturated"
  },
  "candidates_shown": [
    { "index": 1, "name": "...", "source": "https://coolors.co/..." },
    { "index": 2, "name": "...", "source": "..." },
    "...up to 5..."
  ],
  "recommended_index": 1,
  "picked_index": 1,
  "picked_palette_name": "Autumn Glow",
  "picked_palette_source": "https://coolors.co/780116-f7b538-db7c26-d8572a-c32f27"
}

Leave the _palette-pick.html file on disk as an audit record.

Phase 3: Design Personality

.impeccable.md captures the designer's *taste* — references, pet peeves, which rules to bend — signal that can't be inferred from the brand profile alone. It's produced by an interactive interview and used as a quality gate by downstream skills.

Authorship matters

.impeccable.md has two authorship paths that downstream skills treat differently:

  • Designer-authored (via /impeccable teach or the inline interview answered by the designer) — strong quality gate. Downstream skills enforce its rules.
  • Synthesized (fallback, LLM-authored without designer input) — weak hint. Downstream skills render a visible banner on brand boards and prototypes: *"Design personality was synthesized by the assistant, not authored by the designer. The rules below reflect assistant defaults. Run /impeccable teach to replace."*

Every .impeccable.md file MUST open with frontmatter that declares authorship:

---
authored_by: designer       # or: synthesized
author_date: YYYY-MM-DD
source: "/impeccable teach interview"   # or: "brand skill inline interview" | "brand skill synthesis fallback"
strength: strong             # designer → strong; synthesized → weak
---

Downstream skills key off strength. A file without this frontmatter is treated as weak.

Path selection

This phase is delegated when possible; otherwise it runs a lighter inline interview.

If the impeccable plugin is installed (/impeccable teach is registered), pause and recommend to the designer:

Before we render the brand board, run /impeccable teach in the prompt. It will interview you about design personality (references, do's and don'ts, taste) and write .impeccable.md. Downstream quality gates read this file. This is optional but recommended. You can also skip it — we can always run /impeccable teach later and re-refine. Reply "skip" to continue without it, or run the command now and then ask me to continue.

Wait for the designer to either run /impeccable teach (then resume) or explicitly say "skip". When teach runs, it stamps authored_by: designer. On "skip" without teach running, proceed to the "last chance" prompt below.

If impeccable is not installed, use the "For brand discovery" variant in ../_shared/fallback-brainstorm.md to run a short personality interview. The designer answers — stamp authored_by: designer, source: "brand skill inline interview".

Last-chance prompt before synthesis

Before the skill synthesizes .impeccable.md on its own (no designer interview), stop and ask:

Before I synthesize .impeccable.md myself, would you rather answer three quick questions? References you like, things that annoy you, one rule you want broken. Three minutes, and the file reflects your taste instead of my defaults. Reply "ok" to do the interview, or "synthesize" to proceed without.
  • Reply "ok" → run the three-question inline interview, write the file with authored_by: designer.
  • Reply "synthesize" → write the file with authored_by: synthesized, strength: weak, and include the banner language in its body so downstream skills surface it.

Never invent .impeccable.md content from the brand profile alone without declaring it synthesized — that provides no signal beyond what's already captured, and stamping it as "designer" would mislead downstream quality gates into enforcing assistant defaults as if they were designer taste.

Skip this phase when

  • .impeccable.md already exists. (Read its frontmatter; do not overwrite.)
  • Invoked as part of a full end-to-end pipeline run — but still present the last-chance prompt before synthesis unless the designer has explicitly opted out of it for the pipeline run.

Phase 4: Render Brand Board

  1. Read stardust/brand-profile.json.
  2. Generate stardust/brand-board.html following the template in reference/brand-board-template.md. Render the data contract sections in the canonical order.
  3. The board must:

- Use the brand's own extracted colors and fonts - Derive the page ground from the brand palette (see ../_shared/divergence-toolkit.md § 2.5 Ground-color seed). Do not default to cream or any cream rebrand (vellum, kami, bone, ivory, eggshell). - Include sticky navigation for section jumping on long boards - Render only sections that have data (omit sections for null fields) - Be self-contained HTML with embedded CSS (no external JS)

  1. Render the logo with <img src="assets/logo.svg"> per reference/brand-board-template.md — never inline the SVG.
  2. Open the file in the designer's default browser per ../_shared/skill-contract.md *Opening HTML artifacts*. On macOS: open stardust/brand-board.html.
  3. Then say: "Your brand board is open. Review and approve, or tell me what to change."

- In SLICC: the board also renders in the browser panel automatically; the open command is harmless. - In pipeline-automation mode (end-to-end auto-approve): skip the open.

Phase 5: Approval Gate

This is a hard gate in interactive mode. Do not proceed until the designer approves.

Pipeline automation: When invoked as part of a full pipeline run (e.g., the user asked to run all stardust stages end-to-end with auto-approve), skip the interactive approval loop. Auto-approve and continue to the next stage. The user can always come back to refine later.

Present the brand board and ask: "Does this accurately represent your brand? What needs to change?"

Common feedback and how to handle it:

  • "That color is wrong" → Update the hex in brand-profile.json, re-render the board
  • "The voice feels too [formal/casual/etc]" → Update voice traits and examples, re-run /teach to update.impeccable.md
  • "Missing our secondary font" → Add to typography section, re-render
  • "Photography direction is off" → Update photography rules, re-render

Iterate until the designer says the board looks right. Then:

  1. Confirm the brand profile is saved
  2. Confirm.impeccable.md exists
  3. Tell the designer: "Brand extraction complete. Run /stardust to see your next step. Briefings (/stardust:briefings) can be written in parallel; once brand and briefings are ready, choose /stardust:wireframes for a grey structural pass, or jump straight to /stardust:prototype."

Artifacts Written

FileDescription
stardust/brand-profile.jsonStructured brand tokens (source of truth)
stardust/brand-board.htmlVisual brand board (rendered view)
.impeccable.mdDesign personality for quality gates
stardust/assets/logo.<ext>Primary logo mark — SVG preferred, PNG fallback. Additional variants also under stardust/assets/.

平台分布

Codex

38.89%
按下载量换算89

Claude

30.45%
按下载量换算70

Cursor

18.85%
按下载量换算43

Gemini CLI

9.3%
按下载量换算21

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills