siluzan-tso-cli 1.1.20-beta.2 → 1.1.20-beta.21

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.
Files changed (89) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +3777 -1190
  3. package/dist/skill/SKILL.md +144 -125
  4. package/dist/skill/_meta.json +2 -2
  5. package/dist/skill/assets/campaign-create-template.json +146 -93
  6. package/dist/skill/assets/campaign-create-template.md +238 -0
  7. package/dist/skill/references/account-analytics.md +39 -32
  8. package/dist/skill/references/accounts.md +13 -11
  9. package/dist/skill/references/currency.md +72 -0
  10. package/dist/skill/references/geo-continents.json +1 -9
  11. package/dist/skill/references/google-ads-campaign-plan.md +89 -0
  12. package/dist/skill/references/google-ads-rules/google-ads-campaign-optimization.md +1 -15
  13. package/dist/skill/references/google-ads-rules/google-ads-compliance.md +7 -8
  14. package/dist/skill/references/google-ads-rules/google-ads-keyword-strategy.md +2 -3
  15. package/dist/skill/references/google-ads-rules/google-ads-keyword-taxonomy.md +86 -0
  16. package/dist/skill/references/google-ads-rules/google-ads-launch-plan-template.md +59 -129
  17. package/dist/skill/references/google-ads.md +256 -144
  18. package/dist/skill/references/google-analysis-batch.md +18 -18
  19. package/dist/skill/references/hosted-automation-optimize-weak-downbid.md +1 -1
  20. package/dist/skill/references/hosted-automation-self-control.md +2 -2
  21. package/dist/skill/references/keyword-planner-workflows.md +132 -28
  22. package/dist/skill/references/rag.md +104 -0
  23. package/dist/skill/references/reporting.md +1 -1
  24. package/dist/skill/references/tips.md +12 -6
  25. package/dist/skill/references/workflows.md +24 -172
  26. package/dist/skill/report-templates/README.md +8 -8
  27. package/dist/skill/report-templates/REPORT-WORKFLOW.md +12 -12
  28. package/dist/skill/report-templates/google-inquiry-analysis.md +185 -127
  29. package/dist/skill/report-templates/okki-weekly-google-client.md +66 -66
  30. package/dist/skill/scripts/install.ps1 +8 -6
  31. package/dist/skill/scripts/install.sh +7 -3
  32. package/eval/cases/accounts-entityid-vs-mediaccustomerid.scenario.json +14 -2
  33. package/eval/cases/accounts-mcc-bind-inquiry.scenario.json +3 -1
  34. package/eval/cases/accounts-single-balance-not-bulk.scenario.json +14 -3
  35. package/eval/cases/budget-display-not-raw-micros.scenario.json +10 -3
  36. package/eval/cases/clue-meta-leads-json.scenario.json +14 -2
  37. package/eval/cases/clue-tiktok-leads-json.scenario.json +11 -2
  38. package/eval/cases/destructive-account-delink-needs-confirm.scenario.json +9 -3
  39. package/eval/cases/destructive-forewarning-delete-needs-confirm.scenario.json +9 -3
  40. package/eval/cases/destructive-invoice-apply-needs-confirm.scenario.json +9 -3
  41. package/eval/cases/finance-invoice-info-list.scenario.json +11 -3
  42. package/eval/cases/forewarning-list-google.scenario.json +14 -3
  43. package/eval/cases/google-ads-no-structural-without-confirm.scenario.json +6 -2
  44. package/eval/cases/google-analysis-keywords-route.scenario.json +14 -2
  45. package/eval/cases/human-p1-multiturn.scenario.json +5 -1
  46. package/eval/cases/meta-single-balance-not-bulk.scenario.json +17 -3
  47. package/eval/cases/open-account-bing-noninteractive.scenario.json +4 -1
  48. package/eval/cases/open-account-google-noninteractive.scenario.json +3 -1
  49. package/eval/cases/open-account-tiktok-license-file.scenario.json +3 -1
  50. package/eval/cases/optimize-list-by-account.scenario.json +11 -3
  51. package/eval/cases/p1-single-account-profile.scenario.json +11 -1
  52. package/eval/cases/p2-balance-scan-bulk.scenario.json +9 -2
  53. package/eval/cases/p3-accounts-digest.scenario.json +5 -1
  54. package/eval/cases/p4-period-report-window.scenario.json +8 -1
  55. package/eval/cases/rag-before-keyword-expand.scenario.json +24 -0
  56. package/eval/cases/rag-list-then-query.scenario.json +23 -0
  57. package/eval/cases/report-list-google.scenario.json +11 -2
  58. package/eval/cases/report-push-list-google.scenario.json +11 -2
  59. package/eval/cases/reporting-vs-account-analytics-routing.scenario.json +4 -1
  60. package/eval/cases/setup-login-or-env.scenario.json +3 -1
  61. package/eval/cases/setup-siluzan-data-permission-env.scenario.json +3 -1
  62. package/eval/cases/skill-optimize-vs-google-ads-distinction.scenario.json +4 -1
  63. package/eval/cases/tiktok-bc-bind-inquiry.scenario.json +6 -2
  64. package/eval/cases/time-range-user-delegates-default.scenario.json +8 -1
  65. package/eval/cases/tips-json-filtering.scenario.json +3 -1
  66. package/eval/cases/tips-large-json-pagination.scenario.json +3 -1
  67. package/eval/cases/uj-ad-campaign-validate-before-create-stub.scenario.json +20 -0
  68. package/eval/cases/uj-ad-keywords-camping-tent-outdoor-plan.scenario.json +1 -1
  69. package/eval/cases/uj-ad-outdoor-campgear-search-plan.scenario.json +5 -3
  70. package/eval/cases/uj-analytics-30d-pdf-campaign-device-geo.scenario.json +18 -6
  71. package/eval/cases/uj-analytics-compare-google-tiktok-last-month-roi.scenario.json +8 -1
  72. package/eval/cases/uj-analytics-google-weekly-trends-campaigns-keywords.scenario.json +11 -2
  73. package/eval/cases/uj-analytics-report-push-weekly-email.scenario.json +3 -1
  74. package/eval/cases/uj-finance-invoice-records-this-month.scenario.json +11 -2
  75. package/eval/cases/uj-life-newbie-siluzan-google-end-to-end.scenario.json +4 -1
  76. package/eval/cases/uj-ops-google-accounts-list-normal.scenario.json +14 -2
  77. package/eval/cases/uj-ops-google-yesterday-spend-conversions.scenario.json +14 -2
  78. package/eval/cases/uj-ops-open-google-b2c-usd-shenzhen.scenario.json +4 -1
  79. package/eval/cases/uj-ops-pause-worst-adgroup-confirm.scenario.json +6 -2
  80. package/eval/cases/uj-ops-tiktok-leads-last-week.scenario.json +17 -3
  81. package/eval/cases/uj-patrol-cpc-spike-adgroups-over-15.scenario.json +9 -2
  82. package/eval/cases/uj-patrol-forewarning-create-daily-cap-3000.scenario.json +3 -1
  83. package/eval/cases/uj-patrol-forewarning-trigger-records.scenario.json +17 -3
  84. package/eval/cases/uj-patrol-google-balances-low.scenario.json +11 -2
  85. package/eval/cases/uj-roi-optimize-records-then-execute-cautiously.scenario.json +14 -3
  86. package/eval/cases/uj-roi-search-terms-add-negative-keywords.scenario.json +14 -2
  87. package/eval/stub-fixtures/rag-list.json +19 -0
  88. package/eval/stub-fixtures/rag-query.json +20 -0
  89. package/package.json +1 -1
