从代码库提取品牌信息 是做什么的?
概述
产品仓库是品牌真相的唯一来源。品牌工具包仅提取一次到 marketing-videos/<brand>/brand.md,每个值都带有其源文件 文件:行号,并且文件记录提取时的仓库提交,以便可以刷新而非重新读取。
brand.md 约定
按以下顺序编写这些部分。每个值以 (路径:行号) 结尾,注明其来源。
- 来源:仓库路径、分支、每个仓库的
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。 - 标识:名称、一句话定位、标语、语气(引用文案文件,而非转述)。
- 颜色令牌:首先是语义品牌令牌(
--color-brand-*、primary、AppColors.primary),然后是辅助令牌。当不同表面(如landing与app)的颜色不同时,每个表面一个表格。 - 排版:按表面划分。落地页字体通常与应用字体不同;请检查根布局以及任何区域级别的
fonts.ts。 - 标志和图像:文件路径,区分真实产品渲染图和库存照片(库存照片绝不能作为真实用户展示),以及它们的许可或信用文件。
- 允许的声明:功能、模式、定价、CTA 标签、URL、联系方式。每条都是带有来源的直接引用。将示例数据标记为
SAMPLE(使用虚拟数字渲染),以便视频将其标记为“示例”。 - 禁止的声明:任何听起来合理但无来源的内容:用户数、收入、评分、推荐、合作伙伴徽标、“值得信赖”、“第一名”。
- 捕获目标:生产环境和暂存环境的 URL、值得捕获的路由、应用截图文件夹、Play Store URL。
- 歧义:重复或冲突的令牌、站点与应用之间不同的文案、其他简报使用的但代码矛盾的值。列出它们供用户参考;切勿静默解决。
提取清单
| 查找内容 | 典型位置 |
|---|---|
| 文案、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“未找到”。
- 将库存照片展示为真实客户。