@thinkingai/ae-cli 6.1.5 → 6.1.6

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 (116) hide show
  1. package/README.md +3 -2
  2. package/README.zh.md +3 -2
  3. package/dist/index.js +3 -3
  4. package/dist/{te-engage-GJRVQMK3.js → te-engage-2FSDUOIZ.js} +965 -1578
  5. package/dist/{te-engage-JIXX3WBI.js → te-engage-BMJ6UOUU.js} +965 -1578
  6. package/dist/te-experiment-4JC7WUKW.js +590 -0
  7. package/dist/te-experiment-KYRWAUZY.js +590 -0
  8. package/dist/{te-kb-CIZXRWMO.js → te-kb-E7NSCBRB.js} +25 -6
  9. package/package.json +2 -2
  10. package/skills/ae-engage/SKILL.md +127 -104
  11. package/skills/ae-engage/references/activity-activity-type.md +1 -1
  12. package/skills/ae-engage/references/activity-activity.md +1 -1
  13. package/skills/ae-engage/references/activity-approval.md +5 -7
  14. package/skills/ae-engage/references/activity-task.md +12 -18
  15. package/skills/ae-engage/references/activity-topic.md +39 -22
  16. package/skills/ae-engage/references/add-approver.md +4 -4
  17. package/skills/ae-engage/references/add-channel.md +10 -5
  18. package/skills/ae-engage/references/approval-approver-delete.md +1 -1
  19. package/skills/ae-engage/references/approver-list.md +4 -4
  20. package/skills/ae-engage/references/build-task-save-guide.md +13 -13
  21. package/skills/ae-engage/references/cancel-query-by-request-id.md +7 -6
  22. package/skills/ae-engage/references/channel-detail.md +14 -9
  23. package/skills/ae-engage/references/channel-list.md +15 -10
  24. package/skills/ae-engage/references/channel-mgmt.md +109 -0
  25. package/skills/ae-engage/references/channel-test-send.md +1 -1
  26. package/skills/ae-engage/references/channel-update-config.md +1 -1
  27. package/skills/ae-engage/references/channel_touch_limits_list.md +1 -1
  28. package/skills/ae-engage/references/client-param.md +34 -16
  29. package/skills/ae-engage/references/common-metric.md +85 -18
  30. package/skills/ae-engage/references/config-item-analysis-report.md +8 -27
  31. package/skills/ae-engage/references/config-item-strategy-comparison.md +7 -18
  32. package/skills/ae-engage/references/config-item-trigger-report.md +8 -35
  33. package/skills/ae-engage/references/delete-channel.md +5 -5
  34. package/skills/ae-engage/references/delete-flow.md +5 -5
  35. package/skills/ae-engage/references/flow-ab-split-node-report.md +11 -45
  36. package/skills/ae-engage/references/flow-detail.md +15 -10
  37. package/skills/ae-engage/references/flow-list.md +9 -4
  38. package/skills/ae-engage/references/flow-node-config-schema.md +9 -8
  39. package/skills/ae-engage/references/flow-node-detail-report.md +11 -46
  40. package/skills/ae-engage/references/flow-node-overview-report.md +11 -43
  41. package/skills/ae-engage/references/flow-process-report.md +12 -50
  42. package/skills/ae-engage/references/flow-update-remark.md +19 -0
  43. package/skills/ae-engage/references/manage-flow.md +19 -19
  44. package/skills/ae-engage/references/manage-task.md +5 -5
  45. package/skills/ae-engage/references/modify-flow-base-info.md +8 -8
  46. package/skills/ae-engage/references/preset-event.md +1 -1
  47. package/skills/ae-engage/references/push-language.md +1 -1
  48. package/skills/ae-engage/references/save-flow.md +54 -52
  49. package/skills/ae-engage/references/save-task.md +23 -17
  50. package/skills/ae-engage/references/scene-config-channel.md +90 -10
  51. package/skills/ae-engage/references/scene-config-group.md +1 -1
  52. package/skills/ae-engage/references/scene-config-item.md +27 -4
  53. package/skills/ae-engage/references/scene-config-metric.md +1 -1
  54. package/skills/ae-engage/references/scene-config-param.md +2 -2
  55. package/skills/ae-engage/references/scene-preset-metric.md +1 -1
  56. package/skills/ae-engage/references/scene-strategy.md +19 -3
  57. package/skills/ae-engage/references/scene-template.md +10 -4
  58. package/skills/ae-engage/references/task-data-detail.md +5 -67
  59. package/skills/ae-engage/references/task-data-overview.md +5 -35
  60. package/skills/ae-engage/references/task-detail.md +5 -5
  61. package/skills/ae-engage/references/task-experiment-report.md +5 -38
  62. package/skills/ae-engage/references/task-list.md +4 -4
  63. package/skills/ae-engage/references/task-metric-detail.md +5 -43
  64. package/skills/ae-engage/references/task-stats.md +5 -5
  65. package/skills/ae-engage/references/update-channel-status.md +6 -6
  66. package/skills/ae-engage/references/validate-flow-node-config.md +12 -11
  67. package/skills/ae-engage/references/whitelist-list.md +4 -4
  68. package/skills/ae-engage/references/whitelist.md +1 -1
  69. package/skills/ae-engage/references/workbench-workbench.md +1 -1
  70. package/skills/ae-experiment/SKILL.md +30 -20
  71. package/skills/ae-experiment/references/batch_delete_experiment.md +4 -4
  72. package/skills/ae-experiment/references/batch_delete_feature.md +3 -3
  73. package/skills/ae-experiment/references/batch_delete_traffic_layer.md +4 -4
  74. package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +5 -4
  75. package/skills/ae-experiment/references/check_experiment_ready.md +7 -5
  76. package/skills/ae-experiment/references/check_experiment_traffic_layer_conflict.md +37 -0
  77. package/skills/ae-experiment/references/delete_metric.md +4 -4
  78. package/skills/ae-experiment/references/manage_experiment.md +8 -6
  79. package/skills/ae-experiment/references/manage_feature_status.md +3 -3
  80. package/skills/ae-experiment/references/query_bucket_list.md +5 -3
  81. package/skills/ae-experiment/references/query_experiment_detail.md +6 -4
  82. package/skills/ae-experiment/references/query_experiment_list.md +12 -4
  83. package/skills/ae-experiment/references/query_experiment_list_archived.md +15 -0
  84. package/skills/ae-experiment/references/query_experiment_metric_trend.md +6 -10
  85. package/skills/ae-experiment/references/query_experiment_operation_log.md +17 -0
  86. package/skills/ae-experiment/references/query_experiment_report_summary.md +5 -6
  87. package/skills/ae-experiment/references/query_experiment_sample_size_report.md +6 -10
  88. package/skills/ae-experiment/references/query_feature_detail.md +6 -4
  89. package/skills/ae-experiment/references/query_feature_list.md +5 -3
  90. package/skills/ae-experiment/references/query_feature_operation_log.md +19 -0
  91. package/skills/ae-experiment/references/query_feature_version_list.md +20 -0
  92. package/skills/ae-experiment/references/query_metric_detail.md +6 -4
  93. package/skills/ae-experiment/references/query_metric_list.md +5 -3
  94. package/skills/ae-experiment/references/query_traffic_layer_detail.md +6 -4
  95. package/skills/ae-experiment/references/query_traffic_layer_list.md +5 -3
  96. package/skills/ae-experiment/references/save_experiment.md +148 -9
  97. package/skills/ae-experiment/references/save_feature.md +3 -3
  98. package/skills/ae-experiment/references/save_metric.md +3 -3
  99. package/skills/ae-experiment/references/save_submit_experiment.md +6 -6
  100. package/skills/ae-experiment/references/save_traffic_layer.md +3 -3
  101. package/skills/ae-experiment/references/update_experiment_group.md +20 -0
  102. package/skills/ae-kb/SKILL.md +9 -5
  103. package/dist/te-experiment-JKX4FH6D.js +0 -607
  104. package/dist/te-experiment-UMSHBBKI.js +0 -607
  105. package/skills/ae-engage/references/config-channel-detail.md +0 -31
  106. package/skills/ae-engage/references/config-channel-list.md +0 -26
  107. package/skills/ae-engage/references/config-item-detail.md +0 -29
  108. package/skills/ae-engage/references/config-item-list.md +0 -18
  109. package/skills/ae-engage/references/copy-config-template.md +0 -28
  110. package/skills/ae-engage/references/delete-config-channel.md +0 -23
  111. package/skills/ae-engage/references/delete-config-item.md +0 -24
  112. package/skills/ae-engage/references/engage-scene-config-item.md +0 -69
  113. package/skills/ae-engage/references/manage-strategy.md +0 -73
  114. package/skills/ae-engage/references/strategy-detail.md +0 -72
  115. package/skills/ae-engage/references/strategy-list.md +0 -20
  116. package/skills/ae-engage/references/update-config-channel-status.md +0 -31