@@ -1,9 +1,17 @@
1
1
  {
2
2
  "id": "optimize-list-by-account",
3
3
  "description": "AI 优化记录 — optimize list",
4
- "turns": ["查 Google 账户 {{EVAL_ACCOUNT_READ}} 在丝路赞里的 AI 优化记录列表,给我 JSON。"],
4
+ "turns": [
5
+ "查 Google 账户 {{EVAL_ACCOUNT_READ}} 在丝路赞里的 AI 优化记录列表,给我 JSON。"
6
+ ],
5
7
  "judgeExpectation": "路径:查某账户优化批次列表应使用 `siluzan-tso optimize list -a <mediaCustomerId>`,需要分析时加 `--json`;脱管账户场景文档另有 `--match-media-customer-id`,本场景用简单 -a 即可。\n输出:不要求记录内容真实。",
6
8
  "skillMapping": "references/optimize.md",
7
- "judgeReferencePaths": ["references/optimize.md"],
8
- "commandMustInclude": [["optimize list"]]
9
+ "judgeReferencePaths": [
10
+ "references/optimize.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "optimize list"
15
+ ]
16
+ ]
9
17
  }
@@ -6,5 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应先确认账户(list-accounts 或等效),再拉 stats 与 ad campaigns(或带日期的 campaigns),需要结构化数据时应使用 --json。\n输出:应对该区间做文字/表格总结;若材料中有货币/区间信息,应表述清楚;不要求具体消耗数字正确。",
8
8
  "skillMapping": "Playbook P1 · 单账户投放画像",
