用途
该技能用于审计或撰写应用界面微文案,覆盖空状态、错误、加载、引导、对话框和成功等界面状态。适用于打磨产品文案或替换占位文本的场景,可一次性生成整个应用的微文案。
主要能力
模式判定
技能首先确定工作模式:
- 审计模式:代码库已存在。扫描硬编码字符串、占位文本和通用消息,进行评分并改写。扫描方式包括阅读页面组件,查找 JSX/TSX 中的字符串(
<p>、<h1>、按钮文本、placeholder属性),以及搜索 Toast/通知消息(toast(、notify(、alert())、错误边界和 catch 块、空状态组件(搜索 "empty"、"no results"、"nothing here"、"get started")、加载文本(搜索 "loading"、"please wait"、骨架屏组件)、表单验证消息、模态框/对话框文案。 - 生成模式:用户描述应用,从零构建完整文案文档。
在撰写前需收集:应用是做什么的(一句话)、品牌语气(随意/专业/俏皮/极简)、主要用户是谁。如果代码库能提供这些信息,则不再询问。
八大文案类别
在审计模式下对每个类别按 1–10 分评分;在生成模式下作为检查清单使用:
- 空状态(15%):用户尚未进行任何操作时看到的内容,是多数应用容易失败的地方。空状态必须说明这里将出现什么、如何创建,并显得友好而非空白。"No items yet" 评分为 1/10。
- 错误消息(15%):包含三部分——(1)发生了什么,(2)为什么,(3)现在该做什么。绝不归咎用户,绝不模糊。"Something went wrong" 评分为 1/10。
- 按钮标签(15%):每个按钮必须能补全句子 "I want to ___"。"Submit" 不合格;"Save draft"、"Send invite"、"Create project" 合格。
- 引导(15%):首次运行体验,包括欢迎消息、设置步骤、首次操作提示。必须缩短价值实现时间,不解释功能,而是引导第一个操作。
- 加载与进度(10%):等待期间发生的事。骨架屏 > 加载旋转器 > "Loading..."。长时间操作需显示进度和具体正在发生什么。"Processing your data" 优于旋转器。
- 成功消息(10%):确认操作成功。要具体,如 "Invoice sent to alex@company.com" 而非 "Success!",相关时包含下一步操作。
- 工具提示与帮助文本(10%):上下文指导,回答用户此刻心中的疑问。保持在 15 词以内,如需更多则链接到文档。
- 确认对话框(10%):破坏性操作需要明确后果。说明将发生什么、什么无法撤销,并让主要操作匹配动词,如 "Delete 3 projects" 而非 "Are you sure? [OK] [Cancel]"。
语气校准
撰写任何文案前先建立语气:
- 随意(Slack、Notion):使用缩略、小写、适当幽默。如 "you're all set!"、"nothing here yet — create your first project"。
- 专业(银行、医疗、企业):正确大小写,无幽默,精确措辞。如 "Your transfer has been initiated."、"No records found. Use the search filters above."。
- 俏皮(Duolingo、Mailchimp):个性突出,可用表情符号和角色口吻。如 "High five! You nailed it!"、"Your inbox is lonely. Send your first campaign!"。
- 极简(Linear、Vercel):用词最少,无填充,简洁。如 "No issues"、"Deployed"、"Saved"。
除非产品明显需要其他语气,否则默认使用随意风格。多数独立/快速构建的产品受益于随意风格。
空状态规则
空状态是最易被忽视的文案,也是新用户首先看到的内容。
结构: [插图或图标——可选但有效] [标题——这里将出现什么] [副文本——如何创建第一个] [CTA 按钮——要执行的操作]
好例子:
- "No projects yet / Create your first project to get started. [+ New Project]"
- "No messages / When someone messages you, it'll show up here."
- "Your dashboard is empty / Connect your first data source to see metrics. [Connect Data Source]"
坏例子:
- "No data"——什么都没说
- "Nothing to show"——没有指导
- "0 results found"——数据库语言,非人类语言
- "No items match your search"——尚可但应补充 "Try different keywords"
错误消息规则
每个错误有三项任务:说明发生了什么、说明为什么、说明该做什么。
公式:[发生了什么]。[为什么/上下文]。[下一步该做什么]。
示例:
- "Couldn't save your changes. The server didn't respond. Try again in a few seconds."
- "That email is already registered. Sign in instead?"
- "File too large. Max size is 10MB. Try compressing the image first."
- "Payment failed. Your card was declined. Update your payment method to continue."
绝不要写:
- "Something went wrong"(什么出错了?)
- "Invalid input"(哪个输入?哪里有问题?)
- "Error 500"(对用户无意义)
- "Please try again later"(later 是什么时候?)
- "An unexpected error occurred"(所有错误都是意外的)
- 严重错误前加 "Oops!"(支付失败不可爱)
按钮与 CTA 规则
每个按钮补全句子 "I want to ___"。
按钮应搭配其功能,而非其身份:
- "Save changes"——它做什么
- "Submit"——它是什么(差)
- "Send invitation"——具体操作
- "Confirm"——模糊(差)
- "Delete account"——明确后果
- "OK"——后果不明(差)
- "Start free trial"——价值清晰
- "Get Started"——开始什么?(差)
破坏性按钮必须指明操作:"Delete project"、"Remove member"、"Cancel subscription"。绝不要仅写 "Delete" 或 "Remove" 而不带对象。
输出格式
审计输出:
APP COPY AUDIT — [product]
════════════════════════════════════
Empty States [X/10] [one-line note]
Error Messages [X/10] [one-line note]
Button Labels [X/10] [one-line note]
Onboarding [X/10] [one-line note]
Loading & Progress [X/10] [one-line note]
Success Messages [X/10] [one-line note]
Tooltips & Help [X/10] [one-line note]
Confirmations [X/10] [one-line note]
────────────────────────────────────
Overall [X/80]
════════════════════════════════════
REWRITES (worst 3 categories):
[Category] — [file:line]
Before: "[original text]"
After: "[rewritten text]"
生成输出:按屏幕/组件组织,每条目包含:
[Screen Name]
empty state: "[copy]"
error: "[copy]"
success: "[copy]"
buttons: "[label1]" / "[label2]"
placeholder: "[copy]"
生成后,可提供将文案直接写入代码库的帮助——找到组件并就地替换字符串。
验证清单
- [ ] 每个空状态都说明将出现什么以及如何创建
- [ ] 每条错误消息包含:发生了什么 + 为什么 + 下一步
- [ ] 每个按钮通过 "I want to ___" 测试
- [ ] 没有无上下文的 "Submit"、"OK"、"Confirm"、"Click here"、"Learn more"
- [ ] 任何地方都没有 "Something went wrong" 或 "An error occurred"
- [ ] 没有仅用 "Loading..." 作为加载指示
- [ ] 成功消息具体——指明创建/发送/保存了什么
- [ ] 破坏性按钮指明被销毁的对象
- [ ] 所有文案语气一致(相同语调、大小写、标点)
- [ ] 代码库中没有遗留 lorem ipsum、占位文本或 TODO