@@ -1,44 +1,11 @@
1
- # ae-engage +task_experiment_report
1
+ # engage-task.task-data.experiment-report
2
2
 
3
+ Query a task experiment report through the L3 Capability Gateway.
3
4
 
4
- Query the task experiment report.
5
+ Mapped command: `ae-cli capability run engage-task.task-data.experiment-report --input '<json>'`
5
6
 
6
- Mapped command: `ae-cli engage +task_experiment_report`
7
-
8
- ## Flags
9
-
10
- | Flag | Type | Required | Description |
11
- |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--task_id` | string | Yes | task ID |
14
- | `--report_type` | string | Yes | report type: `overview` or `detail` |
15
- | `--start_time` | string | Yes | Start date |
16
- | `--end_time` | string | Yes | End date |
17
- | `--request_id` | string | No | query requestId |
18
- | `--push_language_code` | string | No | push language code |
19
-
20
- ## Enum Notes
21
-
22
- ### `--report_type`
23
-
24
- - `overview`: experiment overview
25
- - `detail`: experiment detail
26
-
27
- ### `--push_language_code`
28
-
29
- Common values include:
30
-
31
- - `default`
32
- - `en`
33
- - `zh-Hans`
34
- - `zh-Hant`
35
- - `ja`
36
- - `ko`
37
-
38
- ## Examples
7
+ Required input: `project_id`, `task_id`, `report_type`, `start_time`, `end_time`. `report_type` is `overview` or `detail`.
39
8
 
40
9
  ```bash
