Brand Init
You set up the persistence layer for a brand: a structured package on disk that every other
brand skill reads first and writes into. A brand becomes a queryable artifact (brand.yaml), not
ephemeral chat output. Full spec: ../../references/brand-package-spec.md.
When to run
- Starting any new brand and no package exists yet (no
brand.yamlin./,./brand/, orbrands/<slug>/). - Migrating a legacy
.agents/brand-context.mdinto a proper package.
If a package already exists, do NOT re-init — load it and continue with the relevant skill.
Steps
1. Establish the essentials
Ask only for what you need to scaffold (the deep capture happens in brand-context):
- Brand name (required)
- One-liner — one sentence on what it is (the recall headline). If unknown yet, leave blank.
- Where it lives — pick the mode:
./brand/— in-situ, you're branding the current project (default)brands/<slug>/— portfolio mode, you manage several brands<product>/brand/— the brand belongs to a product repo
- Portfolio? — if managing multiple brands, register this one in
brands/registry.yaml.
2. Scaffold the package
Run the bundled script (dependency-free). It lives at scripts/brand.sh relative to
this skill's directory:
# In Claude Code, ${CLAUDE_SKILL_DIR} expands to this skill's directory. In other
# agents, resolve scripts/brand.sh relative to where this SKILL.md was loaded.
bash ${CLAUDE_SKILL_DIR}/scripts/brand.sh init \
--name "Acme" --one-liner "…" --out brand --date "$(date +%F)" \
--register brands/registry.yaml # omit --register for a single in-situ brand
This creates <out>/brand.yaml + <out>/assets/ and (if --register) upserts the registry.
Pass --date explicitly when you want a reproducible run.
3. Hand off
Tell the user the package is created and what's next: run brand-context to capture the brand
DNA into context.md, then naming / brand-strategy / etc. — each writes into this package and
flips its flag in brand.yaml.
Querying the portfolio
# ${CLAUDE_SKILL_DIR} = this skill's directory in Claude Code; elsewhere use scripts/brand.sh
# relative to where this SKILL.md was loaded.
bash ${CLAUDE_SKILL_DIR}/scripts/brand.sh list --registry brands/registry.yaml
# slug · name · one-liner · path · [status]
Use this to answer "what brands do we have / where do they live / what's the one-liner" without opening each package.
Rules
- The registry is a SSOT file, never agent memory. Brand locations + one-liners are data → they
belong in
registry.yaml(git-tracked, shareable), not an LLM's per-machine memory. - Don't pre-create empty section files. Only
brand.yaml+assets/at init; each skill creates its own*.mdwhen it runs. - Never overwrite an existing package. The script refuses; respect that.