siluzan-tso-cli 1.1.47 → 1.1.48-beta.2

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 (107) hide show
  1. package/README.md +2 -1
  2. package/dist/index.js +1999 -42
  3. package/dist/skill/AGENTS.md +1 -0
  4. package/dist/skill/SKILL.md +12 -2
  5. package/dist/skill/_meta.json +2 -2
  6. package/dist/skill/assets/meta-lead-create-template.json +105 -0
  7. package/dist/skill/assets/meta-lead-create-template.md +46 -0
  8. package/dist/skill/references/README.md +12 -1
  9. package/dist/skill/references/accounts/accounts-list.md +1 -1
  10. package/dist/skill/references/accounts/accounts-permissions.md +2 -2
  11. package/dist/skill/references/accounts/finance.md +1 -1
  12. package/dist/skill/references/accounts/open-account-by-media.md +1 -1
  13. package/dist/skill/references/accounts/open-account-google-ui.md +1 -1
  14. package/dist/skill/references/analytics/rag.md +1 -1
  15. package/dist/skill/references/analytics/reporting.md +5 -5
  16. package/dist/skill/references/core/intent-routing.md +4 -0
  17. package/dist/skill/references/core/setup.md +5 -5
  18. package/dist/skill/references/core/workflows.md +22 -2
  19. package/dist/skill/references/meta-ads/meta-ads-read.md +33 -0
  20. package/dist/skill/references/meta-ads/meta-ads-write.md +70 -0
  21. package/dist/skill/references/meta-ads/meta-ads.md +37 -0
  22. package/dist/skill/references/meta-ads/meta-lead-launch-plan-template.md +168 -0
  23. package/dist/skill/references/misc/tso-home.md +2 -2
  24. package/dist/skill/references/operations/clue.md +2 -1
  25. package/dist/skill/scripts/install.ps1 +3 -3
  26. package/dist/skill/scripts/install.sh +3 -3
  27. package/eval/cases/accounts-entityid-vs-mediaccustomerid.scenario.json +14 -2
  28. package/eval/cases/accounts-mcc-bind-inquiry.scenario.json +3 -1
  29. package/eval/cases/accounts-single-balance-not-bulk.scenario.json +14 -3
  30. package/eval/cases/budget-display-not-raw-micros.scenario.json +8 -1
  31. package/eval/cases/clue-meta-leads-json.scenario.json +14 -2
  32. package/eval/cases/clue-tiktok-leads-json.scenario.json +11 -2
  33. package/eval/cases/destructive-account-delink-needs-confirm.scenario.json +9 -3
  34. package/eval/cases/destructive-forewarning-delete-needs-confirm.scenario.json +9 -3
  35. package/eval/cases/destructive-invoice-apply-needs-confirm.scenario.json +9 -3
  36. package/eval/cases/facebook-analysis-google-section-aliases.scenario.json +11 -2
  37. package/eval/cases/facebook-analysis-not-google-keywords.scenario.json +10 -3
  38. package/eval/cases/facebook-analysis-period-default.scenario.json +14 -2
  39. package/eval/cases/finance-invoice-info-list.scenario.json +11 -3
  40. package/eval/cases/forewarning-list-google.scenario.json +14 -3
  41. package/eval/cases/google-ads-no-structural-without-confirm.scenario.json +6 -2
  42. package/eval/cases/google-analysis-keywords-route.scenario.json +14 -2
  43. package/eval/cases/guard-budget-circuit-all-google.scenario.json +12 -2
  44. package/eval/cases/guard-zero-conv-empty-spend.scenario.json +12 -2
  45. package/eval/cases/human-p1-multiturn.scenario.json +5 -1
  46. package/eval/cases/ir-p1-vs-p8-account-vs-url.scenario.json +17 -5
  47. package/eval/cases/ir-p3-cpa-monitor-not-p7.scenario.json +19 -2
  48. package/eval/cases/ir-p3-zero-inquiry-not-p7.scenario.json +16 -3
  49. package/eval/cases/ir-p4-period-not-diagnosis.scenario.json +16 -3
  50. package/eval/cases/ir-p8-meets-google-ads-requirements-with-url.scenario.json +28 -3
  51. package/eval/cases/ir-p8-network-diagnosis-with-url.scenario.json +25 -3
  52. package/eval/cases/ir-p8-website-monitor-report-with-url.scenario.json +28 -3
  53. package/eval/cases/ir-p8-website-test-report-no-url.scenario.json +14 -3
  54. package/eval/cases/ir-p9-industry-not-p8.scenario.json +19 -3
  55. package/eval/cases/ir-vague-report-clarify.scenario.json +14 -3
  56. package/eval/cases/ir-w3-vs-p8-from-website.scenario.json +8 -2
  57. package/eval/cases/ir-w5-keyword-planner-url-core-terms.scenario.json +22 -2
  58. package/eval/cases/meta-single-balance-not-bulk.scenario.json +17 -3
  59. package/eval/cases/no-legacy-json-flag.scenario.json +6 -2
  60. package/eval/cases/open-account-google-noninteractive.scenario.json +4 -2
  61. package/eval/cases/open-account-tiktok-license-file.scenario.json +3 -1
  62. package/eval/cases/optimize-list-by-account.scenario.json +11 -3
  63. package/eval/cases/p1-single-account-profile.scenario.json +11 -1
  64. package/eval/cases/p2-balance-scan-bulk.scenario.json +9 -2
  65. package/eval/cases/p3-accounts-digest.scenario.json +5 -1
  66. package/eval/cases/p3-cpa-scan-max-cpa.scenario.json +14 -2
  67. package/eval/cases/p4-fb-meta-period-report.scenario.json +12 -2
  68. package/eval/cases/p4-period-report-window.scenario.json +8 -1
  69. package/eval/cases/pmax-asset-group-create-with-bg.scenario.json +13 -2
  70. package/eval/cases/pmax-brand-edit-routing.scenario.json +16 -3
  71. package/eval/cases/pmax-edit-not-campaign-edit.scenario.json +12 -2
  72. package/eval/cases/pmax-enable-brand-guidelines.scenario.json +12 -2
  73. package/eval/cases/pmax-no-assets-update-brand-fields.scenario.json +14 -3
  74. package/eval/cases/rag-before-keyword-expand.scenario.json +11 -1
  75. package/eval/cases/rag-list-then-query.scenario.json +14 -2
  76. package/eval/cases/report-list-google.scenario.json +11 -2
  77. package/eval/cases/report-push-list-google.scenario.json +11 -2
  78. package/eval/cases/setup-login-or-env.scenario.json +3 -1
  79. package/eval/cases/setup-siluzan-data-permission-env.scenario.json +3 -1
  80. package/eval/cases/tiktok-bc-bind-inquiry.scenario.json +6 -2
  81. package/eval/cases/time-range-user-delegates-default.scenario.json +8 -1
  82. package/eval/cases/tips-json-out-filtering.scenario.json +3 -1
  83. package/eval/cases/tips-large-json-pagination.scenario.json +3 -1
  84. package/eval/cases/uj-ad-campaign-validate-before-create-stub.scenario.json +11 -2
  85. package/eval/cases/uj-ad-outdoor-campgear-search-plan.scenario.json +3 -1
  86. package/eval/cases/uj-ad-website-search-plan-table-format.scenario.json +3 -1
  87. package/eval/cases/uj-analytics-30d-pdf-campaign-device-geo.scenario.json +18 -6
  88. package/eval/cases/uj-analytics-compare-google-tiktok-last-month-roi.scenario.json +8 -1
  89. package/eval/cases/uj-analytics-ecommerce-industry-report.scenario.json +14 -2
  90. package/eval/cases/uj-analytics-google-weekly-trends-campaigns-keywords.scenario.json +11 -2
  91. package/eval/cases/uj-analytics-report-push-weekly-email.scenario.json +3 -1
  92. package/eval/cases/uj-finance-invoice-records-this-month.scenario.json +11 -2
  93. package/eval/cases/uj-life-newbie-siluzan-google-end-to-end.scenario.json +4 -1
  94. package/eval/cases/uj-meta-ad-validate-before-create-stub.scenario.json +30 -0
  95. package/eval/cases/uj-ops-google-accounts-list-normal.scenario.json +17 -2
  96. package/eval/cases/uj-ops-google-yesterday-spend-conversions.scenario.json +14 -2
  97. package/eval/cases/uj-ops-open-google-b2c-usd-shenzhen.scenario.json +1 -1
  98. package/eval/cases/uj-ops-pause-worst-adgroup-confirm.scenario.json +6 -2
  99. package/eval/cases/uj-ops-tiktok-leads-last-week.scenario.json +17 -3
  100. package/eval/cases/uj-patrol-cpc-spike-adgroups-over-15.scenario.json +5 -1
  101. package/eval/cases/uj-patrol-forewarning-create-daily-cap-3000.scenario.json +3 -1
  102. package/eval/cases/uj-patrol-forewarning-trigger-records.scenario.json +17 -3
  103. package/eval/cases/uj-patrol-google-balances-low.scenario.json +11 -2
  104. package/eval/cases/uj-roi-optimize-records-then-execute-cautiously.scenario.json +14 -3
  105. package/eval/cases/uj-roi-search-terms-add-negative-keywords.scenario.json +14 -2
  106. package/eval/cases/yandex-stats-use-porg-mediaccustomerid.scenario.json +21 -3
  107. package/package.json +1 -1
