@yixiaoermail/cli 3.1.0
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.
- package/README.md +25 -0
- package/bin/yxer.js +74 -0
- package/dist/yxer-darwin-amd64 +0 -0
- package/dist/yxer-darwin-arm64 +0 -0
- package/dist/yxer-linux-amd64 +0 -0
- package/dist/yxer-linux-arm64 +0 -0
- package/dist/yxer-windows-amd64.exe +0 -0
- package/dist/yxer-windows-arm64.exe +0 -0
- package/package.json +23 -0
- package/skills/yixiaoer/QUICKSTART.md +265 -0
- package/skills/yixiaoer/SKILL.md +70 -0
- package/skills/yixiaoer/assets/yixiaoer.png +0 -0
- package/skills/yixiaoer/plugin.json +21 -0
- package/skills/yixiaoer/references/cli/command-reference.md +212 -0
- package/skills/yixiaoer/references/cli/skill-install.md +65 -0
- package/skills/yixiaoer/references/cli-install-uninstall.md +196 -0
- package/skills/yixiaoer/references/domains/accounts-and-env.md +37 -0
- package/skills/yixiaoer/references/domains/draft-and-material.md +29 -0
- package/skills/yixiaoer/references/domains/install-and-sync.md +37 -0
- package/skills/yixiaoer/references/domains/publish.md +75 -0
- package/skills/yixiaoer/references/domains/troubleshooting.md +30 -0
- package/skills/yixiaoer/references/execution-standard.md +144 -0
- package/skills/yixiaoer/references/get-account-overviews.md +56 -0
- package/skills/yixiaoer/references/get-challenges.md +14 -0
- package/skills/yixiaoer/references/get-collections.md +34 -0
- package/skills/yixiaoer/references/get-content-overviews.md +59 -0
- package/skills/yixiaoer/references/get-friends.md +9 -0
- package/skills/yixiaoer/references/get-games.md +39 -0
- package/skills/yixiaoer/references/get-goods.md +42 -0
- package/skills/yixiaoer/references/get-groups.md +35 -0
- package/skills/yixiaoer/references/get-hot-events.md +14 -0
- package/skills/yixiaoer/references/get-locations.md +48 -0
- package/skills/yixiaoer/references/get-miniapps.md +38 -0
- package/skills/yixiaoer/references/get-music-categories.md +41 -0
- package/skills/yixiaoer/references/get-music.md +67 -0
- package/skills/yixiaoer/references/get-publish-activities.md +40 -0
- package/skills/yixiaoer/references/get-publish-categories.md +62 -0
- package/skills/yixiaoer/references/get-sync-apps.md +14 -0
- package/skills/yixiaoer/references/get-topics.md +13 -0
- package/skills/yixiaoer/references/go-live-process.md +168 -0
- package/skills/yixiaoer/references/keyword-reference.md +113 -0
- package/skills/yixiaoer/references/material-resource.md +89 -0
- package/skills/yixiaoer/references/platform-doc-maintenance.md +33 -0
- package/skills/yixiaoer/references/platform.md +61 -0
- package/skills/yixiaoer/references/platforms/article/acfun.md +90 -0
- package/skills/yixiaoer/references/platforms/article/aiqiyi.md +56 -0
- package/skills/yixiaoer/references/platforms/article/baijiahao.md +94 -0
- package/skills/yixiaoer/references/platforms/article/bilibili.md +88 -0
- package/skills/yixiaoer/references/platforms/article/chejiahao.md +81 -0
- package/skills/yixiaoer/references/platforms/article/csdn.md +86 -0
- package/skills/yixiaoer/references/platforms/article/dayuhao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/douban.md +62 -0
- package/skills/yixiaoer/references/platforms/article/douyin.md +106 -0
- package/skills/yixiaoer/references/platforms/article/index.md +157 -0
- package/skills/yixiaoer/references/platforms/article/jianshu.md +58 -0
- package/skills/yixiaoer/references/platforms/article/kuaichuanhao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/qiehao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/souhuhao.md +75 -0
- package/skills/yixiaoer/references/platforms/article/toutiaohao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/wangyihao.md +79 -0
- package/skills/yixiaoer/references/platforms/article/weixingongzhonghao.md +135 -0
- package/skills/yixiaoer/references/platforms/article/xinlangweibo.md +75 -0
- package/skills/yixiaoer/references/platforms/article/xueqiuhao.md +73 -0
- package/skills/yixiaoer/references/platforms/article/yichehao.md +92 -0
- package/skills/yixiaoer/references/platforms/article/yidianhao.md +76 -0
- package/skills/yixiaoer/references/platforms/article/zhihu.md +75 -0
- package/skills/yixiaoer/references/platforms/get-locations.md +5 -0
- package/skills/yixiaoer/references/platforms/imageText/baijiahao.md +91 -0
- package/skills/yixiaoer/references/platforms/imageText/douyin.md +111 -0
- package/skills/yixiaoer/references/platforms/imageText/index.md +116 -0
- package/skills/yixiaoer/references/platforms/imageText/kuaishou.md +106 -0
- package/skills/yixiaoer/references/platforms/imageText/shipinhao.md +125 -0
- package/skills/yixiaoer/references/platforms/imageText/toutiaohao.md +76 -0
- package/skills/yixiaoer/references/platforms/imageText/weixinshipinhao.md +7 -0
- package/skills/yixiaoer/references/platforms/imageText/xiaohongshu.md +88 -0
- package/skills/yixiaoer/references/platforms/imageText/xinlangweibo.md +77 -0
- package/skills/yixiaoer/references/platforms/imageText/zhihu.md +92 -0
- package/skills/yixiaoer/references/platforms/index.md +20 -0
- package/skills/yixiaoer/references/platforms/video/acfun.md +82 -0
- package/skills/yixiaoer/references/platforms/video/aiqiyi.md +89 -0
- package/skills/yixiaoer/references/platforms/video/baijiahao.md +89 -0
- package/skills/yixiaoer/references/platforms/video/bilibili-open.md +87 -0
- package/skills/yixiaoer/references/platforms/video/bilibili.md +80 -0
- package/skills/yixiaoer/references/platforms/video/chejiahao.md +63 -0
- package/skills/yixiaoer/references/platforms/video/dayuhao.md +89 -0
- package/skills/yixiaoer/references/platforms/video/dewu.md +80 -0
- package/skills/yixiaoer/references/platforms/video/douyin.md +143 -0
- package/skills/yixiaoer/references/platforms/video/duoduoshipin.md +64 -0
- package/skills/yixiaoer/references/platforms/video/fengwang.md +81 -0
- package/skills/yixiaoer/references/platforms/video/index.md +165 -0
- package/skills/yixiaoer/references/platforms/video/kuaishou-open.md +63 -0
- package/skills/yixiaoer/references/platforms/video/kuaishou.md +77 -0
- package/skills/yixiaoer/references/platforms/video/meipai.md +79 -0
- package/skills/yixiaoer/references/platforms/video/meiyou.md +59 -0
- package/skills/yixiaoer/references/platforms/video/pipixia.md +58 -0
- package/skills/yixiaoer/references/platforms/video/qiehao.md +91 -0
- package/skills/yixiaoer/references/platforms/video/shipinhao.md +95 -0
- package/skills/yixiaoer/references/platforms/video/souhuhao.md +91 -0
- package/skills/yixiaoer/references/platforms/video/souhushipin.md +64 -0
- package/skills/yixiaoer/references/platforms/video/tengxunshipin.md +63 -0
- package/skills/yixiaoer/references/platforms/video/toutiaohao.md +66 -0
- package/skills/yixiaoer/references/platforms/video/wangyihao.md +93 -0
- package/skills/yixiaoer/references/platforms/video/weishi.md +61 -0
- package/skills/yixiaoer/references/platforms/video/xiaohongshu.md +133 -0
- package/skills/yixiaoer/references/platforms/video/xiaohongshushop.md +92 -0
- package/skills/yixiaoer/references/platforms/video/xinlangweibo.md +79 -0
- package/skills/yixiaoer/references/platforms/video/yichehao.md +61 -0
- package/skills/yixiaoer/references/platforms/video/yidianhao.md +85 -0
- package/skills/yixiaoer/references/platforms/video/zhihu.md +85 -0
- package/skills/yixiaoer/references/proxy-management.md +68 -0
- package/skills/yixiaoer/references/query-accounts.md +85 -0
- package/skills/yixiaoer/references/save-draft.md +75 -0
- package/skills/yixiaoer/references/topic-tags.md +139 -0
- package/skills/yixiaoer/references/troubleshooting-guide.md +105 -0
- package/skills/yixiaoer/references/upload-resource.md +59 -0
- package/skills/yixiaoer/references/usage-workflow.md +209 -0
- package/skills/yixiaoer/references/workflows/account-selection.md +38 -0
- package/skills/yixiaoer/references/workflows/common-rules.md +259 -0
- package/skills/yixiaoer/references/workflows/draft-workflow.md +44 -0
- package/skills/yixiaoer/references/workflows/local-vs-cloud.md +50 -0
- package/skills/yixiaoer/references/workflows/material-workflow.md +43 -0
- package/skills/yixiaoer/references/workflows/payload-sourcing.md +70 -0
- package/skills/yixiaoer/references/workflows/publish-article.md +68 -0
- package/skills/yixiaoer/references/workflows/publish-imageText.md +64 -0
- package/skills/yixiaoer/references/workflows/publish-troubleshooting.md +50 -0
- package/skills/yixiaoer/references/workflows/publish-video.md +65 -0
- package/skills/yixiaoer/references/yixiaoer-shared.md +95 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# yxer CLI 命令参考
|
|
2
|
+
|
|
3
|
+
`yxer` 是本技能唯一执行入口。Agent 和用户都应直接使用它。
|
|
4
|
+
|
|
5
|
+
## 命令分组
|
|
6
|
+
|
|
7
|
+
### 环境与版本
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
yxer --version
|
|
11
|
+
yxer doctor
|
|
12
|
+
yxer update [--check] [--global]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### 本地配置
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
yxer config get
|
|
19
|
+
yxer config set-local-client-id <clientId>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Skill 安装与同步
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
yxer skill show
|
|
26
|
+
yxer skill sync [--global]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 账号与资源
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
yxer accounts list [platform] [--name 关键词] [--status 1] [--json]
|
|
33
|
+
yxer upload --file <file_path> [--bucket cloud-publish|material-library] [--dry-run]
|
|
34
|
+
yxer upload --url <resource_url> [--bucket cloud-publish|material-library] [--dry-run]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 发布与校验
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
yxer validate <platform> <type> <payload.json> [--publish-channel cloud|local] [--client-id <clientId>]
|
|
41
|
+
yxer publish <type> <platform> <payload.json> [clientId] [--dry-run]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 草稿与素材库
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
yxer draft save <payload.json> [--dry-run]
|
|
48
|
+
yxer material create <payload.json> [--dry-run]
|
|
49
|
+
yxer material add --file <文件路径或URL> [--thumb <缩略图路径或URL>] [--type image|video|file] [--dry-run]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 查询类能力
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
yxer query categories <account_id> [--type video|article]
|
|
56
|
+
yxer query locations <account_id> [--query 关键词] [--type 0|1|2|3]
|
|
57
|
+
yxer query music <account_id> [--query 关键词]
|
|
58
|
+
yxer query goods <account_id> [--query 关键词]
|
|
59
|
+
yxer query collections <account_id> [--type video|article]
|
|
60
|
+
yxer query challenges <account_id> [--query 关键词] [--type video]
|
|
61
|
+
yxer query records [--platform P] [--limit N] [--status S] [--json]
|
|
62
|
+
yxer prepare <platform> <type>
|
|
63
|
+
yxer schema fields <platform> <type>
|
|
64
|
+
yxer schema get <platform> <type>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
兼容说明:
|
|
68
|
+
|
|
69
|
+
- 推荐新入口:`yxer query ...`
|
|
70
|
+
- 旧入口如 `yxer categories ...`、`yxer records list ...` 仍可用,但后续文档统一以 `query` 入口为准
|
|
71
|
+
|
|
72
|
+
## 基本约束
|
|
73
|
+
|
|
74
|
+
- 发布类型统一使用:`video`、`imageText`、`article`
|
|
75
|
+
- 单次 `yxer publish` 只处理一个平台
|
|
76
|
+
- `publish` 仅支持 `payload.json` 模式
|
|
77
|
+
- 发布前必须先执行 `yxer prepare <platform> <type>` 和 `yxer schema fields <platform> <type>`;`schema fields` 默认返回扁平路径清单,只有需要完整 payload 骨架时再执行 `yxer schema get <platform> <type>`
|
|
78
|
+
- `payload.json` 只支持标准 `publishArgs` 结构,所有平台统一
|
|
79
|
+
- CLI 会根据 `publishArgs` 自动补齐最外层 `cover`、`coverKey`、`desc`、`isDraft`、`isAppContent`
|
|
80
|
+
- 云发布是默认模式
|
|
81
|
+
- 本机发布时必须提供 `clientId`
|
|
82
|
+
- `yxer validate`、`yxer publish --dry-run`、`yxer publish` 使用同一套发布通道解析逻辑
|
|
83
|
+
- 本机发布可通过三种方式提供 `clientId`:
|
|
84
|
+
- 第四个位置参数:`yxer publish <type> <platform> <payload.json> <clientId>`
|
|
85
|
+
- flags:`yxer publish <type> <platform> <payload.json> --publish-channel local --client-id <clientId>`
|
|
86
|
+
- 预设默认值:`yxer config set-local-client-id <clientId>` 后,再执行 `--publish-channel local`
|
|
87
|
+
- 本机发布校验时,推荐在 `validate` 阶段就显式传入 `--publish-channel local`;若未显式传入但 payload 中已写 `publishChannel=local`,CLI 也会尝试从默认配置读取 `clientId`
|
|
88
|
+
- `yxer draft save` 只处理蚁小二内部草稿,不等同于平台草稿箱
|
|
89
|
+
- `yxer material create` 只做素材登记,前提是资源已经通过 `yxer upload --bucket material-library` 上传
|
|
90
|
+
- 推荐优先使用 `yxer material add --file ...`,由 CLI 自动完成上传和素材登记
|
|
91
|
+
- 查询类操作可以直接执行
|
|
92
|
+
- 发布类操作必须遵守“查账号 -> prepare/schema -> 上传资源 -> 查询复杂对象 -> 填 payload -> validate -> publish”顺序
|
|
93
|
+
- 所有请求字段都必须来自 schema、平台文档或 CLI 返回结果;严禁虚构字段、乱猜枚举、手写 `raw` 对象或编造资源元数据
|
|
94
|
+
|
|
95
|
+
## 快速示例
|
|
96
|
+
|
|
97
|
+
### 环境检查
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
yxer doctor
|
|
101
|
+
yxer config get
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 查询账号
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
yxer accounts list 抖音 --json
|
|
108
|
+
yxer accounts list 小红书 --status 1
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 上传资源
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
yxer upload --file .\cover.jpg --dry-run
|
|
115
|
+
yxer upload --file .\video.mp4
|
|
116
|
+
yxer upload --url https://example.com/demo.jpg
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 推荐发布流程
|
|
120
|
+
|
|
121
|
+
### 标准 payload 结构
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"action": "publish",
|
|
126
|
+
"publishType": "imageText",
|
|
127
|
+
"platforms": ["小红书"],
|
|
128
|
+
"publishChannel": "cloud",
|
|
129
|
+
"publishArgs": {
|
|
130
|
+
"accountForms": [
|
|
131
|
+
{
|
|
132
|
+
"platformAccountId": "<platformAccountId>",
|
|
133
|
+
"contentPublishForm": {
|
|
134
|
+
"formType": "task"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
约束:
|
|
143
|
+
|
|
144
|
+
- 顶层必须有 `publishArgs`
|
|
145
|
+
- 账号列表必须放在 `publishArgs.accountForms[]`
|
|
146
|
+
- 平台业务字段必须放在 `publishArgs.accountForms[].contentPublishForm`
|
|
147
|
+
- 不再支持顶层 `accountForms`
|
|
148
|
+
- 不再支持直接提交内层业务表单 JSON
|
|
149
|
+
|
|
150
|
+
### 获取表单字段与 schema
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
yxer prepare 小红书 imageText
|
|
154
|
+
yxer schema fields 小红书 imageText
|
|
155
|
+
yxer schema get 小红书 imageText
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 校验与预览发布
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
yxer validate 小红书 imageText .\payload.json
|
|
162
|
+
yxer publish imageText 小红书 .\payload.json --dry-run
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 本机发布校验
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
yxer validate 抖音 video .\payload.json --publish-channel local --client-id <clientId>
|
|
169
|
+
yxer publish video 抖音 .\payload.json --publish-channel local --client-id <clientId> --dry-run
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### 正式发布
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
yxer publish imageText 小红书 .\payload.json
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 本机发布
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
yxer publish video 抖音 .\payload.json --publish-channel local --client-id <clientId>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## 常见工作流入口
|
|
185
|
+
|
|
186
|
+
- 共享规则:`../yixiaoer-shared.md`
|
|
187
|
+
- 通用规则:`../workflows/common-rules.md`
|
|
188
|
+
- 图文发布:`../workflows/publish-imageText.md`
|
|
189
|
+
- 视频发布:`../workflows/publish-video.md`
|
|
190
|
+
- 文章发布:`../workflows/publish-article.md`
|
|
191
|
+
|
|
192
|
+
## 发布通道约定
|
|
193
|
+
|
|
194
|
+
- 用户未指定“本机发布 / 本地发布 / 客户端发布”时,Agent 应默认使用云发布。
|
|
195
|
+
- 用户明确要求本机发布,或说明要走本机客户端/本机网络时,Agent 必须显式传 `--publish-channel local`,不要只在说明文字里表达。
|
|
196
|
+
- 若云发布返回“账号代理不存在”等代理相关错误,可建议切换到本机发布。
|
|
197
|
+
- 若本机发布返回“客户端不在线”或“获取在线设备列表失败”,可建议用户启动蚁小二客户端,或改回云发布。
|
|
198
|
+
|
|
199
|
+
## 输出约定
|
|
200
|
+
|
|
201
|
+
- 默认输出适合人读
|
|
202
|
+
- 加 `--json` 时输出结构化结果,适合 Agent 二次处理
|
|
203
|
+
- 成功输出格式:`ok/action/version/data`
|
|
204
|
+
- 失败输出格式:`ok/version/error`
|
|
205
|
+
- 错误通过统一错误 envelope 输出
|
|
206
|
+
- `yxer doctor` 可能返回 `_notice.skills`,提示当前 AI skill 与 CLI 版本不同步
|
|
207
|
+
- `yxer update` 当前会同步 AI skill,并给出 CLI 本体更新指引
|
|
208
|
+
|
|
209
|
+
## 入口约束
|
|
210
|
+
|
|
211
|
+
- 仓库已移除旧 Node 入口,不再提供脚本兼容通道
|
|
212
|
+
- 未完成 CLI 化的能力只保留文档提示,不代表存在其他可执行入口
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# 技能安装与同步
|
|
2
|
+
|
|
3
|
+
本项目按“CLI 先安装,Skill 再安装”的方式给 AI agent 提供能力。
|
|
4
|
+
|
|
5
|
+
## 目标
|
|
6
|
+
|
|
7
|
+
- `yxer` CLI:唯一执行入口,负责真正调用蚁小二 API
|
|
8
|
+
- `SKILL.md`:给 AI agent 的规则、工作流、命令选择说明
|
|
9
|
+
- `README.md`:给仓库维护者的入口说明
|
|
10
|
+
|
|
11
|
+
也就是说,Skill 不负责执行,它只负责告诉 Agent 何时调用什么 `yxer` 命令。
|
|
12
|
+
|
|
13
|
+
## 推荐安装流程
|
|
14
|
+
|
|
15
|
+
1. 安装或编译 `yxer` CLI。
|
|
16
|
+
2. 如果 CLI 来自 npm 成品包,优先直接执行:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
yxer skill sync
|
|
20
|
+
yxer skill sync --global
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
3. 如果需要手动查看技能包位置或走回退安装,再运行 `yxer skill show`,拿到当前技能包目录。
|
|
24
|
+
4. 用 skills 工具安装技能:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx skills add "<repo>/skills/yixiaoer" -y
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
如需全局安装:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx skills add "<repo>/skills/yixiaoer" -g -y
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
也可以直接让 CLI 代为同步并写入版本戳:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
yxer skill sync
|
|
40
|
+
yxer skill sync --global
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
如需统一执行“检查状态 + 同步 skill + 查看 CLI 更新指引”,可运行:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
yxer update
|
|
47
|
+
yxer update --check
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 何时需要重新同步
|
|
51
|
+
|
|
52
|
+
- `yxer --version` 升级后
|
|
53
|
+
- 当前 skill 包中的 `SKILL.md` 更新后
|
|
54
|
+
- `skills/yixiaoer/references/` 中影响 Agent 行为的文档更新后
|
|
55
|
+
|
|
56
|
+
## 漂移检查
|
|
57
|
+
|
|
58
|
+
- `yxer skill show` 会显示当前 `skills.stamp` 状态
|
|
59
|
+
- `yxer doctor` 会在 `_notice.skills` 中提示是否需要重新同步
|
|
60
|
+
|
|
61
|
+
## 设计原则
|
|
62
|
+
|
|
63
|
+
- 技能负责“让 Agent 会用 CLI”
|
|
64
|
+
- CLI 负责“把事情真正做完”
|
|
65
|
+
- 不再保留默认 Node 脚本执行入口
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# CLI 与 Skill 安装卸载说明
|
|
2
|
+
|
|
3
|
+
本文档覆盖 `yxer` CLI 的下载/安装、升级、卸载,以及 `yixiaoer` skill 的安装和卸载。
|
|
4
|
+
|
|
5
|
+
## 1. 环境要求
|
|
6
|
+
|
|
7
|
+
- Go `1.25.0` 或更高
|
|
8
|
+
- Node.js
|
|
9
|
+
- `npx`
|
|
10
|
+
|
|
11
|
+
## 2. CLI 下载与安装
|
|
12
|
+
|
|
13
|
+
当前仓库没有内置“自动下载最新版 CLI”的能力,推荐以下两种获取方式。
|
|
14
|
+
|
|
15
|
+
### 方式 A:从源码构建
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
git clone <repo>
|
|
19
|
+
cd yixiaoer-skill
|
|
20
|
+
go build -o bin/yxer.exe .
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
构建完成后,可执行文件位于:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
bin\yxer.exe
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 方式 B:使用发布人员提供的制品包
|
|
30
|
+
|
|
31
|
+
如果团队已经产出上线包,直接获取其中的 `yxer.exe` 即可,无需本地重新构建。
|
|
32
|
+
|
|
33
|
+
建议将 `yxer.exe` 放到固定目录,例如:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
C:\tools\yxer\yxer.exe
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
如需全局直接执行,可把所在目录加入 `PATH`。
|
|
40
|
+
|
|
41
|
+
## 3. CLI 安装后初始化
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
yxer --version
|
|
45
|
+
yxer config init --api-key <apiKey>
|
|
46
|
+
yxer doctor
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
如需要同时把蚁小二作为链接应用启用:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
yxer config init --api-key <apiKey>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 4. Skill 安装
|
|
56
|
+
|
|
57
|
+
先确认 skill 包位置:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
yxer skill show
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
如果 CLI 通过 npm 成品包装好且技能文件随包分发,优先直接同步:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
yxer skill sync
|
|
67
|
+
yxer skill sync --global
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
本地安装:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npx skills add "<repo>\skills\yixiaoer" -y
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
全局安装:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
npx skills add "<repo>\skills\yixiaoer" -g -y
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
也可以直接通过 CLI 同步:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
yxer skill sync
|
|
86
|
+
yxer skill sync --global
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 5. 升级方式
|
|
90
|
+
|
|
91
|
+
### 升级 CLI
|
|
92
|
+
|
|
93
|
+
当前仓库推荐重新构建或重新分发新版二进制:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
git pull
|
|
97
|
+
go build -o bin/yxer.exe .
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 升级 Skill
|
|
101
|
+
|
|
102
|
+
CLI 升级后,必须同步 skill:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
yxer skill sync
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
检查状态:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
yxer update --check
|
|
112
|
+
yxer doctor
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 6. CLI 卸载
|
|
116
|
+
|
|
117
|
+
### 标准卸载
|
|
118
|
+
|
|
119
|
+
如果 `yxer.exe` 是单独分发的二进制,删除可执行文件并移除 `PATH` 即可。
|
|
120
|
+
|
|
121
|
+
例如:
|
|
122
|
+
|
|
123
|
+
- 删除 `C:\tools\yxer\yxer.exe`
|
|
124
|
+
- 从系统环境变量中移除 `C:\tools\yxer`
|
|
125
|
+
|
|
126
|
+
### 配置清理
|
|
127
|
+
|
|
128
|
+
如需要彻底清理本地配置,可删除以下目录中的配置文件:
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
%USERPROFILE%\.yxer\config.json
|
|
132
|
+
%USERPROFILE%\.yxer\skills.stamp
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
说明:
|
|
136
|
+
|
|
137
|
+
- `config.json` 保存 `apiKey`、本机发布 `clientId` 和 linked app 状态
|
|
138
|
+
- `skills.stamp` 用于记录本地 skill 同步版本
|
|
139
|
+
|
|
140
|
+
### 源码构建场景
|
|
141
|
+
|
|
142
|
+
如果 CLI 是在仓库内构建的,可删除构建产物:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
<repo>\bin\yxer.exe
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## 7. Skill 卸载
|
|
149
|
+
|
|
150
|
+
### 推荐做法
|
|
151
|
+
|
|
152
|
+
优先使用你当前 `skills` 工具所提供的卸载命令卸载 `yixiaoer` skill。
|
|
153
|
+
|
|
154
|
+
由于不同宿主环境里的 `skills` 工具版本可能不完全一致,建议先查看帮助:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npx skills --help
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
然后按工具实际支持的删除命令执行。
|
|
161
|
+
|
|
162
|
+
### 手动卸载
|
|
163
|
+
|
|
164
|
+
如果当前环境没有统一的 skill 删除命令,可以直接删除已安装的 `yixiaoer` skill 目录,并清理版本戳:
|
|
165
|
+
|
|
166
|
+
```text
|
|
167
|
+
删除已安装的 yixiaoer 技能目录
|
|
168
|
+
删除 %USERPROFILE%\.yxer\skills.stamp
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
如果你不确定技能安装到了哪里,先执行:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
yxer skill show
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
再根据宿主工具实际安装位置清理。
|
|
178
|
+
|
|
179
|
+
## 8. 卸载后的验证
|
|
180
|
+
|
|
181
|
+
CLI 卸载后,以下命令应不可再执行:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
yxer --version
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Skill 卸载后,建议确认:
|
|
188
|
+
|
|
189
|
+
- AI 宿主中不再能读取 `yixiaoer` skill
|
|
190
|
+
- `%USERPROFILE%\.yxer\skills.stamp` 已删除或不再指向旧版本
|
|
191
|
+
|
|
192
|
+
## 9. 常见建议
|
|
193
|
+
|
|
194
|
+
- 升级时优先“先替换 CLI,再同步 skill”
|
|
195
|
+
- 卸载时优先“先卸载 skill,再删除 CLI”
|
|
196
|
+
- 如果只是停用能力而不是彻底卸载,保留 `config.json` 会更方便后续恢复
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 账号、环境与 Skill 同步
|
|
2
|
+
|
|
3
|
+
适用范围:用户要检查环境、初始化配置、查询账号、查看 skill 安装状态。
|
|
4
|
+
|
|
5
|
+
**CRITICAL - 用户只要说“先看看环境/账号/同步状态”,就先停在本域,不要提前进入发布、草稿或素材主流程。**
|
|
6
|
+
|
|
7
|
+
## 优先读取
|
|
8
|
+
|
|
9
|
+
1. [`../yixiaoer-shared.md`](../yixiaoer-shared.md)
|
|
10
|
+
2. [`../workflows/account-selection.md`](../workflows/account-selection.md)
|
|
11
|
+
|
|
12
|
+
## 常用命令
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
yxer doctor
|
|
16
|
+
yxer config get
|
|
17
|
+
yxer config init --api-key <apiKey>
|
|
18
|
+
yxer config set-local-client-id <clientId>
|
|
19
|
+
yxer accounts list [platform] [--name 关键词] [--status 1] [--page 1] [--size 20] [--all] [--json]
|
|
20
|
+
yxer query account-overviews --platform P [--name 关键词] [--group 分组] [--login-status 1] [--member-id ID] [--page 1] [--size 10]
|
|
21
|
+
yxer query content-overviews [--platform P] [--account-id ID] [--publish-user-id ID] [--type video|article|miniVideo|dynamic] [--title 关键词] [--publish-start-time 毫秒] [--publish-end-time 毫秒]
|
|
22
|
+
yxer query proxies [--size 9999]
|
|
23
|
+
yxer query proxy-areas
|
|
24
|
+
yxer update-account <account_id> [--proxy-id ID] [--kuaidaili-area CODE] [--remark 文本] [--group ID] --dry-run
|
|
25
|
+
yxer skill show
|
|
26
|
+
yxer skill sync [--global]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 规则
|
|
30
|
+
|
|
31
|
+
- 首次使用、环境不明、或失败排查后,先 `yxer doctor`
|
|
32
|
+
- `doctor` 失败时先修环境,不继续业务流程
|
|
33
|
+
- 涉及本机发布前的 `clientId` 判断时,先查询现有配置和账号列表
|
|
34
|
+
- `yxer accounts list` 默认查第 `1` 页、每页 `20` 条;传 `--page`、`--size` 可控制单页范围,传 `--all` 时才继续翻页
|
|
35
|
+
- `yxer update-account` 是写操作,正式执行前必须先用同一参数执行 `--dry-run`
|
|
36
|
+
- 命中多个账号时,结构化列出候选并让用户确认;只有一个可用账号时可自动选中并说明
|
|
37
|
+
- 用户明确说“先不要发布,只查环境/账号”时,完成本域后直接停下,不擅自继续发布流程
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 草稿与素材库
|
|
2
|
+
|
|
3
|
+
适用范围:用户要保存草稿、登记素材、上传素材到素材库,或先存资源再继续发布。
|
|
4
|
+
|
|
5
|
+
**CRITICAL - 用户说“草稿”时,MUST 先区分蚁小二草稿、平台草稿、还是仅上传素材;禁止自行猜测。**
|
|
6
|
+
|
|
7
|
+
## 读取顺序
|
|
8
|
+
|
|
9
|
+
1. 草稿任务:[`../workflows/draft-workflow.md`](../workflows/draft-workflow.md)
|
|
10
|
+
2. 素材任务:[`../workflows/material-workflow.md`](../workflows/material-workflow.md)
|
|
11
|
+
3. 若随后要直接发布,再切回 [`./publish.md`](./publish.md)
|
|
12
|
+
|
|
13
|
+
## 常用命令
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
yxer draft save <payload.json> [--dry-run]
|
|
17
|
+
yxer material add --file <文件路径或URL> [--thumb <缩略图路径或URL>] [--type image|video|file] [--dry-run]
|
|
18
|
+
yxer upload --file <file_path> --bucket material-library
|
|
19
|
+
yxer upload --url <resource_url> --bucket material-library
|
|
20
|
+
yxer material create <payload.json> [--dry-run]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 决策规则
|
|
24
|
+
|
|
25
|
+
- 用户只说“保存草稿”时,先区分蚁小二草稿和平台草稿,不要自行猜测
|
|
26
|
+
- 用户只想把资源放进素材库时,优先 `material add`
|
|
27
|
+
- 用户已有上传结果,只差登记素材时,再用 `material create`
|
|
28
|
+
- 素材任务不自动进入发布主流程;只有用户明确要“上传后马上发布”时,再切回发布域
|
|
29
|
+
- 用户明确说“先存一下,别发”时,停在本域,不擅自回切发布域
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 安装、升级与同步
|
|
2
|
+
|
|
3
|
+
适用范围:用户要安装 skill、重新同步、升级 CLI、查看宿主如何接入该技能。
|
|
4
|
+
|
|
5
|
+
**CRITICAL - 用户意图是安装、升级或同步时,先完成本域动作,不要跳到发布流程里“顺手再发一次”验证。**
|
|
6
|
+
|
|
7
|
+
## 优先读取
|
|
8
|
+
|
|
9
|
+
1. [`../cli/skill-install.md`](../cli/skill-install.md)
|
|
10
|
+
2. [`../cli-install-uninstall.md`](../cli-install-uninstall.md)
|
|
11
|
+
|
|
12
|
+
## 常用命令
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
yxer skill show
|
|
16
|
+
yxer skill sync
|
|
17
|
+
yxer skill sync --global
|
|
18
|
+
yxer --version
|
|
19
|
+
yxer doctor
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 安装命令
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
yxer skill sync
|
|
26
|
+
yxer skill sync --global
|
|
27
|
+
npx skills add "<repo>\\skills\\yixiaoer" -y
|
|
28
|
+
npx skills add "<repo>\\skills\\yixiaoer" -g -y
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 规则
|
|
32
|
+
|
|
33
|
+
- 如果 CLI 来自 npm 成品包,优先使用 `yxer skill sync`,让本地随包 skill 直接同步到宿主
|
|
34
|
+
- `yxer --version` 升级后,应提示重新同步 skill
|
|
35
|
+
- `SKILL.md` 或 `references/` 中影响 Agent 行为的文档更新后,应提示重新同步
|
|
36
|
+
- `yxer doctor` 返回 `_notice.skills` 时,优先执行 `yxer skill sync`
|
|
37
|
+
- 用户明确说“只想同步 skill / 看安装方法”时,完成本域说明后直接停下
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# 发布与 Payload
|
|
2
|
+
|
|
3
|
+
适用范围:用户要发布视频、图文、文章,或要修订发布 payload、解释字段归属、确认发布通道。
|
|
4
|
+
|
|
5
|
+
**CRITICAL - 只要用户意图落在本域,MUST 先读取下方 workflow,再决定是否执行任何 `prepare`、字段查询、`validate` 或 `publish`。**
|
|
6
|
+
**BLOCKING REQUIREMENT - 未完成 `doctor`、账号确认、`prepare`、`schema fields`、`validate`、`publish --dry-run` 前,绝对禁止正式 `publish`。**
|
|
7
|
+
|
|
8
|
+
## 读取顺序
|
|
9
|
+
|
|
10
|
+
1. [`../workflows/common-rules.md`](../workflows/common-rules.md)
|
|
11
|
+
2. [`../workflows/account-selection.md`](../workflows/account-selection.md)
|
|
12
|
+
3. [`../workflows/local-vs-cloud.md`](../workflows/local-vs-cloud.md)
|
|
13
|
+
4. [`../workflows/payload-sourcing.md`](../workflows/payload-sourcing.md)
|
|
14
|
+
5. 按类型继续读取:
|
|
15
|
+
- 图文:[`../workflows/publish-imageText.md`](../workflows/publish-imageText.md)
|
|
16
|
+
- 视频:[`../workflows/publish-video.md`](../workflows/publish-video.md)
|
|
17
|
+
- 文章:[`../workflows/publish-article.md`](../workflows/publish-article.md)
|
|
18
|
+
|
|
19
|
+
## 意图路由
|
|
20
|
+
|
|
21
|
+
- 用户只说“帮我发一下”“发个抖音/小红书”“发视频/图文/文章”时,直接进入本域,并继续按类型读取 workflow。
|
|
22
|
+
- 用户明确说“先别发,只生成 payload”“帮我修 payload”时,仍进入本域,但最终动作只停留在 payload 修订或 `validate` / `publish --dry-run`。
|
|
23
|
+
- 用户明确说“查为什么发失败了”“解释报错”时,先切 [`./troubleshooting.md`](./troubleshooting.md),不要直接重试正式发布。
|
|
24
|
+
- 用户明确说“上传素材后马上发”时,先完成素材流程,再回切本域继续执行发布主流程。
|
|
25
|
+
|
|
26
|
+
## 平台差异入口
|
|
27
|
+
|
|
28
|
+
- 总索引:[`../platforms/index.md`](../platforms/index.md)
|
|
29
|
+
- 视频平台:[`../platforms/video/index.md`](../platforms/video/index.md)
|
|
30
|
+
- 图文平台:[`../platforms/imageText/index.md`](../platforms/imageText/index.md)
|
|
31
|
+
- 文章平台:[`../platforms/article/index.md`](../platforms/article/index.md)
|
|
32
|
+
|
|
33
|
+
只有在 `prepare` / `schema get` 之后,且当前 workflow 无法回答平台差异时,才继续读取具体平台文档。
|
|
34
|
+
|
|
35
|
+
## 强制门禁
|
|
36
|
+
|
|
37
|
+
- 未执行 `yxer doctor` 不进入发布流程
|
|
38
|
+
- 未确认 `accounts list` 中账号 `status=1` 不继续
|
|
39
|
+
- 未执行 `prepare` / `schema fields` 不组装 payload;只有需要 payload 骨架时再补 `schema get`
|
|
40
|
+
- 未先 `validate` 与 `publish --dry-run` 不执行正式 `publish`
|
|
41
|
+
|
|
42
|
+
## 常用命令
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
yxer accounts list [platform] [--name 关键词] [--status 1] [--json]
|
|
46
|
+
yxer prepare <platform> <type>
|
|
47
|
+
yxer schema get <platform> <type>
|
|
48
|
+
yxer upload --file <file_path>
|
|
49
|
+
yxer upload --url <resource_url>
|
|
50
|
+
yxer query categories <account_id> [--type video|article]
|
|
51
|
+
yxer query locations <account_id> [--query 关键词] [--next-page TOKEN]
|
|
52
|
+
yxer query music <account_id> [--query 关键词] [--category-id ID] [--category-name 名称] [--next-page TOKEN]
|
|
53
|
+
yxer query music-categories <account_id>
|
|
54
|
+
yxer query goods <account_id> [--query 关键词] [--next-page TOKEN]
|
|
55
|
+
yxer query collections <account_id> [--type video|article]
|
|
56
|
+
yxer query miniapps <account_id> [--query 关键词]
|
|
57
|
+
yxer query syncapps <account_id>
|
|
58
|
+
yxer query games <account_id> [--query 关键词]
|
|
59
|
+
yxer query hot-events <account_id> [--type video|article]
|
|
60
|
+
yxer query groups <account_id>
|
|
61
|
+
yxer query activities <account_id> [--type video|article] [--category-id ID] [--query 关键词]
|
|
62
|
+
yxer query challenges <account_id> [--query 关键词] [--type video] [--next-page TOKEN]
|
|
63
|
+
yxer validate <platform> <type> <payload.json> [--publish-channel cloud|local] [--client-id <clientId>]
|
|
64
|
+
yxer publish <type> <platform> <payload.json> [--publish-channel cloud|local] [--client-id <clientId>] --dry-run
|
|
65
|
+
yxer publish <type> <platform> <payload.json> [--publish-channel cloud|local] [--client-id <clientId>]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 决策提示
|
|
69
|
+
|
|
70
|
+
- 用户只说“帮我发”时,默认云发布;明确说“本机发布”“客户端发布”时切到本机通道。
|
|
71
|
+
- 用户要“只生成 payload”时,仍要先走 `prepare` / `schema get` 和字段查询纪律。
|
|
72
|
+
- 用户要填分类、位置、音乐、合集、话题、商品时,先查询,再回填完整对象。
|
|
73
|
+
- 用户要挂载小程序或选择同步发布应用时,先执行 `yxer query miniapps` / `yxer query syncapps`,再把 CLI 返回对象完整回填到 payload。
|
|
74
|
+
- 用户要挂载游戏、绑定热点或选择群聊时,先执行 `yxer query games` / `yxer query hot-events` / `yxer query groups`,再把 CLI 返回对象完整回填到 payload。
|
|
75
|
+
- 用户要按音乐分类找配乐或参加平台活动时,先执行 `yxer query music-categories` / `yxer query activities`,再把 CLI 返回对象完整回填到 payload。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 记录与排查
|
|
2
|
+
|
|
3
|
+
适用范围:用户要查看发布记录、排查失败、解释为什么 `validate` 或 `publish` 报错。
|
|
4
|
+
|
|
5
|
+
**CRITICAL - 进入本域后,先定位失败阶段,再决定回退到哪一步;不要把“正式重试发布”当成第一反应。**
|
|
6
|
+
|
|
7
|
+
## 优先读取
|
|
8
|
+
|
|
9
|
+
1. [`../workflows/publish-troubleshooting.md`](../workflows/publish-troubleshooting.md)
|
|
10
|
+
2. 必要时回读:
|
|
11
|
+
- [`../workflows/common-rules.md`](../workflows/common-rules.md)
|
|
12
|
+
- [`../workflows/local-vs-cloud.md`](../workflows/local-vs-cloud.md)
|
|
13
|
+
- [`./publish.md`](./publish.md)
|
|
14
|
+
|
|
15
|
+
## 常用命令
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
yxer query records [--platform P] [--limit N] [--status S] [--json]
|
|
19
|
+
yxer validate <platform> <type> <payload.json> [--publish-channel cloud|local] [--client-id <clientId>]
|
|
20
|
+
yxer publish <type> <platform> <payload.json> [--publish-channel cloud|local] [--client-id <clientId>] --dry-run
|
|
21
|
+
yxer doctor
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 排查规则
|
|
25
|
+
|
|
26
|
+
- 先给出错误阶段和错误摘要,再决定回到哪一步修复
|
|
27
|
+
- `validate` 失败时,优先回查 `prepare`、`schema get` 和字段来源
|
|
28
|
+
- 云发布报代理问题时,可建议改本机发布
|
|
29
|
+
- 本机发布报客户端不在线时,提示用户启动并登录客户端,或改回云发布
|
|
30
|
+
- 用户只说“解释下这条报错”时,可先停留在本域做解释和修复建议,不擅自触发新的发布写操作
|