41
- ae-cli engage +task_experiment_report \
42
- --project_id 1 --task_id task_123 \
43
- --report_type overview --start_time 2026-04-01 --end_time 2026-04-07
10
+ ae-cli capability run engage-task.task-data.experiment-report --input '{"project_id":1,"task_id":"task_123","report_type":"overview","start_time":"2026-04-01","end_time":"2026-04-07"}'
44
11
  ```
@@ -1,15 +1,15 @@
1
- # ae-engage +task_list
1
+ # ae-cli engage-task task list
2
2
 
3
3
 
4
4
  Query the paginated task list.
5
5
 
6
- Mapped command: `ae-cli engage +task_list`
6
+ Mapped command: `ae-cli engage-task task list`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
13
  | `--req` | json | Yes | query-condition JSON object |
14
14
 
15
15
  ## `--req` Object Fields
@@ -86,5 +86,5 @@ Common fields are listed below; provide them as needed:
86
86
  ## Examples
87
87
 
88
88
  ```bash
89
- ae-cli engage +task_list --project_id 1 --req '{"pageNum":1,"pageSize":20}'
89
+ ae-cli engage-task task list --project-id 1 --req '{"pageNum":1,"pageSize":20}'
90
90
  ```
@@ -1,49 +1,11 @@
1
- # ae-engage +task_metric_detail
1
+ # engage-task.task-data.metric-detail
2
2
 
3
+ Query a task metric detail report through the L3 Capability Gateway.
3
4
 
4
- Query the metric-oriented detail report for a task.
5
+ Mapped command: `ae-cli capability run engage-task.task-data.metric-detail --input '<json>'`
5
6
 
6
- Mapped command: `ae-cli engage +task_metric_detail`
7
-
8
- ## Flags
9
-
10
- | Flag | Type | Required | Description |
11
- |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--task_id` | string | Yes | task ID |
14
- | `--start_time` | string | Yes | Start date |
15
- | `--end_time` | string | Yes | End date |
16
- | `--request_id` | string | No | query requestId |
17
- | `--push_language_code` | string | No | push language code |
18
- | `--metric_id_list` | json | No | metric ID JSON array |
19
- | `--group_type` | number | No | group type |
20
- | `--show_time_zone` | string | No | Display timezone offset |
21
-
22
- ## Enum Notes
23
-
24
- ### `--group_type`
25
-
26
- - `1`: group by batch
27
- - `2`: group by date
28
- - `3`: group by trigger
29
- - `4`: group by experiment result
30
-
31
- ### `--push_language_code`
32
-
33
- Common values include:
34
-
35
- - `default`
36
- - `en`
37
- - `zh-Hans`
38
- - `zh-Hant`
39
- - `ja`
40
- - `ko`
41
-
42
- ## Examples
7
+ Required input: `project_id`, `task_id`, `start_time`, `end_time`. Optional input includes `request_id`, `push_language_code`, `metric_id_list`, `group_type`, and `show_time_zone`.
43
8
 
44
9
  ```bash
45
- ae-cli engage +task_metric_detail \
46
- --project_id 1 --task_id task_123 \
47
- --start_time 2026-04-01 --end_time 2026-04-07 \
48
- --metric_id_list '["metric_1"]'
10
+ ae-cli capability run engage-task.task-data.metric-detail --input '{"project_id":1,"task_id":"task_123","start_time":"2026-04-01","end_time":"2026-04-07"}'
49
11
  ```