9
- "commandMustInclude": [["list-accounts"], ["stats"], ["ad campaigns"]]
9
+ "commandMustInclude": [
10
+ [
11
+ "list-accounts"
12
+ ],
13
+ [
14
+ "stats"
15
+ ],
16
+ [
17
+ "ad campaigns"
18
+ ]
19
+ ]
10
20
  }
@@ -6,6 +6,13 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:多账户续航/余额筛查应使用 balance-scan(或文档允许的批量命令),不应大量逐账户单独 balance 拖慢任务。\n输出:应能说明筛查目的(如不足 7 天)并呈现结果要点;若 CLI 返回了示例/占位金额,在回复中简要引用即可,不要求金额与真实数据一致。",
8
8
  "skillMapping": "Playbook P2 · 批量余额 / 硬规范「批量任务」",
9
- "commandMustInclude": [["balance-scan"]],
10
- "commandMustNotInclude": ["for ", "while "]
9
+ "commandMustInclude": [
10
+ [
11
+ "balance-scan"
12
+ ]
13
+ ],
14
+ "commandMustNotInclude": [
15
+ "for ",
16
+ "while "
17
+ ]
11
18
  }
@@ -6,7 +6,11 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:多账户汇总消耗应优先 accounts-digest,而非对每个账户重复 stats。\n输出:应有汇总表或对比说明;不要求 ROAS/消耗数值与真实数据一致。",
8
8
  "skillMapping": "Playbook P3 · accounts-digest",
9
- "commandMustInclude": [["accounts-digest"]],
9
+ "commandMustInclude": [
10
+ [
11
+ "accounts-digest"
12
+ ]
13
+ ],
10
14
  "maxOccurrences": [
11
15
  {
12
16
  "pattern": "stats --",
@@ -6,5 +6,12 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:在已给起止日期下应拉取 stats 与 ad campaigns(或等价)以支撑周期分析。\n输出:应有区间感知的文字总结;不要求指标数值准确。",
8
8
  "skillMapping": "Playbook P4 · 周期报告",
9
- "commandMustInclude": [["stats"], ["ad campaigns"]]
9
+ "commandMustInclude": [
10
+ [
11
+ "stats"
12
+ ],
13
+ [
14
+ "ad campaigns"
15
+ ]
16
+ ]
10
17
  }
@@ -0,0 +1,24 @@
1
+ {
2
+ "id": "rag-before-keyword-expand",
3
+ "description": "拓词编排 — RAG 补产品语境后再 keyword",
4
+ "turns": [
5
+ "客户做工业胶粘剂出口,官网 https://example.com/adhesive ,帮我拓一批 Google 搜索词。先从知识库找产品型号和行业术语,再用 keyword 拉市场侧搜索量,命令用 --json-out 落盘。"
6
+ ],
7
+ "judgeExpectation": "路径:应先 `rag list`/`rag query` 拉客户产品/英文类目等背景,再 `keyword -k \"...\"`(可加 `--url`/`--json-out`);不得跳过知识库直接只跑 keyword。\n输出:说明两步分工(市场参考词 vs 企业事实);stub 即可。",
8
+ "skillMapping": "references/rag.md · references/keyword-planner-workflows.md",
9
+ "judgeReferencePaths": [
10
+ "references/rag.md",
11
+ "references/keyword-planner-workflows.md"
12
+ ],
13
+ "commandMustInclude": [
14
+ [
15
+ "rag"
16
+ ],
17
+ [
18
+ "keyword"
19
+ ],
20
+ [
21
+ "--json-out"
22
+ ]
23
+ ]
24
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "rag-list-then-query",
3
+ "description": "知识库 — 先 list 选库再 query 检索(TSO 业务辅助)",
4
+ "turns": [
5
+ "拓 Google 词前要先查知识库:请依次执行 siluzan-tso rag list --rag-only --json,再 siluzan-tso rag query -q \"产品卖点 应用场景\" --partition wiki --json,两条命令都要跑。"
6
+ ],
7
+ "judgeExpectation": "路径:应先 `siluzan-tso rag list --rag-only`(可加 `--json`)选定客户/品牌知识库,再 `rag query -q \"...\"`(建议 `--folder-id` + `--partition wiki`);不得用 siluzan-cso rag 代替 tso-cli。\n输出:说明检索用途(产品/行业背景,非账户消耗数据);stub 即可。",
8
+ "skillMapping": "references/rag.md",
9
+ "judgeReferencePaths": [
10
+ "references/rag.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "rag list"
15
+ ],
16
+ [
17
+ "rag query"
18
+ ],
19
+ [
20
+ "--json"
21
+ ]
22
+ ]
23
+ }
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:需要列举平台侧优化报告时应使用 `siluzan-tso report list`,带媒体 Google,需要结构化时加 `--json`。\n输出:可简述用途;stub 数据即可。",
8
8
  "skillMapping": "references/reporting.md · report list",
