Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add tmj-90/gaffer --skill brandgit clone --depth 1 https://github.com/tmj-90/gafferWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tmj-90/gaffer/brand)<a href="https://agentmods.dev/skills/tmj-90/gaffer/brand"><img src="https://agentmods.dev/badge/skills/tmj-90/gaffer/brand/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tmj-90/gaffer/brand"><img src="https://agentmods.dev/badge/skills/tmj-90/gaffer/brand.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00102 | $0.01592 |
| Opus 5.5 | $0.00041 | $0.00637 |
| Sonnet 5.5 | $0.00020 | $0.00318 |
| Haiku 4.5 | $0.00010 | $0.00159 |
Grade A, and why
brand scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 20d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Establish or audit the brand
A factory that ships UI without a brand ships templates. This skill gives the product a
specific visual and verbal identity — or audits and extends the one it has — and
writes it down in a form delivery agents can consume: BRAND.md plus tokens. It owns
identity (direction, palette, type pairing, voice). The token structure belongs to the
design-system skill; surface execution to the frontend-design skill.
| Depth | Reference |
|---|---|
Palette tiers, oklch tokens, contrast, type pairing and fluid scale |
references/color-and-typography.md |
| Voice spectrums, traits, messaging hierarchy, consistency checklist | references/voice-and-messaging.md |
Steps
- Detect. Call
search_lorefor brand, positioning, voice and design ADRs. In the repo look forBRAND.md,DESIGN.md, token files (*.tokens.json,tokens.css,theme.ts), a:rootblock of custom properties, logo assets, and marketing copy. Read the product's README and the ticket for audience and purpose. Decide: does a brand exist? - Brand exists → audit and extend in its idiom. Do not replace it with your taste.
- Score it against the required qualities (step 4) and the banned list below; name each gap with the file and value.
- Measure every text/background pair the brand uses, in every theme, against WCAG
contrast (4.5:1 body, 3:1 large text and UI) — compute the ratio;
oklchlightness is not a contrast ratio. A brand colour that fails as text gets a darker text-safe variant, not a waiver. - Fill gaps in the existing direction: hover/active steps, a missing surface tier, a dark variant, a text-safe accent, missing semantic roles.
- No brand → commit to one direction and write why it fits this product and
audience: editorial/magazine, Swiss/International, neo-brutalism, bento, glassmorphism
with real depth, light or dark luxury, retro-futurism. "Clean minimal" is not a
direction; dark mode is chosen for the users, not by habit. Then define:
- Palette as
oklchtokens with a stated job per colour: surfaces (at least two tiers), text (primary, muted), accent, and the semantic roles success / warning / danger / info — each with a text-safe variant where the fill colour fails as text. - Type pairing — display + text families with a reason (and mono if the product
shows code or data), a
clamp()fluid scale, and a loading plan: self-hosted, subset, one critical weight preloaded, metric-matched fallback. - Voice — audience, the one-line promise, 3–5 voice traits each with a "we say / we don't say" pair, and how voice shifts in errors and empty states.
- Palette as
- Check the required qualities. The brand must let delivered UI show at least four of
the ten qualities listed in the
frontend-designskill (scale hierarchy, spacing rhythm, depth, typographic character, semantic colour, designed states, composition, atmosphere, clarifying motion, data-viz in the system). Name the four-plus inBRAND.md. - Write the artifacts.
BRAND.md: direction and rationale, palette table (token, value, job, contrast result), type pairing and scale, voice, qualities delivered, open questions. When the work is visual, a token file in the repo's format (DTCG JSON or CSS custom properties — see thedesign-systemskill), for example:
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 20d ago Changed · -9 lines 35d11bf39c36
- 1mo ago First seen · 117 lines · 102 tokens per session scan A f53b6ffa2208
brand is a skill published in the GitHub repository tmj-90/gaffer (2 stars, last pushed 20d ago), licensed Apache-2.0. It adds 102 tokens to every session and 1,592 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
visual-companion
Browser-based visual companion for showing mockups, diagrams, comparisons, and interactive options. Use when the user would understand something better by seeing it than reading it.
auditing-ui
Runs a lens-based UI/UX audit of the client and turns its findings into tracked, fenced work items. Use when auditing the interface for quality gaps, running or scoping an audit (full, one lens, one surface, or a diff), driving the real-browser leg of an audit, synthesizing raw lens findings into batches, or deciding…
maintaining-dev-playground
Keeps the Dev Playground current with the application. Use when editing UI components in apps/client/src/ — assesses playground candidacy, checks existing playground coverage, and guides adding or updating showcases. Also use when directly editing files in apps/client/src/dev/, building new widgets or features, or…
bulwark-brainstorm
Role-based brainstorming with dual modes: --scoped (sequential Task tool, 5 roles) and --exploratory (Agent Teams peer debate, 4 roles). Use for feasibility assessment and idea validation.
plan-creation
Create structured implementation plans via a 4-role scrum team (Product Owner, Architect, Eng/Delivery Lead, QA/Critic) with optional Agent Teams peer debate mode.
anthropic-validator
Validates Claude Code assets (skills, hooks, agents, commands, MCP servers, plugins) against official Anthropic standards. Fetches latest docs dynamically and produces structured validation reports.