品牌参考包 是做什么的?
这个包是上下文,而不是内容。 它记录品牌已有的样子(受众、声音、视觉语言、标记以及每个声明所来源的屏幕和文案),以便后续可以基于此做出格式、脚本和设计决策。包内不包含钩子、脚本或系列。如果某个来源建议了一个,请注明来源并保持决策开放。
位置关系:
上游(策略)────────→ 此技能(观察到的品牌)────→ 下游(格式、脚本、短视频)
理想客户画像 · 客户声音 · 品牌声音 表面表达的内容 脚本到短视频、着色器实验室
此技能不建立理想客户画像、客户声音或品牌声音。它找到上游工件,根据它们检查表面,并将每个标记为已验证 / 推断 / 缺失(包 §0)。差距返回上游;不要在这里掩盖它们。
文件:
template.md:包的章节结构。scripts/:通用的捕获和渲染辅助脚本。apps/<app>/:每个应用一个文件夹,包含其URL、流程配方、 quirks、生产规则和PDF布局。- 首先阅读
apps/<app>/README.md。 对于新应用,在初始阶段创建它。
- 首先阅读
以下命令相对于此技能文件夹(.claude/skills/brand-reference-pack/)编写,输出路径相对于您运行它们的位置。从项目根目录运行,并用技能路径前缀 scripts/。pack_pdf.py 相对于技能解析其配置。
0. 初始阶段(仅新应用,一个 AskUserQuestion 轮次)
收集:
- 应用名称。
- 网站URL。
- 社交媒体账号。
- App Store ID 和国家(如果适用,Play 包 ID)。
- 如何运行应用:模拟器构建、TestFlight、Web 应用或仿真器。
- 代码仓库路径(如果有)。
- 现有的品牌、理想客户画像或研究文档。
- 哪个流程是核心流程。
- 生产中哪些是禁止的。
- 输出文件夹。
将答案写入 apps/<app>/README.md。
1. 基础检查(理想客户画像、客户声音、品牌声音)
对于每个基础,找到上游工件:Wiki 或文档文件夹、研究演示文稿、品牌手册。
- 理想客户画像: 由数据或研究支持的定义目标客户。记录其置信度和样本量。
- 客户声音: 来自访谈、评论、支持或社区的客户自己的话。品牌自己网站上的推荐仅算作弱证据:它们是经过策划的。
- 品牌声音: 书面声音指南或文案规则。
将每个记录在包的 §0 表中。在步骤 2-5 中,检查实时表面是否与工件匹配。不匹配项放入开放式决策。如果某个工件缺失,请说明并指出填补它所需的上游工作;不要从表面凭空捏造基础。
2. 公开表面(尽可能并行)
每个声明都需要在 refs/ 中有一个文件。
网站:
node scripts/site.mjs <url> <brand>/refs/web
这会保存桌面和移动端的完整页面截图和 hero 截图,以及 site-styles.json,其中包含字体(包括字体宿主 ID 背后的真实名称)、颜色、图片、链接和页面文本。将完整页面截图切成大约 4 部分以便阅读。
App Store:
node scripts/store.mjs <id> <brand>/refs/store [country]
这会保存列表(官方定位)、商店截图以及作为原始客户声音材料的评论。
社交媒体(在内置浏览器中):
- 拒绝可选的 Cookie。
- 网格:收集每个帖子的图片
src和alt,将其绘制到画布上,用其替换页面并截图。 - 标题:同源抓取每个帖子页面 →
og:description。 - 未登录状态下,您只能获得大约 12 个帖子。请说明,如果短视频重要,要求用户登录或导出。
- 如果您获得短视频,记录其节奏、标题风格和音频。
- 将所有内容写入
refs/<platform>/。
现有文档: 使用 Explore 子代理综合受众、承诺、术语、声音规则和声明,并附上文件引用。
3. 代码标记(如果有仓库)
使用 Explore 子代理找到应用所使用的任何框架的主题:
- Flutter
ThemeData和颜色常量 - Tailwind 配置
- CSS 变量
- iOS 资源目录
- Android
colors.xml
还要覆盖字体、圆角、动效约定、着色器、Logo 文件和显著的 UI 文案。亲自抽查十六进制颜色。编写 tokens.json,包含颜色角色、类型比例(缩放到 1080×1920)、形状、动效和画布。
应用内文案: 从 UI 代码中提取每个面向用户的字符串,逐字记录并附上文件:行号,用于角色大脑(步骤 7):
python3 scripts/app_copy.py <src root> <persona>/raw/app-copy/app-copy-<date>.md <ui dirs/files…>
(Flutter:app/lib 包含 pages widgets constants models enums main.dart;其他技术栈使用 --ext=.tsx 等。)它会过滤日志、键和 ID;但仍需浏览输出,确保在进入大脑之前没有秘密泄露。
4. 实时应用遍历
最丰富的来源:这是产品实际视觉和口头语法显现的地方。
- 首先征得同意: 准确说明运行将向生产环境写入什么(账户、评估答案、生成的报告、完成状态)并获得同意。用户执行所有注册和登录操作。永远不要输入凭据,永远不要订阅,永远不要给 AI 教练发消息。
- 观察并记录: 连接模拟器面板(
mcp__Claude_Code_iOS_Simulator__control attach)。- 在后台启动
xcrun simctl io <UDID> recordVideo --codec=h264 --force <file>。 - 在登录期间停止它,并在登录后启动一个新的,这样就不需要修剪任何内容。
- 使用
pkill -INT -f recordVideo停止。
- 在后台启动
- 通过无障碍标签驱动,而不是坐标:
UDID=… OUT=<brand>/refs/app scripts/ui.sh tree|shot|label|tap|swipe|hold。- 对每个新屏幕截图,以其标题命名。
- 在拍摄前等待动画和 CMS 文案稳定;如果一行尚未渲染,则标记为“未捕获”。
- 按阶段构建联系表(PIL,几行)并阅读它,而不是每个 PNG。
- 遵循
apps/<app>/README.md中的应用配方。 将遇到的任何新 quirks 添加回其中。 - 音频: 模拟器录制没有音频。如果应用有语音或音频,要求用户提供源文件。
- 之后:
- 按捕获顺序重新编号截图。
- 构建
refs/app-flow-sheet.jpg。 - 压缩录制文件:
scale=540:-2,fps=30,crf 26。
5. 编写包
将 template.md 填充为 <brand>/README.md。
- 只引用您看到的内容。
- 如果表面之间存在分歧,最新的实时表面是工作默认值,分歧放入开放式决策。
- §0 来自步骤 1。
6. 验证
将 README 和 refs/ 文件夹交给一个全新的子代理,不要告知您的结论。要求它对照文件检查每行引用的文案、十六进制颜色和声明,并列出任何没有来源的内容。在交回之前,修复或标记每个项目。
7. 输出
- PDF: 编写
apps/<app>/pdf.json(复制 GetAhead 的:封面、字体、强调色、指向tokens.json的调色板组、字体样本行、截图页面)。然后运行:
将结果作为python3 scripts/pack_pdf.py apps/<app>/pdf.jsonpdftoppm -r 40联系表检查。 - 文档: 如果项目有 Wiki 或文档,将包按照其自身的约定归档到那里(页面、索引、日志、在其取代的页面上的冲突标记)。
- 角色大脑: 如果项目有一个(例如
persona/,脚本生成所依据的品牌即角色大脑),将应用遍历的捕获复制到其raw/app-run-<date>/中,将应用内文案复制到raw/app-copy/中(在用户同意后:raw/是他们的),然后运行大脑自身的引入工作流程(其CLAUDE.md):源页面、概念页面、使用逐字的应用行重建卡片。包记录品牌的外貌;大脑记录其说话方式——脚本从大脑中汲取素材。 - 发送: PDF 和 README,使用 SendUserFile。
- 报告:
- 写入生产环境的内容
- 未捕获的内容
- 基础状态
- 开放式决策