@thinkingai/ae-cli 6.1.20 → 6.1.23

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 (338) hide show
  1. package/README.md +2 -1
  2. package/README.zh.md +2 -1
  3. package/dist/{auth-FUM37MHF.js → auth-XZNXFRJS.js} +5 -5
  4. package/dist/{capability-AXFQW5WM.js → capability-FYTU3X6L.js} +42 -12
  5. package/dist/{chunk-LNZBEQXW.js → chunk-4NRCTUZJ.js} +27041 -474
  6. package/dist/{chunk-VXNMYUXU.js → chunk-57RRFUEZ.js} +23 -7
  7. package/dist/{chunk-WZ6YVQSF.js → chunk-7FTTULED.js} +1 -1
  8. package/dist/{chunk-ATSM5XAW.js → chunk-7XGFSUOM.js} +2 -2
  9. package/dist/chunk-CCS66K4K.js +155 -0
  10. package/dist/{chunk-I4WQAEYB.js → chunk-DVMLWQD4.js} +8 -186
  11. package/dist/{chunk-CZU3V3DQ.js → chunk-DX5CDO34.js} +27 -6
  12. package/dist/chunk-EQ255HKO.js +38248 -0
  13. package/dist/{chunk-BBEFP4SB.js → chunk-HBGADCKA.js} +3 -3
  14. package/dist/{chunk-QJQZH5GQ.js → chunk-HFGZGYCG.js} +10 -6
  15. package/dist/{chunk-ECBLHAZO.js → chunk-JOCDD4ON.js} +1 -1
  16. package/dist/{chunk-TKHSULJT.js → chunk-KPQY44JQ.js} +6 -0
  17. package/dist/{chunk-4P355ZWB.js → chunk-MAPZ7VB6.js} +21 -1
  18. package/dist/chunk-V2NUHPXF.js +196 -0
  19. package/dist/{chunk-RSG4ONOI.js → chunk-VYXXOKYS.js} +5 -5
  20. package/dist/{community-report-client-XXWGSBSD.js → community-report-client-CU22W53K.js} +1 -1
  21. package/dist/{config-EXUGQN5T.js → config-XO3LI3SA.js} +4 -4
  22. package/dist/context-IFJI3LIT.js +46 -0
  23. package/dist/{data-integration-4NZ53OMT.js → data-integration-HNGUKFIC.js} +44 -35
  24. package/dist/index.js +101 -64
  25. package/dist/{local-data-upload-client-KYOKVYZV.js → local-data-upload-client-GTRIT64F.js} +3 -2
  26. package/dist/{memory-ATNKZNW5.js → memory-QGPSNCQS.js} +4 -4
  27. package/dist/{metadata-VZVC7YMH.js → metadata-DI5BMYFU.js} +8 -8
  28. package/dist/{model-E4JMQ4V2.js → model-RNPQXIBI.js} +4 -4
  29. package/dist/{personal-semantic-preference-7S2SQ3UV.js → personal-semantic-preference-5C3WUXFI.js} +11 -8
  30. package/dist/{project-semantic-2SZP2OPO.js → project-semantic-3LF6Q6JZ.js} +27 -21
  31. package/dist/{sync-YV3E66IF.js → sync-O45NXEQY.js} +7 -6
  32. package/dist/{te-agent-JB5T3PO7.js → te-agent-K5MSPNHJ.js} +5 -5
  33. package/dist/{te-analysis-3YJAAT2D.js → te-analysis-AISWCOOZ.js} +1086 -354
  34. package/dist/{te-community-UDBI672N.js → te-community-4OYU3BDA.js} +4 -4
  35. package/dist/{te-dataops-ZLYOCXZ4.js → te-dataops-NFIPB6FX.js} +5 -5
  36. package/dist/{te-engage-4XG6OJML.js → te-engage-BAM3GBFX.js} +7 -7
  37. package/dist/{te-experiment-VXUWPINJ.js → te-experiment-GUTZXZ5Z.js} +132 -14
  38. package/dist/{te-kb-WYQWHFSC.js → te-kb-3TS73NO6.js} +454 -194
  39. package/dist/{te-system-7G6F2LJA.js → te-system-STMHLS5J.js} +12 -7
  40. package/dist/{te-team-E7FBBXMQ.js → te-team-3I5AOX3N.js} +6 -6
  41. package/dist/{update-D47BUG25.js → update-RZXLPCRH.js} +4 -4
  42. package/package.json +21 -14
  43. package/skills/ae-analysis/SKILL.md +91 -78
  44. package/skills/ae-analysis/references/adhoc_export.md +11 -18
  45. package/skills/ae-analysis/references/adhoc_run.md +15 -7
  46. package/skills/ae-analysis/references/agent_review_detail.md +11 -0
  47. package/skills/ae-analysis/references/agent_review_evidence.md +46 -0
  48. package/skills/ae-analysis/references/agent_review_list.md +9 -0
  49. package/skills/ae-analysis/references/agent_review_preflight.md +96 -0
  50. package/skills/ae-analysis/references/agent_review_priorities_comparisons.md +76 -0
  51. package/skills/ae-analysis/references/agent_review_records.md +9 -0
  52. package/skills/ae-analysis/references/agent_review_retry.md +12 -0
  53. package/skills/ae-analysis/references/agent_review_review.md +16 -0
  54. package/skills/ae-analysis/references/agent_review_submit_to_page.md +184 -0
  55. package/skills/ae-analysis/references/ai_models/attribution.md +29 -0
  56. package/skills/ae-analysis/references/ai_models/distribution.md +40 -0
  57. package/skills/ae-analysis/references/ai_models/event.md +108 -0
  58. package/skills/ae-analysis/references/ai_models/funnel.md +46 -0
  59. package/skills/ae-analysis/references/ai_models/heat_map.md +26 -0
  60. package/skills/ae-analysis/references/ai_models/interval.md +20 -0
  61. package/skills/ae-analysis/references/ai_models/path.md +55 -0
  62. package/skills/ae-analysis/references/ai_models/prop_analysis.md +43 -0
  63. package/skills/ae-analysis/references/ai_models/rank_list.md +25 -0
  64. package/skills/ae-analysis/references/ai_models/retention.md +70 -0
  65. package/skills/ae-analysis/references/ai_models/revenue.md +28 -0
  66. package/skills/ae-analysis/references/ai_models/sql.md +74 -0
  67. package/skills/ae-analysis/references/ai_models/tag.md +19 -0
  68. package/skills/ae-analysis/references/ai_models.md +32 -473
  69. package/skills/ae-analysis/references/alert_create.md +7 -7
  70. package/skills/ae-analysis/references/alert_delete.md +4 -6
  71. package/skills/ae-analysis/references/alert_detail_list.md +7 -9
  72. package/skills/ae-analysis/references/alert_get.md +5 -7
  73. package/skills/ae-analysis/references/alert_job_list.md +4 -6
  74. package/skills/ae-analysis/references/alert_list.md +6 -8
  75. package/skills/ae-analysis/references/alert_notice_config_list.md +4 -6
  76. package/skills/ae-analysis/references/alert_start.md +5 -7
  77. package/skills/ae-analysis/references/alert_stop.md +5 -7
  78. package/skills/ae-analysis/references/alert_update.md +8 -8
  79. package/skills/ae-analysis/references/analysis_data_export.md +72 -0
  80. package/skills/ae-analysis/references/analysis_data_retrieval.md +32 -196
  81. package/skills/ae-analysis/references/analysis_gateway_assets.md +23 -180
  82. package/skills/ae-analysis/references/analysis_interpretation.md +37 -17
  83. package/skills/ae-analysis/references/asset_abnormal_get.md +0 -1
  84. package/skills/ae-analysis/references/asset_abnormal_list.md +0 -1
  85. package/skills/ae-analysis/references/asset_authentication_export.md +4 -0
  86. package/skills/ae-analysis/references/asset_authentication_list.md +7 -1
  87. package/skills/ae-analysis/references/asset_authentication_update.md +5 -1
  88. package/skills/ae-analysis/references/asset_batch_dashboard_schedule_freeze.md +8 -6
  89. package/skills/ae-analysis/references/asset_batch_delete.md +6 -6
  90. package/skills/ae-analysis/references/asset_batch_disable_auto_backup.md +4 -5
  91. package/skills/ae-analysis/references/asset_batch_disable_auto_update.md +5 -6
  92. package/skills/ae-analysis/references/asset_batch_handover.md +4 -5
  93. package/skills/ae-analysis/references/asset_batch_info_export.md +4 -5
  94. package/skills/ae-analysis/references/asset_batch_sql_export.md +5 -6
  95. package/skills/ae-analysis/references/asset_dependency_list.md +4 -5
  96. package/skills/ae-analysis/references/asset_export.md +4 -5
  97. package/skills/ae-analysis/references/asset_impact_list.md +5 -9
  98. package/skills/ae-analysis/references/asset_lineage_get.md +5 -6
  99. package/skills/ae-analysis/references/asset_list.md +4 -5
  100. package/skills/ae-analysis/references/asset_query_history_list.md +4 -8
  101. package/skills/ae-analysis/references/asset_recent_list.md +0 -1
  102. package/skills/ae-analysis/references/asset_search.md +12 -9
  103. package/skills/ae-analysis/references/asset_url_get.md +3 -4
  104. package/skills/ae-analysis/references/bi_panel_copy.md +2 -2
  105. package/skills/ae-analysis/references/bi_panel_page_data_export.md +4 -12
  106. package/skills/ae-analysis/references/bi_panel_page_data_run.md +2 -0
  107. package/skills/ae-analysis/references/catalog_export.md +4 -17
  108. package/skills/ae-analysis/references/catalog_list.md +4 -4
  109. package/skills/ae-analysis/references/check_delete.md +5 -7
  110. package/skills/ae-analysis/references/check_export.md +11 -11
  111. package/skills/ae-analysis/references/check_get.md +8 -10
  112. package/skills/ae-analysis/references/check_list.md +4 -6
  113. package/skills/ae-analysis/references/check_retry.md +8 -10
  114. package/skills/ae-analysis/references/check_run.md +2 -4
  115. package/skills/ae-analysis/references/command_index.md +44 -26
  116. package/skills/ae-analysis/references/dashboard_report_data_export.md +5 -13
  117. package/skills/ae-analysis/references/dashboard_report_data_run.md +1 -1
  118. package/skills/ae-analysis/references/dashboard_update.md +14 -3
  119. package/skills/ae-analysis/references/datatable_columns_get.md +0 -1
  120. package/skills/ae-analysis/references/datatable_influence_list.md +0 -1
  121. package/skills/ae-analysis/references/datatable_version_get.md +0 -1
  122. package/skills/ae-analysis/references/datatable_version_list.md +0 -1
  123. package/skills/ae-analysis/references/debug_device_add.md +1 -2
  124. package/skills/ae-analysis/references/drilldown_entities_export.md +3 -3
  125. package/skills/ae-analysis/references/drilldown_events_export.md +3 -2
  126. package/skills/ae-analysis/references/drilldown_user_events_export.md +2 -2
  127. package/skills/ae-analysis/references/entity_detail_export.md +3 -2
  128. package/skills/ae-analysis/references/entity_detail_run.md +1 -0
  129. package/skills/ae-analysis/references/event_blacklist_add.md +5 -7
  130. package/skills/ae-analysis/references/event_blacklist_list.md +4 -6
  131. package/skills/ae-analysis/references/event_blacklist_update.md +6 -8
  132. package/skills/ae-analysis/references/event_changelog_list.md +0 -1
  133. package/skills/ae-analysis/references/event_create.md +0 -1
  134. package/skills/ae-analysis/references/event_detail_export.md +3 -2
  135. package/skills/ae-analysis/references/event_detail_run.md +1 -0
  136. package/skills/ae-analysis/references/event_export.md +0 -1
  137. package/skills/ae-analysis/references/event_get.md +0 -1
  138. package/skills/ae-analysis/references/event_hide_update.md +0 -1
  139. package/skills/ae-analysis/references/event_influence_list.md +0 -1
  140. package/skills/ae-analysis/references/event_list.md +0 -1
  141. package/skills/ae-analysis/references/event_property_bundle_export.md +5 -14
  142. package/skills/ae-analysis/references/event_property_bundle_import.md +2 -6
  143. package/skills/ae-analysis/references/event_relation_update.md +0 -1
  144. package/skills/ae-analysis/references/event_update.md +0 -1
  145. package/skills/ae-analysis/references/exchange_config_update.md +0 -1
  146. package/skills/ae-analysis/references/exchange_rate_refresh.md +0 -1
  147. package/skills/ae-analysis/references/exchange_rule_list.md +0 -1
  148. package/skills/ae-analysis/references/exchange_rule_update.md +0 -1
  149. package/skills/ae-analysis/references/exchange_rule_validate.md +0 -1
  150. package/skills/ae-analysis/references/governance_recommendation_decisions.md +23 -0
  151. package/skills/ae-analysis/references/governance_recommendation_export.md +108 -0
  152. package/skills/ae-analysis/references/governance_recommendation_submit.md +41 -0
  153. package/skills/ae-analysis/references/history_tag_data_drilldown_export.md +4 -4
  154. package/skills/ae-analysis/references/history_tag_data_export.md +3 -3
  155. package/skills/ae-analysis/references/ingest_error_list.md +7 -9
  156. package/skills/ae-analysis/references/ingest_summary.md +6 -8
  157. package/skills/ae-analysis/references/live_data_export.md +10 -10
  158. package/skills/ae-analysis/references/live_data_list.md +7 -9
  159. package/skills/ae-analysis/references/metadata_resolution.md +78 -0
  160. package/skills/ae-analysis/references/metric_export.md +0 -1
  161. package/skills/ae-analysis/references/metric_get.md +0 -1
  162. package/skills/ae-analysis/references/metric_list.md +4 -5
  163. package/skills/ae-analysis/references/metric_update.md +0 -1
  164. package/skills/ae-analysis/references/operation_record_export.md +4 -5
  165. package/skills/ae-analysis/references/operation_record_list.md +4 -5
  166. package/skills/ae-analysis/references/personal_semantic_preference_list.md +18 -1
  167. package/skills/ae-analysis/references/plan_change_log_export.md +10 -10
  168. package/skills/ae-analysis/references/plan_change_log_list.md +4 -6
  169. package/skills/ae-analysis/references/plan_delete_items.md +2 -4
  170. package/skills/ae-analysis/references/plan_export.md +9 -9
  171. package/skills/ae-analysis/references/plan_generate.md +2 -4
  172. package/skills/ae-analysis/references/plan_get.md +4 -6
  173. package/skills/ae-analysis/references/plan_import_excel.md +6 -8
  174. package/skills/ae-analysis/references/plan_save_items.md +2 -4
  175. package/skills/ae-analysis/references/plan_sync_from_meta.md +4 -6
  176. package/skills/ae-analysis/references/project_access_detail_get.md +0 -1
  177. package/skills/ae-analysis/references/project_data_power_get.md +0 -1
  178. package/skills/ae-analysis/references/project_data_power_list.md +0 -1
  179. package/skills/ae-analysis/references/project_data_power_upsert.md +0 -1
  180. package/skills/ae-analysis/references/project_entity_create.md +0 -1
  181. package/skills/ae-analysis/references/project_entity_event_list.md +0 -1
  182. package/skills/ae-analysis/references/project_entity_get.md +0 -1
  183. package/skills/ae-analysis/references/project_entity_list.md +0 -1
  184. package/skills/ae-analysis/references/project_entity_update.md +0 -1
  185. package/skills/ae-analysis/references/project_function_list.md +0 -1
  186. package/skills/ae-analysis/references/project_info_get.md +0 -1
  187. package/skills/ae-analysis/references/project_info_list.md +0 -1
  188. package/skills/ae-analysis/references/project_info_update.md +0 -1
  189. package/skills/ae-analysis/references/project_mark_time_create.md +0 -1
  190. package/skills/ae-analysis/references/project_mark_time_list.md +0 -1
  191. package/skills/ae-analysis/references/project_mark_time_update.md +0 -1
  192. package/skills/ae-analysis/references/project_member_add.md +6 -5
  193. package/skills/ae-analysis/references/project_member_batch_update.md +0 -1
  194. package/skills/ae-analysis/references/project_member_candidate_list.md +4 -3
  195. package/skills/ae-analysis/references/project_member_handover_run.md +2 -3
  196. package/skills/ae-analysis/references/project_member_list.md +0 -1
  197. package/skills/ae-analysis/references/project_member_receiver_list.md +0 -1
  198. package/skills/ae-analysis/references/project_member_update.md +0 -1
  199. package/skills/ae-analysis/references/project_owner_update.md +0 -1
  200. package/skills/ae-analysis/references/project_permission_binding_list.md +0 -1
  201. package/skills/ae-analysis/references/project_role_function_list.md +0 -1
  202. package/skills/ae-analysis/references/project_role_get.md +0 -1
  203. package/skills/ae-analysis/references/project_role_list.md +0 -1
  204. package/skills/ae-analysis/references/project_role_upsert.md +32 -2
  205. package/skills/ae-analysis/references/project_role_user_list.md +0 -1
  206. package/skills/ae-analysis/references/project_semantic_knowledge_wiki.md +214 -0
  207. package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +93 -0
  208. package/skills/ae-analysis/references/project_timezone_get.md +0 -1
  209. package/skills/ae-analysis/references/project_timezone_overview.md +0 -1
  210. package/skills/ae-analysis/references/project_timezone_update.md +0 -1
  211. package/skills/ae-analysis/references/project_user_id_items_update.md +0 -1
  212. package/skills/ae-analysis/references/property_changelog_list.md +0 -1
  213. package/skills/ae-analysis/references/property_create.md +0 -1
  214. package/skills/ae-analysis/references/property_export.md +0 -1
  215. package/skills/ae-analysis/references/property_get.md +0 -1
  216. package/skills/ae-analysis/references/property_hide_update.md +0 -1
  217. package/skills/ae-analysis/references/property_influence_list.md +0 -1
  218. package/skills/ae-analysis/references/property_list.md +3 -4
  219. package/skills/ae-analysis/references/property_related_events.md +0 -1
  220. package/skills/ae-analysis/references/property_relation_update.md +0 -1
  221. package/skills/ae-analysis/references/property_update.md +0 -1
  222. package/skills/ae-analysis/references/report_create.md +4 -2
  223. package/skills/ae-analysis/references/report_data_export.md +11 -9
  224. package/skills/ae-analysis/references/report_data_run.md +14 -7
  225. package/skills/ae-analysis/references/report_get.md +5 -3
  226. package/skills/ae-analysis/references/report_list.md +2 -0
  227. package/skills/ae-analysis/references/report_update.md +5 -3
  228. package/skills/ae-analysis/references/rule_create.md +5 -6
  229. package/skills/ae-analysis/references/rule_delete.md +5 -5
  230. package/skills/ae-analysis/references/rule_list.md +3 -4
  231. package/skills/ae-analysis/references/rule_schema.md +3 -4
  232. package/skills/ae-analysis/references/rule_update.md +5 -6
  233. package/skills/ae-analysis/references/sdk_sample_generate.md +2 -4
  234. package/skills/ae-analysis/references/sql_table_columns.md +1 -1
  235. package/skills/ae-analysis/references/super_metadata_batch_create.md +1 -1
  236. package/skills/ae-analysis/references/super_metadata_batch_edit.md +1 -1
  237. package/skills/ae-analysis/references/system_member_add.md +1 -2
  238. package/skills/ae-analysis/references/system_member_status_update.md +1 -1
  239. package/skills/ae-analysis/references/system_ops_alert_contact_list.md +1 -1
  240. package/skills/ae-analysis/references/system_ops_alert_contact_test.md +0 -1
  241. package/skills/ae-analysis/references/system_query_monitor_overview.md +3 -3
  242. package/skills/ae-analysis/references/system_query_task_export.md +4 -14
  243. package/skills/ae-analysis/references/system_query_task_get.md +1 -1
  244. package/skills/ae-analysis/references/system_query_task_list.md +5 -6
  245. package/skills/ae-analysis/references/system_receiver_address_upsert.md +3 -3
  246. package/skills/ae-analysis/references/system_receiver_detection_get.md +1 -1
  247. package/skills/ae-analysis/references/system_third_party_login_disable.md +1 -1
  248. package/skills/ae-analysis/references/system_usage_trend_export.md +3 -12
  249. package/skills/ae-analysis/references/user_cluster_list.md +1 -1
  250. package/skills/ae-analysis/references/user_cluster_member_export.md +4 -4
  251. package/skills/ae-analysis/references/user_tag_list.md +1 -1
  252. package/skills/ae-analysis/references/user_tag_member_export.md +4 -4
  253. package/skills/ae-analysis/references/virtual_event_create.md +10 -5
  254. package/skills/ae-analysis/references/virtual_event_get.md +0 -1
  255. package/skills/ae-analysis/references/virtual_property_create.md +0 -1
  256. package/skills/ae-analysis/references/virtual_property_sql_rule_update.md +0 -1
  257. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +1054 -0
  258. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/company-kb.mjs +112 -0
  259. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-rules.md +30 -0
  260. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +2735 -0
  261. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/package-wiki-source-zip.mjs +376 -0
  262. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/plan-kb-source-sync.mjs +264 -0
  263. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/precompiled-source.mjs +49 -0
  264. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/upload-kb-sources-concurrently.mjs +200 -0
  265. package/skills/ae-analysis/scripts/read_results.py +197 -0
  266. package/skills/ae-analysis-global/SKILL.md +1 -1
  267. package/skills/ae-capability/SKILL.md +1 -1
  268. package/skills/ae-community/SKILL.md +1 -1
  269. package/skills/ae-current-context/SKILL.md +53 -0
  270. package/skills/ae-data-integration/SKILL.md +5 -4
  271. package/skills/ae-data-integration/references/lark-bitable-source.md +288 -0
  272. package/skills/ae-data-integration/references/lark-sheet-source.md +130 -0
  273. package/skills/ae-data-integration/references/manual-export-source.md +83 -0
  274. package/skills/ae-data-integration/references/reuse.md +2 -0
  275. package/skills/ae-data-integration/references/sink-upload.md +32 -0
  276. package/skills/ae-data-integration/references/tracking-plan.md +4 -1
  277. package/skills/ae-data-integration/references/ue-mapping.md +2 -2
  278. package/skills/ae-data-integration-helper/SKILL.md +5 -5
  279. package/skills/ae-data-integration-helper/references/android_sdk_faq.md +3 -3
  280. package/skills/ae-data-integration-helper/references/c_sdk_faq.md +3 -3
  281. package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +1 -1
  282. package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +3 -3
  283. package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +1 -1
  284. package/skills/ae-data-integration-helper/references/java_sdk_faq.md +3 -3
  285. package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +1 -1
  286. package/skills/ae-data-integration-helper/references/logbus2_guide.md +1 -1
  287. package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +2 -2
  288. package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +2 -2
  289. package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +1 -1
  290. package/skills/ae-data-integration-helper/references/python_sdk_faq.md +2 -2
  291. package/skills/ae-data-integration-helper/references/restful_api_notes.md +2 -2
  292. package/skills/ae-data-integration-helper/references/sdk_log_guide.md +3 -3
  293. package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +11 -11
  294. package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +1 -1
  295. package/skills/ae-dataops/SKILL.md +1 -1
  296. package/skills/ae-engage/SKILL.md +4 -3
  297. package/skills/ae-engage/references/build-task-save-guide.md +3 -0
  298. package/skills/ae-engage/references/flow-metric-update.md +115 -1
  299. package/skills/ae-engage/references/save-flow.md +3 -0
  300. package/skills/ae-engage/references/save-task.md +21 -0
  301. package/skills/ae-engage/references/task-metric-update.md +151 -0
  302. package/skills/ae-experiment/SKILL.md +14 -7
  303. package/skills/ae-experiment/references/save_submit_external_experiment.md +52 -0
  304. package/skills/ae-experiment-design/SKILL.md +3 -3
  305. package/skills/ae-experiment-design/references/platform-operations.md +1 -1
  306. package/skills/ae-experiment-insight/SKILL.md +2 -2
  307. package/skills/ae-experiment-insight/references/platform-operations.md +1 -1
  308. package/skills/ae-generate-tracking-code/SKILL.md +2 -1
  309. package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +1 -1
  310. package/skills/ae-generate-tracking-code/references/datax-config.md +1 -1
  311. package/skills/ae-generate-tracking-code/references/logbus-config.md +1 -1
  312. package/skills/ae-generate-tracking-code/references/modes.md +1 -1
  313. package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +5 -5
  314. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +3 -3
  315. package/skills/ae-generate-tracking-plan/SKILL.md +2 -2
  316. package/skills/ae-generate-tracking-plan/references/te-api.md +1 -0
  317. package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +3 -2
  318. package/skills/ae-kb/SKILL.md +41 -2
  319. package/skills/ae-kb/references/analysis-workflow.md +292 -0
  320. package/skills/ae-kb/references/source-mutations.md +95 -0
  321. package/skills/ae-kb-discovery/SKILL.md +5 -1
  322. package/skills/ae-metadata/SKILL.md +1 -1
  323. package/skills/ae-migrate-tracking-code/SKILL.md +195 -0
  324. package/skills/ae-migrate-tracking-code/references/ae-preset-properties.md +76 -0
  325. package/skills/ae-migrate-tracking-code/references/ir.md +167 -0
  326. package/skills/ae-migrate-tracking-code/references/mapping-framework.md +112 -0
  327. package/skills/ae-migrate-tracking-code/references/providers/README.md +58 -0
  328. package/skills/ae-migrate-tracking-code/references/providers/amplitude.md +208 -0
  329. package/skills/ae-migrate-tracking-code/references/providers/firebase.md +160 -0
  330. package/skills/ae-migrate-tracking-code/references/providers/ga4.md +92 -0
  331. package/skills/ae-migrate-tracking-code/references/providers/mixpanel.md +150 -0
  332. package/skills/ae-migrate-tracking-code/references/providers/sensors-data.md +146 -0
  333. package/skills/ae-project-semantic/SKILL.md +1 -1
  334. package/skills/ae-system/SKILL.md +4 -4
  335. package/skills/ae-team/SKILL.md +2 -2
  336. package/skills/ae-use-agent/references/local-agent.md +1 -1
  337. package/dist/chunk-TAL6CZH6.js +0 -72
  338. package/skills/ae-analysis/metadata_resolution.md +0 -184
