m-get-branding

star 2

Agent M repo-maintenance skill for collecting or refreshing reusable client branding assets in this repo. Use when sourcing official client logos, updating assets/client-logos, building client-first assets/brand-themes, validating source metadata and contrast, and documenting how to sync those assets into bi-presentation-builder only when explicitly asked. This is an Agent M maintenance skill, not a shared BI reporting skill.

viral-nation By viral-nation schedule Updated 6/5/2026

name: m-get-branding description: Agent M repo-maintenance skill for collecting or refreshing reusable client branding assets in this repo. Use when sourcing official client logos, updating assets/client-logos, building client-first assets/brand-themes, validating source metadata and contrast, and documenting how to sync those assets into bi-presentation-builder only when explicitly asked. This is an Agent M maintenance skill, not a shared BI reporting skill. version: 0.3.0-alpha status: repo-only owner: bi-team last_reviewed: 2026-05-12 compatible_with: agent-m >= 0.3.0-alpha

m-get-branding

Collects and reviews reusable client branding for Agent M. The default output is root-level source assets only:

  • assets/client-logos/<client-slug>/
  • assets/brand-themes/<client-slug>/
  • relevant root asset indexes and durable status docs
  • 00_output/ for generated review notes or exports when no destination is specified

This skill must not update skills/bi-presentation-builder/assets/ unless the user explicitly asks to sync branding into the presentation builder.

When To Use

Use this skill when the user asks to:

  • add or refresh a client, platform, parent-company, sub-brand, or partnership logo
  • build or refresh a client-first brand theme
  • review branding files produced by another agent
  • turn a logo/brand-source handoff into reusable Agent M assets
  • prepare instructions for a later bi-presentation-builder asset sync

Do not use this skill for ordinary report/deck generation. Use bi-presentation-builder only after a BI narrative and payload are ready.

Required Inputs

Minimum:

  • client or brand name
  • target slug, or enough context to create one in lowercase kebab-case
  • source evidence: official brand center, media room, newsroom logo library, press kit, brand kit, client-provided file, official site/app asset, or clearly documented public source
  • user-dropped files in 00_input/, when the user provides local logos, decks, PDFs, screenshots, or brand books there

Helpful:

  • parent/child brand relationship
  • target market or locale, when the user wants a non-U.S. brand source
  • partnership components, such as two brands that should be rendered side by side
  • preferred output medium: deck, dashboard, HTML presentation, or all three
  • client-provided brand book, deck, CSS, or campaign brief
  • category fallback when no brand sources exist

Output Contract

For each reviewed brand, create or update:

assets/client-logos/<client-slug>/README.md
assets/client-logos/<client-slug>/logo-color.svg|png|jpg when a reusable official file is available
assets/brand-themes/<client-slug>/theme.json
assets/brand-themes/<client-slug>/README.md

Update root indexes only when the change affects lookup, known gaps, or refresh recommendations:

assets/client-logos/README.md
assets/brand-themes/README.md
assets/README.md

Update durable continuity when the work changes repo state or policy:

docs/maintainer/status.md
docs/maintainer/current-plan.md
docs/maintainer/handoff.md

Hard Boundaries

  • Do not update skills/bi-presentation-builder/assets/{brand-themes,client-logos}/ unless the user explicitly says to sync or publish the branding into the presentation builder.
  • Do not edit build/, legacy dev/, prod-v*/, or generated ZIPs.
  • Do not mark a theme approved unless the user, client, or accountable reviewer explicitly accepted it for reuse.
  • Do not treat a search-result thumbnail, random presentation template, untraceable color extractor, or aggregator page as final brand authority.
  • Do not use non-U.S. brand sites, regional parent-company pages, or regional CDNs by default. Use them only when the user explicitly names that market or supplies those files.
  • Do not add secrets, private exports, local machine paths, or internal channel names to shared asset metadata.
  • Do not invent a standalone logo for partnership products. Use logos.primary: null and document component-logo rendering.

Source Priority

Prefer sources in this order:

  1. Client-provided brand book, press kit, media kit, or approved deck.
  2. Official U.S. brand/media/press kit, newsroom logo library, or downloadable media-library asset.
  3. Official U.S. brand center, official U.S. site CSS/assets, official app shell, or official U.S. CDN file.
  4. Official parent-company or sub-brand source that clearly governs the target brand.
  5. Non-U.S. official brand, parent-company, or CDN source only when the user explicitly scopes that market.
  6. Public reference assets with clear provenance and licensing, such as Wikimedia files, when official sources are unavailable and the user has accepted the caveat.
  7. Category archetypes only as fallback assistance, never as brand authority.

Official media-library assets outrank small header/navigation assets when both are available. If the live brand site visual differs from the media-library mark, keep the media-library asset as primary unless a clean reusable official site asset can be downloaded. Document the mismatch in the logo README and theme README. Do not use third-party PNG variants as primary, even when they visually match the live site.

Search official domains for these terms before declaring a logo gap:

  • media kit
  • press kit
  • brand kit
  • brand assets
  • media room
  • newsroom
  • media library
  • logos
  • download
  • highres
  • high-res
  • high resolution

Check parent-company newsroom or media-library domains when sub-brand sites hide assets behind bot protection, expose only lazy-load placeholders, or provide only small header/navigation logos.