@@ -1,20 +1,20 @@
1
- # ae-engage +task_stats
1
+ # ae-cli engage-task task stats
2
2
 
3
3
 
4
4
  Query task status statistics.
5
5
 
6
- Mapped command: `ae-cli engage +task_stats`
6
+ Mapped command: `ae-cli engage-task task stats`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
13
  | `--req` | json | Yes | statistics-condition JSON object |
14
14
 
15
15
  ## `--req` Object Fields
16
16
 
17
- The `--req` structure of `+task_stats` is broadly the same as `+task_list`, and common fields include:
17
+ The `--req` structure of `engage-task task stats` is broadly the same as `engage-task task list`, and common fields include:
18
18
 
19
19
  | Field | Type | Required | Description |
20
20
  |------|------|------|------|
@@ -84,5 +84,5 @@ The `--req` structure of `+task_stats` is broadly the same as `+task_list`, and
84
84
  ## Examples
85
85
 
86
86
  ```bash
87
- ae-cli engage +task_stats --project_id 1 --req '{"pageNum":1,"pageSize":20}'
87
+ ae-cli engage-task task stats --project-id 1 --req '{"pageNum":1,"pageSize":20}'
88
88
  ```
@@ -1,24 +1,24 @@
1
- # ae-engage +update_channel_status
1
+ # ae-engage engage-setting channel update-status
2
2
 
3
3
 
4
4
  Update the status of an Engage channel.
5
5
 
6
- Mapped command: `ae-cli engage +update_channel_status`
6
+ Mapped command: `ae-cli engage-setting channel update-status`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
13
- | `--channel_id` | string | Yes | channel ID |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
+ | `--channel-id` | string | Yes | channel ID |
14
14
  | `--status` | number | Yes | channel status |
15
15
 
16
16
  ## Enum Notes
17
17
 
18
18
  ### `--status`
19
19
 
20
- - `0`: disabled
21
20
  - `1`: enabled
21
+ - `2`: disabled
22
22
 
23
23
  ## Safety Constraints
24
24
 
@@ -27,5 +27,5 @@ This command is a **write operation** and Before executing, confirm that the use
27
27
  ## Examples
28
28
 
29
29
  ```bash
30
- ae-cli engage +update_channel_status --project_id 1 --channel_id <channel_id> --status 1
30
+ ae-cli engage-setting channel update-status --project-id 1 --channel-id <channel_id> --status 1
31
31
  ```
@@ -1,30 +1,31 @@
1
- # ae-engage +validate_flow_node_config
1
+ # ae-cli engage-flow node-config validate
2
2
 
3
3
 
4
4
  Validate and normalize a single node configuration before placing it into a `save_flow` request.
5
5
 
6
- Mapped command: `ae-cli engage +validate_flow_node_config`
6
+ Mapped command: `ae-cli engage-flow node-config validate`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--node_type` | string | Yes | Flow node type |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
+ | `--node-type` | string | Yes | Flow node type |
13
14
  | `--config` | string | Yes | Node config JSON object encoded as a string |
14
- | `--operation_mode` | string | Yes | Validation mode |
15
+ | `--operation-mode` | string | Yes | Validation mode |
15
16
 
16
17
  ## When To Use
17
18
 
18
- Use this after `+flow_node_config_schema` and before passing a config into `+save_flow`.
19
+ Use this after `engage-flow node-config schema` and before passing a config into `engage-flow flow save`.
19
20
 
20
21
  The command validates one node config only; it does not validate the full canvas topology. It returns:
21
22
 
22
23
  - `valid`: whether the candidate config passed validation
23
24
  - `normalizedConfigObject`: backend-normalized config with defaulted fields
24
- - `errors`: hard validation failures to fix before calling `+save_flow`
25
+ - `errors`: hard validation failures to fix before calling `engage-flow flow save`
25
26
  - `warnings`: issues that depend on live channel/template/config data
26
27
 
27
- Use `--operation_mode save_flow` for the current exposed MCP protocol. Use `save_submit_flow` only when you intentionally want stricter submit-time checks.
28
+ Use `--operation-mode save_flow` for the current exposed MCP protocol. Use `save_submit_flow` only when you intentionally want stricter submit-time checks.
28
29
 
29
30
  Important current rules:
30
31
 
@@ -38,7 +39,7 @@ Important current rules:
38
39
 
39
40
  ## Enum Notes
40
41
 
41
- ### `--node_type`
42
+ ### `--node-type`
42
43
 
43
44
  Schema-backed node types include:
44
45
 
@@ -56,7 +57,7 @@ Schema-backed node types include:
56
57
  - `ab_split_flow`
57
58
  - `exit_flow`
58
59
 
59
- ### `--operation_mode`
60
+ ### `--operation-mode`
60
61
 
61
62
  - `save_flow`
62
63
  - `save_submit_flow`
@@ -64,6 +65,6 @@ Schema-backed node types include:
64
65
  ## Examples
65
66
 
66
67
  ```bash