@@ -1,4 +1,8 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+ import {
3
+ require_archiver
4
+ } from "./chunk-EQ255HKO.js";
5
+ import "./chunk-V2NUHPXF.js";
2
6
  import {
3
7
  TeAgentApiError,
4
8
  deleteFromMainApp,
@@ -9,16 +13,17 @@ import {
9
13
  putToMainApp,
10
14
  tryLoadTeAgentSandboxCredentials,
11
15
  uploadToMainApp
12
- } from "./chunk-BBEFP4SB.js";
16
+ } from "./chunk-HBGADCKA.js";
13
17
  import "./chunk-Y74WTIKJ.js";
14
- import "./chunk-ATSM5XAW.js";
18
+ import "./chunk-7XGFSUOM.js";
15
19
  import {
16
20
  safeJsonParse
17
- } from "./chunk-WZ6YVQSF.js";
21
+ } from "./chunk-7FTTULED.js";
18
22
  import {
19
23
  CliValidationError,
20
- PermissionError
21
- } from "./chunk-4P355ZWB.js";
24
+ PermissionError,
25
+ __toESM
26
+ } from "./chunk-MAPZ7VB6.js";
22
27
 
23
28
  // src/commands/te-system/shared.ts
24
29
  import { readFileSync } from "fs";
@@ -1766,6 +1771,7 @@ import { readFile as readFile2, stat as stat2 } from "fs/promises";
1766
1771
  import path2 from "path";