If a clean official logo file is not exposed, set logos.primary: null, mark the theme draft-unverified, and document the missing logo gap. Do not fill the gap with third-party logo sites or search-result thumbnails.

Set status from evidence:

  • approved: explicit user/client/accountable-reviewer acceptance is recorded.
  • draft-reviewed: sources are documented, files validate, logo references resolve, and contrast pairs pass.
  • draft-unverified: source authority is thin, the theme is category-assisted, the logo is missing, or the mark is composed from components.

Workflow

  1. Ground in current assets.

    • Read assets/README.md, assets/client-logos/README.md, and assets/brand-themes/README.md.
    • Check for existing slug folders before creating a new one.
    • Use lowercase kebab-case and keep folders shallow.
  2. Collect and normalize logo assets.

    • Prefer SVG. Use transparent high-resolution PNG from official media, press, or brand kits when SVG is unavailable. Use JPG only when it is the best official source.
    • Use small navigation/header PNGs only when no better official kit or media-library asset exists.
    • Save reviewed reusable assets under assets/client-logos/<client-slug>/.
    • Use stable filenames: logo-color.svg, logo-mono-black.svg, logo-mono-white.svg, or a specific descriptive name when multiple official marks are needed.
    • Write a folder README.md with source URL, reference page, access/download date, source market, license or usage note, original filename, file size, dimensions, and post-download edits.
    • Record the source market. Default to U.S. official sources unless the user explicitly asked for another market.
    • If the source is not reusable yet, keep the file in 00_input/ or local-context/intake/raw/ and document the review gap instead of promoting it.
  3. Build the brand theme.

    • Start from assets/brand-themes/_template/theme.json.
    • Make the client's identity primary. Viral Nation remains supporting: footer mark, co-credit, provenance note, or restrained secondary accent.
    • Use official palette, typography, and logo evidence first. If evidence is thin, use the nearest assets/category-archetypes/<category>.md only as fallback guidance and record it in fallback.
    • Include deck, dashboard, and HTML usage notes. A color that works for a hero slide may fail for dashboard table text.
    • Keep logos.primary null for missing or composite-only marks, and explain component-logo rendering in logos.usage_notes.
  4. Check medium-specific contrast.

    • Validate actual foreground/background pairs before setting checked fields to true.
    • Body text and dashboard table text need 4.5:1 or better.
    • Large deck display text needs 3:1 or better.
    • Chart labels, axes, legends, and tooltip text need 4.5:1 or better.
    • Avoid white text on pale gray, pale brand colors, low-saturation midtones, or image-heavy backgrounds unless a contrast-safe overlay is specified.
  5. Handle relationship cases.

    • Parent themes are acceptable for parent-level reports.
    • Prefer child or sub-brand themes for consumer-facing output when they exist.
    • Keep partnership folders when they are useful lookup targets, but render component logos side by side until an official combined mark exists.
    • Do not remove category archetypes; they remain fallback guidance when no saved theme or brand kit exists.
  6. Validate before handoff. Run the narrowest relevant checks:

    jq empty assets/brand-themes/*/theme.json MANIFEST.json
    find assets/client-logos -maxdepth 2 -type f -size 0 -print
    find assets/client-logos -maxdepth 3 -type f -name '*.svg' -exec xmllint --noout {} +
    find assets/brand-themes -path '* *' -print
    bash bin/build-agent-m.sh --check
    git diff --check
    

    Also verify every non-null logos.* path in edited theme.json files resolves from the repo root. For market-sensitive refreshes, run a targeted scan over the edited brand folders for non-U.S. source domains and document any intentional exceptions.

  7. Update durable docs.

    • Record the status mix, changed slugs, source confidence, known gaps, and validation in docs/maintainer/status.md.
    • Update docs/maintainer/handoff.md when future agents need to know about a new gap, rule, or sync requirement.
    • Update docs/maintainer/current-plan.md when the work changes scope or next steps.

Presentation Builder Sync

Root assets are the canonical review surface. bi-presentation-builder has a skill-local mirror only for standalone upload mode.

Do not sync by default. When the user explicitly asks to update presentation-builder assets, use:

rsync -a --delete --exclude '.DS_Store' assets/brand-themes/ skills/bi-presentation-builder/assets/brand-themes/
rsync -a --delete --exclude '.DS_Store' assets/client-logos/ skills/bi-presentation-builder/assets/client-logos/

Then validate parity:

diff -qr --exclude '.DS_Store' assets/brand-themes skills/bi-presentation-builder/assets/brand-themes
diff -qr --exclude '.DS_Store' assets/client-logos skills/bi-presentation-builder/assets/client-logos
jq empty skills/bi-presentation-builder/assets/brand-themes/*/theme.json

Mention that syncing increases standalone skill and plugin ZIP size because the assets are duplicated inside skills/bi-presentation-builder/.

Handoff Notes

When handing work to another agent, put numbered briefs in gitignored tasks/ files. Keep durable repo outcomes in docs/maintainer/status.md; task files are local working notes.

Install via CLI
npx skills add https://github.com/viral-nation/vn-agent-m --skill m-get-branding
Repository Details
star Stars 2
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
viral-nation
viral-nation Explore all skills →