Skills / Skills / Mimic Build Brief
All skills

/ skill

mimic-build-brief

Skills/mimic-build-brief.md

Interactively build a Brand DNA brief and write it to Wiki/Mimic/Briefs/

Open as raw file

Run this skill

Heads up — this skill doesn’t have a structured form yet, so type the full prompt with all decisions baked in (the subprocess can’t answer follow-up questions). Edit me if needed.

Runs with bypassPermissions — local dev only.

mimic-build-brief

You are co-authoring a Brand DNA Brief with Adam — a structured profile that drives every Mimic generation. This is more compressed than Brands/{slug}/BrandContext.md (which is long-form prose); the brief is a single YAML record optimized for in-prompt injection.

Inputs

  • brand_name — human display form
  • slug — pre-computed kebab-case slug
  • parent_brand — optional
  • prefill_from"existing" (read Brands/{slug}/BrandContext.md) or "scratch"

Step 1 — Pre-fill (if requested)

If prefill_from == "existing" and Brands/{slug}/BrandContext.md exists:

  • Parse its frontmatter and headings (positioning one-liner, mission, tone, audience, voice).
  • Pre-fill the corresponding sections of the brief object.
  • Walk Adam through ONLY the gaps (skip sections already populated unless he asks to refine).

If prefill_from == "scratch" or no BrandContext exists: full Q&A.

Step 2 — Walk through sections

For each section below, use AskUserQuestion with focused, short questions. Skip a section gracefully if Adam says "skip" or "not relevant" — write empty strings/arrays, never null/undefined.

2.1 Positioning

  • positioning.one_liner — "What's the brand's one-line positioning?"
  • positioning.category — "What category does it compete in?"
  • positioning.differentiator — "What's the differentiator vs the rest of the category?"

2.2 Audience

  • audience.primary.description — "Who's the primary audience? One sentence."
  • audience.primary.demographics — "Demographics (age range, income, location, etc.)"
  • audience.primary.psychographics — "Psychographics — what do they care about, fear, aspire to?"
  • Ask if there's a secondary segment. If yes, repeat the trio.

2.3 Personas (loop — interactive)

For each persona, ask:

  • name — "Persona name (e.g. 'Skeptical Sam')"
  • age_range — "Age range"
  • role_or_identity — "Role / identity (e.g. 'mid-career operator')"
  • pains — comma-separated list, then split. "Top 3 pains?"
  • desires — "Top 3 desires?"
  • triggers — "Top 3 buying triggers?"
  • objections — "Top 3 objections?"

After each persona, AskUserQuestion:

  • Add another persona
  • Done — move on

2.4 Emotional hot buttons

  • "5–10 emotional hot buttons (comma-separated). What does this audience react to?"

2.5 Claims guardrails

  • can_claim — "Claims you CAN make (FDA-safe, evidence-backed)"
  • cannot_claim — "Claims you CANNOT make (legal/compliance forbids)"
  • requires_disclaimer — Loop: for each restricted claim, ask "Claim → Disclaimer pairing?" until Adam says done.

2.6 Tone of voice

  • descriptorAskUserQuestion: accessible / premium / technical / irreverent / warm / authoritative / playful (multi-select OK; concatenate with " · ")
  • do — "3–5 things the voice should DO"
  • avoid — "3–5 things the voice should AVOID"
  • examples — "2–3 example sentences in this voice"

2.7 Visual identity

  • colors.primary — hex
  • colors.secondary — array of hex (comma-separated)
  • colors.accent — hex (optional)
  • typography.display — "Display font name"
  • typography.body — "Body font name"
  • imagery_style — "How should imagery look? (e.g. 'photoreal warm-tone product hero on neutral backdrop')"
  • mood — "Mood adjective(s) (e.g. 'confident, scientific, calm')"

2.8 Proof assets

Loop. For each:

  • typeAskUserQuestion: testimonial / stat / certification / press / before-after / other
  • asset — the actual claim/quote/image/url
  • source — optional citation

2.9 Offer stack

Loop. For each offer:

  • name
  • description
  • price_signal — optional (e.g. "$24.95/mo")
  • promo_lines — optional list of promotional taglines

2.10 Phrase library

  • approved_phrases — comma-separated list
  • banned_phrases — comma-separated list

Step 3 — Compile the brief

Assemble the full BrandDNABrief object:

type: brand-dna-brief
slug: {slug}
brand_name: {brand_name}
parent_brand: {parent_brand or omit}
created: {now ISO}
last_updated: {now ISO}
positioning: {...}
audience:
  primary: {...}
  secondary: {...}   # only if present
personas: [...]
emotional_hot_buttons: [...]
claims_guardrails: {...}
tone_of_voice: {...}
visual_identity: {...}
proof_assets: [...]
offer_stack: [...]
approved_phrases: [...]
banned_phrases: [...]

Strip undefined: walk the object, drop any key whose value is undefined or null. Use [] for empty arrays, "" for empty strings. js-yaml refuses to serialize undefined.

Step 4 — Write the brief

Write to Wiki/Mimic/Briefs/{slug}.md. Frontmatter holds the full record. Body is a one-paragraph human summary.

Step 5 — Log

Invoke Skills/log-operation.md with operation mimic-build-brief, slug {slug}, sections completed (count of populated), prefilled (boolean).

Report to Adam

✓ Saved brief at Wiki/Mimic/Briefs/{slug}.md
   {n} personas · {n} proof assets · {n} offers
   sections populated: {list}
   sections empty: {list — flag these for follow-up}
Try: /mimic generate brief={slug} template=... ...