1767
1772
 
1768
1773
  // src/commands/te-system/sandbox-tool-package.ts
1774
+ var import_archiver = __toESM(require_archiver(), 1);
1769
1775
  import { createWriteStream } from "fs";
1770
1776
  import {
1771
1777
  lstat,
@@ -1781,7 +1787,6 @@ import {
1781
1787
  } from "fs/promises";
1782
1788
  import { tmpdir } from "os";
1783
1789
  import path from "path";
1784
- import archiver from "archiver";
1785
1790
  var TOOL_UPLOAD_LIMITS = {
1786
1791
  maxArchiveBytes: 50 * 1024 * 1024,
1787
1792
  maxUnpackedBytes: 500 * 1024 * 1024,
@@ -2172,7 +2177,7 @@ async function collectArchiveEntries(root, manifestSourcePath) {
2172
2177
  async function writeArchive(archivePath, manifest, entries) {
2173
2178
  await new Promise((resolvePromise, rejectPromise) => {
2174
2179
  const output = createWriteStream(archivePath, { mode: 384 });
2175
- const zip = archiver("zip", { zlib: { level: 9 } });
2180
+ const zip = (0, import_archiver.default)("zip", { zlib: { level: 9 } });
2176
2181
  output.on("close", resolvePromise);
2177
2182
  output.on("error", rejectPromise);
2178
2183
  zip.on("error", rejectPromise);
@@ -2,16 +2,16 @@ import { createRequire as __createRequire } from 'node:module'; const require =
2
2
  import {
3
3
  getAuthHeaders,
4
4
  kbApi
5
- } from "./chunk-VXNMYUXU.js";
6
- import "./chunk-QJQZH5GQ.js";
5
+ } from "./chunk-57RRFUEZ.js";
6
+ import "./chunk-HFGZGYCG.js";
7
7
  import {
8
8
  printError,
9
9
  printOutput
10
- } from "./chunk-CZU3V3DQ.js";
10
+ } from "./chunk-DX5CDO34.js";
11
11
  import "./chunk-Y74WTIKJ.js";
12
- import "./chunk-ATSM5XAW.js";
13
- import "./chunk-WZ6YVQSF.js";
14
- import "./chunk-4P355ZWB.js";
12
+ import "./chunk-7XGFSUOM.js";
13
+ import "./chunk-7FTTULED.js";
14
+ import "./chunk-MAPZ7VB6.js";
15
15
 
16
16
  // src/commands/te-team/shared.ts
17
17
  var API_PREFIX = process.env.AE_API_PREFIX ?? "/agent";
@@ -11,15 +11,15 @@ import {
11
11
  printError,
12
12
  printOutput,
13
13
  recordVersionSyncResult
14
- } from "./chunk-CZU3V3DQ.js";
14
+ } from "./chunk-DX5CDO34.js";
15
15
  import {
16
16
  peekCliToken
17
- } from "./chunk-ATSM5XAW.js";
17
+ } from "./chunk-7XGFSUOM.js";
18
18
  import {
19
19
  getActiveHost,
20
20
  normalizeUrl
21
- } from "./chunk-WZ6YVQSF.js";
22
- import "./chunk-4P355ZWB.js";
21
+ } from "./chunk-7FTTULED.js";
22
+ import "./chunk-MAPZ7VB6.js";
23
23
 
24
24
  // src/commands/update.ts
25
25
  var HOST_OPTION_DESC = "Override active AE host URL (e.g., https://ta.thinkingdata.cn)";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkingai/ae-cli",
3
- "version": "6.1.20",
3
+ "version": "6.1.23",
4
4
  "description": "CLI tool for ThinkingAI (AE) analytics platform",
5
5
  "type": "module",
6
6
  "bin": {
@@ -23,8 +23,9 @@
23
23
  "verify:json-utils": "npx tsx tests/json-utils.test.ts",
24
24
  "verify:jq-output": "npx tsx test/jq-output.test.mjs",
25
25
  "verify:analysis-tools": "tsx scripts/verify-te-analysis-tools.mjs",
26
+ "verify:project-asset-sources": "node --test test/project-asset-source-workflow.test.mjs test/project-semantic-entrypoint.test.mjs",
26
27
  "verify:analysis-skill": "tsx scripts/generate-analysis-skill-index.mts --check",
27
- "verify:analysis-four-modules": "tsx tests/analysis-report-capability-command.test.ts && tsx tests/analysis-export-flow-command.test.ts && tsx tests/analysis-dashboard-audience-contract.test.ts",
28
+ "verify:analysis-four-modules": "tsx tests/dashboard-filter-transport.test.ts && tsx tests/analysis-report-capability-command.test.ts && tsx tests/analysis-export-flow-command.test.ts && tsx tests/analysis-dashboard-audience-contract.test.ts",
28
29
  "verify:analysis-contract-regressions": "tsx test/analysis-contract-regressions.test.mjs && tsx tests/analysis-sql-special-identifiers.test.ts",
29
30
  "verify:analysis-agent-contract": "tsx tests/analysis-agent-skill-contract.test.ts",
30
31
  "verify:analysis-system": "tsx tests/analysis-system-capability-command.test.ts",
@@ -45,12 +46,16 @@
45
46
  "verify:agent-distribution": "tsx tests/agent-distribution-command.test.ts && tsx tests/agent-distribution-skill.test.ts",
46
47
  "verify:approval": "tsx tests/approval-command.test.ts && tsx tests/approval-cli-client.test.ts && tsx tests/approval-skill.test.ts",
47
48
  "verify:memory": "tsx tests/memory-command.test.ts && tsx tests/memory-cli-client.test.ts && tsx tests/memory-skill.test.ts",
49
+ "verify:current-context": "tsx --test tests/current-page-context-command.test.ts",
48
50
  "verify:system-tools": "node scripts/verify-system-tools.mjs && npx tsx tests/system-domain.test.ts && npx tsx tests/channel-cli-http.test.ts && npx tsx tests/te-agent-download.test.ts && npx tsx tests/sandbox-tool-package.test.ts",
49
- "verify:kb-skill": "node test/kb-skill-query-workflow.test.mjs",
50
- "verify:kb-sources": "tsx test/kb-list-sources-command.test.mjs && tsx test/kb-zip-directory-command.test.mjs",
51
+ "verify:kb-skill": "node test/kb-skill-query-workflow.test.mjs && node test/kb-analysis-workflow.test.mjs",
52
+ "verify:kb-sources": "tsx test/kb-source-check-updates-command.test.mjs && tsx test/kb-list-sources-command.test.mjs && tsx test/kb-zip-directory-command.test.mjs && tsx test/kb-source-mutation-command.test.mjs",
51
53
  "verify:sandbox-tools": "tsx test/sandbox-tools.test.ts",
52
54
  "verify:skill-version-management": "tsx tests/skill-version-management.test.ts",
53
55
  "verify:skill-reference-files": "tsx tests/skill-reference-files.test.ts",
56
+ "verify:page-context": "node --test test/page-context-skill.test.mjs test/page-context-references.test.mjs test/internal-skill-distribution.test.mjs",
57
+ "verify:skill-migration": "node --test test/ae-migrate-tracking-code/migration-regression.test.mjs test/ae-migrate-tracking-code/ir-golden-consistency.test.mjs test/ae-migrate-tracking-code/migrated-signatures.test.mjs",
58
+ "verify:skill-migration-e2e": "node test/ae-migrate-tracking-code/e2e/diff.mjs",
54
59
  "verify:tracking-tools": "tsx test/tracking-client.test.mjs && tsx test/tracking-skill-flow.test.mjs && node test/tracking-commands.test.mjs && tsx tests/tracking-display-name-sync.test.ts && tsx tests/local-data-inspect-convert.test.ts && tsx tests/local-data-upload-client.test.ts && tsx tests/local-data-upload-command.test.ts && tsx tests/local-data-encoding-sniff.test.ts && tsx tests/local-data-time-formats.test.ts && tsx tests/local-data-xlsx-dates.test.ts && tsx tests/local-data-xlsx-hidden-sheets.test.ts && tsx tests/local-data-xlsx-formulas.test.ts && tsx tests/local-data-title-rows.test.ts && tsx tests/local-data-xlsx-merged-cells.test.ts && tsx tests/local-data-xlsx-shared-strings.test.ts && tsx tests/local-data-xlsx-namespace-prefix.test.ts && tsx tests/local-data-value-distribution.test.ts && tsx tests/local-data-summary-rows.test.ts && tsx tests/local-data-duplicate-keys.test.ts && tsx tests/local-data-row-balance.test.ts && tsx tests/local-data-eight-types.test.ts && tsx tests/local-data-mapping-extras.test.ts && tsx tests/local-data-plan.test.ts && tsx tests/local-data-handoff.test.ts && tsx tests/local-data-reuse.test.ts && tsx tests/local-data-conflicts-resolutions.test.ts && tsx tests/runner-variadic-flags.test.ts && node test/local-data-skill.test.mjs",
55
60
  "verify:self-check-overlay": "node test/self-check-overlay.test.mjs",
56
61
  "verify:update-check": "npx tsx test/update-check.test.mjs",
@@ -85,7 +90,6 @@
85
90
  },
86
91
  "dependencies": {
87
92
  "@types/json-bigint": "^1.0.4",
88
- "archiver": "^5.3.2",
89
93
  "cli-table3": "^0.6.5",
90
94
  "commander": "^12.1.0",
91
95
  "csv-parse": "^7.0.2",
@@ -94,29 +98,32 @@
94
98
  "jschardet": "^3.1.4",
95
99
  "json-bigint": "^1.0.0",
96
100
  "saxes": "^6.0.0",
97
- "stream-json": "^1.9.1",
101
+ "stream-json": "3.6.0",
98
102
  "turndown": "^7.2.4",
99
- "undici": "^6.19.0",
100
- "unzipper": "^0.12.5",
101
- "xlsx": "^0.18.5"
103
+ "undici": "6.28.1",
104
+ "unzipper": "^0.12.5"
102
105
  },
103
106
  "devDependencies": {
104
- "@types/archiver": "^5.3.4",
107
+ "@types/archiver": "7.0.0",
105
108
  "@types/node": "^22.0.0",
106
- "@types/stream-json": "^1.7.8",
107
109
  "@types/turndown": "^5.0.6",
108
110
  "@types/unzipper": "^0.10.11",
111
+ "archiver": "7.0.1",
109
112
  "exceljs": "^4.4.0",
110
113
  "jszip": "^3.10.1",
111
114
  "tsup": "^8.0.0",
112
- "tsx": "^4.0.0",
113
- "typescript": "^5.5.0"
115
+ "tsx": "4.23.13",
116
+ "typescript": "^5.5.0",
117
+ "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
114
118
  },
115
119
  "overrides": {
116
120
  "exceljs": {
121
+ "archiver": "7.0.1",
117
122
  "fast-csv": "5.0.7",
118
123
  "unzipper": "0.12.5",
119
124
  "uuid": "11.1.1"
120
- }
125
+ },
126
+ "esbuild": "0.28.1",
127
+ "glob": "13.0.6"
121
128
  }