67
- ae-cli engage +validate_flow_node_config \
68
- --node_type message_push --operation_mode save_flow --config '{}'
68
+ ae-cli engage-flow node-config validate \
69
+ --project-id 1 --node-type message_push --operation-mode save_flow --config '{}'
69
70
  ```
@@ -1,18 +1,18 @@
1
- # ae-engage +whitelist_list
1
+ # ae-engage engage-setting whitelist list
2
2
 
3
3
 
4
4
  Query the whitelist list in a project.
5
5
 
6
- Mapped command: `ae-cli engage +whitelist_list`
6
+ Mapped command: `ae-cli engage-setting whitelist list`
7
7
 
8
8
  ## Flags
9
9
 
10
10
  | Flag | Type | Required | Description |
11
11
  |------|------|------|------|
12
- | `--project_id` / `-p` | number | Yes | Project ID |
12
+ | `--project-id` / `-p` | number | Yes | Project ID |
13
13
 
14
14
  ## Examples
15
15
 
16
16
  ```bash
17
- ae-cli engage +whitelist_list --project_id 1
17
+ ae-cli engage-setting whitelist list --project-id 1
18
18
  ```
@@ -68,5 +68,5 @@ ae-cli engage-setting whitelist verify \
68
68
  ## Decision Rules
69
69
 
70
70
  - Use these commands when the user asks to add / edit / delete / verify project whitelist entries.
71
- - Discover existing whitelist IDs with `ae-cli engage +whitelist_list --project_id <project_id>` first; never invent IDs.
71
+ - Discover existing whitelist IDs with `ae-cli engage-setting whitelist list --project-id <project_id>` first; never invent IDs.
72
72
  - `delete` is `high-risk-write` and requires `--yes` (or interactive confirmation).
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Capability ids: `engage-workbench.workbench.{list,add,update,delete}` · Domain: `engage`.
4
4
 
5
- 工作台 - 工作台指标卡槽(workbench slot)管理。每个用户在每个项目下最多 4 个指标卡;卡槽按当前登录用户隔离,`update`/`delete` 只能操作本人卡槽。首次 `list` 会自动初始化 4 个默认卡槽。
5
+ Workbench workbench metric slot management. Each user may configure up to 4 metric cards per project; slots are scoped to the current login user, so `update`/`delete` only affect the caller's own slots. The first `list` auto-initialises 4 default slots.
6
6
 
7
7
  ## Commands
8
8
 
@@ -6,39 +6,49 @@ description: "Use when managing Atlas AB experiments, traffic layers, Features,
6
6
 
7
7
  # ae-experiment
8
8
 
9
- AE CLI (`ae-cli`) exposes Atlas AB Experiment MCP capabilities through the `experiment` domain.
9
+ AE CLI (`ae-cli`) exposes Atlas AB Experiment capabilities through the `experiment` domain.
10
10
 
11
11
  ## Global Rules
12
12
 
13
13
  - Prefer `ae-cli experiment <command>` for Atlas AB Experiment work.
14
- - Use `--project_id` / `-p` for project-scoped commands.
14
+ - Use `--project-id` / `-p` for project-scoped commands.
15
15
  - Use `--req` JSON for complex save, status, and delete DTOs.
16
16
  - Do not invent experiment IDs, traffic layer IDs, bucket IDs, Feature keys, metric IDs, or payload field names.
17
17
  - Read commands can run directly after IDs are verified.
18
18
  - Write commands require explicit user intent and normally keep the confirmation prompt. Use `--dry-run` before write calls when composing JSON.
19
19
 
20
+ Naming and response boundary:
21
+
22
+ - CLI command segments and flags use kebab-case.
23
+ - Outer Capability input and all response keys use snake_case.
24
+ - Nested business DTOs passed through `--req` keep their native camelCase fields.
25
+ - Lists return `data.items` and `data.total`; detail commands return `data.item`.
26
+ - Readiness returns `data.readiness`; reports return `data.report`; writes return `data.result`.
27
+ - Query cancellation returns `data.success`.
28
+
20
29
  ## Typical Workflow
21
30
 
22
31
  1. Discover reusable assets:
23
- - `+query_bucket_list`
24
- - `+query_traffic_layer_list`
25
- - `+query_feature_list`
26
- - `+query_metric_list`
32
+ - `experiment bucket list`
33
+ - `experiment traffic-layer list`
34
+ - `experiment feature list`
35
+ - `experiment metric list`
27
36
  2. Create missing assets if needed:
28
- - `+save_traffic_layer`
29
- - `+save_feature`
30
- - `+save_metric`
31
- 3. Create or patch the experiment draft with `+save_experiment`.
32
- 4. Check readiness with `+check_experiment_ready`.
33
- 5. Move status with `+manage_experiment`.
34
- 6. Query reports with summary, sample-size, and metric-trend commands.
37
+ - `experiment traffic-layer save`
38
+ - `experiment feature save`
39
+ - `experiment metric save`
40
+ 3. Create or patch the experiment draft with `experiment experiment save`.
41
+ 4. Check readiness with `experiment experiment ready-check`.
42
+ 5. For a non-mutex traffic layer, run `experiment experiment conflict-check` before submit (needs `feature_key_list` from context or `experiment get`).
43
+ 6. Move status with `experiment experiment manage`.
44
+ 7. Query reports with summary, sample-size, and metric-trend commands.
35
45
 
36
46
  ## Parameter Conventions
37
47
 
38
48
  ```bash
