@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.
@@ -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` | — | — | **只读派生**(响应字段):`registeredAt` 有则按天动态算,否则回退 `accountAgeDays` |
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
- ## Watchlists(只读行业池列表见 `social-hub-subreddit-pools` 或兼容 `industry-pools-list`)
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
- social-hub intelligence watchlists-update --id <uuid> -j '{"tags":["updated"]}'
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
- 多数命令需要 `-t <team-uuid>`。先持久化当前 team,示例里可直接引用:
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"]