@@ -10,5 +10,15 @@
10
10
  "references/analytics/rag.md",
11
11
  "references/analytics/keyword-planner-workflows.md"
12
12
  ],
13
- "commandMustInclude": [["rag"], ["keyword"], ["--json-out"]]
13
+ "commandMustInclude": [
14
+ [
15
+ "rag"
16
+ ],
17
+ [
18
+ "keyword"
19
+ ],
20
+ [
21
+ "--json-out"
22
+ ]
23
+ ]
14
24
  }
@@ -6,6 +6,18 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应先 `siluzan-tso rag list --rag-only`(可加 `--json-out`)选定客户/品牌知识库,再 `rag query -q \"...\"`(建议 `--folder-id` + `--partition wiki`);不得用 siluzan-cso rag 代替 tso-cli。\n输出:说明检索用途(产品/行业背景,非账户消耗数据);stub 即可。",
8
8
  "skillMapping": "references/analytics/rag.md",
9
- "judgeReferencePaths": ["references/analytics/rag.md"],
10
- "commandMustInclude": [["rag list"], ["rag query"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/analytics/rag.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "rag list"
15
+ ],
16
+ [
17
+ "rag query"
18
+ ],
19
+ [
20
+ "--json-out"
21
+ ]
22
+ ]
11
23
  }
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:需要列举平台侧优化报告时应使用 `siluzan-tso report list`,带媒体 Google,需要结构化时加 `--json-out`。\n输出:可简述用途;stub 数据即可。",
8
8
  "skillMapping": "references/analytics/reporting.md · report list",
