Loading...
Loading...
Create a COMPLETE, render-safe brand kit for ANY brand under brand/<id>/ — design.md + the editorial engine (editorial/) + an engine-agnostic voice lock + outlined logos + palette-driven static & dynamic backgrounds + device mockups + stickers + a brand board & sheet + a brand.json manifest. The kit is consumed by /use-brand, which turns it into any deliverable — website, slide deck, PDF, social/OG cards, marketing copy, dev tokens, or a video (handed to /make-video). Two modes - GENERATE from scratch via an interactive discovery flow + a multi-direction inspiration board the user picks in the browser, or IMPORT an existing brand by crawling its portal. Self-contained - every generator reads bundled templates in $SKILL_DIR/assets/, never a reference kit. Trigger - /make-brand.
npx skill4agent add goldlegendw80/brand make-brandbrand/<id>//use-branddesign.mdGUIDELINES.mdBRIEF.mdprompts/editorial/voice/voice.lock.jsonVOICE-SETUP.mdassets/fonts/logos/stickers/patterns/mockups/vendor/gsap.min.jsbrand-board(.standalone).htmlbrand-sheet(.standalone).htmlbrand.json/use-branddiscovery.json · directions.json · selection.json · brand.spec.json$SKILL_DIR$SKILL_DIR/scripts/$SKILL_DIR/assets/brand/latent-alderson/brand/<id>/brand/<id>/opentype.jswawoff2playwright-corenpm i -D opentype.js wawoff2 playwright-core$SKILL_DIRnode "$SKILL_DIR/scripts/doctor.mjs"$SKILL_DIR/assets/craft/CRAFT.md$SKILL_DIR/assets/craft/anti-slop.mdresearch/brand-design-research.mdanti-slop.mdanti-slop.mdbrand/<id>/craft/anti-slop.mdD<N>(recommended)| Script | Emits |
|---|---|
| preflight (deps, Chrome, bundled-template self-containment) |
| fetch woff2 from Fontsource by family → |
| outlined logos (8), stickers (icons from |
| per |
| per |
| |
| |
| |
| |
| |
| |
| |
| the inspiration-board chooser + handoff server |
| IMPORT-mode portal crawl |
node "$SKILL_DIR/scripts/doctor.mjs"idbrand/<id>/discovery.jsonbrand/<id>/discovery.jsonphasesCompletediscovery.jsoniddiscovery.jsoncategory.codes[]anti-slop.md._/grid{id, name, visualForm, role, colorRole, animationRule(deterministic), deployRule, trace}craft/anti-slop.mdvoice.lock.jsonbrand.jsondiscovery.jsonopenQuestions: [{question, recommendation, impact}]brand.json/use-brandbrand/<id>/BRIEF.mddiscovery.jsonbrand/<id>/directions.jsonmotifblob-driftnight-skygriddotsblob-driftcodeBreakanchorTracereferenceintendedBehaviorlayoutmarkLanevibeheroblurbnode "$SKILL_DIR/scripts/build-directions.mjs" --in brand/<id>/directions.json --out brand/<id>/directions.html
node "$SKILL_DIR/scripts/serve-directions.mjs" --dir "brand/<id>" --board "brand/<id>/directions.html" --port 4321 &
open "http://localhost:4321" # else print the URL
for i in $(seq 1 600); do [ -f "brand/<id>/selection.json" ] && break; sleep 2; doneselection.jsonbrand/<id>/brand.spec.jsondiscovery.jsonselection.jsoncustomlayoutmarkLanedirections.jsonselection.jsonsignatureDevices[]devicepositioningarchetypeaudiencelogoConstructionvoicecategory{ "codes": [...], "break": "<the code this brand breaks and how>" }overrides: []traces{ "palette": "...", "type": "...", "wordmark": "...", "background": "...", "voice": "..." }fonts.displayanti-slop.mdtraces.typepalettetraces.paletteaccentModegradienteditorial.noSlopcraft/anti-slop.mdS="$SKILL_DIR/scripts"; SPEC="brand/<id>/brand.spec.json"
node "$S/vendor-fonts.mjs" --spec "$SPEC" # fonts → woff2 + fonts.css (offline? hand-place + set *File)
node "$S/brand-kit.mjs" --spec "$SPEC" # logos + stickers + design.md scaffold
node "$S/backgrounds.mjs" --spec "$SPEC" --bake # dynamic twins + static PNGs
node "$S/mockups.mjs" --spec "$SPEC" --bake # device mockups
node "$S/board.mjs" --spec "$SPEC" # board + sheet
node "$S/editorial.mjs" --spec "$SPEC" # editorial/ skeleton (PARAMETER tokens filled)
node "$S/voice-scaffold.mjs" --spec "$SPEC" # voice.lock.json + VOICE-SETUP.md
node "$S/guidelines.mjs" --spec "$SPEC" # GUIDELINES.md — the client-facing brand manual
node "$S/favicons.mjs" --spec "$SPEC" # favicon tier (16/32/48/180/512 + webmanifest + head snippet)
node "$S/prompts.mjs" --spec "$SPEC" # prompts/ — portable system-prompt + task starters
node "$S/manifest.mjs" --spec "$SPEC" # brand.json
mkdir -p "brand/<id>/craft" && cp "$SKILL_DIR/assets/craft/anti-slop.md" "brand/<id>/craft/anti-slop.md"design.mdeditorial/*.mdGUIDELINES.mdprompts/*.md{{BRAND_FILL:...}}editorial/EXEMPLARS.mdcraft/anti-slop.mdbrand-board.html/browse--bake.dynamic.htmlMath.random(Date.now(repeat:-1{verdict: clean|degraded|catastrophic, observations[]}/use-brand brand/<id> "<what you want>"brand.jsondesign.md"style": { "design_md": "brand/<id>/design.md" }/make-videonode "$SKILL_DIR/scripts/fetch-brand.mjs" --url <portal> --out brand/<id>/sourceplaywright-coreharvest.jsonharvest.jsonbrand/<id>/assets/brand/<id>/brand.spec.jsondesign.<variant>.mdbrand.spec.json{
"id": "acme-fc", "name": "Acme FC", "version": "1.0.0", "language": "en", "languages": ["en"],
"tagline": "...",
"category": { "codes": ["..."], "break": "...", "overrides": [] }, // Phase 1b audit → G3; overrides = user-approved G1 exceptions
"traces": { "palette":"...", "type":"...", "wordmark":"...", "background":"...", "voice":"..." }, // G2 one-liners
"positioning": "...", // the one-line wedge (Phase 1.1) → GUIDELINES + prompts
"archetype": "dev-tooling" | "consumer" | "data-media" | "agency" | "personal-creator" | "physical", // drives conditional GUIDELINES sections (Icons vs Applications)
"audience": { "primary":"...", "secondary":["..."], "anchorPersona":"..." }, // a model, not a blur (Phase 1.1) → GUIDELINES + prompts
"logoConstruction": "wordmark" | "lettermark" | "icon+mark" | "combination",
"logo": { "clearSpace":"1x monogram height", "minSize":{"digitalPx":24,"printMm":10}, // printIn also accepted
"misuse":["stretch","rotate","recolor","drop-shadow","busy-background","crop","rearrange"],
"variants": null }, // optional per-variant deploy-rule overrides (GUIDELINES)
"typeScale": { "display":{"px":96,"lh":0.92}, "h1":{"px":64,"lh":0.95}, "h2":{"px":40,"lh":1.1},
"body":{"px":18,"lh":1.5}, "caption":{"px":12,"lh":1.4} }, // numeric tiers → design.md + GUIDELINES + dev tokens
"openQuestions": [ { "question":"...", "recommendation":"...", "impact":"..." } ], // deferred decisions, never silent defaults
"wordmark": { "first": "acme", "second": "fc", "case": "lower" }, // case ∈ lower|upper|title — a choice, not a rule
"monogram": "ac.", "punctuationSignature": ".", // generic — replaces a hardcoded "_"
"palette": {
"bg":"#0A1414","bg2":"#0E1A1A","panel":"#112020","fg":"#EAF2EF","dim":"#6E8480",
"accents":[{"role":"data","hex":"#1FB6A6","pantone":null},{"role":"alert","hex":"#FF5C7A"},{"role":"focal","hex":"#FFD23F"}], // pantone optional, hand-filled for print
"accentSolid":"#1FB6A6",
"neverPair": ["alert on data"] // combinations the brand forbids → GUIDELINES + conformance lint
},
"gradient": ["#1FB6A6","#7CFF6B"] | null, // null = flat-solid brand
"accentMode": "gradient" | "rationed-solids",
"fonts": { "display":"Fraunces","mono":"IBM Plex Mono","hand":null,"text":null, // display: a point-of-view face, never a banned default; text: optional third face for long copy
"weights":{"display":[400,700],"mono":[400,700]} },
"background": { "families": [ { "name":"bg-pitch","family":"grid" } ] }, // family ∈ blob-drift|night-sky|grid|dots
"icons": { "set":"default" | "geometric", "motifs": null },
"pills": [ { "label":"MATCHDAY","solid":true,"dot":true } ], // brand-real labels — never generic LIVE/PROD/SHIPPED chrome
"signatureDevices": [ { "id","name","visualForm","role","colorRole","animationRule","deployRule","trace" } ],
"editorial": { "wpm":[200,215], "medianShot":0.7,
"noSlop":["..."], // ALWAYS seeded from craft/anti-slop.md + per-brand additions — never empty
"lexicon": { "preferred":["..."], "prohibited":["..."] }, // per-brand say-this / never-say-this, beside the universal ban
"brandDefects":[{"code","rule"}] },
"voice": { "mode":"clone|tts-preset","language":"en","persona":"...","referenceClip":null,
"spectra": { "funnySerious":"...", "formalCasual":"...", "respectfulIrreverent":"...", "enthusiasticMatterOfFact":"..." }, // the four NN/g coordinates
"guardrails": ["weird but not inappropriate", "..."], // the X-but-not-Y lines
"weAreWeAreNot": [ { "are":"...", "gloss":"...", "areNot":"...", "boundary":"..." } ], // THE canonical row shape — 03 §1, voice.lock, GUIDELINES, prompts all read this
"toneDials": { "formality":"", "energy":"", "technicalDepth":"" }, // baseline register; per-context modulation lives in editorial/03 §1b
"captions": { "style":"karaoke|block|lower-third" } },
"mockups": { "devices":["laptop","iphone","youtube-banner","voice-visualizer","captions","business-card","poster","sticker-sheet"], "sampleCopy":{} },
"license": { "fonts":"...","voice":"...","notes":"..." }
}<text>window.__timelines--disable-gpubrand/<id>/
design.md (+ design.<variant>.md for multi-brand imports)
GUIDELINES.md (the client-facing brand manual)
BRIEF.md (the one-page strategic-input summary)
brand.json (the brand → deliverable manifest /use-brand reads)
brand.spec.json · discovery.json · directions.json · selection.json (generate trail)
brand-board.html · brand-board.standalone.html · brand-sheet.html · brand-sheet.standalone.html
editorial/ 00-EDITORIAL-LINE.md · 01-RHYTHM.md · 02-VISUAL-GRAMMAR.md · 03-VOICE-STORYTELLING.md · 04-LLM-PLAYBOOK.md · 05-MICROCOPY.md · EXEMPLARS.md · README.md
prompts/ system-prompt.md · tweet.md · landing-hero.md · email.md · error-message.md · imagery.md
craft/ anti-slop.md (the fail list — copied from the skill, read by /use-brand)
voice/ voice.lock.json · VOICE-SETUP.md (+ ref clip if clone mode)
assets/fonts/*.woff2 + fonts.css
assets/logos/*.svg (8, outlined) + misuse.svg (the don'ts sheet)
assets/favicons/ *.png + favicon.ico + site.webmanifest + favicon-head.html (the reduction tier, physically shipped)
assets/stickers/icon-*.svg + pill-*.svg
assets/patterns/bg-*.dynamic.html + bg-*.png + bg-*-portrait.png
assets/mockups/*.html + *.png
assets/vendor/gsap.min.js
source/ + harvest.json (import-mode only)