自动监控 App Store 评论,为 1-3 星差评自动生成温暖、符合品牌调性的回复,让不满意的用户快速得到反馈。连接 App Store...
复写 STELLE.
功能概述
复写 STELLE.是一项面向实际任务的技能,主要用于Automic App Store 复写 显示器、 答覆 起草器和模式检测器;监控 App Store 连接 用于新的复写, 使用 Claud 起草 1–3 的 温暖的 网上复写。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
ReviewReply 技能
自动化 App Store 评论监控、回复草稿生成与问题模式识别工具。通过监控 App Store Connect 获取新评论,针对 1–3 星评论调用 Claude 生成温暖且符合品牌调性的回复草稿;自动识别高频重复投诉并触发 Bug 告警;每日上午 8 点向 Telegram 推送待审批回复队列。
技能目录
skills/review-reply/
├── SKILL.md # 本文件 — AI 指令与技能规范
├── README.md # 完整使用文档与配置指南
├── scripts/
│ ├── monitor.py # 轮询 App Store Connect API 获取新评论
│ ├── draft_reply.py # 基于 Claude 生成温暖且符合品牌调性的回复草稿
│ ├── pattern_detector.py # 将高频重复投诉识别为 Bug 告警
│ └── queue_manager.py # 管理审批队列,推送每日上午 8 点 Telegram 汇总消息
├── references/
│ ├── app-store-connect-api.md # API 认证配置(JWT、密钥、端点)
│ └── reply-guidelines.md # 品牌语调、语气、注意事项(Do’s & Don’ts)
├── templates/
│ └── reply-prompts.md # 按星级划分的 Claude 提示词模板
└── data/
├── reviews.json # 原始评论存储(自动创建)
├── queue.json # 待审批队列(自动创建)
└── metrics.json # 回复率、响应时效、评分趋势等指标(自动创建)
1. 监控工作流
脚本: scripts/monitor.py
功能说明
- 从配置中读取应用列表
- 对每个应用,调用 App Store Connect API →
/v1/apps/{id}/customerReviews - 将新评论存入
data/reviews.json(跳过已处理过的 ID) - 对评分为 1–3★ 的评论:自动触发
draft_reply.py - 将所有新评论传递给
pattern_detector.py - 将本次运行时间戳写入
data/metrics.json
执行计划
- 建议通过 cron / launchd 每 4 小时运行一次
- 手动运行:
python3 scripts/monitor.py
评论数据结构
{
"id": "string",
"app_id": "string",
"app_name": "string",
"rating": 1,
"title": "string",
"body": "string",
"reviewer": "string",
"territory": "string",
"created_date": "ISO8601",
"fetched_at": "ISO8601",
"reply_status": "pending|drafting|approved|posted|rejected|skipped",
"draft_reply": "string|null",
"approved_reply": "string|null",
"replied_at": "ISO8601|null"
}
3. 回复草稿工作流
脚本: scripts/draft_reply.py
功能说明
- 接收一条评论对象(含评分、标题、正文、应用名)
- 根据星级,从
templates/reply-prompts.md中选取对应提示词模板 - 调用 Claude API,并注入品牌指南上下文
- 将草稿存入
data/queue.json,状态设为pending - 不自动发布 — 所有回复均需人工审批后方可发布
仅生成草稿的场景
- 1★、2★、3★ 评论(负面/中性反馈)
- 4★ 和 5★ 评论:仅记录,不生成草稿(状态 =
skipped)
输出格式
{
"review_id": "string",
"app_name": "string",
"rating": 2,
"review_title": "string",
"review_body": "string",
"draft_reply": "string",
"drafted_at": "ISO8601",
"status": "pending",
"approved_reply": null,
"posted_at": null
}
4. 模式检测工作流
脚本: scripts/pattern_detector.py
功能说明
- 读取
data/reviews.json中最近 7 天的所有评论 - 按应用分组
- 使用 Claude 提取投诉关键词/主题(基于语义聚类)
- 触发阈值: 同一主题/投诉在 7 天内出现 ≥3 次 → 触发 Bug 告警
- 立即发送 Telegram 告警(不等待每日 8 点队列)
告警格式(Telegram)
🚨 *Pattern Alert — FeedFare* Complaint: "Feed not refreshing / stuck on loading" Count: 5 reviews in the last 7 days Rating avg: 1.8★ Recent examples: • "App is broken, feed never loads" — 1★ (2026-02-18) • "Stuck on spinning wheel for days" — 2★ (2026-02-17) • "Used to work great, now broken" — 2★ (2026-02-16) 👉 Likely bug. Recommend investigating feed refresh logic.
模式去重机制
- 过去 24 小时内已发出的相同模式告警,不再重复发送
- 每个应用下每种唯一主题,每 24 小时窗口仅发送一次告警
- 状态记录在
data/metrics.json的pattern_alerts字段中
5. 审批队列工作流
脚本: scripts/queue_manager.py
每日汇总(上午 8 点 Telegram)
每天上午 8:00(本地时区),queue_manager.py 向 Telegram 发送一条消息,汇总当前所有待审批回复:
📱 *ReviewReply Morning Queue — 3 Pending* ━━━━━━━━━━━━━━━━━━━ 1️⃣ *FeedFare* — 2★ by @user123 (Feb 18) "App crashes every time I open it" 📝 *Draft Reply:* "Hi there! We're so sorry to hear about the crashes — that's definitely not the experience we want for you. Our team just pushed a fix in v2.1.1 that addresses the crash on launch. Please update and let us know if it helps! 🙏" ✅ /approve_1 ✏️ /edit_1 ❌ /reject_1 ━━━━━━━━━━━━━━━━━━━ 2️⃣ *FeedFare* — 1★ by @disappointed_dev (Feb 18) ... ━━━━━━━━━━━━━━━━━━━ 📊 Stats: 12 reviewed · 8 replied · 67% response rate
回复审批命令
/approve_N— 标记为已批准,并发布至 App Store Connect/edit_N— 替换草稿内容为编辑后文本,并标记为已批准/reject_N— 标记为已拒绝(不发送任何回复),并从队列中移除/skip_N— 标记为跳过(永不回复),并从队列中移除
队列状态机
new review
│
▼
[drafting] → draft failed → [error]
│
▼
[pending] ←→ [edited]
│
├─ approve → [approved] → post API → [posted]
├─ reject → [rejected]
└─ skip → [skipped]
自动发布流程
当某条回复被批准后:
queue_manager.py调用 App Store Connect API →POST /v1/customerReviewResponses- 在
data/queue.json中将该条目状态更新为posted - 在指标数据中记录
replied_at时间戳
6. 指标追踪
数据文件: data/metrics.json
追踪指标
| 指标 | 说明 |
|---|---|
total_reviews |
各应用历史累计评论总数 |
reviews_this_week |
滚动 7 日评论数 |
avg_rating |
各应用当前平均星级评分 |
rating_trend |
相较前一个 7 日周期的变化趋势 |
response_rate |
已批准/已发布的 1–3★ 评论占比 |
avg_response_time_hrs |
从评论发布到回复发布的平均耗时(小时) |
pending_count |
当前队列中待审批数量 |
posted_count |
已成功发布的回复数 |
rejected_count |
被主动拒绝(不回复)的数量 |
pattern_alerts |
已发送模式告警的历史记录 |
按需指标报告
说出 “review metrics” 或 “how are my apps doing?”,AI 将读取 data/metrics.json 并格式化输出摘要。
7. AI 指令 — 对话式命令
AI 支持以下自然语言指令:
| 用户输入 | AI 行动 |
|---|---|
| "check for new reviews" | 执行 python3 scripts/monitor.py |
| "show pending replies" | 读取 data/queue.json,列出所有 pending 条目 |
| "approve reply 3" | 执行 python3 scripts/queue_manager.py --approve 3 |
| "edit reply 2: |
执行 python3 scripts/queue_manager.py --edit 2,再通过 stdin 或临时文件传入文本 — 绝不将用户输入直接拼接到 shell 字符串中 |
| "reject reply 1" | 执行 python3 scripts/queue_manager.py --reject 1 |
| "draft a reply for review X" | 执行 python3 scripts/draft_reply.py --review-id X |
| "how are my apps doing?" | 读取 data/metrics.json,格式化输出摘要 |
| "show me recent reviews" | 读取 data/reviews.json,展示最近 10 条 |
| "any patterns this week?" | 执行 python3 scripts/pattern_detector.py --report |
| "response rate?" | 读取指标数据,显示各应用的 response_rate |
| "add app MyApp 1234567890" | 向 monitor.py 的 APPS 配置中添加应用 |
8. 必需环境变量
| 变量 | 说明 |
|---|---|
APP_STORE_KEY_ID |
App Store Connect API 密钥 ID |
APP_STORE_ISSUER_ID |
App Store Connect Issuer ID |
APP_STORE_PRIVATE_KEY_PATH |
.p8 私钥文件路径 |
ANTHROPIC_API_KEY |
Claude API 密钥(用于生成回复草稿) |
TELEGRAM_BOT_TOKEN |
Telegram Bot Token(用于通知) |
TELEGRAM_CHAT_ID |
你的 Telegram 聊天 ID |
请将这些变量存入 ~/.openclaw/.env,或在 shell 配置文件中导出。
9. Cron / LaunchAgent 执行计划
# App Store 评论监控 — 每 4 小时执行一次 0 */4 * * * cd /Users/nick/.openclaw/workspace && python3 skills/review-reply/scripts/monitor.py >> /tmp/review-reply.log 2>&1 # 每日审批队列 — 每天上午 8 点执行 0 8 * * * cd /Users/nick/.openclaw/workspace && python3 skills/review-reply/scripts/queue_manager.py --send-digest >> /tmp/review-reply.log 2>&1
LaunchAgent plist 配置详见 README.md。
10. 数据文件参考
所有数据均存放于 data/ 目录下,采用纯 JSON 格式 — 易于查看、备份与迁移。
| 文件 | 用途 |
|---|---|
data/reviews.json |
所有已获取评论,每条评论为一个 JSON 对象 |
data/queue.json |
活跃回复队列(含 pending / approved / rejected 条目) |
data/metrics.json |
聚合指标数据及模式告警历史 |
备份方式
cp -r skills/review-reply/data/ ~/review-reply-backup/
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
0
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
0
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
0
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习