9
- "judgeReferencePaths": ["references/analytics/reporting.md"],
10
- "commandMustInclude": [["report list"], ["Google"]]
9
+ "judgeReferencePaths": [
10
+ "references/analytics/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": "路径:查看优化报告邮件推送相关配置/列表应对照 analytics/reporting.md,使用 `report push` 子命令(如 list 等文档形态),需要 JSON 时加 --json-out。\n输出:简述用途;stub 即可。",
8
8
  "skillMapping": "references/analytics/reporting.md · report push",
9
- "judgeReferencePaths": ["references/analytics/reporting.md"],
10
- "commandMustInclude": [["report push"], ["Google"]]
9
+ "judgeReferencePaths": [
10
+ "references/analytics/reporting.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "report push"
15
+ ],
16
+ [
17
+ "Google"
18
+ ]
19
+ ]
11
20
  }
@@ -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/core/setup.md · 首次登录与凭据",
9
- "judgeReferencePaths": ["references/core/setup.md"]
9
+ "judgeReferencePaths": [
10
+ "references/core/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/core/setup.md",
9
- "judgeReferencePaths": ["references/core/setup.md"],
9
+ "judgeReferencePaths": [
10
+ "references/core/setup.md"
11
+ ],
10
12
  "responseMustMatch": [
11
13
  {
12
14
  "pattern": "SILUZAN_DATA_PERMISSION|数据权限|permission",
@@ -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/accounts.md · BC 绑定",
7
- "judgeReferencePaths": ["references/accounts/accounts.md"]
9
+ "judgeReferencePaths": [
10
+ "references/accounts/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-out"]]
9
+ "commandMustInclude": [
10
+ [
11
+ "stats"
12
+ ],
13
+ [
14
+ "--json-out"
15
+ ]
16
+ ]
10
17
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户问如何对 CLI 返回的 JSON 筛选字段时,应说明加 --json-out <路径>、用 node -e 过滤,或 read_skill_reference 读取 references/core/tips.md;不应编造不存在的子命令。\n输出:步骤可操作;不要求执行真实拉数命令。",
8
8
  "skillMapping": "硬规范「使用 --json-out」+ references/core/tips.md",
9
- "judgeReferencePaths": ["references/core/tips.md"]
9
+ "judgeReferencePaths": [
10
+ "references/core/tips.md"
11
+ ]
10
12
  }
@@ -6,7 +6,9 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户担心 list-accounts 结果太多页时,应提到分页参数(如 --page / --page-size)或 read_skill_reference core/tips.md,而非编造子命令。\n输出:可操作说明即可;不要求执行 CLI。",
8
8
  "skillMapping": "references/core/tips.md;list-accounts 分页",
9
- "judgeReferencePaths": ["references/core/tips.md"],
9
+ "judgeReferencePaths": [
10
+ "references/core/tips.md"
11
+ ],
10
12
  "responseMustMatch": [
11
13
  {
12
14
  "pattern": "page|分页|--page|page-size|tips|references\\/tips",
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:生成 campaign-create JSON 后应调用 ad campaign-validate(可用 stub),通过后再提议 campaign-create;不得跳过 validate。\n输出:JSON 含 KeywordsForBatchJob;须提及 campaign-validate 门禁(硬约束,非 taxonomy 数量强制)。",
8
8
  "skillMapping": "references/google-ads/google-ads-campaign-plan.md",
9
- "judgeReferencePaths": ["references/google-ads/google-ads-campaign-plan.md"],
10
- "commandMustInclude": [["campaign-validate"], ["--config-file"]]
9
+ "judgeReferencePaths": [
10
+ "references/google-ads/google-ads-campaign-plan.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "campaign-validate"
15
+ ],
16
+ [
17
+ "--config-file"
18
+ ]
19
+ ]
11
20
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应先阅读 google-ads-campaign-plan(仅出方案轨),再输出可确认的投放方案(地域/语言/预算/系列结构);用户说先出方案时不得索要账户 ID;不得跳过确认直接执行 campaign-create。\n输出:须含 campaign-create JSON(唯一数据源,account 可 PENDING)+ 从 JSON 推导的 Markdown 说明;关键词写在 KeywordsForBatchJob;应说明选定账户后再 validate/create。",
8
8
  "skillMapping": "references/google-ads/google-ads-campaign-plan.md;google-ads-rules",
9
- "judgeReferencePaths": ["references/google-ads/google-ads-campaign-plan.md"]
9
+ "judgeReferencePaths": [
10
+ "references/google-ads/google-ads-campaign-plan.md"
11
+ ]
10
12
  }
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "id": "uj-ad-website-search-plan-table-format",
3
3
  "description": "根据官网 URL 生成 Google 搜索广告且要求表格 — 须走 W3 方案流水线",
4
- "turns": ["根据 www.siluzan.com 这个官网的信息生成一份 Google 搜索广告给我,要表格格式。"],
4
+ "turns": [
5
+ "根据 www.siluzan.com 这个官网的信息生成一份 Google 搜索广告给我,要表格格式。"
6
+ ],
5
7
  "judgeExpectation": "路径:须识别为 W3 搜索广告方案(google-ads-campaign-plan.md),不是 P8 网站诊断、不是 P9 市场分析、不是 W5 仅拓词;须 Read campaign-create-template.json 后再出 JSON;仅出方案阶段不得因缺账户阻塞,不得先逼 list-accounts/要 mediaCustomerId;不得跳过 JSON 直接 create 或只交付手写创意表;创建前才须 campaign-validate。\n输出:须含 campaign-create JSON(唯一数据源)+ 从 JSON 投影的 Markdown 表格(launch-plan-template 结构);缺账户用 [PENDING_ACCOUNT] 占位即可;缺预算/地域可默认并标注假设,不得因只给官网就降级为几条文案。",
6
8
  "skillMapping": "references/google-ads/google-ads-campaign-plan.md",
7
9
  "judgeReferencePaths": [
@@ -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/analytics/account-analytics.md;report-templates",
9
- "judgeReferencePaths": ["references/analytics/account-analytics.md"],
9
+ "judgeReferencePaths": [
10
+ "references/analytics/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/analytics/account-analytics.md",
9
- "commandMustInclude": [["stats"], ["--json-out"]]
9
+ "commandMustInclude": [
10
+ [
11
+ "stats"
12
+ ],
13
+ [
14
+ "--json-out"
15
+ ]
16
+ ]
10
17
  }
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "id": "uj-analytics-ecommerce-industry-report",
3
3
  "description": "仅给行业:生成电商行业分析报告 — 须 P9 market-analysis CLI",
4
- "turns": ["帮我生成一份电商行业的行业分析报告"],
4
+ "turns": [
5
+ "帮我生成一份电商行业的行业分析报告"
6
+ ],
5
7
  "judgeExpectation": "路径:须识别为 P9 战略市场分析,不是 google-analysis、不是 P8 网站诊断、不是 W5 拓词;须执行 `market-analysis collect`(可仅 --industry 电商)且带 --json-out,调研后须 `market-analysis render` 交付 HTML;禁止仅用 WebSearch 在对话里写 Markdown 当终稿。\n输出:说明 collect/render 步骤或 HTML 路径;须 Read market-analysis-rules.md。",
6
8
  "skillMapping": "references/core/playbooks.md · P9;analytics/market-analysis-guide.md",
7
9
  "judgeReferencePaths": [
@@ -9,5 +11,15 @@
9
11
  "references/core/playbooks.md",
10
12
  "assets/market-analysis-rules.md"
11
13
  ],
12
- "commandMustInclude": [["market-analysis"], ["collect"], ["--json-out"]]
14
+ "commandMustInclude": [
15
+ [
16
+ "market-analysis"
17
+ ],
18
+ [
19
+ "collect"
20
+ ],
21
+ [
22
+ "--json-out"
23
+ ]
24
+ ]
13
25
  }
@@ -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;analytics/account-analytics.md",
9
- "judgeReferencePaths": ["references/analytics/account-analytics.md"],
10
- "commandMustInclude": [["stats"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/analytics/account-analytics.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "stats"
15
+ ],
16
+ [
17
+ "--json-out"
18
+ ]
19
+ ]
11
20
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应使用 analytics/reporting.md 中的 report push 相关命令说明创建/更新周期邮件;涉及写操作须确认;与自拉数诊断报告区分。\n输出:步骤与注意点;不要求真实创建。",
8
8
  "skillMapping": "references/analytics/reporting.md",
9
- "judgeReferencePaths": ["references/analytics/reporting.md"]
9
+ "judgeReferencePaths": [
10
+ "references/analytics/reporting.md"
11
+ ]
10
12
  }
