agentleFS
PageproPagepro/nexity/.agents/skills/brand-kit/SKILL.md

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

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.
  • matteotittaSkill

    expert-pov

    Extracts contrarian beliefs, market perspectives, and philosophical stances from founder interviews or questionnaire

    Also in 3 projects that use this

  • matteotittaSkill

    funnel-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

  • growthack88Skill

    icp-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

  • nocodeworkSkill

    company-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

  • YepAPISkill

    competitor-research

    Competitive analysis between domains using YepAPI.

    Also in 4 projects that use this

  • +1 more from matteotitta

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
  1. Very specific:

    Core principle: nothing enters the kit without a source: Every number, customer name, partnership, and claim in the kit must appear in …

    line 14
  2. Very specific:

    Create the run directory: .brand-kits/<company-slug>/ in the project root (slug = bare domain without TLD, e.g.

    line 24
  3. Very specific:

    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.

    line 29
  4. Very specific:

    Write brand-kit.md by filling template.md top to bottom.

    line 103
  5. Distinctive:

    Every audience maps to at least one product line and vice versa.

    line 108
  6. Distinctive:

    Write the kit in English regardless of the site's language, unless asked otherwise.

    line 110
  7. Distinctive:

    When the company's strongest writing itself relies on a device the base rules ban (signature em dashes, negative parallelism), keep the …

    line 120
  8. Distinctive:

    Write cross-references as plain text, "gap question 5" and "C2": the page's script numbers the conflict and question rows, turns those …

    line 144
  9. Very specific:

    If your agent can publish an artifact (Claude's Artifact tool), publish brand-kit.html: favicon 📇, title from the file's <title>.

    line 159
  10. Very specific:

    Write gap-questionnaire.md: the questions only the company's own people can answer (product, sales, legal, leadership), grouped, each with …

    line 168
  11. Distinctive:

    Keep it under ~15 questions.

    line 182
  12. Very specific:

    Read both runs' brand-kit.md, claims.md, evidence.md, gap-questionnaire.md.

    line 209
  13. Distinctive:

    When slug-a is the user's own company, ask for any internal competitive notes and cite them like evidence.

    line 210
  14. Very specific:

    Write .brand-kits/<a>-vs-<b>/comparison.md covering, in order: verdict (wins / where they're stronger / attack surface, i.e.

    line 212

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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:

  1. 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).
  2. 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.
  3. 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.
  4. 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.md never 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):

  1. Copy the template to the run directory as brand-kit.html and 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).
  2. Fill each <!-- SLOT: ... --> region with the corresponding content from brand-kit.md, evidence.md and gap-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.
  3. 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>, where eN is 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.
  4. Self-check before publishing: no {{ or SLOT: left in the file; every href="#e..." resolves to an existing row id (grep both sides); every brief item points to a conflict that exists (#cN for 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

  1. Source audit: grep brand-kit.md for every digit-bearing claim; each must have a matching evidence.md row (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.
  2. 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.
  3. 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.

  1. Read both runs' brand-kit.md, claims.md, evidence.md, gap-questionnaire.md.
  2. When slug-a is the user's own company, ask for any internal competitive notes and cite them like evidence.
  3. Write .brand-kits/<a>-vs-<b>/comparison.md covering, 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).
  4. 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.html without 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.
  5. Deliver: the comparison (link or path), both report links or paths, comparison.md path, and a 5-line verdict summary in chat.

Common mistakes

MistakeFix
Writing the About section from industry knowledgeOnly 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 section2 well-evidenced audiences beat 4 guessed ones
Padding the questionnaire with nice-to-knowsAsk only what research failed to answer, cap ~15
Polishing the company's jargon into the kitThe voice section reports jargon; the kit's own prose avoids it

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.