@scorehub/creator-outreach 1.1.7 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tiktok-creator-outreach",
3
- "version": "1.1.7",
3
+ "version": "1.1.11",
4
4
  "description": "ScoreHub AI's TikTok creator marketing expert for building clear creator profiles and validating focused collaboration shortlists across Southeast Asia.",
5
5
  "author": {
6
6
  "name": "Ben",
package/README.en.md CHANGED
@@ -6,39 +6,50 @@ Chinese version: [README.md](./README.md)
6
6
 
7
7
  ## Supported Clients
8
8
 
9
- - Claude Code
10
9
  - WorkBuddy
11
10
 
12
- Claude Desktop is not currently supported by this installer.
13
-
14
11
  ## Install
15
12
 
16
- ### Prerequisites
13
+ ### Public Entry for End Users
14
+
15
+ For the public release, end users only need to:
16
+
17
+ 1. Install WorkBuddy and launch it at least once
18
+ 2. Open the following share link in a browser so it can launch WorkBuddy and install Tiky:
19
+
20
+ `https://www.workbuddy.cn/work/launch/?sharecode=lNM8H05BRKoV-dw2gac3ZwQ-p01o3C3KVz1gXJ_CwvtX02-mSRqBB3xepE4V0gr7&expertname=Tiky+%C2%B7+TikTok%E8%BE%BE%E4%BA%BA%E8%90%A5%E9%94%80%E4%B8%93%E5%AE%B6&buddy_type=workbuddy`
21
+
22
+ 3. Return to WorkBuddy and open the “Tiky · TikTok Creator Marketing Expert” conversation
17
23
 
18
- - Node.js 18 or later
19
- - npm and network access to the npm registry
20
- - Claude Code or WorkBuddy installed and launched at least once
24
+ At the start of a new conversation, Tiky first helps check:
21
25
 
22
- Run:
26
+ - whether the plugin should be upgraded
27
+ - whether the current WorkBuddy environment can run `npx -y @scorehub/creator-outreach@latest`
28
+ - whether the local `scorehub` MCP configuration or `mcp-server` bootstrap is missing, outdated, or broken
29
+
30
+ When needed, Tiky first explains the action and waits for confirmation, then runs `npx -y @scorehub/creator-outreach@latest` to complete or repair the local bootstrap. That command refreshes Tiky's local installation and rewrites the WorkBuddy `scorehub` MCP configuration. After that, `@scorehub/mcp-server` still starts through the configured `@latest` command on first use.
31
+
32
+ The share link only installs Tiky into WorkBuddy. In the normal public path, users do not need to install `@scorehub/mcp-server` manually or edit `mcp.json` themselves.
33
+
34
+ ### Support / Internal Fallback Install
35
+
36
+ The command-line installer remains only as a support or internal fallback:
23
37
 
24
38
  ```bash
25
39
  npx -y @scorehub/creator-outreach
26
40
  ```
27
41
 
28
- The installer configures only clients it detects. If it finds neither Claude Code nor WorkBuddy, it exits without writing configuration files.
42
+ The installer configures WorkBuddy only. If it does not find WorkBuddy, it exits without writing configuration files.
29
43
 
30
44
  | Client | Detection | Installed content | How to use |
31
45
  |---|---|---|---|
32
- | Claude Code | `~/.claude/` exists | Agent definition in `~/.claude/agents/`; MCP configuration merged into `~/.claude.json` | Restart, then enter `@tiktok-creator-outreach` |
33
46
  | WorkBuddy | `~/.workbuddy/` exists | Plugin files in `~/.workbuddy/plugins/.../`; MCP configuration merged into `~/.workbuddy/mcp.json` | Restart, then select “ScoreHub AI TikTok Creator Marketing Expert” from the Agent list |
34
47
 
35
- The MCP server (`@scorehub/mcp-server`) is downloaded automatically by the configured `npx -y` command the first time it starts. A global installation is not required. WorkBuddy uses its bundled Node.js and the installer handles Windows `npx.cmd` and PATH separators.
36
-
37
- > You can also search for `@scorehub/creator-outreach` in the WorkBuddy plugin marketplace.
48
+ After Tiky completes the local bootstrap, the MCP server (`@scorehub/mcp-server`) is started automatically through `npx -y @scorehub/mcp-server@latest`. If WorkBuddy already provides a working bundled Node.js / npx, Tiky reuses it. Tiky only guides users to the official Node.js LTS installer when there is explicit evidence that the runtime is missing or too old.
38
49
 
39
50
  ## First Use and Authorization
40
51
 
41
- At the start of every new conversation, Tiky introduces its creator discovery, profile evaluation, and focused outreach-validation capabilities, explains that it is not a mass-messaging tool, and presents supported Southeast Asian markets, typical use cases, and next-step options. Explicit account or shop switch requests are an exception: a shop switch opens the current account's shop picker, while an account switch opens ScoreHub login. After you choose an operation, its first TikTok call opens a browser for ScoreHub login. Once authorization, reauthorization, or a shop switch succeeds, Tiky confirms the current login phone number, authorized shop, shop country, and bound brands in that order. Tokens are then cached under `~/.scorehub/` and shared by Claude Code and WorkBuddy, so you do not need to authorize again.
52
+ At the start of every new conversation, Tiky first looks for public-onboarding signals such as an outdated plugin version, an incomplete local bootstrap, a missing or broken `mcp-server` configuration, or host-provided evidence that Node.js / npm / npx is unavailable. Only when those signals are absent does it proceed to the standard introduction of creator discovery, profile evaluation, and focused outreach validation. If bootstrap or self-upgrade is needed, Tiky explains that it will run `npx -y @scorehub/creator-outreach@latest` and waits for confirmation first. Explicit account or shop switch requests are an exception: a shop switch opens the current account's shop picker, while an account switch opens ScoreHub login. After you choose an operation, its first TikTok call opens a browser for ScoreHub login. Once authorization, reauthorization, or a shop switch succeeds, Tiky confirms the current login phone number, authorized shop, shop country, and bound brands in that order. Tokens are then cached under `~/.scorehub/`, and ScoreHub clients on the same machine can reuse them without another authorization.
42
53
 
43
54
  If Tiky says that the current shop's TikTok authorization is invalid or unavailable, your local ScoreHub login is usually still valid. Rebind the shop in ScoreHub and try again; do not repeat browser login.
44
55
 
@@ -56,13 +67,13 @@ Ask Tiky:
56
67
 
57
68
  ### No supported client found
58
69
 
59
- Install and launch Claude Code or WorkBuddy once, then run the install command again. Claude Desktop is outside the current support scope.
70
+ Install and launch WorkBuddy once, then use the share link to launch Tiky's installation in WorkBuddy.
60
71
 
61
72
  ### MCP tools are unavailable, the tool list is empty, or the connection closes
62
73
 
63
- ScoreHub is temporarily unavailable. Fully quit and reopen Claude Code or WorkBuddy, then try again. Contact ScoreHub support if the problem continues.
74
+ Tiky first distinguishes between an outdated plugin, an incomplete `npx -y @scorehub/creator-outreach@latest` bootstrap, a broken local `mcp-server` setup, and a temporary ScoreHub outage. Follow Tiky's upgrade or repair guidance first. If there is no more specific diagnosis, fully quit and reopen WorkBuddy, then try again.
64
75
 
65
- If an error explicitly says that Node.js, npm, or npx is missing, or that Node.js is below version 18, an installed Tiky agent can check the local runtime. After your confirmation, it guides recovery through the official Node.js LTS installation path, verifies the result, and asks you to restart the client. This does not reauthorize or change TikTok credentials; Node.js is still required before Tiky can be installed for the first time.
76
+ If an error explicitly says that Node.js, npm, or npx is missing, or that Node.js is below version 18, Tiky explains the diagnosis first. After your confirmation, it guides recovery through the official Node.js LTS installation path, verifies the result, and asks you to restart WorkBuddy. This does not reauthorize or change TikTok credentials.
66
77
 
67
78
  ## Related Links
68
79
 
package/README.md CHANGED
@@ -6,39 +6,50 @@ English version: [README.en.md](./README.en.md)
6
6
 
7
7
  ## 支持的客户端
8
8
 
9
- - Claude Code
10
9
  - WorkBuddy
11
10
 
12
- Claude Desktop 当前不受此安装器支持。
13
-
14
11
  ## 安装
15
12
 
16
- ### 前置条件
13
+ ### 终端用户入口
14
+
15
+ 公开发布时,终端用户只需要:
16
+
17
+ 1. 安装并至少启动过一次 WorkBuddy
18
+ 2. 点击分享链接,在浏览器中唤起 WorkBuddy 安装 Tiky:
19
+
20
+ `https://www.workbuddy.cn/work/launch/?sharecode=lNM8H05BRKoV-dw2gac3ZwQ-p01o3C3KVz1gXJ_CwvtX02-mSRqBB3xepE4V0gr7&expertname=Tiky+%C2%B7+TikTok%E8%BE%BE%E4%BA%BA%E8%90%A5%E9%94%80%E4%B8%93%E5%AE%B6&buddy_type=workbuddy`
21
+
22
+ 3. 回到 WorkBuddy,打开 “Tiky · TikTok达人营销专家” 对话
17
23
 
18
- - Node.js 18 或更高版本
19
- - npm 和可访问 npm registry 的网络
20
- - 已安装并至少启动过 Claude Code 或 WorkBuddy
24
+ Tiky 会在新会话中优先帮助你检查:
21
25
 
22
- 运行:
26
+ - 当前插件是否需要升级
27
+ - WorkBuddy 当前环境是否支持执行 `npx -y @scorehub/creator-outreach@latest`
28
+ - 本地 `scorehub` MCP 配置或 `mcp-server` 引导是否缺失、过旧或损坏
29
+
30
+ 在需要时,Tiky 会先告知并征得你的确认,再执行 `npx -y @scorehub/creator-outreach@latest` 来完成或修复本地引导。该命令会刷新 Tiky 本地安装,并重写 WorkBuddy 中的 `scorehub` MCP 配置;之后 `@scorehub/mcp-server` 仍由配置中的 `@latest` 在首次启动时自动拉起。
31
+
32
+ 分享链接只负责把 Tiky 放进 WorkBuddy。默认情况下,你不需要手工安装 `@scorehub/mcp-server`,也不需要自己编辑 `mcp.json`。
33
+
34
+ ### 技术支持 / 内部兜底安装
35
+
36
+ 命令行安装器仅作为技术支持或内部排障路径保留:
23
37
 
24
38
  ```bash
25
39
  npx -y @scorehub/creator-outreach
26
40
  ```
27
41
 
28
- 安装器只会配置已检测到的客户端;未检测到 Claude Code 或 WorkBuddy 时,会退出且不写入任何配置文件。
42
+ 该安装器只会配置已检测到的 WorkBuddy;未检测到 WorkBuddy 时,会退出且不写入任何配置文件。
29
43
 
30
44
  | 客户端 | 检测条件 | 安装内容 | 使用方式 |
31
45
  |---|---|---|---|
32
- | Claude Code | `~/.claude/` 存在 | Agent 定义写入 `~/.claude/agents/`;MCP 配置合并到 `~/.claude.json` | 重启后输入 `@tiktok-creator-outreach` |
33
46
  | WorkBuddy | `~/.workbuddy/` 存在 | 插件文件写入 `~/.workbuddy/plugins/.../`;MCP 配置合并到 `~/.workbuddy/mcp.json` | 重启后在 Agent 列表选择“ScoreHub AI TikTok达人营销专家” |
34
47
 
35
- MCP Server(`@scorehub/mcp-server`)由配置中的 `npx -y` 在首次启动时自动拉取,无需全局安装。WorkBuddy 会使用其捆绑的 Node.js,并自动适配 Windows 的 `npx.cmd` 与 PATH 分隔符。
36
-
37
- > 也可在 WorkBuddy 插件市场直接搜索 `@scorehub/creator-outreach` 安装。
48
+ MCP Server(`@scorehub/mcp-server`)由 Tiky 完成本地引导后,通过配置中的 `npx -y @scorehub/mcp-server@latest` 在首次启动时自动拉起。WorkBuddy 若已自带可用 Node.js / npx,会优先复用;只有在存在明确缺失证据时,Tiky 才会引导你安装官方 Node.js LTS。
38
49
 
39
50
  ## 首次使用与授权
40
51
 
41
- 每个新对话的第一轮,Tiky 会先介绍达人搜索、画像评估和小范围建联验证三项能力,说明她不是海量群发工具,并给出当前支持的东南亚市场、典型用法和下一步选项。明确要求切换账号或店铺时除外:切换店铺会直接打开当前账号的店铺确认页,切换账号才会打开 ScoreHub 登录页。选择需要的操作后,它才会在首次调用 TikTok 功能时打开浏览器引导你登录 ScoreHub。授权、重新授权或店铺切换成功后,Tiky 会依次确认当前登录账号、当前授权店铺、店铺所属国家和店铺关联品牌。登录后 Token 缓存在 `~/.scorehub/`,Claude Code 与 WorkBuddy 共享,无需重复授权。
52
+ 每个新对话的第一轮,Tiky 会先识别公开版初始化信号:例如当前插件版本过旧、尚未完成本地引导、`mcp-server` 配置缺失或损坏、或宿主已明确报告 Node.js / npm / npx 缺失。只有在这些信号不存在时,她才进入达人搜索、画像评估和小范围建联验证的标准能力介绍。若需要本地引导或升级,她会先说明将执行 `npx -y @scorehub/creator-outreach@latest`,在你确认后再继续。明确要求切换账号或店铺时除外:切换店铺会直接打开当前账号的店铺确认页,切换账号才会打开 ScoreHub 登录页。选择需要的操作后,它才会在首次调用 TikTok 功能时打开浏览器引导你登录 ScoreHub。授权、重新授权或店铺切换成功后,Tiky 会依次确认当前登录账号、当前授权店铺、店铺所属国家和店铺关联品牌。登录后 Token 缓存在 `~/.scorehub/`,同一台机器上的 ScoreHub 客户端会复用这些授权信息,无需重复授权。
42
53
 
43
54
  如果提示当前店铺的 TikTok 授权已失效或异常,本地 ScoreHub 登录通常仍然有效。请先到 ScoreHub 重新绑定店铺,再重试;不要反复进行浏览器登录。
44
55
 
@@ -56,13 +67,13 @@ MCP Server(`@scorehub/mcp-server`)由配置中的 `npx -y` 在首次启动
56
67
 
57
68
  ### 找不到受支持的客户端
58
69
 
59
- 先安装并启动 Claude Code 或 WorkBuddy 一次,再重新运行安装命令。Claude Desktop 不在当前支持范围内。
70
+ 先安装并启动 WorkBuddy 一次,再通过分享链接唤起安装 Tiky。
60
71
 
61
72
  ### MCP 工具不可用、工具列表为空或连接已关闭
62
73
 
63
- ScoreHub 服务暂时未连接。请完全退出并重新打开 Claude Code 或 WorkBuddy 后重试;如仍无法使用,请联系 ScoreHub 支持。
74
+ Tiky 会优先判断是当前版本需要升级、尚未完成 `npx -y @scorehub/creator-outreach@latest` 本地引导、本地 `mcp-server` 配置异常,还是 ScoreHub 服务暂时未连接。请先按她的引导完成升级或修复;如果没有更具体的诊断结果,请完全退出并重新打开 WorkBuddy 后重试。
64
75
 
65
- 如果错误明确提示找不到 Node.js、npm 或 npx,或 Node.js 版本低于 18,已安装的 Tiky 会先检查本地运行环境。经你确认后,它会使用 Node.js 官方 LTS 安装路径协助恢复,复检通过后提示你重启客户端。该流程不会重新授权或修改 TikTok 凭证;首次安装 Tiky 前仍需自行先安装 Node.js。
76
+ 如果错误明确提示找不到 Node.js、npm 或 npx,或 Node.js 版本低于 18,Tiky 会先说明诊断结论。经你确认后,它会使用 Node.js 官方 LTS 安装路径协助恢复,复检通过后提示你重启 WorkBuddy。该流程不会重新授权或修改 TikTok 凭证。
66
77
 
67
78
  ## 相关链接
68
79
 
@@ -22,6 +22,8 @@ skills:
22
22
 
23
23
  我会基于数据给出明确判断:达人是否适合你的品类与受众、是否值得建联,以及应该如何排定合作优先级,而不只是罗列数据。
24
24
 
25
+ 本文件是 Tiky 智能体行为规范的唯一权威来源。`skills/*/SKILL.md` 只保留各领域特有的触发条件、输入输出契约和关键陷阱;`docs/README.md` 与包级 README 仅做产品、安装和协作文档说明。若摘要文档与本文件表述不一致,以本文件为准。
26
+
25
27
  ## 新会话首轮引导(最高优先级)
26
28
 
27
29
  每个新对话的第一条回复,除“账号与店铺切换”这一会话准备操作外,**无论用户输入问候、快捷指令还是具体需求**,我都必须先完成能力介绍,不执行搜索、分析、建联或授权。不要展示工具名、技术配置、错误码或内部流程。
@@ -41,6 +43,14 @@ skills:
41
43
 
42
44
  字段值必须原样使用工具结果;“未绑定”与“未获取”也必须如实告知,不得猜测或补充。仅复用本地缓存、且工具结果未包含上述字段时,不输出这段确认信息。
43
45
 
46
+ 在 WorkBuddy 公开发布场景中,若宿主、版本检测或本地诊断结果已**明确**提供以下初始化信号,也要在欢迎语前优先处理;没有明确信号时,不猜测、不阻塞欢迎语:
47
+
48
+ - **Tiky 版本落后**:优先说明将执行本地命令 `npx -y @scorehub/creator-outreach@latest` 来升级 Tiky,并明确升级不会清除本机 `~/.scorehub/` 授权缓存;**必须等待用户明确确认** 后再执行。若宿主不支持执行本地命令,或命令执行失败,再回退为提示用户重新打开分享链接 `https://www.workbuddy.cn/work/launch/?sharecode=lNM8H05BRKoV-dw2gac3ZwQ-p01o3C3KVz1gXJ_CwvtX02-mSRqBB3xepE4V0gr7&expertname=Tiky+%C2%B7+TikTok%E8%BE%BE%E4%BA%BA%E8%90%A5%E9%94%80%E4%B8%93%E5%AE%B6&buddy_type=workbuddy` 进行覆盖安装。
49
+ - **尚未完成本地引导,或 `mcp-server` 配置缺失、过旧或损坏**:优先说明将执行本地命令 `npx -y @scorehub/creator-outreach@latest`,用它完成 Tiky 本地引导,并重写 WorkBuddy 中名为 `scorehub` 的 MCP 配置;**必须等待用户明确确认** 后再执行。只有在宿主不支持命令执行、或该命令执行失败时,才回退为提示用户重启 WorkBuddy 或重新打开分享链接。
50
+ - **`status` 已明确返回 `local_state = "running_authorized_remote_unavailable"`**:说明本地 `mcp-server` 已启动并持有授权,但远端工具发现暂不可用。此时不要建议重新授权或安装 Node.js,只提示稍后重试、完全重启 WorkBuddy,或联系 ScoreHub 支持。
51
+ - **`status` 已明确返回 `local_state = "running_unauthorized"`**:说明本地 `mcp-server` 已启动但尚未完成 ScoreHub OAuth;此时可以继续欢迎语,并在用户真正要调用 TikTok 能力时再引导授权。
52
+ - **`status` 已明确返回 `config_source.managed_by = "@scorehub/creator-outreach"` 且 `config_source.client_host = "workbuddy"`**:将其视为公开版标准安装路径,不再要求终端用户手工编辑 `mcp.json`。
53
+
44
54
  首轮使用以下完整中文欢迎语,随后等待用户选择。若已知用户姓名,在开头称呼该姓名;未知时直接以“你好”开头,绝不猜测姓名:
45
55
 
46
56
  > 你好,我是 Tiky,ScoreHub AI 的 TikTok 达人营销专家。我先帮你建立清晰准确的达人画像,评估合作价值,再对精选候选人进行小范围建联验证。我不是面向成千上万达人的海量群发工具。以下是我能帮你做的事情:
@@ -156,16 +166,18 @@ Step 3: 小范围建联验证
156
166
 
157
167
  搜索和评分结果不直接展示 MCP 原始 JSON,统一遵守对应 Skill 的固定输出契约:
158
168
 
159
- - 搜索条件确定后不等待二次确认;类目闭环校验和回退重搜完成后,先展示最终实际生效的市场、类目、GMV、关键词、粉丝画像和目标展示人数,再给结果摘要与达人列表。未设置的维度写“未设置”,未显式指定市场时写“由当前授权店铺决定”。
160
- - 搜索结果按“搜索条件 / 结果摘要 / 排名 / 昵称 / 用户名 / 粉丝数 / 近 30 天 GMV 区间 / 类目匹配 / 达人 ID / 分页状态 / 下一步”顺序展示。默认保持搜索接口返回顺序;只有用户明确要求时才重排。
169
+ - 搜索条件确定后不等待二次确认;类目闭环校验和回退重搜完成后,直接给结果摘要与达人列表。市场、类目、GMV、关键词、粉丝画像和目标展示人数仅用于内部搜索会话、翻页与校验,不得展示在搜索结果或评分结果中。
170
+ - 搜索结果按“结果摘要 / 排名 / 昵称 / 用户名 / 粉丝数 / 近 30 天 GMV 区间 / 类目匹配 / 达人 ID / 分页状态 / 下一步”顺序展示。默认保持搜索接口返回顺序;只有用户明确要求时才重排。
171
+ - 搜索结果的下一步建议包含分析选中达人、继续翻页、调整条件,以及选择 2 位及以上达人进行相对评分排名。评分建议只引导用户明确指定候选人,不自动调用 `creator_performance`。
161
172
  - 用户未指定数量时默认展示 20 位;用户指定超过 60 位时按 60 位执行并提前告知。相同条件下的首次搜索和继续翻页累计最多展示 60 位,条件变更或明确重新搜索才重置额度。达到上限时提示调整条件后重新搜索,不再建议继续翻页;内部 `page_token` 永不展示。
162
173
  - 搜索结果若包含 `username`,则“昵称”列链接到 `https://www.tiktok.com/@{username}`;“用户名”列继续显示纯文本 `@username`。`username` 缺失时昵称保持纯文本,不猜测主页地址。
163
174
  - 每位达人只保留搜索结果返回的 `creator_open_id`。表现分析时将该值放入兼容入参 `creator_user_id`,建联时将同一个值放入 `creator_open_id`。ID 在界面中弱化展示,但不得丢失、改写或推断。
164
175
  - 单达人只展示表现画像、数据缺口和合作建议,不生成候选集相对综合分;至少 2 位候选人才输出综合评分排行榜。
165
176
  - 多人评分固定展示综合分、五个维度分、标签,并补充逐人详情、数据缺口、合作建议和失败名单。默认按综合分、带货分、内容分、粉丝数依次降序处理并列。
177
+ - 评分结果可展示评分对象范围、成功/失败数和相对评分说明,但不复述候选人来源搜索的条件。
166
178
  - 字段缺失显示 `—` 并说明原因;失败达人不以 0 分参与排名;禁止编造缺失指标、内容风格或合作历史。
167
179
 
168
- 结果为 1–5 条时使用 Markdown;达到 6 条时,如果当前宿主提供 HTML/可视化产物能力,默认生成响应式 HTML 报告。用户明确要求 HTML 时不受条数限制;能力不可用或生成失败时回退完整 Markdown。
180
+ 搜索结果为 1–5 条时使用 Markdown。在 WorkBuddy 中达到 6 条时,必须通过当前宿主的 HTML 产物通道创建响应式 HTML 报告;不得仅因宿主未显式声明 HTML/可视化能力而回退 Markdown。仅当产物实际创建失败时,回退为包含全部记录的 Markdown 并如实说明未生成报告。用户明确要求 HTML 时不受条数限制;非 WorkBuddy 宿主使用完整 Markdown。
169
181
 
170
182
  HTML 报告必须自包含,只使用内联 CSS/JavaScript,不依赖 CDN、远程字体或外部图片;工具返回文本必须先做 HTML 转义。搜索结果中的昵称链接若存在,必须使用新标签页打开并带 `rel="noopener noreferrer"`,URL 中的 `username` 需做安全编码。只实现真实可用的搜索、排序、展开和复制交互,不添加无法调用 Agent/MCP 的伪按钮。生成报告后仍在对话中保留简短摘要,且只有实际生成产物时才可声明存在 HTML,不得虚构文件名或 `outputs` 路径。
171
183
 
@@ -174,15 +186,15 @@ HTML 报告必须自包含,只使用内联 CSS/JavaScript,不依赖 CDN、
174
186
  1. **单步确认,多步通报**:单次操作(搜索/分析单个达人)直接执行并汇报结果;多位达人分析或小范围建联验证先确认计划再执行。
175
187
  2. **建联前置确认**:建联验证前必须与你确认品牌名和佣金比例(用于模板变量替换),并让你核对消息内容。
176
188
  3. **画像优先与规模边界**:建联的目的是验证精选候选人的合作假设,而非向成千上万位达人海量群发。当用户提出此类要求时,明确说明不属于 Tiky 的定位,并引导先搜索、分析、排名,再确定精选小名单进行建联验证。
177
- 3. **配额意识**:你每天有 10,000 次 API 配额,我每次操作都会告知消耗量。如果预算紧张,我会建议优先级策略。
178
- 4. **失败不沉默**:API 调用失败时我会用中文明确告知原因和下一步处理建议,不向用户展示错误码或英文原文。
179
- 5. **数据可追溯**:每次搜索结果、分析报告、建联记录都保留完整,方便你后续回溯。
180
- 6. **不在深夜骚扰达人**:建联消息默认按达人所在时区的工作时间(9:00-21:00)发送,避免深夜打扰。
181
- 7. **类目解析规范**:当用户提到品类名称(如"美妆"/"电子产品")时,必须先用 `get_categories` 解析为类目 ID,再搜索达人。绝不要凭空猜测类目 ID 或使用硬编码值。如果 `get_categories` 返回多个匹配结果,用表格展示让用户确认具体要筛选哪些类目。
182
- 8. **结构化错误优先**:远程工具若返回结构化 JSON,必须优先读取其中的 `error_type` 决定下一步动作,不要靠自然语言错误文本猜测。
183
- 9. **两层授权区分**:当 `error_type = "shop_auth_invalid"`,或者 `authorize` / `status` 正常但真实 TikTok 工具提示当前店铺授权失效、过期、撤销或异常时,我必须判断为店铺侧 TikTok 绑定问题,直接提醒用户去 ScoreHub 重新绑定该店铺;不要让用户重复本地 OAuth 登录。
184
- 10. **限流优先等待**:当 `error_type = "rate_limited"` 或 `error_type = "quota_exhausted"`,或者提示请求过于频繁、持续限流或配额受限时,我只会建议你耐心等待、分批执行、缩小请求范围或稍后重试;不要建议“重新授权拿一个干净的 token”,也不要主动调用 `authorize`。只有你自己明确要求重新授权时,我才会这么做。
185
- 11. **切换与重新绑定区分**:用户明确要求切换店铺时,调用 `authorize({ "switch_shop": true })` 打开店铺确认页;用户明确要求切换账号时,调用 `authorize({ "force": true })` 重新登录。当前店铺返回 `shop_auth_invalid` 时仍是 TikTok 授权重新绑定问题,不能把它误作账号或店铺切换。
189
+ 4. **配额意识**:你每天有 10,000 次 API 配额,我每次操作都会告知消耗量。如果预算紧张,我会建议优先级策略。
190
+ 5. **失败不沉默**:API 调用失败时我会用中文明确告知原因和下一步处理建议,不向用户展示错误码或英文原文。
191
+ 6. **数据可追溯**:每次搜索结果、分析报告、建联记录都保留完整,方便你后续回溯。
192
+ 7. **不在深夜骚扰达人**:建联消息默认按达人所在时区的工作时间(9:00-21:00)发送,避免深夜打扰。
193
+ 8. **类目解析规范**:当用户提到品类名称(如"美妆"/"电子产品")时,必须先用 `get_categories` 解析为类目 ID,再搜索达人。绝不要凭空猜测类目 ID 或使用硬编码值。如果 `get_categories` 返回多个匹配结果,用表格展示让用户确认具体要筛选哪些类目。
194
+ 9. **结构化错误优先**:远程工具若返回结构化 JSON,必须优先读取其中的 `error_type` 决定下一步动作,不要靠自然语言错误文本猜测。
195
+ 10. **两层授权区分**:当 `error_type = "shop_auth_invalid"`,或者 `authorize` / `status` 正常但真实 TikTok 工具提示当前店铺授权失效、过期、撤销或异常时,我必须判断为店铺侧 TikTok 绑定问题,直接提醒用户去 ScoreHub 重新绑定该店铺;不要让用户重复本地 OAuth 登录。
196
+ 11. **限流优先等待**:当 `error_type = "rate_limited"` 或 `error_type = "quota_exhausted"`,或者提示请求过于频繁、持续限流或配额受限时,我只会建议你耐心等待、分批执行、缩小请求范围或稍后重试;不要建议“重新授权拿一个干净的 token”,也不要主动调用 `authorize`。只有你自己明确要求重新授权时,我才会这么做。
197
+ 12. **切换与重新绑定区分**:用户明确要求切换店铺时,调用 `authorize({ "switch_shop": true })` 打开店铺确认页;用户明确要求切换账号时,调用 `authorize({ "force": true })` 重新登录。当前店铺返回 `shop_auth_invalid` 时仍是 TikTok 授权重新绑定问题,不能把它误作账号或店铺切换。
186
198
 
187
199
  ## 调用方式
188
200
 
@@ -203,15 +215,19 @@ HTML 报告必须自包含,只使用内联 CSS/JavaScript,不依赖 CDN、
203
215
 
204
216
  只有在宿主错误、终端输出或用户明确反馈表明 `node`、`npm` 或 `npx` 不存在,或者 Node.js 版本低于 18 时,才进入本节。普通的 MCP 工具不可见、工具列表为空、连接关闭或本地 MCP 未启动本身**不是**运行环境缺失的证据,仍按本节后的常规断连提示处理。不要将 `shop_auth_invalid`、`oauth_invalid`、`rate_limited` 或 `quota_exhausted` 误判为运行环境问题,也不要在本流程调用 `authorize`。
205
217
 
218
+ 在 WorkBuddy 公开版中,优先复用 WorkBuddy 已捆绑且可用的 Node.js / npx。只有宿主已明确报告其捆绑运行时不可用,或三条版本命令明确失败/版本过低时,才引导用户安装系统级 Node.js LTS。执行 `npx -y @scorehub/creator-outreach@latest` 前,也必须先尽量复用 WorkBuddy 当前可用的 Node.js / npx。
219
+
206
220
  此例外中可以向用户说明 Node.js、npm 和 npx:
207
221
 
208
222
  1. 宿主提供终端能力时,先读取操作系统,并检查 `node --version`、`npm --version`、`npx --version`。在 WorkBuddy 中,优先检查其已配置的捆绑 Node.js / npx;可用时不要求用户安装另一份。
209
223
  2. 宿主不提供终端能力时,说明无法自动诊断,请用户运行上述三条命令并提供结果;若错误已明确指出 `node`、`npm` 或 `npx` 缺失,可直接进入下一步。
210
224
  3. 缺失、不完整或版本低于 18 时,先明确告知诊断结论、需要安装 Node.js LTS、可能需要管理员授权和将打开官方安装入口;**必须等待用户明确确认**,不得静默下载、安装或修改 PATH。
211
225
  4. 用户确认后:macOS 和 Windows 打开 `https://nodejs.org/en/download` 并引导安装 LTS;Linux 先识别发行版,再使用 NodeSource 的受支持安装路径。没有终端或打开链接能力时,提供同样的官方步骤并等待用户自行完成。不得使用未验证的第三方下载源。
212
- 5. 安装完成后,重新检查三条版本命令。只有 Node.js 为 18+、npm 和 npx 均可用时,才提示用户完全退出并重新打开 Claude Code 或 WorkBuddy;现有 `npx -y @scorehub/mcp-server@latest` 配置会自动拉取并启动本地代理。Node.js 和 npm 存在但 npx 缺失时,视为不完整安装,指导修复或重装 Node.js LTS,**不得**改写 MCP 配置为其他启动命令。
226
+ 5. 安装完成后,重新检查三条版本命令。只有 Node.js 为 18+、npm 和 npx 均可用时,才提示用户完全退出并重新打开 WorkBuddy;现有 `npx -y @scorehub/mcp-server@latest` 配置会自动拉取并启动本地代理。Node.js 和 npm 存在但 npx 缺失时,视为不完整安装,指导修复或重装 Node.js LTS,**不得**改写 MCP 配置为其他启动命令。
227
+
228
+ 如果宿主、版本检测或 `status` 工具已明确指出 Tiky 自身版本落后,先引导用户执行 `npx -y @scorehub/creator-outreach@latest` 升级 Tiky,再继续处理运行环境或 MCP 修复;避免让旧版智能体继续指导公开版安装流程。若宿主不支持执行本地命令,再回退为重新打开分享链接覆盖安装。
213
229
 
214
- 如果没有上述明确证据,直接告诉用户:“ScoreHub 服务暂时未连接,请完全退出并重新打开 Claude Code 或 WorkBuddy 后重试;如仍无法使用,请联系 ScoreHub 支持。”不要向终端用户提及 Node.js、npm、网络、环境变量、TikTok API 凭证或直连 API,也不要调用 `authorize`。
230
+ 如果没有上述明确证据,直接告诉用户:“ScoreHub 服务暂时未连接,请完全退出并重新打开 WorkBuddy 后重试;如仍无法使用,请联系 ScoreHub 支持。”不要向终端用户提及 Node.js、npm、网络、环境变量、TikTok API 凭证或直连 API,也不要调用 `authorize`。
215
231
 
216
232
  如果本地登录状态正常,但真实工具调用提示当前店铺的 TikTok 授权已失效或异常,我会直接提醒你去 ScoreHub 重新绑定该店铺后再试,不会再让你重复浏览器登录。
217
233
 
package/install.js CHANGED
@@ -7,6 +7,8 @@ const { execSync } = require('child_process');
7
7
 
8
8
  const pkg = require('./package.json');
9
9
  const MIN_NODE_MAJOR = 18;
10
+ const WORKBUDDY_SHARE_URL = 'https://www.workbuddy.cn/work/launch/?sharecode=lNM8H05BRKoV-dw2gac3ZwQ-p01o3C3KVz1gXJ_CwvtX02-mSRqBB3xepE4V0gr7&expertname=Tiky+%C2%B7+TikTok%E8%BE%BE%E4%BA%BA%E8%90%A5%E9%94%80%E4%B8%93%E5%AE%B6&buddy_type=workbuddy';
11
+ const CREATOR_OUTREACH_SELF_BOOTSTRAP_COMMAND = 'npx -y @scorehub/creator-outreach@latest';
10
12
 
11
13
  const MCP_CONFIG = {
12
14
  type: 'stdio',
@@ -14,6 +16,8 @@ const MCP_CONFIG = {
14
16
  args: ['-y', '@scorehub/mcp-server@latest'],
15
17
  env: {
16
18
  SCOREHUB_REMOTE_MCP_URL: 'https://app.scorehub.cn/mcp',
19
+ SCOREHUB_CLIENT_HOST: 'workbuddy',
20
+ SCOREHUB_MANAGED_BY: '@scorehub/creator-outreach',
17
21
  },
18
22
  };
19
23
 
@@ -26,13 +30,9 @@ function isSupportedNode(nodeVersion = process.versions.node) {
26
30
  }
27
31
 
28
32
  function getPaths(homeDir) {
29
- const claudeDir = path.join(homeDir, '.claude');
30
33
  const workBuddyDir = path.join(homeDir, '.workbuddy');
31
34
 
32
35
  return {
33
- claudeDir,
34
- agentsDir: path.join(claudeDir, 'agents'),
35
- claudeJson: path.join(homeDir, '.claude.json'),
36
36
  workBuddyDir,
37
37
  workBuddyPluginDir: path.join(
38
38
  workBuddyDir, 'plugins', 'marketplaces', 'my-experts', 'plugins', 'tiktok-creator-outreach',
@@ -101,57 +101,49 @@ function install({
101
101
  }
102
102
 
103
103
  const paths = getPaths(homeDir);
104
- const hasClaudeCode = fs.existsSync(paths.claudeDir);
105
104
  const hasWorkBuddy = fs.existsSync(paths.workBuddyDir);
106
105
 
107
- if (!hasClaudeCode && !hasWorkBuddy) {
108
- console.error('No supported client was found. Launch Claude Code or WorkBuddy once, then run this command again. No configuration files were changed.');
106
+ if (!hasWorkBuddy) {
107
+ console.error('No supported client was found. Launch WorkBuddy once, then run this command again. No configuration files were changed.');
109
108
  return 1;
110
109
  }
111
110
 
112
- if (hasClaudeCode) {
113
- const agentSource = path.join(__dirname, 'agents', 'tiktok-creator-outreach.md');
114
- const agentDestination = path.join(paths.agentsDir, 'tiktok-creator-outreach.md');
115
- fs.mkdirSync(paths.agentsDir, { recursive: true });
116
- fs.copyFileSync(agentSource, agentDestination);
117
- mergeMcpConfig(paths.claudeJson, 'scorehub', MCP_CONFIG, {});
118
- console.log(`Claude Code: Agent installed at ${agentDestination}`);
119
- console.log(`Claude Code: MCP server configured at ${paths.claudeJson}`);
120
- }
121
-
122
- if (hasWorkBuddy) {
123
- const pluginDirs = ['.codebuddy-plugin', 'agents', 'skills', 'avatars'];
124
- const pluginFiles = ['package.json', 'README.md', 'README.en.md'];
111
+ const pluginDirs = ['.codebuddy-plugin', 'agents', 'skills', 'avatars'];
112
+ const pluginFiles = ['package.json', 'README.md', 'README.en.md'];
125
113
 
126
- fs.mkdirSync(paths.workBuddyPluginDir, { recursive: true });
127
- for (const dir of pluginDirs) {
128
- const source = path.join(__dirname, dir);
129
- const destination = path.join(paths.workBuddyPluginDir, dir);
130
- if (fs.existsSync(source)) {
131
- fs.cpSync(source, destination, { recursive: true });
132
- }
114
+ fs.mkdirSync(paths.workBuddyPluginDir, { recursive: true });
115
+ for (const dir of pluginDirs) {
116
+ const source = path.join(__dirname, dir);
117
+ const destination = path.join(paths.workBuddyPluginDir, dir);
118
+ if (fs.existsSync(source)) {
119
+ fs.cpSync(source, destination, { recursive: true });
133
120
  }
121
+ }
134
122
 
135
- for (const file of pluginFiles) {
136
- const source = path.join(__dirname, file);
137
- const destination = path.join(paths.workBuddyPluginDir, file);
138
- if (fs.existsSync(source)) {
139
- fs.copyFileSync(source, destination);
140
- }
123
+ for (const file of pluginFiles) {
124
+ const source = path.join(__dirname, file);
125
+ const destination = path.join(paths.workBuddyPluginDir, file);
126
+ if (fs.existsSync(source)) {
127
+ fs.copyFileSync(source, destination);
141
128
  }
142
-
143
- const { npx, binDir } = resolveWorkBuddyNode(paths.workBuddyDir);
144
- const { type: _, ...baseMcpConfig } = MCP_CONFIG;
145
- const existingPath = process.env.PATH || process.env.Path || '';
146
- const env = binDir
147
- ? Object.assign({}, MCP_CONFIG.env, { PATH: [binDir, existingPath].filter(Boolean).join(path.delimiter) })
148
- : MCP_CONFIG.env;
149
- const workBuddyMcpConfig = Object.assign({}, baseMcpConfig, { command: npx, env });
150
- mergeMcpConfig(paths.workBuddyMcpJson, 'scorehub', workBuddyMcpConfig, { disabled: false });
151
- console.log(`WorkBuddy: Plugin installed at ${paths.workBuddyPluginDir}`);
152
- console.log(`WorkBuddy: MCP server configured at ${paths.workBuddyMcpJson}`);
153
129
  }
154
130
 
131
+ const { npx, binDir } = resolveWorkBuddyNode(paths.workBuddyDir);
132
+ const { type: _, ...baseMcpConfig } = MCP_CONFIG;
133
+ const existingPath = process.env.PATH || process.env.Path || '';
134
+ const env = binDir
135
+ ? Object.assign({}, MCP_CONFIG.env, {
136
+ SCOREHUB_CREATOR_OUTREACH_VERSION: pkg.version,
137
+ PATH: [binDir, existingPath].filter(Boolean).join(path.delimiter),
138
+ })
139
+ : Object.assign({}, MCP_CONFIG.env, {
140
+ SCOREHUB_CREATOR_OUTREACH_VERSION: pkg.version,
141
+ });
142
+ const workBuddyMcpConfig = Object.assign({}, baseMcpConfig, { command: npx, env });
143
+ mergeMcpConfig(paths.workBuddyMcpJson, 'scorehub', workBuddyMcpConfig, { disabled: false });
144
+ console.log(`WorkBuddy: Plugin installed at ${paths.workBuddyPluginDir}`);
145
+ console.log(`WorkBuddy: MCP server configured at ${paths.workBuddyMcpJson}`);
146
+
155
147
  const mcpServerVersion = getLatestMcpServerVersion();
156
148
  if (mcpServerVersion) {
157
149
  console.log(`\nmcp-server latest version: v${mcpServerVersion} (npx resolves @latest again when it starts).`);
@@ -159,10 +151,7 @@ function install({
159
151
  console.log('\nmcp-server: @latest (the current version could not be queried).');
160
152
  }
161
153
 
162
- const platforms = [];
163
- if (hasClaudeCode) platforms.push('Claude Code');
164
- if (hasWorkBuddy) platforms.push('WorkBuddy');
165
- console.log(`\nInstallation complete. Restart ${platforms.join(' / ')} and use Tiky.`);
154
+ console.log('\nInstallation complete. Restart WorkBuddy and use Tiky.');
166
155
  return 0;
167
156
  }
168
157
 
@@ -171,7 +160,9 @@ if (require.main === module) {
171
160
  }
172
161
 
173
162
  module.exports = {
163
+ CREATOR_OUTREACH_SELF_BOOTSTRAP_COMMAND,
174
164
  MIN_NODE_MAJOR,
165
+ WORKBUDDY_SHARE_URL,
175
166
  getNodeMajorVersion,
176
167
  getPaths,
177
168
  install,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scorehub/creator-outreach",
3
- "version": "1.1.7",
3
+ "version": "1.1.11",
4
4
  "description": "ScoreHub AI TikTok达人营销专家 Tiky — Agent 定义 + Skills 配置",
5
5
  "engines": {
6
6
  "node": ">=18"
@@ -30,15 +30,7 @@
30
30
  1. **建会话**:调用 **`create_conversation`**,入参 `creator_open_id`(来自搜索结果),返回 `conversation_id`。
31
31
  2. **发消息**:调用 **`send_message`**,入参 `conversation_id` + `msg_type: "TEXT"` + `content`(模板填充后的文本)。
32
32
 
33
- 如果宿主错误、终端输出或用户明确反馈表明 `node`、`npm` 或 `npx` 缺失,或 Node.js 低于 18,优先按 Agent 的“本地运行环境恢复”流程处理:有终端时检查 `node --version`、`npm --version`、`npx --version`,WorkBuddy 优先复用捆绑运行时;先说明诊断与 Node.js LTS 安装影响并等待用户明确确认,再按操作系统打开官方安装入口或执行受支持步骤,最后复检并要求重启客户端。不得调用 `authorize`、静默安装或改写 MCP 配置。
34
-
35
- 其他 ScoreHub MCP 工具不可见、工具列表为空、连接已关闭或本地 MCP 未启动,直接提示用户:“ScoreHub 服务暂时未连接,请完全退出并重新打开 Claude Code 或 WorkBuddy 后重试;如仍无法使用,请联系 ScoreHub 支持。”不要向终端用户提及 Node.js、npm、网络、环境变量、TikTok API 凭证或直连 API,也不要调用 `authorize`。
36
-
37
- 如果工具返回结构化 JSON,优先按 `error_type` 做分流,不要靠自然语言错误文本猜测。
38
-
39
- 如果本地登录状态正常,但工具提示当前店铺的 TikTok 授权失效或异常,直接提醒用户去 ScoreHub 重新绑定该店铺后再试;不要展示错误码,也不要要求用户重复执行 `authorize`。
40
-
41
- 如果工具提示请求过于频繁、持续限流或配额受限,直接提醒用户暂停发送、耐心等待并稍后继续;不要建议“重新授权拿一个干净的 token”,也不要主动走 `authorize`,除非用户自己明确要求重新授权。
33
+ 授权、限流、MCP 不可用和本地运行环境恢复遵循 Agent 的权威规则,本技能不重复展开。
42
34
 
43
35
  ### 速率与话术
44
36
 
@@ -59,14 +51,4 @@
59
51
 
60
52
  ## 错误处理
61
53
 
62
- | 问题类型 | 处理 |
63
- |----------|------|
64
- | 明确的 Node.js / npm / npx 缺失或 Node.js < 18 | 按 Agent 的“本地运行环境恢复”流程:诊断后等待用户确认,使用官方 Node.js LTS 路径恢复、复检并重启客户端;不走 `authorize` |
65
- | 其他 MCP 工具不可见、工具列表为空、连接关闭或本地 MCP 未启动 | 提示“ScoreHub 服务暂时未连接,请完全退出并重新打开客户端后重试;如仍无法使用,请联系 ScoreHub 支持。”不提及技术配置,不走 `authorize` |
66
- | `oauth_invalid` | 仅在真正未授权或本地 OAuth 失效时,才允许提示用户调用 `authorize` |
67
- | 当前店铺的 TikTok 授权失效或异常 | 用中文提醒用户:本地登录状态正常,但当前店铺需要先到 ScoreHub 重新绑定后再试;不要展示错误码,不要要求重复 `authorize` |
68
- | 建会话入参不对或达人标识无效 | 检查传入的是来自搜索结果的 `creator_open_id` |
69
- | 消息配额已用完或当前达人不满足发送条件 | 跳过该达人,继续后续名单 |
70
- | 日配额已用完 | 停止全部 |
71
- | 请求过于频繁或持续限流 | 先提醒用户暂停发送、耐心等待并稍后继续;必要时有限退避重试。不要建议重新授权;只有用户明确要求时才走 `authorize` |
72
- | 参数无效 | 提示用户修正名单、消息内容或建联参数,不走授权路径 |
54
+ 建联专属错误分支仅处理 `creator_open_id` 无效、`create_conversation` 参数不合法、消息内容不合法,以及单达人消息配额或发送条件不满足;其余授权、限流、MCP 可用性与本地环境问题均遵循 Agent 权威规则。
@@ -20,19 +20,11 @@ description: 获取 TikTok 达人近 30 天表现数据,按候选集相对评
20
20
  对候选达人**逐个**调用 MCP 工具 **`creator_performance`**:工具入参名保留为 `creator_user_id`,其值必须直接使用搜索结果中的 `creator_open_id`。拿到表现数据后应用
21
21
  [评分模型](./references/scoring-model.md) 打分排序。批量分析属多步操作,先与用户确认名单再执行。
22
22
 
23
- 如果宿主错误、终端输出或用户明确反馈表明 `node`、`npm` 或 `npx` 缺失,或 Node.js 低于 18,优先按 Agent 的“本地运行环境恢复”流程处理:有终端时检查 `node --version`、`npm --version`、`npx --version`,WorkBuddy 优先复用捆绑运行时;先说明诊断与 Node.js LTS 安装影响并等待用户明确确认,再按操作系统打开官方安装入口或执行受支持步骤,最后复检并要求重启客户端。不得调用 `authorize`、静默安装或改写 MCP 配置。
24
-
25
- 其他 ScoreHub MCP 工具不可见、工具列表为空、连接已关闭或本地 MCP 未启动,直接提示用户:“ScoreHub 服务暂时未连接,请完全退出并重新打开 Claude Code 或 WorkBuddy 后重试;如仍无法使用,请联系 ScoreHub 支持。”不要向终端用户提及 Node.js、npm、网络、环境变量、TikTok API 凭证或直连 API,也不要调用 `authorize`。
26
-
27
- 如果工具返回结构化 JSON,优先按 `error_type` 做分流,不要靠自然语言错误文本猜测。
28
-
29
- 如果本地登录状态正常,但工具提示当前店铺的 TikTok 授权失效或异常,直接提醒用户去 ScoreHub 重新绑定该店铺后再试;不要展示错误码,也不要要求用户重复执行 `authorize`。
30
-
31
- 如果工具提示请求过于频繁、持续限流或配额受限,直接提醒用户耐心等待、减少本次分析人数或稍后重试;不要建议“重新授权拿一个干净的 token”,也不要主动走 `authorize`,除非用户自己明确要求重新授权。
23
+ 授权、限流、MCP 不可用和本地运行环境恢复遵循 Agent 的权威规则,本技能不重复展开。
32
24
 
33
25
  ### 输出(固定格式)
34
26
 
35
- 禁止直接展示 MCP 原始 JSON。评分是候选集内归一化后的**相对分**,按以下两种情况输出:
27
+ 禁止直接展示 MCP 原始 JSON,也不得复述候选人来源搜索的市场、类目、GMV、关键词、粉丝画像或目标人数等条件。评分是候选集内归一化后的**相对分**,按以下两种情况输出:
36
28
 
37
29
  #### 单个达人
38
30
 
@@ -42,7 +34,7 @@ description: 获取 TikTok 达人近 30 天表现数据,按候选集相对评
42
34
 
43
35
  #### 两个及以上达人
44
36
 
45
- 1. **评分摘要**:成功分析数、失败数、评分对象范围和相对评分说明。
37
+ 1. **评分摘要**:成功分析数、失败数、评分对象范围和相对评分说明;不展示原搜索条件。
46
38
  2. **排行榜**:固定展示“排名 / 达人 / 综合分 / 带货能力 / 内容影响力 / 粉丝规模 / 品类匹配 / 粉丝质量 / 标签”。
47
39
  3. **达人详情**:逐人展示关键原始指标、优势/风险、数据缺口、合作建议,以及从搜索上下文保留的标识。
48
40
  4. **失败名单**:部分分析失败时单列达人和用户可理解的原因,不得把失败值作为 0 分参与排序。
@@ -60,7 +52,7 @@ description: 获取 TikTok 达人近 30 天表现数据,按候选集相对评
60
52
 
61
53
  - 成功结果为 1–5 位时使用 Markdown;达到 **6 位**时,若当前宿主提供 HTML/可视化产物能力,默认生成自包含的响应式 HTML 报告。用户明确要求 HTML 时不受人数限制。
62
54
  - 宿主不支持 HTML,或 HTML 生成失败时,必须回退为包含完整排行榜、详情和失败名单的 Markdown。
63
- - HTML 评分报告必须包含:评分摘要、可排序排行榜、五维分数、达人详情、数据缺口、合作建议和弱化的达人 ID 复制区域。
55
+ - HTML 评分报告必须包含:不含原搜索条件的评分摘要、可排序排行榜、五维分数、达人详情、数据缺口、合作建议和弱化的达人 ID 复制区域。
64
56
  - 只使用内联 CSS/JavaScript,不依赖 CDN、远程字体或外部图片;只实现真实可用的搜索、排序、展开和复制交互,不添加无法触发 Agent 或 MCP 操作的伪按钮。
65
57
  - 昵称、用户名、标签及所有工具返回文本写入 HTML 前必须转义;禁止把工具内容作为 HTML 或脚本执行。
66
58
  - 生成 HTML 后仍需在对话中给出成功/失败数量、前三名和数据完整性的简短摘要。只有实际生成产物时才可声明存在 HTML,不得虚构文件名或 `outputs` 路径。
@@ -80,13 +72,4 @@ description: 获取 TikTok 达人近 30 天表现数据,按候选集相对评
80
72
 
81
73
  ## 错误处理
82
74
 
83
- | 问题类型 | 处理 |
84
- |----------|------|
85
- | 明确的 Node.js / npm / npx 缺失或 Node.js < 18 | 按 Agent 的“本地运行环境恢复”流程:诊断后等待用户确认,使用官方 Node.js LTS 路径恢复、复检并重启客户端;不走 `authorize` |
86
- | 其他 MCP 工具不可见、工具列表为空、连接关闭或本地 MCP 未启动 | 提示“ScoreHub 服务暂时未连接,请完全退出并重新打开客户端后重试;如仍无法使用,请联系 ScoreHub 支持。”不提及技术配置,不走 `authorize` |
87
- | `oauth_invalid` | 仅在真正未授权或本地 OAuth 失效时,才允许提示用户调用 `authorize` |
88
- | 当前店铺的 TikTok 授权失效或异常 | 用中文提醒用户:本地登录状态正常,但当前店铺需要先到 ScoreHub 重新绑定后再试;不要展示错误码,不要要求重复 `authorize` |
89
- | 达人当前不可分析(如无电商权限或区域不匹配) | 跳过该达人,并说明当前达人不满足分析条件 |
90
- | 日配额已用完 | 停止 |
91
- | 请求过于频繁或持续限流 | 先提醒用户耐心等待,建议减少本次分析人数或稍后重试;必要时有限退避重试。不要建议重新授权;只有用户明确要求时才走 `authorize` |
92
- | 参数无效 | 提示用户修正待分析名单或输入格式,不走授权路径 |
75
+ 分析专属错误分支仅处理候选名单无效、达人当前不可分析、数据缺口导致维度无法计算,以及 `creator_open_id` 无法从搜索上下文透传;其余授权、限流、MCP 可用性与本地环境问题均遵循 Agent 权威规则。
@@ -38,15 +38,7 @@ description: 在 TikTok Shop Creator Marketplace 中按关键词、类目、GMV
38
38
 
39
39
  调用 MCP 工具 **`search_creators`**,不要写脚本。若已授权可直接调用;未授权时先走 `authorize`。
40
40
 
41
- 如果宿主错误、终端输出或用户明确反馈表明 `node`、`npm` 或 `npx` 缺失,或 Node.js 低于 18,优先按 Agent 的“本地运行环境恢复”流程处理:有终端时检查 `node --version`、`npm --version`、`npx --version`,WorkBuddy 优先复用捆绑运行时;先说明诊断与 Node.js LTS 安装影响并等待用户明确确认,再按操作系统打开官方安装入口或执行受支持步骤,最后复检并要求重启客户端。不得调用 `authorize`、静默安装或改写 MCP 配置。
42
-
43
- 其他 ScoreHub MCP 工具不可见、工具列表为空、连接已关闭或本地 MCP 未启动,直接提示用户:“ScoreHub 服务暂时未连接,请完全退出并重新打开 Claude Code 或 WorkBuddy 后重试;如仍无法使用,请联系 ScoreHub 支持。”不要向终端用户提及 Node.js、npm、网络、环境变量、TikTok API 凭证或直连 API,也不要调用 `authorize`。
44
-
45
- 如果工具返回结构化 JSON,优先按 `error_type` 做分流,不要靠自然语言错误文本猜测。
46
-
47
- 如果本地登录状态正常,但工具提示当前店铺的 TikTok 授权失效或异常,直接提醒用户去 ScoreHub 重新绑定该店铺后再试;不要展示错误码,也不要要求用户重复执行 `authorize`。
48
-
49
- 如果工具提示请求过于频繁、持续限流或配额受限,直接提醒用户耐心等待、缩小搜索范围或稍后重试;不要建议“重新授权拿一个干净的 token”,也不要主动走 `authorize`,除非用户自己明确要求重新授权。
41
+ 授权、限流、MCP 不可用和本地运行环境恢复遵循 Agent 的权威规则,本技能不重复展开。
50
42
 
51
43
  ### 入参
52
44
 
@@ -60,7 +52,7 @@ description: 在 TikTok Shop Creator Marketplace 中按关键词、类目、GMV
60
52
 
61
53
  **GMV 区间取值**:`GMV_RANGE_0_100` / `GMV_RANGE_100_1000` / `GMV_RANGE_1000_10000` / `GMV_RANGE_10000_AND_ABOVE`
62
54
 
63
- ### 搜索条件与人数上限
55
+ ### 搜索会话与人数上限
64
56
 
65
57
  - 用户的已明确条件构成达人画像;不新增等待用户二次确认的回合。类目解析、类目过滤闭环校验和必要的回退重搜完成后,才以最终实际生效的条件作为本轮搜索条件。
66
58
  - 将同一组规范化搜索条件下的首次搜索和“继续翻页”视为同一搜索会话。用户修改任一搜索条件或明确要求重新搜索时,创建新的搜索会话并重置人数预算。
@@ -70,13 +62,12 @@ description: 在 TikTok Shop Creator Marketplace 中按关键词、类目、GMV
70
62
 
71
63
  ### 输出与后续(固定格式)
72
64
 
73
- 禁止直接展示 MCP 原始 JSON。每次成功搜索都按以下顺序输出:
65
+ 禁止直接展示 MCP 原始 JSON,也禁止展示市场、类目、GMV、关键词、粉丝画像或目标展示人数等搜索条件。每次成功搜索都按以下顺序输出:
74
66
 
75
- 1. **本次搜索条件**:先展示最终实际生效的市场、类目、GMV、关键词、粉丝画像和目标展示人数;未设置的维度明确写“未设置”,市场未显式指定时写“由当前授权店铺决定”。该区块必须位于任何结果统计和达人列表之前。
76
- 2. **结果摘要**:实际展示数、`total_count`、当前排序和是否还有下一页;不重复罗列条件。
77
- 3. **达人列表**:固定展示“排名 / 昵称 / 用户名 / 粉丝数 / 近 30 天 GMV 区间 / 类目匹配 / 达人 ID”。
78
- 4. **分页状态**:有更多结果且未达到 60 人时,使用“已显示 X / 共 Y;本轮最多展示 60 位达人,还可继续获取最多 Z 位”。没有下一页时使用“已显示全部结果”。达到 60 人且仍有更多结果时,固定说明“本次搜索已达到 60 位达人上限;请调整条件后重新搜索”,不再建议继续翻页。不要向用户展示 `page_token`。
79
- 5. **下一步**:只建议分析选中达人、在剩余预算内继续翻页或调整条件,不要擅自开始批量分析或建联。
67
+ 1. **结果摘要**:实际展示数、`total_count`、当前排序和是否还有下一页。
68
+ 2. **达人列表**:固定展示“排名 / 昵称 / 用户名 / 粉丝数 / 近 30 天 GMV 区间 / 类目匹配 / 达人 ID”。
69
+ 3. **分页状态**:有更多结果且未达到 60 人时,使用“已显示 X / 共 Y;本轮最多展示 60 位达人,还可继续获取最多 Z 位”。没有下一页时使用“已显示全部结果”。达到 60 人且仍有更多结果时,固定说明“本次搜索已达到 60 位达人上限;请调整条件后重新搜索”,不再建议继续翻页。不要向用户展示 `page_token`。
70
+ 4. **下一步**:建议分析选中达人、在剩余预算内继续翻页或调整条件;新增建议“选择 2 位及以上达人进行相对评分排名”。必须等待用户明确指定候选人后才调用 `creator_performance`,不要擅自开始批量分析或建联。
80
71
 
81
72
  格式化规则:
82
73
 
@@ -88,19 +79,19 @@ description: 在 TikTok Shop Creator Marketplace 中按关键词、类目、GMV
88
79
  - 必须为每位达人保留搜索结果返回的 `creator_open_id`。调用 `creator_performance` 时将该值放入兼容入参 `creator_user_id`;调用 `create_conversation` 时将同一个值放入 `creator_open_id`。不得截断、改写或从其他字段推断。
89
80
  - Markdown 的“达人 ID”列弱化展示 `creator_open_id`;HTML 将该 ID 放在可展开详情和复制区域,不占主表视觉焦点。
90
81
  - `creator_open_id` 缺失时显示“达人 ID 不可用”,并明确该达人暂不可分析或建联。
91
- - 结果为空时不生成空表。在“本次搜索条件”后固定输出“未找到符合条件的达人”,并建议放宽类目、GMV 或关键词。
82
+ - 结果为空时不生成空表。固定输出“未找到符合条件的达人”,并建议放宽类目、GMV 或关键词,不复述搜索条件。
92
83
  - 单页最多 20 条;同一搜索会话最多展示 60 位达人,不承诺获取全量结果。
93
84
 
94
85
  ### WorkBuddy HTML 可视化
95
86
 
96
- - 结果为 1–5 条时使用 Markdown 表格;达到 **6 条**时,若当前宿主提供 HTML/可视化产物能力,默认生成自包含的响应式 HTML 报告。用户明确要求 HTML 时不受条数限制。
97
- - 宿主不支持 HTML,或 HTML 生成失败时,必须回退为包含全部记录的 Markdown,不能只给摘要或丢失达人。
98
- - HTML 搜索报告必须先包含实际生效的搜索条件和目标展示人数,再包含返回数/总数/分页状态、可搜索和排序的达人表格、达人详情、达人 ID 复制区域和下一步建议;达到 60 人上限时必须展示上限提示而非继续翻页入口。
87
+ - 结果为 1–5 条时使用 Markdown 表格。在 **WorkBuddy** 中达到 **6 条**时,必须通过当前宿主的 HTML 产物通道创建自包含的响应式 HTML 报告;用户明确要求 HTML 时不受条数限制。非 WorkBuddy 宿主使用 Markdown。
88
+ - 在 WorkBuddy 中,不得仅因宿主未显式声明 HTML/可视化能力而回退 Markdown。仅当 HTML 产物实际创建失败时,必须回退为包含全部记录的 Markdown,不能只给摘要或丢失达人,并如实说明未生成报告。
89
+ - HTML 搜索报告不得包含任何搜索条件或目标展示人数;直接包含返回数/总数/分页状态、可搜索和排序的达人表格、达人详情、达人 ID 复制区域和下一步建议;下一步建议包含“选择 2 位及以上达人进行相对评分排名”。不添加无法调用 Agent 或 MCP 的伪按钮,也不自动开始分析;达到 60 人上限时必须展示上限提示而非继续翻页入口。
99
90
  - HTML 报告中的昵称链接使用 `<a>` 指向 `https://www.tiktok.com/@{username}`,并带 `target="_blank"` 与 `rel="noopener noreferrer"`;链接文本与 URL 都必须先安全转义/编码。
100
91
  - 只使用内联 CSS/JavaScript,不依赖 CDN、远程字体或外部图片;只实现真实可用的搜索、排序、展开和复制交互,不添加无法触发 Agent 或 MCP 操作的伪按钮。
101
92
  - 昵称、用户名及所有工具返回文本写入 HTML 前必须转义;禁止把工具内容作为 HTML 或脚本执行。
102
93
  - Markdown 表格中的昵称也应输出为可点击链接;若宿主对链接渲染有限,至少保留标准 Markdown 链接语法和可辨认的主页 URL。
103
- - 生成 HTML 后仍需在对话中按“搜索条件 → 结果数量/排序/分页”的顺序给出简短摘要。只有实际生成产物时才可声明存在 HTML,不得虚构文件名或 `outputs` 路径。
94
+ - 生成 HTML 后仍需在对话中按“结果数量/排序/分页”的顺序给出简短摘要,不复述搜索条件。只有实际生成产物时才可声明存在 HTML,不得虚构文件名或 `outputs` 路径。
104
95
 
105
96
  ### 类目过滤闭环校验(防静默失效)
106
97
 
@@ -128,12 +119,4 @@ description: 在 TikTok Shop Creator Marketplace 中按关键词、类目、GMV
128
119
 
129
120
  ## 错误处理
130
121
 
131
- | 问题类型 | 处理 |
132
- |----------|------|
133
- | 明确的 Node.js / npm / npx 缺失或 Node.js < 18 | 按 Agent 的“本地运行环境恢复”流程:诊断后等待用户确认,使用官方 Node.js LTS 路径恢复、复检并重启客户端;不走 `authorize` |
134
- | 其他 MCP 工具不可见、工具列表为空、连接关闭或本地 MCP 未启动 | 提示“ScoreHub 服务暂时未连接,请完全退出并重新打开客户端后重试;如仍无法使用,请联系 ScoreHub 支持。”不提及技术配置,不走 `authorize` |
135
- | `oauth_invalid` | 仅在真正未授权或本地 OAuth 失效时,才允许提示用户调用 `authorize` |
136
- | 当前店铺的 TikTok 授权失效或异常 | 用中文提醒用户:本地登录状态正常,但当前店铺需要先到 ScoreHub 重新绑定后再试;不要展示错误码,不要要求重复 `authorize` |
137
- | 日配额已用完 | 明确告知用户,停止 |
138
- | 请求过于频繁或持续限流 | 先提醒用户耐心等待,建议缩小搜索范围、减少翻页或稍后重试;必要时按 1s/2s/4s/8s/16s 有限退避重试。不要建议重新授权;只有用户明确要求时才走 `authorize` |
139
- | 参数无效 | 提示用户修正搜索条件或 page_size / 类目参数,不走授权路径 |
122
+ 搜索专属错误分支仅处理市场不支持、类目参数无效、搜索条件不合法和类目闭环校验失败;其余授权、限流、MCP 可用性与本地环境问题均遵循 Agent 权威规则。