@@ -6,6 +6,15 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:查询本月开票记录应使用 `invoice list` 并带 `--start`/`--end`(或文档等价),可加 --json-out;与 invoice billable(可开票订单)区分。\n输出:说明各状态含义;stub 即可。",
8
8
  "skillMapping": "references/accounts/finance.md · invoice list",
9
- "judgeReferencePaths": ["references/accounts/finance.md"],
10
- "commandMustInclude": [["invoice list"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/accounts/finance.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "invoice list"
15
+ ],
16
+ [
17
+ "--json-out"
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/core/setup.md", "references/core/workflows.md"]
9
+ "judgeReferencePaths": [
10
+ "references/core/setup.md",
11
+ "references/core/workflows.md"
12
+ ]
10
13
  }
@@ -0,0 +1,30 @@
1
+ {
2
+ "id": "uj-meta-ad-validate-before-create-stub",
3
+ "description": "Meta Lead JSON 须先 meta-ad validate(stub)",
4
+ "turns": [
5
+ "Meta 账户 3995107670753101,主页先用 pages 查。帮我出一套美国 Instant Form 线索广告方案 JSON(CBO 日预算 10 美元),落盘后请先校验再让我确认是否创建。不要去拉已有线索。"
6
+ ],
7
+ "judgeExpectation": "路径:生成 meta-lead-create JSON 后应调用 meta-ad validate(可用 stub),并按 meta-lead-launch-plan-template 从 JSON 投影审查稿(禁止只交概览、禁止跳过确认);通过后再提议 meta-ad create --commit;不得跳过 validate,不得用 Google ad campaign-create / clue 代替。\n输出:JSON 含 account/pageId/budgetMode/form/campaign/adset/creative/ad(建议含 plan);须提及默认 PAUSED 与三个对象分别 status ACTIVE。",
8
+ "skillMapping": "references/core/workflows.md W13;references/meta-ads/meta-ads-write.md;references/meta-ads/meta-lead-launch-plan-template.md",
9
+ "judgeReferencePaths": [
10
+ "references/core/workflows.md",
11
+ "references/meta-ads/meta-ads-write.md",
12
+ "references/meta-ads/meta-lead-launch-plan-template.md",
13
+ "assets/meta-lead-create-template.md"
14
+ ],
15
+ "commandMustInclude": [
16
+ [
17
+ "meta-ad"
18
+ ],
19
+ [
20
+ "validate"
21
+ ],
22
+ [
23
+ "--config-file"
24
+ ]
25
+ ],
26
+ "commandMustNotInclude": [
27
+ "campaign-create",
28
+ "clue"
29
+ ]
30
+ }
@@ -6,6 +6,21 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应使用 `list-accounts -m Google --page-size 999 --json-out` 一次拉全(禁止默认 page-size 20 后再多次翻页);脚本读落盘 JSON 的 total/items,并结合状态字段解释「正常」含义;不得编造未在 CLI 输出中的账户。\n输出:可按状态分组或列表说明;stub 数据即可。",
8
8
  "skillMapping": "references/accounts/accounts.md · list-accounts",
9
- "judgeReferencePaths": ["references/accounts/accounts.md"],
10
- "commandMustInclude": [["list-accounts"], ["Google"], ["--json-out"], ["page-size"]]
9
+ "judgeReferencePaths": [
10
+ "references/accounts/accounts.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "list-accounts"
15
+ ],
16
+ [
17
+ "Google"
18
+ ],
19
+ [
20
+ "--json-out"
21
+ ],
22
+ [
23
+ "page-size"
24
+ ]
25
+ ]
11
26
  }