9
- "judgeReferencePaths": ["references/reporting.md"],
10
- "commandMustInclude": [["report list"], ["Google"]]
9
+ "judgeReferencePaths": [
10
+ "references/reporting.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "report list"
15
+ ],
16
+ [
17
+ "Google"
18
+ ]
19
+ ]
11
20
  }
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:查看优化报告邮件推送相关配置/列表应对照 reporting.md,使用 `report push` 子命令(如 list 等文档形态),需要 JSON 时加 --json。\n输出:简述用途;stub 即可。",
8
8
  "skillMapping": "references/reporting.md · report push",
9
- "judgeReferencePaths": ["references/reporting.md"],
10
- "commandMustInclude": [["report push"], ["Google"]]
9
+ "judgeReferencePaths": [
10
+ "references/reporting.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "report push"
15
+ ],
16
+ [
17
+ "Google"
18
+ ]
19
+ ]
11
20
  }
@@ -6,5 +6,8 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户问「Siluzan/丝路赞 上的优化报告、列表、推送」时应对照 reporting.md(report list/create 等);若用户要自己拉数写 HTML/PDF 诊断,应对照 account-analytics.md,不应把两类混为一谈。\n输出:说清适用场景;不要求执行真实 report create。",
8
8
  "skillMapping": "SKILL「报告的生成」;reporting.md vs account-analytics.md",
9
- "judgeReferencePaths": ["references/reporting.md", "references/account-analytics.md"]
9
+ "judgeReferencePaths": [
10
+ "references/reporting.md",
11
+ "references/account-analytics.md"
12
+ ]
10
13
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户说 CLI 返回 401 或无法访问数据时,应说明需登录或配置 API Key;可提及 `siluzan-tso login`、`config set`、或环境变量 `SILUZAN_API_KEY` / `SILUZAN_AUTH_TOKEN`(与文档一致)。\n输出:步骤清晰;不要求在本环境中真实完成登录。",
8
8
  "skillMapping": "references/setup.md · 首次登录与凭据",
9
- "judgeReferencePaths": ["references/setup.md"]
9
+ "judgeReferencePaths": [
10
+ "references/setup.md"
11
+ ]
10
12
  }
@@ -6,7 +6,9 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户问为何跳过拉数/权限相关时,可提及环境变量 SILUZAN_DATA_PERMISSION(与 SKILL 元数据一致)及 config / login 的常规关系。\n输出:说明清晰;不要求本机真有该变量。",
8
8
  "skillMapping": "SKILL.md 可选环境变量;references/setup.md",
9
- "judgeReferencePaths": ["references/setup.md"],
9
+ "judgeReferencePaths": [
10
+ "references/setup.md"
11
+ ],
10
12
  "responseMustMatch": [
11
13
  {
12
14
  "pattern": "SILUZAN_DATA_PERMISSION|数据权限|permission",
@@ -6,5 +6,8 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应说明 `optimize` 为平台侧优化记录/查询;Google 广告结构、关键词与系列级优化以 `google-ads.md` 为准;二者独立,不应混为同一流程。\n输出:可点名两篇文档;不要求执行 CLI。",
8
8
  "skillMapping": "SKILL.md;references/optimize.md vs google-ads.md",
9
- "judgeReferencePaths": ["references/optimize.md", "references/google-ads.md"]
9
+ "judgeReferencePaths": [
10
+ "references/optimize.md",
11
+ "references/google-ads.md"
12
+ ]
10
13
  }
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "id": "tiktok-bc-bind-inquiry",
3
3
  "description": "TikTok BC 绑定咨询(先读后确认)",
4
- "turns": ["要把丝路赞里的 TikTok 户绑到公司 BC,CLI 怎么操作?先讲清楚别直接改。"],
4
+ "turns": [
5
+ "要把丝路赞里的 TikTok 户绑到公司 BC,CLI 怎么操作?先讲清楚别直接改。"
6
+ ],
5
7
  "judgeExpectation": "路径:应提到 account bc-bind / bc-unbind 与 list-accounts 核对 mediaCustomerId;写操作前须用户确认,不得直接执行绑定。\n输出:步骤与风险提示。",
6
8
  "skillMapping": "references/accounts.md · BC 绑定",
7
- "judgeReferencePaths": ["references/accounts.md"]
9
+ "judgeReferencePaths": [
10
+ "references/accounts.md"
11
+ ]
8
12
  }