39
- ae-cli experiment +query_experiment_detail --project_id 1 --exp_id exp_123
40
- ae-cli --dry-run experiment +save_experiment --project_id 1 --req '{"expName":"Demo"}'
41
- ae-cli experiment +query_experiment_metric_trend --project_id 1 --exp_id exp_123 --metric_id metric_1 --start_time 2026-07-01 --end_time 2026-07-07
49
+ ae-cli experiment experiment get --project-id 1 --exp-id exp_123
50
+ ae-cli experiment experiment save --project-id 1 --req '{"expName":"Demo"}' --dry-run
51
+ ae-cli capability run experiment.report.metric-trend --input '{"project_id":1,"exp_id":"exp_123","metric_id":"metric_1","start_time":"2026-07-01","end_time":"2026-07-07"}'
42
52
  ```
43
53
 
44
54
  Optional global parameters work as in other domains: `--host`, `--mcp-url`, `--format`, `--jq`, `--dry-run`, and `--yes`.
@@ -49,16 +59,16 @@ Open the matching file in `references/` before using a command, especially for w
49
59
 
50
60
  ### Experiment
51
61
 
52
- `+save_experiment`, `+save_submit_experiment`, `+query_experiment_list`, `+query_experiment_detail`, `+check_experiment_ready`, `+manage_experiment`, `+batch_delete_experiment`
62
+ `experiment experiment save`, `capability run experiment.experiment.save-submit`, `experiment experiment list`, `experiment experiment list-archived`, `experiment experiment get`, `experiment experiment ready-check`, `experiment experiment conflict-check`, `experiment experiment manage`, `experiment experiment update-group`, `experiment experiment batch-delete`, `experiment operation-log query`
53
63
 
54
64
  ### Traffic Layer and Buckets
55
65
 
56
- `+save_traffic_layer`, `+query_traffic_layer_detail`, `+query_traffic_layer_list`, `+batch_delete_traffic_layer`, `+query_bucket_list`
66
+ `experiment traffic-layer save`, `experiment traffic-layer get`, `experiment traffic-layer list`, `experiment traffic-layer batch-delete`, `experiment bucket list`
57
67
 
58
68
  ### Reports
59
69
 
60
- `+query_experiment_report_summary`, `+query_experiment_sample_size_report`, `+query_experiment_metric_trend`, `+cancel_experiment_query_by_request_id`
70
+ `capability run experiment.report.summary`, `capability run experiment.report.sample-size`, `capability run experiment.report.metric-trend`, `capability run experiment.query.cancel`
61
71
 
62
72
  ### Metric and Feature
63
73
 
64
- `+save_metric`, `+query_metric_detail`, `+query_metric_list`, `+delete_metric`, `+save_feature`, `+manage_feature_status`, `+query_feature_detail`, `+query_feature_list`, `+batch_delete_feature`
74
+ `experiment metric save`, `experiment metric get`, `experiment metric list`, `experiment metric delete`, `experiment feature save`, `experiment feature update-status`, `experiment feature get`, `experiment feature list`, `experiment feature version-list`, `experiment feature operation-log query`, `experiment feature batch-delete`
@@ -1,11 +1,11 @@
1
- # +batch_delete_experiment
1
+ # experiment experiment batch-delete
2
2
 
3
3
  Batch delete experiments.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +batch_delete_experiment --project_id <id> --exp_ids '["exp_1","exp_2"]' [--yes]
6
+ ae-cli experiment experiment batch-delete --project-id <id> --exp-ids '["exp_1","exp_2"]' [--yes]
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
11
- - `--exp_ids`: Experiment ID list as JSON array.
10
+ - `--project-id`, `-p`: Project ID.
11
+ - `--exp-ids`: Experiment ID list as JSON array.
@@ -1,11 +1,11 @@
1
- # +batch_delete_feature
1
+ # experiment feature batch-delete
2
2
 
3
3
  Batch delete Features.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +batch_delete_feature --project_id <id> --req '<json>' [--yes]
6
+ ae-cli experiment feature batch-delete --project-id <id> --req '<json>' [--yes]
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
10
+ - `--project-id`, `-p`: Project ID.
11
11
  - `--req`: Feature delete request JSON object.
@@ -1,11 +1,11 @@
1
- # +batch_delete_traffic_layer
1
+ # experiment traffic-layer batch-delete
2
2
 
3
3
  Batch delete traffic layers.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +batch_delete_traffic_layer --project_id <id> --layer_ids '["layer_1","layer_2"]' [--yes]
6
+ ae-cli experiment traffic-layer batch-delete --project-id <id> --layer-ids '["layer_1","layer_2"]' [--yes]
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
11
- - `--layer_ids`: Traffic layer ID list as JSON array.
10
+ - `--project-id`, `-p`: Project ID.
11
+ - `--layer-ids`: Traffic layer ID list as JSON array.
@@ -1,10 +1,11 @@
1
- # +cancel_experiment_query_by_request_id
1
+ # capability run experiment.query.cancel
2
2
 
3
3
  Cancel a running experiment report query.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +cancel_experiment_query_by_request_id --request_id <id>
6
+ ae-cli capability run experiment.query.cancel --input '{"request_id":"<id>"}'
7
7
  ```