@@ -6,6 +6,18 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:用户已明确「昨天」时应构造与「昨天」一致的 stats 区间并加 --json-out;须先 list-accounts 或 -k 确认账户存在(SKILL 先查账户再操作)。\n输出:说明花费与转化字段来源;stub 即可。",
8
8
  "skillMapping": "references/accounts/accounts.md · stats",
9
- "judgeReferencePaths": ["references/analytics/account-analytics.md"],
10
- "commandMustInclude": [["stats"], ["{{EVAL_ACCOUNT_READ}}"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/analytics/account-analytics.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "stats"
15
+ ],
16
+ [
17
+ "{{EVAL_ACCOUNT_READ}}"
18
+ ],
19
+ [
20
+ "--json-out"
21
+ ]
22
+ ]
11
23
  }
@@ -4,7 +4,7 @@
4
4
  "turns": [
5
5
  "我想开一个 Google 广告账户,公司名是「深圳星辰科技有限公司」,推广网站是 https://www.starlighttech.com ,做 B2C 电商,币种选美元。告诉我 CLI 怎么一步步提交,我复制执行。"
6
6
  ],
7
- "judgeExpectation": "路径:应给出非交互 `open-account google ...`,说明 invite-email、company、行业一级/二级等必填,时区可按币种默认;Agent 环境不可用 google-wizard;币种 USD、promotion-type b2c 与文档一致。\n输出:步骤可复制;不要求真实提交。",
7
+ "judgeExpectation": "路径:应给出非交互 `open-account google ...`,说明 invite-email、company 等必填,时区可按币种默认,行业可选;Agent 环境不可用 google-wizard;币种 USD、promotion-type b2c 与文档一致。\n输出:步骤可复制;不要求真实提交。",
8
8
  "skillMapping": "references/core/workflows.md;accounts/open-account-by-media.md",