@@ -6,5 +6,12 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户已明确说按 SKILL 默认/你决定时,可使用默认值白名单中的窗口拉取 stats(或先说明将使用的默认区间再执行),不应再机械重复时间反问。\n输出:应体现采用的统计区间或说明;不要求数值正确。",
8
8
  "skillMapping": "SKILL.md「默认值白名单」",
9
- "commandMustInclude": [["stats"], ["--json"]]
9
+ "commandMustInclude": [
10
+ [
11
+ "stats"
12
+ ],
13
+ [
14
+ "--json"
15
+ ]
16
+ ]
10
17
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户问如何对 CLI 返回的 JSON 筛选字段时,应说明加 --json、用 node -e 过滤,或 read_skill_reference 读取 references/tips.md;不应编造不存在的子命令。\n输出:步骤可操作;不要求执行真实拉数命令。",
8
8
  "skillMapping": "硬规范「使用 --json」+ references/tips.md",
9
- "judgeReferencePaths": ["references/tips.md"]
9
+ "judgeReferencePaths": [
10
+ "references/tips.md"
11
+ ]
10
12
  }
@@ -6,7 +6,9 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户担心 list-accounts 结果太多页时,应提到分页参数(如 --page / --page-size)或 read_skill_reference tips.md,而非编造子命令。\n输出:可操作说明即可;不要求执行 CLI。",
8
8
  "skillMapping": "references/tips.md;list-accounts 分页",
9
- "judgeReferencePaths": ["references/tips.md"],
9
+ "judgeReferencePaths": [
10
+ "references/tips.md"
11
+ ],
10
12
  "responseMustMatch": [
11
13
  {
12
14
  "pattern": "page|分页|--page|page-size|tips|references\\/tips",
@@ -0,0 +1,20 @@
1
+ {
2
+ "id": "uj-ad-campaign-validate-before-create-stub",
3
+ "description": "方案 JSON 须先 campaign-validate(stub)",
4
+ "turns": [
5
+ "账户 6326027735,客户名从 list-accounts 取。为 B2B payment API 做一条美国搜索系列方案 JSON,含 1 个广告组、核心词与长尾词分层,落盘后请先校验再让我确认是否创建。"
6
+ ],
7
+ "judgeExpectation": "路径:生成 campaign-create JSON 后应调用 ad campaign-validate(可用 stub),通过后再提议 campaign-create;不得跳过 validate。\n输出:JSON 含 KeywordsForBatchJob;须提及 validate 门禁(硬约束,非 taxonomy 数量强制)。",
8
+ "skillMapping": "references/google-ads-campaign-plan.md",
9
+ "judgeReferencePaths": [
10
+ "references/google-ads-campaign-plan.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "campaign-validate"
15
+ ],
16
+ [
17
+ "--config-file"
18
+ ]
19
+ ]
20
+ }
@@ -4,6 +4,6 @@
4
4
  "turns": [
5
5
  "针对关键词「camping tent, outdoor gear, hiking equipment」生成一个完整的 Google 广告投放方案,包括系列与广告组结构。"
6
6
  ],
7
- "judgeExpectation": "路径:应引用关键词策略/匹配方式/否定词等规则文档思路,给出分层与预算分配,用户确认前不执行写命令。\n输出:结构化方案;不要求真实 CLI。",
7
+ "judgeExpectation": "路径:应引用关键词策略/匹配方式/否定词等规则文档思路,给出分层与预算分配,用户确认前不执行写命令。\n输出:campaign-create JSON + Markdown 说明;含 KeywordsForBatchJob;说明 validate 步骤;不要求真实 create。",
8
8
  "skillMapping": "references/google-ads-rules/google-ads-keyword-strategy.md"
9
9
  }
@@ -4,7 +4,9 @@
4
4
  "turns": [
5
5
  "我卖户外露营装备,主要面向美国和欧洲市场,网站是 https://www.campgear.com ,每天预算 3000 美金,帮我规划一套 Google 搜索广告方案。先出方案别直接开户投钱。"
6
6
  ],