8
8
 
9
- Flags:
10
- - `--request_id`: Request ID to cancel.
9
+ Required input: `request_id`.
10
+
11
+ Response shape: `data.success`.
@@ -1,13 +1,15 @@
1
- # +check_experiment_ready
1
+ # experiment experiment ready-check
2
2
 
3
3
  Check whether an experiment can enter online status transitions.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +check_experiment_ready --project_id <id> --exp_id <expId>
6
+ ae-cli experiment experiment ready-check --project-id <id> --exp-id <expId>
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
11
- - `--exp_id`: Experiment ID.
10
+ - `--project-id`, `-p`: Project ID.
11
+ - `--exp-id`: Experiment ID.
12
12
 
13
- Use this before `+manage_experiment` moves an experiment to `pending`, `testing`, or `running`.
13
+ Use this before `experiment experiment manage` moves an experiment to `pending`, `testing`, or `running`.
14
+
15
+ Response shape: the readiness result is in `data.readiness`, with recursively snake_case keys.
@@ -0,0 +1,37 @@
1
+ # experiment experiment conflict-check
2
+
3
+ Pre-submit check for cross-layer Feature conflicts on a **non-mutex** traffic layer.
4
+
5
+ Reuse the existing Hermes `trafficLayerConflictCheck` API. Do **not** call this command for mutex traffic layers.
6
+
7
+ ## Workflow
8
+
9
+ 1. Ensure you already have the Feature keys for the current experiment:
10
+ - Editing an existing draft: call `experiment experiment get` and read `feature_key_list`.
11
+ - Creating a new experiment: reuse the Feature keys already chosen in the current workflow.
12
+ 2. Call conflict-check with the selected non-mutex `traffic-layer-id`.
13
+ 3. Interpret the response before `save-submit`:
14
+ - `data.features` non-empty: some Features are not enabled.
15
+ - `data.experiments` non-empty: same Features are active on other traffic layers.
16
+ - both empty: no conflict signal from this check.
17
+
18
+ ```bash
19
+ ae-cli experiment experiment conflict-check \
20
+ --project-id <id> \
21
+ --feature-key-list '["checkout_color"]' \
22
+ --traffic-layer-id <layer-id>
23
+
24
+ ae-cli experiment experiment conflict-check \
25
+ --project-id <id> \
26
+ --feature-key-list '["checkout_color"]' \
27
+ --traffic-layer-id <layer-id> \
28
+ --exp-id <exp-id>
29
+ ```
30
+
31
+ Flags:
32
+ - `--project-id`, `-p`: Project ID.
33
+ - `--feature-key-list`: Required JSON string array of Feature keys selected by the current experiment.
34
+ - `--traffic-layer-id`: Required selected non-mutex traffic layer ID.
35
+ - `--exp-id`: Optional current experiment ID when editing an existing draft (excludes self from conflicts).
36
+
37
+ Response shape: `data.experiments` and `data.features`, with recursively snake_case item keys.
@@ -1,11 +1,11 @@
1
- # +delete_metric
1
+ # experiment metric delete
2
2
 