9
9
  "judgeReferencePaths": [
10
10
  "references/core/workflows.md",
@@ -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/google-ads.md",
7
- "judgeReferencePaths": ["references/google-ads/google-ads.md"]
9
+ "judgeReferencePaths": [
10
+ "references/google-ads/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-out`。\n输出:可说明 custom_fields/system_fields;stub 即可。",
6
8
  "skillMapping": "references/operations/clue.md",
7
- "judgeReferencePaths": ["references/operations/clue.md"],
8
- "commandMustInclude": [["clue"], ["TikTok"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/operations/clue.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "clue"
15
+ ],
16
+ [
17
+ "TikTok"
18
+ ],
19
+ [
20
+ "--json-out"
21
+ ]
22
+ ]
9
23
  }
@@ -10,5 +10,9 @@
10
10
  "references/analytics/account-analytics.md",
11
11
  "references/google-ads/google-ads.md"
12
12
  ],
13
- "commandMustInclude": [["google-analysis"]]
13
+ "commandMustInclude": [
14
+ [
15
+ "google-analysis"
16
+ ]
17
+ ]
14
18
  }
@@ -6,5 +6,7 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:创建规则前应 read_skill_reference operations/forewarning.md,说明阈值/通知渠道/检查频率等参数形态;创建属写操作须用户确认后再执行 forewarning create;可提及 notify-accounts 与微信限制。\n输出:不要求真实创建成功。",
8
8
  "skillMapping": "references/operations/forewarning.md",