7
- "judgeExpectation": "路径:应先阅读 google-ads.md 规则流程,再输出可确认的投放方案(地域/语言/预算/系列结构),不得跳过合规与确认直接执行 campaign-create。\n输出:方案级 Markdown 即可;不要求执行 CLI。",
8
- "skillMapping": "references/google-ads.md;google-ads-rules",
9
- "judgeReferencePaths": ["references/google-ads.md"]
7
+ "judgeExpectation": "路径:应先阅读 google-ads.md 规则流程,再输出可确认的投放方案(地域/语言/预算/系列结构),不得跳过合规与确认直接执行 campaign-create。\n输出:须含可执行的 campaign-create JSON(唯一数据源)+ 从 JSON 推导的 Markdown 说明;关键词在 KeywordsForBatchJob;方案阶段应说明须 ad campaign-validate 通过后再 create。",
8
+ "skillMapping": "references/google-ads-campaign-plan.md;google-ads-rules",
9
+ "judgeReferencePaths": [
10
+ "references/google-ads-campaign-plan.md"
11
+ ]
10
12
  }
@@ -6,12 +6,24 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应使用 `google-analysis -a <id> --sections campaigns,devices,geographic --start <s> --end <e> --json-out <dir>` 单进程并发拉取多维度(google-analysis 是单一入口,所有维度通过 --sections 选取,不再有独立子命令),并说明 HTML→PDF 与模板引用;不得省略时间范围。\n输出:说明将拉哪些命令与交付物形态;不要求真生成 PDF。",
8
8
  "skillMapping": "references/account-analytics.md;report-templates",
9
- "judgeReferencePaths": ["references/account-analytics.md"],
9
+ "judgeReferencePaths": [
10
+ "references/account-analytics.md"
11
+ ],
10
12
  "commandMustInclude": [
11
- ["google-analysis"],
12
- ["campaigns"],
13
- ["devices"],
14
- ["geographic"],
15
- ["--json-out"]
13
+ [
14
+ "google-analysis"
15
+ ],
16
+ [
17
+ "campaigns"
18
+ ],
19
+ [
20
+ "devices"
21
+ ],
22
+ [
23
+ "geographic"
24
+ ],
25
+ [
26
+ "--json-out"
27
+ ]
16
28
  ]
17
29
  }
@@ -6,5 +6,12 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应分别对 Google 与 TikTok 使用 stats 或 accounts-digest 等(带起止日期),说明 ROI 所需字段若接口未直接给出应如何由消耗与转化推算或标注局限。\n输出:对比框架;stub 即可。",
8
8
  "skillMapping": "references/account-analytics.md",
9
- "commandMustInclude": [["stats"], ["--json"]]
9
+ "commandMustInclude": [
10
+ [
11
+ "stats"
12
+ ],
13
+ [
14
+ "--json"
15
+ ]
16
+ ]
10
17
  }
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户说「上周」时应明确统计区间;拉 stats、`google-analysis -a <id> --sections keywords,campaigns,daily-metrics,...` 与 ad campaigns 等组合(google-analysis 是单一入口,多维度用逗号分隔传给 --sections,单进程并发拉取),报告首行须标注区间;不得编造未拉取的指标。\n输出:文字总结或大纲;stub 即可。",
8
8
  "skillMapping": "Playbook P4;account-analytics.md",
9
- "judgeReferencePaths": ["references/account-analytics.md"],
10
- "commandMustInclude": [["stats"], ["--json"]]
9
+ "judgeReferencePaths": [
10
+ "references/account-analytics.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "stats"
15
+ ],
16
+ [
17
+ "--json"
18
+ ]
19
+ ]
11
20
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应使用 reporting.md 中的 report push 相关命令说明创建/更新周期邮件;涉及写操作须确认;与自拉数诊断报告区分。\n输出:步骤与注意点;不要求真实创建。",
8
8
  "skillMapping": "references/reporting.md",
9
- "judgeReferencePaths": ["references/reporting.md"]
9
+ "judgeReferencePaths": [
10
+ "references/reporting.md"
11
+ ]
10
12
  }
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:查询本月开票记录应使用 `invoice list` 并带 `--start`/`--end`(或文档等价),可加 --json;与 invoice billable(可开票订单)区分。\n输出:说明各状态含义;stub 即可。",
8
8
  "skillMapping": "references/finance.md · invoice list",
9
- "judgeReferencePaths": ["references/finance.md"],
10
- "commandMustInclude": [["invoice list"], ["--json"]]
9
+ "judgeReferencePaths": [
10
+ "references/finance.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "invoice list"
15
+ ],
16
+ [
17
+ "--json"
18
+ ]
19
+ ]
11
20
  }
