Communitygithub.com

VXerys/从代码库提取品牌信息

当营销视频、横幅或社交媒体帖子必须使用产品的真实品牌和真实声明时,在 marketing-videos 中创建或刷新 brand.md 时,为视频捕获真实界面(网站、Flutter 应用截图)时,或故事板需要为每条声明提供来源引用时使用。

从代码库提取品牌信息 是什么?

该技能通过从产品代码库中提取品牌信息并维护单一真实来源,解决了营销材料中品牌不一致或不准确的问题。它创建一个结构化的 `brand.md` 文件,其中包含品牌标识、颜色令牌、排版、标志、允许和禁止的声明以及捕获目标,每条信息均带有精确的源代码文件位置和行号。支持基于 Git 和非 Git 的仓库,并通过在刷新时检查提交历史或文件修改时间来自动检测过时的内容。此技能与 Claude Code 和其他 AI 代理工具配合使用,以生成品牌准确的营销资产,并在云会话中作为后备方案,使用品牌工具包中的逐字引用验证声明,而在本地开发环境中则直接从代码库提取。它确保营销视频、横幅或社交媒体帖子中的每个声明都可追溯,并且任何未经来源验证的声明都会从故事板中删除。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/VXerys/claude-code-hq/tree/main/.claude/skills/brand-from-codebase

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

从代码库提取品牌信息 是做什么的?

概述

产品仓库是品牌真相的唯一来源。品牌工具包仅提取一次到 marketing-videos/<brand>/brand.md,每个值都带有其源文件 文件:行号,并且文件记录提取时的仓库提交,以便可以刷新而非重新读取。

brand.md 约定

按以下顺序编写这些部分。每个值以 (路径:行号) 结尾,注明其来源。

  1. 来源:仓库路径、分支、每个仓库的 git rev-parse --short HEAD、提取日期,以及每个仓库的一个机器可读块,流程门控 G1 读取该块以检测过时的工具包:
    ```refresh
    repo: <产品仓库>
    ref: HEAD
    commit: c8fb26e
    paths: src/data/content.ts src/app/globals.css public/brand
    ```
    
    repo 是 D:\Projects 下的文件夹名称。非 Git 仓库使用 mtime: <ISO 日期> 替代 ref 和 commit。
  2. 标识:名称、一句话定位、标语、语气(引用文案文件,而非转述)。
  3. 颜色令牌:首先是语义品牌令牌(--color-brand-*、primary、AppColors.primary),然后是辅助令牌。当不同表面(如 landing 与 app)的颜色不同时,每个表面一个表格。
  4. 排版:按表面划分。落地页字体通常与应用字体不同;请检查根布局以及任何区域级别的 fonts.ts。
  5. 标志和图像:文件路径,区分真实产品渲染图和库存照片(库存照片绝不能作为真实用户展示),以及它们的许可或信用文件。
  6. 允许的声明:功能、模式、定价、CTA 标签、URL、联系方式。每条都是带有来源的直接引用。将示例数据标记为 SAMPLE(使用虚拟数字渲染),以便视频将其标记为“示例”。
  7. 禁止的声明:任何听起来合理但无来源的内容:用户数、收入、评分、推荐、合作伙伴徽标、“值得信赖”、“第一名”。
  8. 捕获目标:生产环境和暂存环境的 URL、值得捕获的路由、应用截图文件夹、Play Store URL。
  9. 歧义:重复或冲突的令牌、站点与应用之间不同的文案、其他简报使用的但代码矛盾的值。列出它们供用户参考;切勿静默解决。

提取清单

查找内容典型位置
文案、CTA、定价src/data/content.ts、src/content/*.ts、落地页区域组件、RELEASE_NOTES.md、docs/features/
Web 令牌globals.css @theme / :root、tailwind.config.*、palette.ts
Flutter 令牌lib/core/constants/app_colors.dart、app_text_styles.dart、pubspec.yaml 字体
字体app/layout.tsx(next/font)、区域 fonts.ts、pubspec.yaml
标志public/brand/、docs/brand/、assets/icons/brand/
URL在 src/ 中执行 grep -rn "https://<品牌域名>"、metadataBase、site.ts、条款页面

在声明某个值缺失之前,请搜索它:在整个 src/ 中 grep 域名、CTA 文本和令牌名称。

跳过 .env*、.mcp.json、google-services.json、密钥库以及任何密钥或令牌。切勿将其值复制到 brand.md 中。

当源代码仓库未检出时(云会话)

门控 G1 报告 brand_repo_absent 作为信息,G2 根据 brand.md 中的逐字引用(而非仓库)验证每条声明(claim_verified_brand_kit)。这仅当 brand.md 使用 路径:行号 逐字引用文案时才有效,因此请逐字提取引用,切勿转述。刷新 brand.md 需要仓库:在本地笔记本上执行,或将产品仓库添加到云会话并将 MV_PROJECTS_ROOT 指向其父文件夹。

刷新规则

门控 G1 为每个刷新块执行 git -C <repo> log --oneline <commit>..<ref> -- <paths>,并在有任何更改时失败并显示 brand_stale。修复方法是仅重新读取更改过的文件,更新其行,并更新块中的 commit。非 Git 仓库通过文件修改时间与 mtime 进行比较。

捕获真实界面

产品表面方法
实时网站从生产 URL 进行 HyperFrames 网站捕获(product-launch-video 路由执行此操作);仅当用户说功能未发布时才使用暂存环境
本地开发服务器仅当用户要求未发布的屏幕时;在简报中标记为未发布
Flutter 应用现有的真实截图(站点的 screens/、Play Store 资源)或模拟器截图,放置在设备框架中
小型动画元素(CTA 按钮、统计卡片)使用 brand.md 中的令牌重建为 HTML;切勿发明不存在的屏幕

故事板声明引用

STORBOARD.md 中的每个屏幕声明都带有其 brand.md 来源,例如 "Biaya layanan 2%" (<产品仓库>/src/data/content.ts:212)。没有来源的声明将被从故事板中删除,而非弱化。

常见错误

  • 选择第一个找到的 navy(--navy-main)而不是语义品牌令牌(--color-brand-navy)。首选语义名称,并将另一个列为歧义。
  • 在落地页视频中使用应用字体,或反之。
  • 在只检查一个文件后声明 URL“未找到”。
  • 将库存照片展示为真实客户。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能