9
- "judgeReferencePaths": ["references/operations/forewarning.md"]
9
+ "judgeReferencePaths": [
10
+ "references/operations/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-out。\n输出:简述记录含义;stub 即可。",
6
8
  "skillMapping": "references/operations/forewarning.md",
7
- "judgeReferencePaths": ["references/operations/forewarning.md"],
8
- "commandMustInclude": [["forewarning records"], ["Google"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/operations/forewarning.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "forewarning records"
15
+ ],
16
+ [
17
+ "Google"
18
+ ],
19
+ [
20
+ "--json-out"
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/accounts.md;SKILL 批量任务",
9
- "judgeReferencePaths": ["references/accounts/accounts.md"],
10
- "commandMustInclude": [["list-accounts"], ["Google"]]
9
+ "judgeReferencePaths": [
10
+ "references/accounts/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-out。"],
4
+ "turns": [
5
+ "帮我查看 AI 优化建议,如果有合理的就按建议执行。先 list 带 --json-out。"
6
+ ],
5
7
  "judgeExpectation": "路径:应使用 optimize list/get 查看建议;真正改账户结构须与 google-ads 写命令一致且用户确认,不得自动执行「按建议一键改」。\n输出:区分「只读记录」与「写操作」;stub 即可。",
6
8
  "skillMapping": "references/operations/optimize.md;破坏性确认",
7
- "judgeReferencePaths": ["references/operations/optimize.md"],
8
- "commandMustInclude": [["optimize list"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/operations/optimize.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "optimize list"
15
+ ],
16
+ [
17
+ "--json-out"
18
+ ]
19
+ ]
9
20
  }
@@ -6,6 +6,18 @@
6
6
  ],
7
7
  "judgeExpectation": "路径:应先用 `google-analysis -a <id> --sections search-terms --json-out <dir>` 拉取搜索词(注意 google-analysis 是单一入口,单维度通过 --sections 指定),再基于规则建议否定词;执行 ad keyword-negative-create 前必须用户确认。\n输出:可列出候选否定词;不要求真实写入。",
8
8
  "skillMapping": "references/analytics/account-analytics.md;google-ads/google-ads.md",
9
- "judgeReferencePaths": ["references/google-ads/google-ads.md"],
10
- "commandMustInclude": [["google-analysis"], ["search-terms"], ["--json-out"]]
9
+ "judgeReferencePaths": [
10
+ "references/google-ads/google-ads.md"
11
+ ],
12
+ "commandMustInclude": [
13
+ [
14
+ "google-analysis"
15
+ ],
16
+ [
17
+ "search-terms"
18
+ ],
19
+ [
20
+ "--json-out"
21
+ ]
22
+ ]
11
23
  }