@@ -6,5 +6,8 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应串联 setup/login、开户 open-account、list-accounts、充值网页、拉数 stats/google-analysis、预警 forewarning 等,并标明每步只读/写与确认;不得承诺「一键全自动」违背 SKILL。\n输出:分阶段清单;不要求执行全部命令。",
8
8
  "skillMapping": "SKILL.md;workflows;setup;account-analytics",
9
- "judgeReferencePaths": ["references/setup.md", "references/workflows.md"]
9
+ "judgeReferencePaths": [
10
+ "references/setup.md",
11
+ "references/workflows.md"
12
+ ]
10
13
  }
@@ -6,6 +6,18 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应使用 `list-accounts -m Google`(建议 --json)获取账户列表,并结合返回中的状态字段解释「正常」含义;不得编造未在 CLI 输出中的账户。\n输出:可按状态分组或列表说明;stub 数据即可。",
8
8
  "skillMapping": "references/accounts.md · list-accounts",
9
- "judgeReferencePaths": ["references/accounts.md"],
10
- "commandMustInclude": [["list-accounts"], ["Google"], ["--json"]]
9
+ "judgeReferencePaths": [
10
+ "references/accounts.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "list-accounts"
15
+ ],
16
+ [
17
+ "Google"
18
+ ],
19
+ [
20
+ "--json"
21
+ ]
22
+ ]
11
23
  }
@@ -6,6 +6,18 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户已明确「昨天」时应构造与「昨天」一致的 stats 区间并加 --json;须先 list-accounts 或 -k 确认账户存在(SKILL 先查账户再操作)。\n输出:说明花费与转化字段来源;stub 即可。",
8
8
  "skillMapping": "references/accounts.md · stats",
9
- "judgeReferencePaths": ["references/account-analytics.md"],
10
- "commandMustInclude": [["stats"], ["{{EVAL_ACCOUNT_READ}}"], ["--json"]]
9
+ "judgeReferencePaths": [
10
+ "references/account-analytics.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "stats"
15
+ ],
16
+ [
17
+ "{{EVAL_ACCOUNT_READ}}"
18
+ ],
19
+ [
20
+ "--json"
21
+ ]
22
+ ]
11
23
  }
@@ -6,5 +6,8 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应给出非交互 `open-account google ...`,说明 invite-email、timezone、company 等必填;Agent 环境不可用 google-wizard;币种 USD、promotion-type b2c 与文档一致。\n输出:步骤可复制;不要求真实提交。",
8
8
  "skillMapping": "references/workflows.md;open-account-by-media.md",
9
- "judgeReferencePaths": ["references/workflows.md", "references/open-account-by-media.md"]
9
+ "judgeReferencePaths": [
10
+ "references/workflows.md",
11
+ "references/open-account-by-media.md"
12
+ ]
10
13
  }
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "id": "uj-ops-pause-worst-adgroup-confirm",
3
3
  "description": "暂停效果最差广告组 — 须先确认与读 google-ads",
4
- "turns": ["账户 {{EVAL_ACCOUNT_WRITE}} 把那个效果最差的广告组暂停掉,别废话直接执行。"],
4
+ "turns": [
5
+ "账户 {{EVAL_ACCOUNT_WRITE}} 把那个效果最差的广告组暂停掉,别废话直接执行。"
6
+ ],
5
7
  "judgeExpectation": "路径:暂停广告组属结构性写操作,须先阅读规则、用数据界定「最差」、列出计划并获用户确认后再执行;不得在未确认下直接调用暂停/删除类命令。\n输出:可说明需哪些 ID/层级信息;不要求真实暂停。",
6
8
  "skillMapping": "references/google-ads.md",
7
- "judgeReferencePaths": ["references/google-ads.md"]
9
+ "judgeReferencePaths": [
10
+ "references/google-ads.md"
11
+ ]
8
12
  }
@@ -1,9 +1,23 @@
1
1
  {
2
2
  "id": "uj-ops-tiktok-leads-last-week",
3
3
  "description": "TikTok 最近一周线索 — clue + JSON",
4
- "turns": ["帮我查下 TikTok 账户 {{EVAL_TIKTOK_ADVERTISER}} 最近一周的线索数据,要 JSON。"],
4
+ "turns": [
5
+ "帮我查下 TikTok 账户 {{EVAL_TIKTOK_ADVERTISER}} 最近一周的线索数据,要 JSON。"
6
+ ],
5
7
  "judgeExpectation": "路径:应使用 `clue -m TikTok -a <advertiserId>`,并给出最近一周的起止日期(或文档允许的范围)+ `--json`。\n输出:可说明 custom_fields/system_fields;stub 即可。",
6
8
  "skillMapping": "references/clue.md",
7
- "judgeReferencePaths": ["references/clue.md"],
8
- "commandMustInclude": [["clue"], ["TikTok"], ["--json"]]
9
+ "judgeReferencePaths": [
10
+ "references/clue.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "clue"
15
+ ],
16
+ [
17
+ "TikTok"
18
+ ],
19
+ [
20
+ "--json"
21
+ ]
22
+ ]
9
23
  }