122
129
  }
@@ -1,17 +1,29 @@
1
1
  ---
2
2
  name: ae-analysis
3
- version: 4.2.5
4
- description: "Use ae-cli for AE/TE analysis-side data questions, asset operations, and asset governance: reports, analysis boards, BI dashboards, ad-hoc models, drilldown, detail data, alerts, clusters, tags, metrics, metadata, project configuration, tracking plans, governance asset lists/rules/lineage/impact/dependency, batch asset operations, projects, and resource links. Use when the user asks to query data, explain a change, export evidence, or inspect/create/update/govern analysis assets."
3
+ version: 4.2.20
4
+ description: "Use ae-cli for AE analysis-side data questions, asset operations, and asset governance: reports, analysis boards, BI dashboards, ad-hoc models, drilldown, detail data, alerts, clusters, tags, metrics, metadata, project configuration, tracking plans, governance asset lists/rules/lineage/impact/dependency, batch asset operations, projects, and resource links. Use when the user asks to query data, explain a change, export evidence, inspect/create/update/govern analysis assets, recommend project assets for certification/authentication, review asset-certification recommendations, review metric recommendations, or build/update/refresh/sync a project semantic knowledge base from a governed asset package."
5
5
  ---
6
6
 
7
7
  # ae-analysis
8
8
 
9
9
  This is the single entry skill for analysis intent and command execution.
10
10
 