@@ -1,13 +1,31 @@
1
1
  {
2
2
  "id": "yandex-stats-use-porg-mediaccustomerid",
3
3
  "description": "Yandex 拉数须用 porg- mediaCustomerId,禁止 UUID/reauth 误判",
4
- "turns": ["拉取账户 porg-kqquuxx6 的 Yandex 7 月 21 日投放数据,用 siluzan-tso,需要 JSON。"],
4
+ "turns": [
5
+ "拉取账户 porg-kqquuxx6 的 Yandex 7 月 21 日投放数据,用 siluzan-tso,需要 JSON。"
6
+ ],
5
7
  "judgeExpectation": "路径:用户给出 Yandex 账户 porg-kqquuxx6 时,stats/balance 的 -a 必须传 porg-kqquuxx6(mediaCustomerId);可先 list-accounts -m Yandex -k porg-kqquuxx6 核验。\n禁止:把 entityId 或其它 UUID 传给 stats/balance 的 -a;禁止因空结果或 verbose HTTP 403 直接 account reauth/delink。\n输出:交付 7 月 21 日投放数据或明确说明接口返回;stub 即可。",
6
8
  "skillMapping": "references/accounts/accounts-balance-stats.md(stats 空结果/403 排查);agent-conventions §十一",
7
9
  "judgeReferencePaths": [
8
10
  "references/accounts/accounts-balance-stats.md",
9
11
  "references/core/agent-conventions.md"
10
12
  ],
11
- "commandMustInclude": [["stats"], ["Yandex"], ["porg-kqquuxx6"], ["--json-out"]],
12
- "commandMustNotInclude": ["reauth", "delink"]
13
+ "commandMustInclude": [
14
+ [
15
+ "stats"
16
+ ],
17
+ [
18
+ "Yandex"
19
+ ],
20
+ [
21
+ "porg-kqquuxx6"
22
+ ],
23
+ [
24
+ "--json-out"
25
+ ]
26
+ ],
27
+ "commandMustNotInclude": [
28
+ "reauth",
29
+ "delink"
30
+ ]
13
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siluzan-tso-cli",
3
- "version": "1.1.47",
3
+ "version": "1.1.48-beta.2",
4
4
  "description": "Siluzan 广告账户管理 CLI — 查询账户、余额、消耗数据,管理绑定关系与充值。",
5
5
  "keywords": [
6
6
  "ad-account",