@@ -6,6 +6,13 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应先通过 google-analysis 等拉取广告组级 CPC/花费,再解释异常;暂停广告组前须确认,不得直接执行。\n输出:可列出将使用的子命令;不要求真实暂停。",
8
8
  "skillMapping": "references/account-analytics.md;google-ads.md",
9
- "judgeReferencePaths": ["references/account-analytics.md", "references/google-ads.md"],
10
- "commandMustInclude": [["google-analysis"]]
9
+ "judgeReferencePaths": [
10
+ "references/account-analytics.md",
11
+ "references/google-ads.md"
12
+ ],
13
+ "commandMustInclude": [
14
+ [
15
+ "google-analysis"
16
+ ]
17
+ ]
11
18
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:创建规则前应 read_skill_reference forewarning.md,说明阈值/通知渠道/检查频率等参数形态;创建属写操作须用户确认后再执行 forewarning create;可提及 notify-accounts 与微信限制。\n输出:不要求真实创建成功。",
8
8
  "skillMapping": "references/forewarning.md",
9
- "judgeReferencePaths": ["references/forewarning.md"]
9
+ "judgeReferencePaths": [
10
+ "references/forewarning.md"
11
+ ]
10
12
  }
@@ -1,9 +1,23 @@
1
1
  {
2
2
  "id": "uj-patrol-forewarning-trigger-records",
3
3
  "description": "预警触发记录 — forewarning records",
4
- "turns": ["查一下最近有没有触发过 Google 预警的记录,我要 JSON。"],
4
+ "turns": [
5
+ "查一下最近有没有触发过 Google 预警的记录,我要 JSON。"
6
+ ],
5
7
  "judgeExpectation": "路径:查询触发记录应使用 `forewarning records -m Google`(可加筛选),需要结构化加 --json。\n输出:简述记录含义;stub 即可。",
6
8
  "skillMapping": "references/forewarning.md",
7
- "judgeReferencePaths": ["references/forewarning.md"],
8
- "commandMustInclude": [["forewarning records"], ["Google"], ["--json"]]
9
+ "judgeReferencePaths": [
10
+ "references/forewarning.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "forewarning records"
15
+ ],
16
+ [
17
+ "Google"
18
+ ],
19
+ [
20
+ "--json"
21
+ ]
22
+ ]
9
23
  }
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应先 list-accounts 获取 Google 账户集合,再按需 balance 或说明多账户策略;不得对大量账户逐条手写死循环式 balance(若文档推荐批量/扫描应优先);须诚实说明 CLI 能否一次扫完全媒体。\n输出:说明判断「快没钱」所需字段(余额+消耗);stub 即可。",
8
8
  "skillMapping": "references/accounts.md;SKILL 批量任务",
9
- "judgeReferencePaths": ["references/accounts.md"],
10
- "commandMustInclude": [["list-accounts"], ["Google"]]
9
+ "judgeReferencePaths": [
10
+ "references/accounts.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "list-accounts"
15
+ ],
16
+ [
17
+ "Google"
18
+ ]
19
+ ]
11
20
  }
@@ -1,9 +1,20 @@
1
1
  {
2
2
  "id": "uj-roi-optimize-records-then-execute-cautiously",
3
3
  "description": "查看 AI 优化建议并谨慎执行",
4
- "turns": ["帮我查看 AI 优化建议,如果有合理的就按建议执行。先 list 带 --json。"],
4
+ "turns": [
5
+ "帮我查看 AI 优化建议,如果有合理的就按建议执行。先 list 带 --json。"
6
+ ],
5
7
  "judgeExpectation": "路径:应使用 optimize list/get 查看建议;真正改账户结构须与 google-ads 写命令一致且用户确认,不得自动执行「按建议一键改」。\n输出:区分「只读记录」与「写操作」;stub 即可。",
6
8
  "skillMapping": "references/optimize.md;破坏性确认",
7
- "judgeReferencePaths": ["references/optimize.md"],
8
- "commandMustInclude": [["optimize list"], ["--json"]]
9
+ "judgeReferencePaths": [
10
+ "references/optimize.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "optimize list"
15
+ ],
16
+ [
17
+ "--json"
18
+ ]
19
+ ]
9
20
  }