@geoly-ai/social-hub-cli 0.2.5 → 0.2.7
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.
- package/CHANGELOG.md +24 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +12 -2
- package/dist/client.js.map +1 -1
- package/dist/cmd-manifest.json +8 -2
- package/dist/context-state.test.d.ts +2 -0
- package/dist/context-state.test.d.ts.map +1 -0
- package/dist/context-state.test.js +51 -0
- package/dist/context-state.test.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +423 -298
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/manifest.json +1 -1
- package/skills/social-hub-accounts/SKILL.md +2 -2
- package/skills/social-hub-intelligence/SKILL.md +64 -2
- package/skills/social-hub-shared/SKILL.md +3 -1
|
@@ -79,8 +79,8 @@ social-hub accounts delete -t <team-id> --account <uuid> # 危险
|
|
|
79
79
|
| `status` | ✅ | ✅ | `warming\|active\|postable\|restricted\|banned` |
|
|
80
80
|
| `karma` | ✅ | ✅ | int ≥0(可 null) |
|
|
81
81
|
| `accountAgeDays` | ✅ | ✅ | int ≥0(可 null);**legacy 回退**,仅 `registeredAt` 未设时参与 age/postable |
|
|
82
|
-
| `registeredAt` | ✅ | ✅ | 平台注册日历日 `YYYY-MM-DD`(可 null,不得晚于今天);账号 age 的**主源**
|
|
83
|
-
| `ageDays` | —
|
|
82
|
+
| `registeredAt` | ✅ | ✅ | 平台注册日历日 `YYYY-MM-DD`(可 null,不得晚于今天);账号 age 的**主源** |
|
|
83
|
+
| `ageDays` | — | — | **只读派生**(响应字段):`registeredAt` 有则按天动态算,否则回退 `accountAgeDays` |
|
|
84
84
|
| `workflowStage` | ✅ | ✅ | `prospect\|qualified\|warming\|onboarded\|active\|at_risk\|restricted\|paused\|archived` |
|
|
85
85
|
| `metricsSource` | ✅ | ✅ | string(可 null) |
|
|
86
86
|
| `metricsUpdatedAt` | ✅ | ✅ | ISO8601(可 null) |
|
|
@@ -13,15 +13,77 @@ metadata:
|
|
|
13
13
|
> **前置条件:** 先阅读 [`../social-hub-shared/SKILL.md`](../social-hub-shared/SKILL.md),
|
|
14
14
|
> 确认已 `auth login` 并 `context use <team-id>`。
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## 行业池只读列表(industry-pools-list)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
social-hub intelligence industry-pools-list [-t <team-id>] [-n 50]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**team 是必需上下文**:未传 `-t` 时按 context.json 的 currentTeamId → config 的
|
|
23
|
+
teamId → `SOCIAL_HUB_TEAM_ID` 依次回退;都没有会报 "Missing team id"。已
|
|
24
|
+
`context use <team-id>` 后可省略 `-t`。运营板块池 CRUD 见 `social-hub-subreddit-pools`。
|
|
25
|
+
|
|
26
|
+
## SOP Handoff(阶段产物固化)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
social-hub intelligence handoff-create --phase research -j '{"focusSkus":[...],"competitors":[...],"targetMarket":"US","verifiedCandidates":[...],"needsVerificationCandidates":[...],"vocInsights":[...],"evidenceGaps":[]}'
|
|
30
|
+
social-hub intelligence handoffs-list [--phase research] [--ready-only]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
六阶段 phase:research/compliance/planning/writing/delivery/monthly_iteration,
|
|
34
|
+
各自有 requiredFields 白名单(服务端校验顶层字段,空数组/空串/空对象视为缺失)。
|
|
35
|
+
**缺字段不拒收**:返回 `readyForNextSkill=false + missingFields`,下游 skill 须
|
|
36
|
+
显式决定是否接受 partial;交棒前先补缺口再重新 handoff-create。
|
|
37
|
+
|
|
38
|
+
## Coverage 覆盖率评估(cache-first 决策依据,纯读)
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
social-hub intelligence coverage --brand-keywords aporro --subreddits espresso,coffee \
|
|
42
|
+
--time-window week --min-posts 30 --min-subreddits 3 --need-rules-evidence
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
返回 posts/comments/subreddits/evidence 各维 `{available, required, satisfied}` 与
|
|
46
|
+
`overall.satisfied`(启用维度 AND)。**先查 coverage,satisfied 才直接消费系统数据;
|
|
47
|
+
不满足再按缺口派发** fetch-by-keywords / evidence-fetch,避免重复抓取。统计只认采集
|
|
48
|
+
时的关键词命中标记(matchedKeywords/matchedTerms),evidence 只计未过期 available。
|
|
49
|
+
|
|
50
|
+
## 板块证据层(Subreddit Evidence,合规/研究证据)
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 派发采集(系统级;同指纹活跃 run 自动复用,返回 runId 可经 runs-list 追踪)
|
|
54
|
+
social-hub intelligence evidence-fetch --subreddits espresso,coffee [--types rules,about,pinned]
|
|
55
|
+
# 证据列表(freshOnly=只要未过期的 available)
|
|
56
|
+
social-hub intelligence evidence-list --subreddit espresso [--type rules] [--fresh-only]
|
|
57
|
+
# 状态面板:8 类证据各自 status/needsAcquisition/freshUntil/最近失败原因
|
|
58
|
+
social-hub intelligence evidence-status --subreddit espresso
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**8 类证据**:about / rules / wiki / submit_text / pinned / flair / page_signals /
|
|
62
|
+
installed_apps。**状态语义**:`available`=抓到内容(含"规则为空"这类可确证的空);
|
|
63
|
+
`not_visible`=页面明确无该项;`failed`=采集失败——**failed 不等于"没有规则"**,
|
|
64
|
+
合规判断必须区分。`needsAcquisition=true` 表示无新鲜证据(从未采/过期/最近失败,
|
|
65
|
+
看 lastAttemptAt/lastFailureReason 区分),先 evidence-fetch 再消费。TTL:
|
|
66
|
+
rules/wiki/about/submit_text 30 天、pinned 24 小时、flair/page_signals/
|
|
67
|
+
installed_apps 7 天。
|
|
68
|
+
|
|
69
|
+
## Watchlists
|
|
17
70
|
|
|
18
71
|
```bash
|
|
19
72
|
social-hub intelligence watchlists-list [--campaign <uuid>]
|
|
20
73
|
social-hub intelligence watchlists-create -j '{"subreddit":"technology","tags":["core"]}'
|
|
21
|
-
|
|
74
|
+
# 品牌洞察(VOC/SOV)用的监控池:显式绑定品牌 + 指定主行业
|
|
75
|
+
social-hub intelligence watchlists-create -j '{"subreddit":"jewelry","primaryIndustryKey":"industry_pools__jewelry","brandIds":["<brand-uuid>"]}'
|
|
76
|
+
social-hub intelligence watchlists-update --id <uuid> -j '{"tags":["updated"],"brandIds":["<brand-uuid>"]}'
|
|
22
77
|
social-hub intelligence watchlists-delete --id <uuid>
|
|
23
78
|
```
|
|
24
79
|
|
|
80
|
+
**行业归类**:列表返回 `industrySource: explicit|inferred|none`——`primaryIndustryKey`
|
|
81
|
+
显式指定优先;未指定时服务端按行业池目录推断(**排除养号/宠物/persona 运营池**,
|
|
82
|
+
brand 池 > industry 池 > 其他,稳定排序;此前首匹配会把养号宠物池误标成"行业:宠物")。
|
|
83
|
+
**品牌绑定**(`brandIds`,replace 语义):不绑=全局监控池;绑定后仅服务这些品牌——
|
|
84
|
+
品牌 VOC/SOV 扫描取"全局 + 绑定当前品牌"的池。做品牌洞察(如 Aporro)时创建
|
|
85
|
+
watchlist 须显式传 `brandIds`。
|
|
86
|
+
|
|
25
87
|
## 热帖
|
|
26
88
|
|
|
27
89
|
```bash
|
|
@@ -74,7 +74,9 @@ social-hub auth logout --revoke # 同时撤销服务端 CLI token
|
|
|
74
74
|
|
|
75
75
|
### Team 上下文
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
team 级命令的 `-t <team-uuid>` **可省略**:缺省按 context.json 的 currentTeamId →
|
|
78
|
+
config 的 teamId → `SOCIAL_HUB_TEAM_ID` 回退,都没有才报 "Missing team id"。
|
|
79
|
+
建议先持久化当前 team,后续命令免传 `-t`(显式传 `-t` 始终优先,跨队操作用):
|
|
78
80
|
|
|
79
81
|
```bash
|
|
80
82
|
social-hub context use <team-uuid> [--label "prod-team-a"]
|