11
+ ## Analysis workflow
12
+
13
+ For data queries:
14
+
15
+ 1. Take the current project and requested metrics, windows, groups and filters. Reuse known assets and definitions; discover unknown business measures with [metadata resolution](references/metadata_resolution.md), then select the needed saved-report or ad-hoc command/model references.
16
+ 2. Confirm any new business mapping once, fill the required parameters, and execute the applicable saved report or complete ad-hoc definition. Reuse confirmed meanings in dependent queries. If the confirmation tool cannot obtain a reply, present the same choices in text and wait for the reply.
17
+ 3. Correct compiler errors at their reported paths. New evidence or a user correction changes a completed choice; preserve the other verified inputs.
18
+ 4. Use the returned result directly. Save original JSON only when the user requests a file or necessary local processing requires one; follow [result handling](references/analysis_data_retrieval.md#preserve-and-interpret-results). Keep stderr and the CLI exit status visible.
19
+ 5. Compute only missing values needed by the request, together in one local call. Reuse completed results and answer when the requested data is available, or explain the specific error or missing input.
20
+
11
21
  ## Route before reading
12
22
 
13
23
  1. Map the request to a command family before opening any reference.
14
- - Known family: open only its dedicated reference. For example, a retention request goes directly to `references/adhoc_run.md` plus the `retention` section of `references/ai_models.md`.
24
+ - CLI Agent asset-authentication and metric-recommendation review: this includes requests to recommend project assets for certification/authentication, review asset-certification candidates, review project asset-governance recommendations, or review recommended metrics. Open `references/governance_recommendation_export.md` and route to `analysis-meta governance-recommendation export|submit|decisions`. For review-page submission, open `references/agent_review_submit_to_page.md` and use `analysis-meta agent-review submit-to-page|list|detail|records|review|retry`. Do not load project semantics, project KB, or personal semantic preferences as a preflight.
25
+ - Project semantic knowledge-base build/update/refresh/sync: open `references/project_semantic_knowledge_wiki.md` and route to `project-semantic asset-package export`, local semantic planning, and local Wiki rendering. Default to CLI semantic precompilation into Markdown sources, source ZIP upload, and KB schema/compile. Update changed source files and run incremental KB compilation on refresh. Never substitute read-only snapshot import. Stop on company permission denial. This is a command-reference workflow inside `ae-analysis`, not a standalone project semantic Skill.
26
+ - Known family: open only its dedicated reference. For example, a retention request goes directly to `references/adhoc_run.md`, the common `references/ai_models.md`, and `references/ai_models/retention.md`.
15
27
  - Unknown family: search [`references/command_index.md`](references/command_index.md) with `rg` or an equivalent text-search tool and keep only the matching rows. `command_index.md` is a search-only fallback; never open it with a whole-file read or print the entire file.
16
28
  2. Read the selected command's dedicated reference before composing it:
17
29
  - `event list` -> `references/event_list.md`
@@ -19,11 +31,12 @@ This is the single entry skill for analysis intent and command execution.
19
31
  - `personal-semantic-preference list` -> `references/personal_semantic_preference_list.md`
20
32
  - Asset center cross-source configuration (资产中心 / 跨源资产配置 / Excel 配置表导入): L3 discovery via `capability search "cross_source_config" --domain metadata --project-id <id>`; read [`references/cross_source_config.md`](references/cross_source_config.md) for workbook upload and validation. No dedicated business commands.
21
33
  - replace hyphens with underscores in gateway filenames.
22
- 3. For an AI-facing ad-hoc definition, also read [`references/ai_models.md`](references/ai_models.md).
34
+ 3. For an AI-facing definition, read the short common [`references/ai_models.md`](references/ai_models.md) and `references/ai_models/<model_type>.md` for each selected model. Batch these reads; direct model paths replace heading searches and line-number calculations.
23
35
  4. For cluster/tag `--definition-request`, also read the matching [`references/user_cluster_models.md`](references/user_cluster_models.md) or [`references/user_tag_models.md`](references/user_tag_models.md). Shared primitives live in [`references/audience_models.md`](references/audience_models.md).
24
36
  - For tag periodic refresh, read `references/user_tag_create.md` or `references/user_tag_update.md`; they cover the enable switch, frequency/time schedule, cron alternative, and timezone behavior.
25
- 5. For analysis data retrieval, choose `run` or `export` using [`references/analysis_data_retrieval.md`](references/analysis_data_retrieval.md).
26
- 6. When an AI-QP compile failure contains `slot_kind`, `allowed_resource_types`, `search_targets`, and `next_action`, read and follow [`metadata_resolution.md`](metadata_resolution.md).
37
+ 5. For query data, read the short [`references/analysis_data_retrieval.md`](references/analysis_data_retrieval.md) together with the selected command and model files. It links to export and follow-up details only when those operations are needed.
38
+ 6. For unknown AI-facing metadata, or when a compile failure contains `slot_kind`, `allowed_resource_types`, `search_targets`, and `next_action`, read and follow [`references/metadata_resolution.md`](references/metadata_resolution.md).
39
+ 7. For an unfamiliar aggregation, cohort or attribution rule, consult the matching section of [`references/analysis_interpretation.md`](references/analysis_interpretation.md).
27
40
 
28
41
  Routing is complete when one command family and its dedicated references are selected. The generated command index is exhaustive and must stay out of model context except for matching search rows. This file contains routing and workflow rules only; do not duplicate a hand-maintained command inventory here.
29
42
 
@@ -36,13 +49,40 @@ Use this skill for these CLI services:
36
49
  - `analysis-governance`: gateway asset governance operations, including governed asset lists/exports, lineage, dependency, impact, query history, rule schema/list/create/update/delete, batch asset actions, and operation records. Use this service for asset governance workflows, not for metadata event/property/metric CRUD.
37
50
  - `tracking`: gateway tracking plan, checking, ingest, live-data, and event blacklist operations.
38
51
  - `personal-semantic-preference`: current user's project-scoped personal semantic preferences. Use it as agent context before resolving ambiguous business wording, asset choices, or recurring user preferences.
52
+ - `project-semantic`: published project semantics, candidate/release governance, and knowledge-base asset-package export. `kb` is used only inside the explicit project semantic knowledge-base command-reference workflow. Neither service is a prerequisite for asset-authentication and metric-recommendation review.
39
53
 
40
54
  For metadata gateway detail outside the commands in the generated index, use the metadata skill. For Engage, DataOps, or Community work, use the corresponding skill.
41
55
 
42
- Use `ae-cli` as the only execution path for this skill. If a command is missing, unsupported, not implemented, or a capability gap is confirmed, report the gap and stop or provide framework-level guidance; do not switch to direct MCP execution. Repeated failures are not evidence of a capability gap until parameters, types, time formats, permissions, timeout choice, and payload construction have been checked. A validation error or `need_clarification` is a reason to correct the input, not to switch tools.
56
+ Use `ae-cli` as the only execution path for this skill. If a command is missing, unsupported, not implemented, or a capability gap is confirmed, report that gap; do not switch to direct MCP execution. A validation error or `need_clarification` calls for its specific input correction. A transport failure such as `fetch failed` means the result is unavailable: report the error with any already obtained results and stop the dependent request. Resume after environment recovery; do not start route probes, sleeps or background network polling. A transport failure does not establish a missing capability or empty data.
43
57
 
44
58
  For tags and audience clusters, use the native `analysis user-tag ...` and `analysis user-cluster ...` gateway commands.
45
59
 
60
+ For CLI Agent asset-authentication and metric-recommendation review, route to `analysis-meta governance-recommendation export|submit|decisions`. Common returns the deterministic evidence packet; the Agent owns the fixed human approval display from `references/governance_recommendation_export.md`, including business-domain grouping, plain-text status labels, and risk/conflict explanation. Do not use project-semantic, project-KB, or personal-semantic-preference commands as prerequisite context for this workflow. Do not use management commands such as `asset-authentication list|export|update` or metric CRUD commands to synthesize recommendations. Do not bypass curated commands with `ae-cli capability inspect|validate|dry-run|run` for `governance.asset_authentication.dashboard_package`, `metadata.metric.recommended_scan`, or `metadata.metric.recommended_create`.
61
+
62
+ After presenting recommendations, the Agent may ask whether to submit them to the review page. A user choice to submit authorizes `analysis-meta agent-review submit-to-page` only; it does not authorize approval or certification. If the user declines, do not write or repeatedly suggest submission. Existing explicit submission authorization remains valid and does not need another prompt. A preauthorized unattended task may submit review proposals only; it must never call `agent-review review|retry`, legacy `governance-recommendation submit`, or direct certification/metric mutations automatically. Use `agent-review list|detail|records` and the task's persisted proposal fingerprint to reuse prior batches. Do not resubmit or send repeated notifications for unchanged proposals, pending reviews, completed items, or previously declined suggestions. A new run ID alone is not new evidence. Report the returned `review_url` once and remain quiet until there is a meaningful change or required user action. See `references/agent_review_submit_to_page.md` for stable request keys and packet rules.
63
+
64
+ Report review details must explain calculation logic and statistical measures, not only business purpose. Follow resolve/export -> material-package completeness check -> gap-only `analysis-meta agent-review evidence` or `analysis report get` -> chunked AI explanation -> independent preflight -> authorized submit-to-page -> detail readback. LOCAL_ONLY stops at the local preflight result. `governance-recommendation export` is expected to include report `evidence_snapshot.analysis` and `target_revision` in `review_material_package.candidate_assets`; do not ask the customer to run `analysis report get` for every report when those fields are present. Fetch `agent-review evidence` only when a report item lacks current analysis, when validating a generated draft, or when the material package explicitly marks a definition gap. Read `references/agent_review_evidence.md` for stable analysis fields and their limits. Populate `item.ai_summary.analysis_explanation` with evidence-backed measures, dimensions, calculations, filters, time_scope, and query_columns as applicable; interpret each supported SQL projection column separately. Reference only actual fact-supporting response paths rooted at `evidence_snapshot.analysis`; `source_path` is provenance, not an automatic evidence_refs substitution. Preserve server facts separately from AI interpretation and explicitly identify null, missing, dynamic or unparsed evidence. For DYNAMIC SQL, label supported sql.raw/normalized_definition.params discussion as original-text interpretation, never fabricate select_columns or runtime substitutions. Common create stores the submitted packet; it does not fill missing calculation explanations for the Agent. Before calling `submit-to-page`, check required `evidence_snapshot.analysis` and resolvable references in `analysis_explanation.calculations` / `analysis_explanation.measures`; missing required structure remains an error. Reviewer-readability and interpretation defects follow the bounded quality correction/warning procedure. Verify the stored snapshot and references in detail after submission. Never guess SQL, aliases, columns, formulas, time ranges, timezones, or successful execution. Definition inspection, evidence reads, validation, and submission are not proof of query results, approval, or certification.
65
+
66
+ `item.ai_summary.summary` is the concise item recommendation reason, including its evidence basis and main risks, displayed in the main list. `batch.ai_summary.summary` is the batch overview and cannot replace item reasons. Detailed factual explanations belong only in `item.ai_summary.analysis_explanation`. Do not duplicate reasons or detailed analysis into presentation fields; keep `presentation_snapshot.analysisByItem` as `{}`. Do not invent a reason from unknown values; state missing evidence or uncertain risks explicitly rather than treating them as zero or absent.
67
+
68
+ Scripts may build the transport file, preserve IDs, copy evidence, normalize links, and run deterministic completeness checks. Scripts must not author page-visible `ai_summary.summary`, `analysis_explanation.*.statement`, limitations, open questions, or approval rationale by filling reusable sentence templates. Those fields must be Agent-written interpretation from the current asset/report evidence; if many submitted items share the same narrative shape after only asset names or numbers change, flag a quality failure and follow the bounded correction/warning procedure in `references/agent_review_preflight.md`.
69
+
70
+ Page-visible review text is for human asset reviewers, not implementers. In `item.ai_summary.summary`, visible statements, and open questions, write plain business Chinese: what the asset is for, how it is calculated, which filters/date windows matter, and what the reviewer should confirm. Saved business event names and field names such as `agent_session_message_send`, `session_id`, and `response_duration` may appear when they help the reviewer verify the 口径. Do not expose internal evidence, parser terms, temporary SQL aliases, or runtime parameter names such as `SAVED_REPORT_ONLY`, `DYNAMIC`, `REPORT`, `T1`, `a0`, `a1`, `Variable2`, `selector3`, `PartDate date1`, `source_path`, `evidence_snapshot`, raw JSON, raw SQL, hash/revision details, dashboard override warnings, timezone-not-saved notes, or claims about query execution unless the user explicitly asks for debug evidence. Convert internal values before display, for example `T1`/`day` becomes `按天`, and dynamic SQL caveats become business confirmation items such as “确认参数含义、默认日期范围和是否包含测试数据”.
71
+
72
+ For real review-page submission, start with `analysis-meta governance-recommendation export --limit 20`. This is the initial candidate pool, not a required submission count. Follow the rejection filtering and bounded expansion procedure in `references/governance_recommendation_export.md`: hide each same-definition rejected dashboard's entire display branch, retain shared assets only under other retained dashboards, filter out already completed/authenticated, deferred, or in-flight assets as pending work, and expand an insufficient pool from 20 to 50 to 100, then stop. Expansion is for business-domain coverage, not unlimited workload: for recurring daily batches, target about 20-50 pending review assets, hard cap around 80, and balance roughly 3-6 visible domains with per-domain quotas before adding context. Use the latest successful export as the drafting evidence and report the actual reviewed scope plus overflow left for later batches. Do not compress eligible coverage into a few representative themes or submit only the first work unit unless the user requests a sample or diagnostic batch. Business themes organize the retained dashboard set; they do not replace its coverage. For recurring recommendation jobs, submit only business domains that still contain pending review assets; authenticated assets are supporting context under those visible domains, not standalone work. Do not write long Agent summaries for hidden domains or pure authenticated context.
73
+
74
+ For dashboard recommendations, preserve optional location facts from Common: when a dashboard candidate or source dashboard includes `space_id` or `space_name`, copy those fields into the submitted dashboard item's `evidence_snapshot.definition.config` so the review page can show `所属空间`. Not every dashboard belongs to a space; missing space fields are valid and must not be invented, required, or used to filter out an otherwise eligible dashboard.
75
+
76
+ `presentation_snapshot.topics` must be business domains, not dashboard containers; business domains are not dashboards. Never create one topic per hot dashboard merely because the export returned 20 work units. First cluster the selected dashboards by business process using dashboard names, child report names, report definitions, referenced events/properties, metrics, folder context, and authored notes. If several dashboards describe the same business area, put them in one topic and keep each dashboard as a root item under that topic. Split topics only when the business process or review decision is materially different. The expected hierarchy is 业务域 -> 看板 -> 报表 -> 元数据; the number of topics can be smaller than the number of selected dashboards, and a `topic_count == selected_dashboard_count` result must be justified by genuinely distinct business meanings, not by source array order.
77
+
78
+ For page review, preserve the prototype hierarchy in `presentation_snapshot.relations`: source dashboard items are parents of their child report items with `type:"contains"`, and report items are parents of metadata items they actually reference with `type:"uses"`, such as events, event properties, user properties, and metric assets. Topic `items` may list the same stable `client_item_id`s, but the page must be able to render 看板 -> 报表 -> 元数据 from `relations`. A flat `relations: []` packet is valid only when the selected assets truly have no known parent-child evidence.
79
+
80
+ The full `evidence_hash` includes collection time and may change between previews without business changes; use `target_revision` for saved-definition version checks and compare material facts separately. Do not use full snapshot hashes to trigger cross-scan resubmission. Create stores the submitted snapshot without restoring omitted fields; verify references and important facts in detail against the final dispatched material.
81
+
82
+ If a retired split recommendation command or capability is accidentally probed and returns an error, treat that as a routing correction only. Do not use data from split recommendation commands or capabilities as the business source for a recommendation answer; rerun the current workflow through `analysis-meta governance-recommendation export`.
83
+
84
+ For review-page drafting, material inspection, or local-only rehearsals, read `references/agent_review_preflight.md` and `references/agent_review_priorities_comparisons.md`. After item explanations, generate evidence-backed review priorities and compare related definitions across authoring chunks/topics; store `recommendation`, classified `comparisons` and `comparison_review` in item AI summaries. Review priority is not a certification decision, and similarity alone is not conflict. Use an independent fresh-context reviewer to compare all evidence (including `signals`) with saved sources and review item-specific meaning, priorities and paired definitions. The author corrects concrete findings at most 3 times for the whole packet, with independent re-review. If quality still fails, an already authorized submission continues with explicit unresolved-quality warnings; never claim PASS or reset the correction budget. Disclose unavailable review or incomplete coverage. Local-only intent always forbids submission. Quality assessment belongs to the Agent, not Common; structural validation, authorization and transport errors remain enforced.
85
+
46
86
  ## Global AE CLI Rules
47
87
 
48
88
  Command forms:
@@ -57,10 +97,10 @@ ae-cli capability search|inspect|validate|dry-run|run [options]
57
97
 
58
98
  - Gateway commands use kebab-case flags such as `--project-id`; the CLI sends snake_case JSON.
59
99
  - JSON values must be JSON string literals.
60
- - Global flags include `--host`, `--format json|table`, `--jq`, `--validate`, `--dry-run`, and `--yes`. Use `--validate` alone to normalize complex capability input; use `--dry-run` alone for execution or risk preview.
100
+ - Global flags include `--host`, `--format json|table`, `--jq`, `--validate`, `--dry-run`, and `--yes`. Use `--validate` only to resolve a concrete complex-input issue; use `--dry-run` for high-risk writes or an explicitly requested preview. These modes are mutually exclusive.
101
+ - Execute a fully specified read or ordinary write directly. Do not routinely stack inspect, validate, dry-run, and run. Inspect the selected model contract once when a concrete schema mismatch requires it; reuse that inspected contract within the unchanged conversation scope. This is local evidence reuse, not a claim that the CLI caches contracts.
61
102
  - JSON is the default machine-readable output. On failure, preserve the structured error and non-zero exit.
62
- - **CRITICAL Host compat (do this first):** After each `ae-cli` run, check stderr and `_notice.host_compat`. If either is present, your reply **MUST open with** a short ⚠️ version warning and **quote the `npm i -g` / `npx skills add` (or update-cluster) lines verbatim**, then present the business result. Never answer with only a project/table summary when a host_compat notice exists. Soft tip; `ok: true` can still carry the notice.
63
- - Never invent command names, flags, payload fields, projects, resource IDs, asset names, event/property names, metric definitions, or dates.
103
+ - Never invent command names, flags, payload fields, projects, resource IDs, asset names, canonical event/property identifiers, metric formulas, or dates. User-provided business wording is valid unresolved compiler input; it is not a claim that a canonical binding is known.
64
104
  - 中文时间表达必须按固定语义映射:最近7天/近7天 -> `mode=recent` -> QP `recentDay=0-7`,含今天;过去7天/前7天 -> `mode=previous` -> QP `recentDay=1-7`,不含今天。用户明确说明是否包含今天时,以该说明为准。完整映射见 [`references/ai_models.md`](references/ai_models.md)。
65
105
 
66
106
  `CAPABILITY_NOT_FOUND` means the current host does not expose that gateway capability; changing parameters will not fix it. A permission error stops any dependent chain. A 404 while inspecting an async run is a route/deployment failure; do not poll the same ID forever.
@@ -70,6 +110,7 @@ Interpret gateway envelopes by state:
70
110
  - `ok: true` with empty data is success and means no matching data. Never relabel an empty report/dashboard result as query failure.
71
111
  - `ok: true` with `meta.partial: true` is partial success. Use the successful data and explicitly report `meta.failures`; do not fail the whole batch or hide failed items.
72
112
  - `ok: false` is failure. Preserve `error.code`, `error.message`, and `meta.request_id`, `meta.invocation_id`, `meta.stage`, and `meta.failures` when present.
113
+ - `OUTPUT_PROJECTION_FAILED` is a local output failure after command completion: stdout retains the original business payload in `data` and original `meta`, while exit status remains non-zero. Repair the projection from that returned envelope without resubmitting the remote command.
73
114
  - Do not retry an unchanged failed command or guess alternative payload shapes. Retry only after applying concrete validation/clarification guidance or correcting a verified transient condition.
74
115
 
75
116
  Failure evidence:
@@ -86,8 +127,8 @@ For every gateway command that exposes `--request-id`, ae-cli generates a `reque
86
127
  - Probe the first page exactly once. Verify `ok`, the documented data shape, and the effective `limit` before starting a pagination loop.
87
128
  - For paginated directory results, continue only with the returned `next_offset` while `has_more` is true. Never calculate a speculative offset, repeat the current page, or declare the list complete before `has_more` is false.
88
129
  - Track the normalized command, input, and announced `request_id` for every invocation. Never resubmit an identical invocation while it is still in flight; wait for the current process, or inspect its returned `run_id` when it is asynchronous.
130
+ - Reuse completed data, verified metadata, selected assets, and already downloaded files when host, identity, project, definition, effective scope, and completeness match. Query only an identified missing dependency; batch compatible metrics and do not add unrelated analysis to a lookup.
89
131
  - Retry only the items named in `meta.failures`, and only when their `retryable` value and `next_action` permit it. Never retry successful or empty items from the same batch.
90
- - For black-box coverage audits, maintain an explicit module × model × outcome matrix. Mark coverage complete only from observed responses; missing assets, permissions, or fixtures are environment gaps, not passing coverage.
91
132
 
92
133
  ## Mandatory routing
93
134
 
@@ -101,12 +142,11 @@ For every gateway command that exposes `--request-id`, ae-cli generates a `reque
101
142
 
102
143
  ### Project gate
103
144
 
104
- Before a project-scoped command:
145
+ Use the current turn's project ID supplied by the Agent host. When no project is supplied, resolve the user's ID or name with `project info list`. Ask only when the returned candidates leave a real ambiguity. A new user selection replaces the previous project for subsequent commands.
146
+
147
+ ### Project Semantic Knowledge Base
105
148
 
106
- 1. Reuse a project only when its ID and host/environment were already verified in the same continuous conversation.
107
- 2. Otherwise call `project info list` and resolve the supplied ID/name.
108
- 3. If there are multiple plausible projects, the host is unclear, or no project matches, show the candidates and ask; never guess.
109
- 4. Re-verify after the user changes project, host, or environment.
149
+ When the user explicitly asks to build, update, refresh, rebuild, or sync a project semantic knowledge base, open `references/project_semantic_knowledge_wiki.md`. That command-reference workflow starts from `ae-cli project-semantic asset-package export` and then uploads/compiles KB sources. Do not load a standalone project semantic Skill for this workflow. The governed project-semantic catalog and candidate/release lifecycle remain separate from this knowledge-base build path, and neither path is prerequisite context for CLI Agent asset-authentication or metric-recommendation review.
110
150
 
111
151
  ### Project Semantics
112
152
 
@@ -120,16 +160,15 @@ Published project semantics are the formal project-wide authority. A current-tur
120
160
 
121
161
  ### Personal Semantic Preferences
122
162
 
123
- Before answering project-scoped analysis or asset-governance requests, call `ae-cli personal-semantic-preference list --project-id <project_id>` once per host, authenticated user, project, and conversation after the project is resolved. Keep that lightweight directory in conversation context; do not page it, search the database, or call list again for each question. The backend returns at most 200 entries using `HOT_160_PLUS_RECENT_40` and may return fewer to keep the payload within its size limit.
124
-
125
- Use the returned compact catalog only as context. If one item is actually adopted to interpret the user's wording, asset selection, metric preference, or output style, fetch it with `ae-cli personal-semantic-preference get --project-id <project_id> --id <preference_id> --mark-used`. This also applies when the matched item is being used as the target for an `update`. Do not pass `--mark-used` for items that were only inspected or rejected.
163
+ When the request involves personal business wording, asset preferences, or explicit personalization, call `ae-cli personal-semantic-preference list --project-id <project_id>` once per host, authenticated user, project, and conversation; reuse the result within that scope. Use the current project supplied by the Agent host. If an entry is adopted, read [`references/personal_semantic_preference_list.md`](references/personal_semantic_preference_list.md) and fetch that entry with `--mark-used`. Read the same reference before recording a durable user preference; a one-time analysis confirmation is task context.
164
+ This rule does not apply to CLI Agent asset-authentication and metric-recommendation review through `analysis-meta governance-recommendation export|submit|decisions`; that workflow must not load personal semantic preferences as prerequisite context.
126
165
 
127
166
  Apply the two catalogs by authority and purpose, not as one flat ranking. Published project semantics define the formal business meaning. Personal semantics supply the current user's defaults, interpretation corrections, asset choices, and output preferences where they do not conflict. If a personal semantic conflicts with a published project semantic, use the project semantic for the formal result and explicitly disclose the difference; never silently overwrite the personal record. If the user explicitly requests the personal alternative for the current task, execute it as a labeled non-formal variation.
128
167
 
129
168
  The Agent owns the personal preference capture trigger. Choose `context_type` by meaning:
130
169
 
131
170
  - `preference`: durable interpretation or output preference without an exact asset binding.
132
- - `asset_context`: durable user wording or intent bound to one or more exact project assets. Send the complete ordered `resource_refs` array; each item has `resource_type`, string `resource_key`, and `display_name`. This identity is generic across reports, dashboards, events, properties, metrics, tags, clusters, data tables, and future asset types.
171
+ - `asset_context`: durable user wording or intent bound to one or more exact project assets. Send the complete ordered `resource_refs` array; each item has `resource_type`, string `resource_key`, and `display_name`.
133
172
  - `experience`: a confirmed reusable work method without an exact asset binding.
134
173
  - `background`: stable personal context without an exact asset binding.
135
174
 
@@ -145,34 +184,25 @@ When a later published project semantic matches a personal semantic, treat the p
145
184
 
146
185
  Stale or expired preferences are automatically hidden by list filtering and backend maintenance. Do not look for or invent a separate command for that behavior.
147
186
 
148
- ### C. FUZZY_SEARCH_FALLBACK
149
-
150
- For saved-asset operations on reports, dashboards, metrics, clusters, tags, and alerts, use the relevant list/search command first unless an exact ID or canonical asset name was already verified. For saved assets outside the analysis metadata catalog, broaden the keyword batch up to two times, then list all candidates. If no resource exists, stop instead of fabricating one.
187
+ ### Metadata discovery
151
188
 
152
- For ordinary event, property, metric, cluster, and tag metadata discovery, keep one discovery budget per host, project, authenticated principal, and Agent conversation. Put the user's phrase and its useful synonyms in one `--queries` JSON array; matching is OR across at most 20 keywords. A successful remote search round with no confirmable candidate consumes one miss. A candidate stops discovery and requires user confirmation; it is not a miss. Validation, permission, network, and server errors are failures: they do not consume the budget and must not trigger a full export. After at most two ordinary miss rounds, the third remote discovery round must be one aggregate `analysis-meta catalog list` using the accumulated deduplicated queries and the union of applicable resource types. If that aggregate search is still unresolved, export the complete unified catalog exactly once and reuse it locally as defined in `metadata_resolution.md`. Once a valid complete catalog exists, do not call online resource-specific metadata list/search commands or `analysis-meta catalog list|export` again in that scope.
189
+ Reuse known definitions and canonical metadata directly. For an unknown business measure, follow [`references/metadata_resolution.md`](references/metadata_resolution.md): search relevant saved metrics/reports, read their definitions, and discover only missing events or properties. `allowed_resource_types` is authoritative for a compiler error. Confirm a selected business mapping once, even when there is only one suitable candidate; reuse the task's already confirmed mappings.
153
190
 
154
- Only when explicitly complete event, property, metric, cluster, or tag metadata is needed, use that resource's `export --output <temporary_path>/<resource>` command. Event/property/metric exports use `.json`; cluster/tag exports use `.jsonl` and an integrity sidecar. Search the temporary file locally and keep the full rows out of model context. Do not page repeatedly to synthesize a complete catalog.
191
+ ### Saved business asset or ad-hoc
155
192
 
156
- Do not pre-list events or properties before constructing an AI-facing intent model. Pass the user's wording directly in `definition`; the backend resolves it and returns `resolved` evidence. Call event/property metadata commands only when the user explicitly asks to inspect metadata, a structured compiler error instructs `next_action=search_candidates`, or the compiler reports an explicit metadata-resolution capability gap. When compiler candidates already exist, ask the user to confirm without another metadata call. If the user explicitly rejects every candidate for that path, treat the rejected set as exhausted and continue through the one aggregate-search workflow in `metadata_resolution.md`; do not terminate the original task or repeat the rejected candidates.
193
+ If an exact asset or definition came from a knowledge-base page, first read and follow [`../ae-kb/references/analysis-workflow.md`](../ae-kb/references/analysis-workflow.md). Attempt the matched asset before using the ordinary fallback below. If it cannot produce a usable result, preserve that evidence, then follow the workflow's explicit fallback and disclosure rules.
157
194
 
158
- The ordinary discovery budget does not replace the entry path for structured AI-QP metadata failures. For those failures, `allowed_resource_types` is authoritative: collect the whole compiler error array and follow the one aggregate online search, optional full-catalog, conversation-reuse workflow in `metadata_resolution.md`. Never use a candidate from either path without user confirmation.
195
+ Use a suitable saved report with supported requested overrides. For a custom combination, reuse the applicable definitions in an ad-hoc model. Read [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md) for saved filters, dashboard context and asset selection. Load model references when constructing an ad-hoc definition.
159
196
 
160
- ### Existing business asset before ad-hoc
197
+ ### Preserve confirmed intent
161
198
 
162
- When the request can map to a saved business definition:
199
+ Resolve the requested metrics, filters, groups, comparison windows, timezone, and cohort eligibility before the final query. Carry user corrections into the actual definition, including every dependent query; noticing an old date or metric mismatch in reasoning does not correct the submitted input. Carry the actual confirmation reply into these choices as described in the metadata workflow.
163
200
 
164
- 1. Extract metric, dimensions, filters, time window, and comparison semantics.
165
- 2. Search reports; use dashboard search only to discover candidate embedded reports.
166
- 3. Before querying a selected dashboard's report data, call `analysis dashboard get` exactly once with the verified project and dashboard IDs. Inspect `effective_settings` and `filter_config`; dashboard default, dashboard business, and space business filters are already applied and call-time filters add AND conditions. Honor the saved fixed time unless the user explicitly supplies a supported time override. Preserve non-empty `location.folder_name`, `dashboard_name`, `remark`, and `notes[].note_title/description` as authored dashboard context for all results from that dashboard. Do not repeat the detail call per report.
167
- 4. Read the candidate definition and verify semantic equality, not merely a similar name.
168
- 5. Use report/dashboard data when the definition matches.
169
- 6. Use `analysis adhoc run|export` when no definition matches, the user explicitly requests ad-hoc exploration, or custom grouping/filtering is required.
170
-
171
- Do not call removed QP builders or schema helpers for ad-hoc analysis. `--definition` is the AI-facing contract from `ai_models.md`, not raw QP or a frontend DTO.
201
+ When the caller supplies an existing definition snapshot, use the selected command's optional `--intent-snapshot` contract to check local JSON consistency.
172
202
 
173
203
  ### Result data versus metadata
174
204
 
175
- - Metric value, trend, comparison, or anomaly -> saved report/dashboard first, then ad-hoc data.
205
+ - Metric value, trend, comparison, or anomaly -> choose saved report/dashboard or ad-hoc using the decision above.
176
206
  - Metric definition search/create/update -> metadata commands.
177
207
  - Event/entity rows -> `event-detail run|export` or `entity-detail run|export`.
178
208
  - Events/entities from a query result -> pass the original `--project-id`, follow the returned synchronous `query_context_id` and compact source action summary, then call `analysis query-context get` for full coordinate options; never reconstruct raw QP or use export rows as coordinates.
@@ -182,54 +212,37 @@ Do not call removed QP builders or schema helpers for ad-hoc analysis. `--defini
182
212
 
183
213
  ### Run, export, and follow-up
184
214
 
185
- - `run` is a bounded inline preview for work that can complete within the synchronous limits. Agents should normally pass `--preview-rows 100`; omitting it deliberately uses the model's current cluster-configured synchronous limit. User tag/cluster member list commands are the exception: omission defaults to 1000 rows, matching the UI member query.
186
- - `export` is for complete, unknown-size, over-limit, or long-running results. It returns `run_id` and `artifact_id`.
187
- - Drilldown event/entity/user-event exports are `csv.gz` full-download streams bounded by `model_full_download_limit`; never pass or simulate `limit`, `offset`, `page_num`, or `page_size`.
188
- - Plain `export` submits only. Add `--wait` to wait for terminal state, or `--output <file>` to wait and atomically stream the completed artifact; `--output` implies wait. Existing files require explicit `--force`.
189
- - Resume detached or interrupted work with `analysis run wait --run-id <run_id> [--output <file>]`. Local interruption never cancels the remote run; cancel only through the explicit `analysis query cancel` command.
190
- - `analysis run inspect` and `analysis artifact download` remain primitive lifecycle commands. Do not call raw lifecycle URLs. Use `--wait-timeout-seconds` only to bound local waiting; it never changes or cancels the remote runtime.
191
- - Drilldown requires the original `--project-id`, a synchronous preview context, and row/column/metric coordinate options fetched with `analysis query-context get`. Common rejects a project ID that does not match the stored context. If the context/options are absent or the action is not advertised, report that drilldown/result-cluster creation is unavailable.
215
+ Use `run` for a bounded inline result, and `export --output <file>` for complete or over-limit results. Read [export handling](references/analysis_data_export.md) when exporting or resuming an interrupted export. When the request needs a follow-up action advertised by the returned query context, read [`references/analysis_drilldown_contract.md`](references/analysis_drilldown_contract.md).
192
216
 
193
217
  ### Writes and destructive operations
194
218
 
195
- Write only with explicit user intent. Use `--validate` alone while correcting complex input, or `--dry-run` alone to inspect the resolved request and execution impact; do not stack both by default. Execute `read` and ordinary `write` commands without `--yes`. For `high-risk-write`, dry-run first, summarize the target and impact, wait for explicit user confirmation, and only then execute the unchanged command with `--yes`.
219
+ Write only with explicit user intent. Correct a concrete complex-input issue with `--validate` when needed. Use `--dry-run` for high-risk writes or an explicitly requested preview; do not stack these modes. Execute `read` and ordinary `write` commands without `--yes`. For `high-risk-write`, dry-run first, summarize the target and impact, wait for explicit user confirmation, and only then execute the unchanged command with `--yes`.
196
220
 
197
221
  Project-space and folder create/delete/share are L3 capabilities rather than curated `analysis` commands. Read the matching command reference, then use `ae-cli capability inspect|dry-run|run`; discover `*.members` through `capability search|inspect|run` and [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md). For `risk=high-risk-write`, dry-run first, summarize the impact, and execute with `--yes` only after a later explicit confirmation.
198
222
 
199
223
  After a successful create/update, if a resource ID and supported resource type are available, call `analysis-meta asset url-get` and return the link. Explicitly state when link generation is skipped because no resource ID exists or when it fails.
200
224
 
201
- ## Analysis workflow
202
-
203
- For a data question:
204
-
205
- 1. Clarify only missing facts that change the query: KPI, scope, time window, dimensions, filters, and baseline.
206
- 2. Pass the project gate.
207
- 3. For AI-facing intent models, let the backend resolve event/property wording and consume `resolved`; discover metadata directly only for explicit metadata inspection, compiler clarification, or a reported resolution capability gap.
208
- 4. Check existing reports/dashboards when applicable.
209
- 5. Run or export one reproducible query path.
210
- 6. For anomalies, compare consistent scopes, rank drivers, then drill down to users/events only when result contexts permit it.
211
- 7. Return conclusion, evidence, limitations, and a concrete next action.
212
-
213
- For attribution, use the algorithms and self-checks in [`references/analysis_interpretation.md`](references/analysis_interpretation.md). The main driver is determined by absolute contribution, not the largest relative growth rate.
214
-
215
225
  ## Output requirements
216
226
 
217
- - Lead with the conclusion.
218
- - Include the metric, time window, dimension/filter scope, value, and baseline needed to reproduce it.
219
- - Separate observed evidence from inferred causes and state uncertainty.
220
- - For attribution, include total absolute/percentage change and dimension contributions sorted by absolute delta; verify the contribution sum.
227
+ - Return the requested result with its metric, window, dimension/filter scope and units.
228
+ - Reuse values already returned or calculated; compute an additional value only when the request needs it.
221
229
  - For saved dashboard answers, use non-empty `location.folder_name`, `dashboard_name`, `remark`, and `notes[].note_title/description` to establish business scope. Label folder names and notes as authored context, separately from observed query evidence.
222
- - Do not return an unexplained raw table.
223
- - State missing data, definition, permission, or capability constraints explicitly.
224
-
225
- ## Maintenance
226
-
227
- When commands change, update source command metadata and the dedicated reference, then run:
228
-
229
- ```bash
230
- npm run generate:analysis-skill
231
- npm run verify:analysis-skill
232
- npm run verify:analysis-tools
233
- ```
234
-
235
- The verification fails for missing command references, retired/orphan command references, or a stale generated index.
230
+ - State any returned partial-data, permission or capability limitation that affects the request.
231
+
232
+ For CLI Agent asset-authentication and metric-recommendation review, the final answer must use the fixed approval display from `references/governance_recommendation_export.md`:
233
+
234
+ - Top-level grouping is `业务主题域`; do not use separate top-level sections like `资产认证建议` and `推荐指标`.
235
+ - Keep the source dashboard as the core evidence package. Derive `业务主题域` from the dashboard semantics and its child report names, event/property/metric semantics, and shared business process. Do not use raw source titles, test labels, priority labels, asset-type tags, or backend `topic_seed` strings as the final group name when they are only workflow labels.
236
+ - `work_units` are evidence containers, not presentation groups. A single dashboard/work unit may split into multiple business domains when its child reports cover different business processes, and one business domain may merge evidence from multiple dashboards/work units when the business meaning matches.
237
+ - Keep each report-centered evidence chain together: the report row, metadata rows, and metric candidates introduced by that report follow the same `业务主题域`. Do not detach report metadata into a separate generic metadata group, and do not merge unrelated child-report domains only because they share one source dashboard.
238
+ - When one source dashboard contains child reports for different business questions, create one `业务主题域` per child-report business question. Do not combine distinct report domains into a broad `A 与 B 运营`, `综合运营`, or `核心语义` group only because they share the same dashboard. The dashboard can appear as shared linked source evidence in each relevant domain.
239
+ - Source dashboards and reports are evidence containers and possible asset rows, not independent top-level business domains. Do not create generic groups such as `看板上下文`, `综合验收看板上下文`, `推荐上下文`, or `待审批资产` only to place source dashboards. Attach each source dashboard to the business domains implied by its child reports, events, properties, metrics, and definitions; if one dashboard supports multiple domains, reuse it as linked source evidence in each relevant domain without using the dashboard title as the domain.
240
+ - Each `业务主题域` must contain asset-authentication rows and metric-candidate rows in the same review table.
241
+ - In the domain detail table, the `类型` column is the object class (`资产` or `指标`). Put review labels such as `[已认证]`, `[未认证]`, `[认证资产候选]`, and `[推荐指标候选]` in the `状态` or `审批关注点` columns, not as the `类型` value.
242
+ - Default recommendation export includes completed/authenticated context. Within each `业务主题域`, place returned `[已认证]` and `[未认证]` asset rows together in the same review table when both are present. If only one status appears, state that this reflects the current returned evidence scope, not an Agent-side pending-only filter or proof of whole-project certification coverage.
243
+ - In the main review table, show asset names as clickable Markdown links when `markdown_link` or `raw_url` is available. Do not show raw asset IDs as the primary object text; keep item identities and hashes in context for submit or debug.
244
+ - In the `来源证据` column, first use each asset row's `source_evidence[].markdown_link`/`raw_url`; for metric rows, use `source_report.markdown_link`/`raw_url`. Fall back to the work unit's `source_dashboard` or `source_reports` links only when the row has no direct `source_evidence`. Do not strip links from source evidence when the JSON provides them, and do not replace linked sources with unlinked generic text such as `相关报表`, `热门看板`, `来源看板`, `同名看板`, `同名报表`, `<业务>相关报表`, or bare report names. If the asset row itself is the source dashboard or source report, reuse that row's own link as the source evidence. If multiple linked sources support one row, show the most direct source link or a compact comma-separated list of source links.
245
+ - Show available decision signals from data, especially heat, user count, and impact degree. Do not invent missing values.
246
+ - Use plain-text review labels only: `[已认证]`, `[未认证]`, `[已有指标资产]`, `[推荐指标候选]`, `[认证资产候选]`, `[风险/冲突]`. Do not use HTML, font tags, color names, or color-dependent wording in the Agent answer.
247
+ - Risk/conflict text is required when `conflict_risks`, `previous_decision`, `action_state`, `actionable`, or `authentication_status` indicate semantic conflict, identity conflict, previous rejection/skip, non-actionable state, or an approval blocker.
248
+ - Do not show raw JSON as the final answer.