Morning Ledger: Brand Voice Framework (Draft v1)
Voice at a glance
Morning Ledger treats coffee as a small daily ritual worth doing well. The "ledger" idea gives us a point of view: we keep honest accounts of what's in the bag, what it costs, and when it arrives. We sound like a dependable friend who happens to know a lot about coffee.
Position on the spectrums
- Formal ←–––●–→ Casual: leans casual, but tidy
- Simple ←●––––––→ Complex: plain language, with no jargon unless we explain it
- Serious ←––●––→ Playful: dry and warm, not zany
- Reserved ←–––●–→ Expressive: calm enthusiasm, saved for the coffee itself
Personality traits
| Trait | What it means | Do | Don't |
|---|---|---|---|
| Dependable | We're precise and consistent, and we keep our promises about dates, prices and origins. | "Ships Tuesday. Arrives by Friday." | "Arrives whenever the coffee gods allow!" |
| Transparent | Like a ledger, we show our numbers: sourcing, roast dates, pricing, how to pause or cancel. | "Roasted Oct 2. Farmer paid $4.10/lb, up from $2.60 market." | "Ethically sourced, premium quality." |
| Warmly dry | Understated humor and a morning-person-adjacent sense of humor. Never forced. | "Your coffee's here. The day can begin." | "OMG you NEED this in your life!!!" |
| Knowledgeable, not snobby | We know our stuff and share it simply, without gatekeeping. | "Tastes like brown sugar and orange peel. Good with milk or without." | "Notes of bergamot-adjacent stone fruit with a nuanced finish." |
| Unhurried | We respect mornings and people's attention. We keep copy short and never create false urgency. | "Skip a month anytime." | "Last chance! Only 2 hours left!" |
Tone by channel
Website
Tone: clear, calm, and specific. This is where the ledger idea shows most.
- Lead with facts: roast date, origin, price, delivery cadence.
- Short sentences. Headlines state the benefit plainly.
- Make subscription terms (pause, skip, cancel) easy to find, in plain words.
- Humor is light and limited to microcopy (empty states, confirmations, 404).
Examples
- Hero: "Good coffee, on the calendar."
- CTA: "Start my subscription" (not "Join the revolution")
- Confirmation: "Entry recorded. Your first bag ships Tuesday."
- 404: "This page isn't on the books."
Tone: personal, useful, and brief. It's like a note from someone who knows your routine.
- Transactional (orders, shipping, billing): the most straightforward. Information first, with a small touch of warmth.
- Lifecycle/newsletter: a bit more story, such as the farm, the roast, a brew tip. One idea per email.
- Problem or apology: own it quickly, with no spin, and say what we're doing. No jokes.
- Subject lines: specific, under about 45 characters, with no ALL CAPS or stacked exclamation marks.
Examples
- Subject: "Your October bag ships Tuesday"
- Subject: "A small price change, explained"
- Apology: "Your bag was late, and that's on us. We've refunded the shipping and sent a replacement."
Social
Tone: the most playful and conversational, though still dry rather than loud.
- Observational humor about mornings, routines and the first cup.
- Short captions. Let photos of the coffee, the farm and the kitchen counter carry the content.
- Reply like a person, using first names and real answers. Handle complaints publicly with empathy, then move to DMs for details.
- Emoji sparingly (☕ at most). Hashtags minimal.
Examples
- "Monday, itemized: 1 alarm, 2 snoozes, 1 very good cup."
- "Roasted yesterday. In your kitchen by Friday. That's the whole trick."
- Reply to a complaint: "That's not the experience we want you to have, Sam. Sending you a DM now."
Phrases and patterns to avoid
Hype and empty superlatives
- "Best coffee ever" / "world-class" / "game-changing" / "life-changing"
- "Revolutionize your mornings"
- "Premium quality" / "artisanal" without proof
Vague virtue claims
- "Ethically sourced" / "sustainable" / "ethically-made" with no specifics. Give numbers or leave it out.
Fake urgency and pressure
- "Don't miss out!" / "Last chance!" / "Act now!"
- "You'll regret it" or any guilt-based opt-out copy ("No, I don't like great coffee")
Coffee clichés and caffeine-addict tropes
- "But first, coffee" / "Rise and grind" / "Brew-tiful" / "Bean there, done that" / "Espresso yourself"
- "I can't function without my coffee" / "Fuel for your hustle"
Pretentious tasting language
- "Nuanced," "terroir-driven," "elevated," "curated" (unless explained simply)
- Unexplained jargon: "washed process," "cupping score" (explain it or skip it)
Subscription-industry dark patterns in copy
- Hiding cancellation ("Contact us to cancel")
- "Free trial" without stating when billing starts
Tone-deaf filler
- "We're so excited to announce…" / "Thrilled to…"
- "Hey coffee lover!" / "Hi there, friend!"
- "Oops!" for serious errors like billing mistakes
Mechanics: no ALL CAPS shouting, no more than one exclamation mark per piece, and avoid puns in subject lines.
Sample rewrites
| Generic | Morning Ledger |
|---|---|
| "Experience the ultimate coffee journey with our premium curated beans!" | "Two new coffees each month, roasted days before they ship." |
| "Don't miss out! Subscribe NOW!" | "Start whenever you're ready. Skip or cancel anytime." |
| "Oops! Something went wrong with your order 😅" | "We charged you twice for October. The extra $18 is already on its way back." |
Voice test
Before publishing, ask:
- Could a competitor say this word for word? If so, make it more specific.
- Is there a real number, date, or detail? Add one.
- Would we say it out loud to a customer at the counter?
- Is anything pushing the reader instead of informing them?
Next steps
The skill's workflow keeps the source of truth in docs/brand-guidelines.md, and I haven't written any files yet. Do you want me to save this there (via the starter template), or keep iterating on the draft first? Also, since the brand is fictional, I invented the specifics (prices, dates, "Tuesday" shipping). Swap in whatever you want to treat as canon.
Real run in an isolated folder with only this skill installed. Only the Skill and Read tools were enabled, so no bundled script was run and no file was written. The coffee brand is invented for the test, and the model says so in its answer.
Qué hace
Proporciona al modelo un conjunto de marcos para el trabajo de marca: un marco de voz (personalidad, tono por canal, palabras a evitar), identidad visual, mensajería, gestión de la paleta de colores, especificaciones de tipografía, reglas de uso del logotipo, organización de recursos y una lista de comprobación para aprobaciones. Una plantilla inicial cubre un documento completo de directrices de marca.
Cómo funciona
- El modelo abre el archivo de referencia correspondiente cuando hace falta (voz, identidad visual, mensajería, coherencia, organización de recursos, etc.).
- El subcomando
updateguía el cambio de colores de marca, tipografía y ambiente, y luego mantiene sincronizadosdocs/brand-guidelines.mdy los tokens de diseño. - Cuatro pequeños scripts de Node.js ayudan en el proceso: leer el contexto de marca a partir de las directrices para los prompts, listar la paleta de la marca, comprobar el nombre de archivo, el tamaño y el formato de un recurso, y sincronizar los colores de marca con los tokens de diseño.
Ideal para
Escribir la voz de una marca, auditar contenido en busca de coherencia, configurar un documento de directrices y asignar nombres y aprobar recursos de marketing.
Contiene cuatro scripts de Node.js. Tres solo leen archivos locales e imprimen resultados: `inject-brand-context.cjs`, `extract-colors.cjs` (no analiza imágenes; imprime un comando de ImageMagick e instrucciones) y `validate-asset.cjs` (su opción `--fix` está documentada, pero no cambia nada). `sync-brand-to-tokens.cjs` es el que escribe: actualiza `assets/design-tokens.json`, regenera `assets/design-tokens.css` llamando al script de la Skill `design-system` (no incluido aquí), elimina las claves de color `coral`, `purple` y `mint` y asigna al nombre de la marca una etiqueta de ClaudeKit codificada de forma fija. Se detiene si tu proyecto ya tiene fuentes de tokens, a menos que pases `--force`; usa `--dry-run` primero y haz commit antes de ejecutarlo. Los scripts no usan la red. La guía sobre recursos menciona la eliminación de recursos duplicados u obsoletos, a la vez que recomienda archivarlos en lugar de borrarlos, así que confirma antes de eliminar cualquier cosa. No se incluyen archivos de prueba.