3
3
  Delete a metric.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +delete_metric --project_id <id> --metric_id <metricId> [--yes]
6
+ ae-cli experiment metric delete --project-id <id> --metric-id <metricId> [--yes]
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
11
- - `--metric_id`: Metric ID.
10
+ - `--project-id`, `-p`: Project ID.
11
+ - `--metric-id`: Metric ID.
@@ -1,15 +1,17 @@
1
- # +manage_experiment
1
+ # experiment experiment manage
2
2
 
3
3
  Manage experiment status.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +manage_experiment --project_id <id> --exp_id <expId> --target_status <status> [--remark <text>]
6
+ ae-cli experiment experiment manage --project-id <id> --exp-id <expId> --target-status <status> [--remark <text>]
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
11
- - `--exp_id`: Experiment ID.
12
- - `--target_status`: One of `draft`, `testing`, `pending`, `running`, `paused`, `ended`, `archive`.
10
+ - `--project-id`, `-p`: Project ID.
11
+ - `--exp-id`: Experiment ID.
12
+ - `--target-status`: One of `draft`, `testing`, `pending`, `running`, `paused`, `ended`, `archive`.
13
13
  - `--remark`: Optional operation remark.
14
14
 
15
- When target status is `pending`, `testing`, or `running`, the MCP server performs a ready check first.
15
+ When target status is `pending`, `testing`, or `running`, Hermes performs a ready check before changing status.
16
+
17
+ Response shape: the operation or blocking readiness result is in `data.result`, with object keys recursively converted to snake_case.
@@ -1,11 +1,11 @@
1
- # +manage_feature_status
1
+ # experiment feature update-status
2
2
 
3
3
  Update Feature status.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +manage_feature_status --project_id <id> --req '<json>'
6
+ ae-cli experiment feature update-status --project-id <id> --req '<json>'
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
10
+ - `--project-id`, `-p`: Project ID.
11
11
  - `--req`: Feature status request JSON object.
@@ -1,10 +1,12 @@
1
- # +query_bucket_list
1
+ # experiment bucket list
2
2
 
3
3
  Query split buckets in a project.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +query_bucket_list --project_id <id>
6
+ ae-cli experiment bucket list --project-id <id>
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
10
+ - `--project-id`, `-p`: Project ID.
11
+
12
+ Response shape: `data.items` contains split buckets, `data.total` contains the count, and item keys are recursively snake_case.
@@ -1,11 +1,13 @@
1
- # +query_experiment_detail
1
+ # experiment experiment get
2
2
 
3
3
  Query full experiment detail.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +query_experiment_detail --project_id <id> --exp_id <expId>
6
+ ae-cli experiment experiment get --project-id <id> --exp-id <expId>
7
7
  ```
8
8
 
9
9
  Flags:
10
- - `--project_id`, `-p`: Project ID.
11
- - `--exp_id`: Experiment ID.
10
+ - `--project-id`, `-p`: Project ID.
11
+ - `--exp-id`: Experiment ID.
12
+
13
+ Response shape: the experiment is in `data.item`, with recursively snake_case keys such as `exp_id` and `feature_key_list`.
@@ -1,10 +1,18 @@
1
- # +query_experiment_list
1
+ # experiment experiment list
2
2
 
3
- Query experiments in a project.
3
+ Query experiments in a project with optional filters from the existing list API.
4
4
 
5
5
  ```bash
6
- ae-cli experiment +query_experiment_list --project_id <id>
6
+ ae-cli experiment experiment list --project-id <id>
7
+ ae-cli experiment experiment list --project-id <id> --status archive
8
+ ae-cli experiment experiment list --project-id <id> --traffic-layer-id <layer-id> --group-id <group-id> --query-name checkout
7
9
  ```
8
10
 
9
11
  Flags:
10
- - `--project_id`, `-p`: Project ID.
12
+ - `--project-id`, `-p`: Project ID.
13
+ - `--status`: Optional status filter (`draft`, `testing`, `pending`, `running`, `paused`, `ended`, `archive`). For the dedicated archived list command, prefer `experiment experiment list-archived`.
14
+ - `--traffic-layer-id`: Optional traffic layer ID filter.
15
+ - `--group-id`: Optional business group ID filter.
16
+ - `--query-name`: Optional fuzzy match against experiment name (`exp_name LIKE`). Does not match `exp_id`.
17
+
18
+ Response shape: `data.items` contains the experiments, `data.total` contains the count, and item keys are recursively snake_case.