Happy Path Works
Document Ops · setup guide · last updated November 3, 2026

Brand setup

Records your organization’s logo, colors, font and document naming once, checks that every color can be read where the documents print it, and saves the result for the other five skills. Run it once; run it again if your brand changes.

Before you start

The brand-kit skill added to your account (install walkthrough). Have these ready: your organization’s name, and a short form if it is long; your logo as a PNG, or say you have none; your main brand color and any others; the font your documents use, and whether it is installed on the computers your readers use; and how you file documents, a short prefix and the areas you file under, such as ROAST and OPS in ROAST_OPS_Grinder_Calibration_SOP.docx.

Start it

In a new chat, type brand: at the start of a message. It asks for everything above in one go. Give it your brand’s actual colors, not a full palette: it works out the shades it needs from them.

Your colors

It checks your colors as you gave them, where the documents print them: white heading text on your main color, your color as text on the white page, the second path of a decision beside the first. A color that looks right as a swatch can be too faint to read on paper.

If one fails, it tells you where it prints and by how much, and offers choices: a darker shade of the same color (usually its recommendation, because it keeps your color), another color your brand already has, or the neutral defaults for now. It never changes a color without asking, and it never saves a set of colors that fails.

If your logo file has blank space around it, the logo prints smaller than it should. It shows you the logo three ways, as delivered, trimmed, and trimmed with a border, and uses the one you pick. A brand with no logo is fine: the documents print their headers without one.

What you get

Two files, brand.json and logo.png, and a list of every value that differs from what you gave it, with the reason. Where Claude keeps no folder between conversations, it hands you both files to keep: attach them to any chat where you build a document, with both names unchanged.

An example

The skill ships two brand files for an invented coffee roastery, ROAST WORKS. The first was chosen by eye, from a teal on the company’s website. Checked, it fails: white heading text on that teal reads at 3.21 to 1, and small print needs 4.5 to 1. The second path color is too close to the main one to read as a different path, and the prefix ROAST_CO has an underscore, which would split every file name in the wrong place.

The second file is the same brand, corrected: a darker blue in the same family, 2E75B6, at 4.84 to 1, a purple for the second path, and the prefix ROAST. It passes all 15 checks.

Check it later

Type brand: check to have it check the brand it finds, and report. It changes nothing.

If it says no

You asked it to design a brand. It records a brand you already have; it does not invent one. It offers to set you up on the neutral defaults until you have one.

You asked it to keep a color that fails. There is no override. It gives you the measured number and the nearest color that passes, or the neutral defaults.

Your logo is not a PNG. It says what conversion is needed rather than converting it without telling you. A PNG with a transparent background is what the documents use.

Using Claude Code instead

Needs Node on the machine; the pack is tested on Node 20 and Node 24. The brand setup uses nothing beyond Node’s built-ins.

Keep brand.json with logo.png beside it at the top of a project for one brand per project, or in a folder above all your projects for one brand across them. The document skills look in the path in HPW_BRAND_KIT, then the folder you build from, then each folder above it, then fall back to the neutral defaults. They never read a brand from inside an installed skill folder.

To check a brand file directly, or to see which one a build in this folder would read, run one of these from the folder you build in. Exit 0 is a pass:

$ node <skill folder>/brand_check.js brand.json
$ node <skill folder>/brand_check.js