brand-kit
Skill19 starsChanged 11 days agoMITView on GitHub
Use when asked to build, generate, or reverse-engineer a brand kit, brand foundations, brand voice profile, or content-platform onboarding profile for a company from its website URL — "zrób brand kit", "brand kit for <company>", "what does our site actually say about us", or when preparing a company's site for AI content production. Written for the team that owns the site; works on any company's site. Needs only a public URL to start. Also a starting point for the project's `BRAND.md`.
17 other projects use a version of this.
Adopted by
Most recently taken up by
- matteotitta/repo-structure-agencytheir own version, first seen Nov 8, 2026
- dotslashsimran/simcrafttheir own version, first seen Nov 8, 2026
- CatCatUncle/openworkbuddytheir own version, first seen Nov 5, 2026
- hojiahao/cineloomtheir own version, first seen Nov 1, 2026
- bodr-ing/skillstheir own version, first seen Nov 1, 2026
- hojiahao/cinefoundrytheir own version, first seen Oct 25, 2026
Used with
Projects with it also use expert-pov, funnel-strategy and 4 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
matteotittaSkillexpert-pov
Extracts contrarian beliefs, market perspectives, and philosophical stances from founder interviews or questionnaire
Also in 3 projects that use this
matteotittaSkillfunnel-strategy
Maps a company''s GTM motion (PLG, SLG, or Hybrid) to concrete funnel stages with inputs, outputs, and qualification
Also in 3 projects that use this
growthack88Skillicp-research
Scrapes case studies, testimonials, and solutions pages from a target website to build structured ICP documentation. Produces TAM analysis, firmographic segments, champion and economic buyer personas, use case mapping, customer proof points, and voice-of-customer synthesis with normalized attributes. Requires website URL as primary input. Upstream: recommended company-context. Downstream: feeds positioning, product-messaging, landing-page-copy, content-strategy, and outreach-emails.
Also in 3 projects that use this
nocodeworkSkillcompany-context
Interview the user to build or update a reusable company context file for AI tools — what the company does, its offer, clients, personas, positioning, voice, and the questions clients ask most. Use when the user says "build our company context", "create company context", "set up business context for AI", "update our company context", or wants AI to answer clients and write content in the company's voice without re-explaining the business each time. Produces company-context.md.
Also in 3 projects that use this
YepAPISkillcompetitor-research
Competitive analysis between domains using YepAPI.
Also in 4 projects that use this
- +1 more from matteotitta
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- CatCatUncle/openworkbuddy★ 398same name
- cognyai/claude-code-marketing-skills★ 106same name
- dotslashsimran/simcraft★ 69same name
- dlazy-ai/ecommerce-skills★ 61same name
- matteotitta/genesys-skills★ 46same name
- adityareddy-dev/deskstudio★ 43same name
- scrollmark/social-skills★ 19same name
- hojiahao/cineloom★ 10same name
- hojiahao/cinefoundry★ 9same name
- NulightJens/jensai-skills★ 9same name
7 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- base/AGENTS.mdAGENTS.md
- theme-meridian/AGENTS.mdAGENTS.md
- base/CLAUDE.mdCLAUDE.md
- CLAUDE.mdCLAUDE.md
- theme-meridian/CLAUDE.mdCLAUDE.md
- blog-post-quality-reviewSkill
- blog-post-updateSkill
- create-sectionSkill
- generate-altsSkill
- internal-linksSkill
- link-fixSkill
- marketing-setupSkill
- product-mockSkill
- project-setupSkill
- pr-writeupSkill
- sanity-module-catalogSkill
- sanity-optimizationsSkill
- site-contradictionsSkill
- source-reviewSkill
- work-humanizerSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 6 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Core principle: nothing enters the kit without a source: Every number, customer name, partnership, and claim in the kit must appear in …
- Very specific: line 24
Create the run directory: .brand-kits/<company-slug>/ in the project root (slug = bare domain without TLD, e.g.
- Very specific: line 29
When the company is the one that owns the project, its own materials (case studies, internal docs the user hands over) count as sources too.
- Very specific: line 103
Write brand-kit.md by filling template.md top to bottom.
- Distinctive: line 108
Every audience maps to at least one product line and vice versa.
- Distinctive: line 110
Write the kit in English regardless of the site's language, unless asked otherwise.
- Distinctive: line 120
When the company's strongest writing itself relies on a device the base rules ban (signature em dashes, negative parallelism), keep the …
- Distinctive: line 144
Write cross-references as plain text, "gap question 5" and "C2": the page's script numbers the conflict and question rows, turns those …
- Very specific: line 159
If your agent can publish an artifact (Claude's Artifact tool), publish brand-kit.html: favicon 📇, title from the file's <title>.
- Very specific: line 168
Write gap-questionnaire.md: the questions only the company's own people can answer (product, sales, legal, leadership), grouped, each with …
- Distinctive: line 182
Keep it under ~15 questions.
- Very specific: line 209
Read both runs' brand-kit.md, claims.md, evidence.md, gap-questionnaire.md.
- Distinctive: line 210
When slug-a is the user's own company, ask for any internal competitive notes and cite them like evidence.
- Very specific: line 212
Write .brand-kits/<a>-vs-<b>/comparison.md covering, in order: verdict (wins / where they're stronger / attack surface, i.e.
“Common” is measured: kept by at least 6 in 10 of the 15 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Brand Kit Generator
Reverse-engineer a complete brand kit for any company from public sources alone: the five
sections Foundations, Brand Voice & Tone, Global Writing Rules,
Audiences, and Product Lines, in the exact structure of template.md (same directory as
this skill). The second deliverable is a gap questionnaire: the short list of
questions only the company's own people can answer, because no public source could.
Core principle: nothing enters the kit without a source. Every number, customer name,
partnership, and claim in the kit must appear in evidence.md with the URL it came
from. A fact you cannot source goes to the gap questionnaire, never into the kit. A kit
with honest gaps beats a fluent kit with invented retention rates.
0. Setup
Input: the company's website URL, usually your own. That is all that's required; extra materials (decks, docs) are welcome additions to the evidence base.
Create the run directory: .brand-kits/<company-slug>/ in the project root (slug = bare
domain without TLD, e.g. acme). All outputs land there. It is working material about a
company: add /.brand-kits/ to the project's .gitignore if it is missing. If the
directory already exists from a previous run, ask whether to refresh (overwrite) or stop.
When the company is the one that owns the project, its own materials (case studies,
internal docs the user hands over) count as sources too; cite them in evidence.md like
any page.
In a project that keeps its voice in a BRAND.md (a Nexity project does), the kit is the raw material for it. Offer to
fill BRAND.md from it at the end; never overwrite an existing BRAND.md without asking.
1. Research sweep
Collect raw material into evidence.md before writing a single kit sentence. Sweep, in
order:
- The site itself: homepage, about/company page, every service or product page (walk the main navigation and the footer — the footer often lists lines the nav hides), pricing page, careers page (team size, locations), contact/legal pages (entity, addresses, years).
- Writing samples for voice: 3–5 blog posts (prefer recent + most-linked), 2–3 case studies. Save 5+ verbatim sentences that show how the brand actually writes: openers, how they state numbers, how they name the reader's problem. Also note the jargon on the marketing pages ("seamless", "cutting-edge"...) — the voice section reports the gap between the best writing and the sales surface.
- Third-party proof: Clutch and/or G2 profile (rating, review count, rankings), partner directories (official partner statuses), LinkedIn company page (headcount range, founding year), press or award pages.
- Search backfill:
"<brand>" review,"<brand>" case study,"<brand>" partner— for anything the sweep above missed.
evidence.md is a markdown table, one row per fact:
| Fact | Source URL | Verbatim quote or number |
|---|---|---|Plus three more sections: ## Sources checked — one line per page actually fetched
during the sweep (URL + what it yielded, including "nothing"), so the report can show
what was looked at, not only what stuck; web searches that yielded a fact without a page
fetch get one prose line at the end of that section (they are not chips and don't count
toward {{SOURCE_COUNT}}, which counts pages only); ## Voice samples holding the verbatim
sentences with their URLs; and ## Not fetched / not found for pages that failed or
facts you looked for and couldn't find.
Fetching gotcha: on JS-rendered sites the agent's fetch tool may return only the page
<title>. Don't retry it in a loop — fall back to curl -sL <url> via Bash and strip the HTML. Skip any
URL that doesn't respond promptly; log it under "Not fetched" and move on.
Budget: the sweep is done when new pages stop yielding new facts, typically 15–25 pages. Log what you could NOT find as you go — that list becomes §4.
2. Voice analysis
From the voice samples (never from your impression of the industry), write a
## Voice analysis section at the end of evidence.md covering: sentence length and
register; how claims are backed (numbers? named clients? cited sources?); recurring
phrases worth quoting; where the strongest writing lives; which words from the template's
banned list the brand itself overuses. These notes feed the Brand Voice & Tone section and any
brand-specific writing rules.
2b. Claims register
From evidence.md, extract every checkable factual claim the company makes publicly
into claims.md: conflicts first (numbered C1..; a conflict = sources state different
values), then a table of the NON-conflict claims
| claim | on record / note | status | evidence refs | with status one of:
tension (figures that collide when cited together, e.g. two counts with undefined
denominators), unverified (a strong claim with no named source), third-party (stated
only off-site, e.g. a Clutch listing), corroborated (2+ independent sources agree),
single source. A claim lives in the C-list or the table, never both (the HTML's
{{CLAIM_COUNT}} is their sum, so duplication double-counts). Every conflict must map
to a gap-questionnaire question or name its concrete fix. This file is what the company's own people
resolve first; the kit's "do not reuse conflicting figures" rule and §4 both draw on it.
3. Generate the kit
Write brand-kit.md by filling template.md top to bottom. The template's placeholder
comments are the per-section spec — follow them exactly. Rules that override fluency:
- The Global Writing Rules base block is copied verbatim from the template for every company; only the optional brand-specific rules vary.
- Every audience maps to at least one product line and vice versa; flag mismatches in the gap questionnaire instead of papering over them.
- Write the kit in English regardless of the site's language, unless asked otherwise.
- The kit's own prose must obey the writing rules it contains (no "seamless", no
fabricated ranges, no rule-of-three padding). Verbatim quotes from the company's writing
are evidence and stay untouched even when they break a rule; punctuation the templates
themselves mandate (the
# Brand kit — <name>title) is exempt. - A figure that has a conflict row in
claims.mdnever appears in the kit's prose as an outcome, proof point or promise ("Promised outcome: … doubled in 90 days"). If the prose has to mention it, say it is unresolved and link it to its evidence row; the HTML view marks it in red so a writer cannot copy it by accident. - When the company's strongest writing itself relies on a device the base rules ban (signature em dashes, negative parallelism), keep the base rule in the kit and add a question to the gap questionnaire — the team that owns the brand decides whether its signature device overrides AI-tell hygiene.
3b. HTML view
Render the kit as a single self-contained page from html-template.html (same directory
as this skill; its design is documented in DESIGN-NOTES.md — do not restyle it, fill it):
- Copy the template to the run directory as
brand-kit.htmland replace every{{...}}token:{{COMPANY_NAME}},{{COMPANY_DOMAIN}},{{RUN_DATE}},{{FACT_COUNT}},{{GAP_COUNT}},{{AUDIENCE_COUNT}},{{PRODUCT_COUNT}},{{SOURCE_COUNT}}(pages under evidence.md's## Sources checked),{{CONFLICT_COUNT}},{{CLAIM_ROW_COUNT}}(claims.md conflicts / table rows) and{{CLAIM_COUNT}}(their sum). - Fill each
<!-- SLOT: ... -->region with the corresponding content frombrand-kit.md,evidence.mdandgap-questionnaire.md, using only the markup patterns the template's slot comments show (.prose p,.rulegroup,.aud,.sub, evidence<tr id="eN">,blockquote,.gapgroup/.gap,.brief-list li).SLOT:BRIEF, under the masthead, holds the 3 to 5 conflicts a writer is most likely to repeat, most damaging first, one plain sentence each naming both values and where they appear; link each to its conflict as#c1,#c2... Conflict titles in the claims register end with one full stop (<strong>Customer count.</strong>), never two. Write cross-references as plain text, "gap question 5" and "C2": the page's script numbers the conflict and question rows, turns those references into links both ways, marks every fact link by the status of its evidence (conflict, tension, unverified), adds a way back from an evidence row and the Copy buttons. Do not add any of that by hand. - Provenance links are the point of the page: wrap every claim in the kit prose that
has an evidence row in
<a class="fact" href="#eN">...</a>, whereeNis that row's id (rows are numbered in evidence order). Tag evidence rows that record a public contradiction with<span class="tag">conflict</span>after the fact text. - Self-check before publishing: no
{{orSLOT:left in the file; everyhref="#e..."resolves to an existing row id (grep both sides); every brief item points to a conflict that exists (#cNfor N up to the conflict count); no doubled punctuation (..,""); the nav counts match the real section counts. The template is a complete document (doctype,lang, viewport): keep its head as it is.
If your agent can publish an artifact (Claude's Artifact tool), publish brand-kit.html:
favicon 📇, title from the file's <title>. First publish for a company gets a new URL; a
refresh passes the existing artifact URL as url so the link stays stable. The artifact
is private until the user shares it — say so when handing over the link. Without an
artifact tool, the handover is the local file: give its path and suggest opening it in a
browser.
4. Gap questionnaire
Write gap-questionnaire.md: the questions only the company's own people can answer (product, sales,
legal, leadership), grouped, each
with one line on why it matters for content. Typical gaps (ask only what the research
actually failed to answer):
- Proof metrics: customer retention, NPS, project counts, internal benchmarks.
- Positioning choices: what they deliberately don't do; which service is the flagship; the "we believe X" behind each line.
- Flagship engagements: the one project with numbers they want content anchored to, and what may be said publicly about it.
- Audience priorities: which of the audiences found is the growth priority; any audience they serve but don't advertise.
- House writing rules: banned words, naming conventions, claims legal won't allow.
Keep it under ~15 questions. This file is the direct answer to "what does the site not tell us": the URL is enough to start, and afterwards only the gaps need an owner.
5. Self-check before delivering
- Source audit: grep
brand-kit.mdfor every digit-bearing claim; each must have a matchingevidence.mdrow (numbers must match the evidence exactly; surrounding prose may paraphrase). Remove or move to the questionnaire anything unmatched. Exempt: fit-criteria thresholds you authored in ICP sections ("10+ editors") — they are guidance, not claims about the company; keep them clearly round. - Template audit: the file starts with
# Brand kit — <Brand Name>(the template's instruction preamble must not appear), all five sections present, italic helper lines intact where the template has them, no<...>placeholder left. - Rules audit: the kit passes its own Global Writing Rules.
Deliver: the HTML view (artifact link, or the file path), the primary handover surface; paths to
brand-kit.md, claims.md, gap-questionnaire.md, evidence.md, plus a 5-line
summary of the strongest findings, the conflict count, and the top 3 gaps. Do not paste
the whole kit into chat.
6. Compare mode
brand-kit compare <slug-a> <slug-b> (/brand-kit compare … in Claude Code) — a competitive comparison of two finished runs,
judged through slug-a's lens (slug-a is "us"). Both .brand-kits/<slug>/ runs
must exist; generate any missing one with the normal pipeline first. The comparison is
internal working material, never published.
- Read both runs'
brand-kit.md,claims.md,evidence.md,gap-questionnaire.md. - When slug-a is the user's own company, ask for any internal competitive notes and cite them like evidence.
- Write
.brand-kits/<a>-vs-<b>/comparison.mdcovering, in order: verdict (wins / where they're stronger / attack surface, i.e. their conflicted or unverified claims / worth adopting), positioning head-to-head, proof density (counts from both claims registers), claims head-to-head (shared categories, both values, who is better evidenced on the record), service map (line-by-line: head-to-head / only-us / only-them, packaging differences), ICP overlap (same-buyer collisions first), voice. Every judgement cites the underlying claim or evidence entry by id and run (acme e13). - Fill
compare-template.html(same directory as this skill) exactly as §3b fills the kit template: replace{{A_NAME}},{{A_DOMAIN}},{{B_NAME}},{{B_DOMAIN}},{{RUN_DATE}},{{H2H_COUNT}}, and{{A_ARTIFACT_URL}}/{{B_ARTIFACT_URL}}(each run's published report link, or../<slug>/brand-kit.htmlwithout an artifact tool), fill every<!-- SLOT: ... -->, run the same self-check, write.brand-kits/<a>-vs-<b>/comparison.html, and publish it like §3b (favicon📇, stable URL on refresh) when the agent can. - Deliver: the comparison (link or path), both report links or paths,
comparison.mdpath, and a 5-line verdict summary in chat.
Common mistakes
| Mistake | Fix |
| Writing the About section from industry knowledge | Only facts with an evidence.md row enter the kit |
| Describing voice with adjectives ("professional, friendly") | Quote real sentences; derive the description from them |
| Inventing audiences to fill the section | 2 well-evidenced audiences beat 4 guessed ones |
| Padding the questionnaire with nice-to-knows | Ask only what research failed to answer, cap ~15 |
| Polishing the company's jargon into the kit | The voice section reports jargon; the kit's own prose avoids it |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

