ワンクリックで
competitor-tracking
竞品监控技能,定期抓取竞品数据,追踪版本更新、评分变化和功能演进
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
竞品监控技能,定期抓取竞品数据,追踪版本更新、评分变化和功能演进
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | competitor-tracking |
| description | 竞品监控技能,定期抓取竞品数据,追踪版本更新、评分变化和功能演进 |
持续追踪竞品动态,及时发现市场变化和竞争威胁。
-- 竞品基础信息表
CREATE TABLE competitors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
app_name TEXT NOT NULL,
app_id TEXT UNIQUE NOT NULL,
bundle_id TEXT,
category TEXT,
developer TEXT,
first_tracked_date TEXT,
is_active INTEGER DEFAULT 1
);
-- 竞品历史快照表
CREATE TABLE competitor_snapshots (
id INTEGER PRIMARY KEY AUTOINCREMENT,
competitor_id INTEGER,
snapshot_date TEXT NOT NULL,
version TEXT,
release_date TEXT,
rating REAL,
rating_count INTEGER,
review_count INTEGER,
price TEXT,
description TEXT,
whats_new TEXT,
FOREIGN KEY (competitor_id) REFERENCES competitors(id)
);
-- 评分分布表
CREATE TABLE rating_distribution (
id INTEGER PRIMARY KEY AUTOINCREMENT,
snapshot_id INTEGER,
star_5 INTEGER,
star_4 INTEGER,
star_3 INTEGER,
star_2 INTEGER,
star_1 INTEGER,
FOREIGN KEY (snapshot_id) REFERENCES competitor_snapshots(id)
);
-- 功能追踪表
CREATE TABLE competitor_features (
id INTEGER PRIMARY KEY AUTOINCREMENT,
competitor_id INTEGER,
feature_name TEXT,
first_detected_date TEXT,
last_verified_date TEXT,
is_active INTEGER DEFAULT 1,
FOREIGN KEY (competitor_id) REFERENCES competitors(id)
);
-- 添加竞品
INSERT INTO competitors (app_name, app_id, bundle_id, category, developer, first_tracked_date)
VALUES
('Battery Life', '1234567890', 'com.example.battery', 'Utilities', 'Example Dev', '2025-01-15'),
('System Status', '0987654321', 'com.example.system', 'Utilities', 'Another Dev', '2025-01-15');
频率建议:
抓取方法:
使用 Playwright 访问 App Store:
1. 构造 URL: https://apps.apple.com/app/id[app_id]
2. 提取页面数据
3. 存储到 competitor_snapshots
-- 检测版本更新
SELECT
c.app_name,
cs1.version as current_version,
cs2.version as previous_version,
cs1.snapshot_date as update_date
FROM competitor_snapshots cs1
JOIN competitor_snapshots cs2 ON cs1.competitor_id = cs2.competitor_id
JOIN competitors c ON cs1.competitor_id = c.id
WHERE cs1.version != cs2.version
AND cs1.snapshot_date > cs2.snapshot_date
ORDER BY cs1.snapshot_date DESC;
-- 检测评分变化
SELECT
c.app_name,
cs1.rating as current_rating,
cs2.rating as previous_rating,
cs1.rating - cs2.rating as rating_change
FROM competitor_snapshots cs1
JOIN competitor_snapshots cs2 ON cs1.competitor_id = cs2.competitor_id
JOIN competitors c ON cs1.competitor_id = c.id
WHERE cs1.id = (
SELECT MAX(id) FROM competitor_snapshots WHERE competitor_id = cs1.competitor_id
)
AND cs2.id = (
SELECT MAX(id) FROM competitor_snapshots
WHERE competitor_id = cs2.competitor_id AND id < cs1.id
)
AND ABS(cs1.rating - cs2.rating) > 0.1;
# 竞品监控周报 - [日期]
## 重大更新
### [竞品名称] - 版本 X.X.X
- 发布日期: YYYY-MM-DD
- 主要变化:
- 新增功能: [列表]
- 改进: [列表]
- 修复: [列表]
- 用户反应: [评分变化, 评论摘要]
## 评分趋势
| 竞品 | 当前评分 | 上周评分 | 变化 | 趋势 |
|------|---------|---------|------|------|
| A | 4.2 | 4.1 | +0.1 | ↑ |
| B | 3.8 | 3.9 | -0.1 | ↓ |
## 新功能发现
- [竞品名]: 新增 [功能名]
- 描述: ...
- 影响: ...
- 我们的应对: ...
## 用户反馈洞察
### 正面反馈
- [竞品]: 用户喜欢 [功能/改进]
### 负面反馈
- [竞品]: 用户抱怨 [问题]
- 机会: 我们可以 [如何做得更好]
## 建议行动
1. [基于监控发现的具体建议]
2. [建议 2]
def monitor_competitors():
# 获取竞品列表
competitors = db.query("SELECT * FROM competitors WHERE is_active = 1")
for competitor in competitors:
# 抓取最新数据
data = scrape_app_store(competitor['app_id'])
# 存储快照
snapshot_id = db.insert("""
INSERT INTO competitor_snapshots
(competitor_id, snapshot_date, version, rating, ...)
VALUES (?, ?, ?, ?, ...)
""", competitor['id'], today, data['version'], data['rating'], ...)
# 检测变化
changes = detect_changes(competitor['id'], snapshot_id)
# 如果有重大变化,发送通知
if changes['is_significant']:
send_notification(changes)
# 生成周报
if is_monday():
generate_weekly_report()
重大变化定义:
- 版本号更新
- 评分变化 > 0.2
- 评论数增加 > 20%
- 新功能发布 (从更新日志检测)
-- 最近 3 个月的评分趋势
SELECT
c.app_name,
cs.snapshot_date,
cs.rating
FROM competitor_snapshots cs
JOIN competitors c ON cs.competitor_id = c.id
WHERE cs.snapshot_date >= DATE('now', '-3 months')
ORDER BY c.app_name, cs.snapshot_date;
-- 计算平均更新间隔
SELECT
c.app_name,
COUNT(*) as version_count,
JULIANDAY(MAX(cs.release_date)) - JULIANDAY(MIN(cs.release_date)) as days_tracked,
(JULIANDAY(MAX(cs.release_date)) - JULIANDAY(MIN(cs.release_date))) / COUNT(*) as avg_days_between_updates
FROM competitor_snapshots cs
JOIN competitors c ON cs.competitor_id = c.id
WHERE cs.version IS NOT NULL
GROUP BY c.app_name;
-- 评论数增长
SELECT
c.app_name,
cs1.review_count as current_reviews,
cs2.review_count as month_ago_reviews,
cs1.review_count - cs2.review_count as review_growth,
(cs1.review_count - cs2.review_count) * 100.0 / cs2.review_count as growth_rate
FROM competitor_snapshots cs1
JOIN competitor_snapshots cs2 ON cs1.competitor_id = cs2.competitor_id
JOIN competitors c ON cs1.competitor_id = c.id
WHERE cs1.snapshot_date = DATE('now')
AND cs2.snapshot_date = DATE('now', '-1 month');
-- 添加功能
INSERT INTO competitor_features (competitor_id, feature_name, first_detected_date, is_active)
VALUES
(1, 'Battery Health Monitoring', '2025-01-15', 1),
(1, 'Charging Optimization', '2025-01-15', 1);
定期检查:
1. 下载竞品 App
2. 手动测试功能
3. 更新 is_active 状态
4. 记录 last_verified_date
SELECT
f.feature_name,
GROUP_CONCAT(
CASE WHEN cf.is_active = 1 THEN c.app_name ELSE NULL END
) as apps_with_feature
FROM (SELECT DISTINCT feature_name FROM competitor_features) f
LEFT JOIN competitor_features cf ON f.feature_name = cf.feature_name
LEFT JOIN competitors c ON cf.competitor_id = c.id
GROUP BY f.feature_name;
规则 1: 评分下降预警
- 条件: 竞品评分下降 > 0.3
- 行动: 分析原因,评估是否影响我们
规则 2: 新功能预警
- 条件: 竞品发布新功能
- 行动: 评估功能价值,决定是否跟进
规则 3: 定价变化预警
- 条件: 竞品价格变化
- 行动: 评估对市场的影响
规则 4: 增长异常预警
- 条件: 竞品评论数增长 > 50%/月
- 行动: 分析增长原因,学习策略
Use this skill when debugging complex, multi-factor, or long-running bugs. It maintains a project-root /coe Markdown case file per bug case using a strict Chain-of-Evidence model with only Problem, Hypothesis, and Evidence nodes.
Best practices for Remotion - Video creation in React
Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".
Use when the user needs to design, implement, audit, or govern Storybook stories for frontend components, design systems, page states, interaction tests, accessibility checks, visual baselines, or component-driven UI workflows.
Allows you to view the user's screen as well as several hours of history. Use when the user makes a reference to their recent work, for which it'd be helpful to see the screen. This skill MUST be used whenever you need to resolve ambiguity in a user request, where the user hasn't specified enough context to do the task. Examples include disambiguating the specific user/app/document/error the user is referring to. You must also use this skill if the user asks about any question regarding Chronicle or asks what you can see from the screen.
Use when a frontend redesign or legacy CSS refactor is blocked by global style pollution, selector collisions, unstable DOM reuse, or the need to migrate a page or module to a new UI without breaking the old system.