chore: auto release commit (2026-07-03 12:09:55)
All checks were successful
技能自动化发布 / release (push) Successful in 5s

This commit is contained in:
2026-07-03 12:09:55 +08:00
parent 7136689efe
commit 4a0be93b4a
22 changed files with 1613 additions and 575 deletions

View File

@@ -1,6 +1,6 @@
# 通用业务技能模板 CLI 标准
# Amazon 结算报表自动下载 CLI
`{baseDir}` 替换为技能根目录(含 `SKILL.md``scripts/` 的目录)。所有命令通过 `python {baseDir}/scripts/main.py` 调用。
`{baseDir}` 替换为技能根目录。入口:`python {baseDir}/scripts/main.py`
## 最小命令
@@ -10,21 +10,60 @@ python {baseDir}/scripts/main.py config-path
python {baseDir}/scripts/main.py version
```
## 标准行为
## run — 下载结算报表
- **任意 CLI 启动前**执行 `bootstrap_skill_config()``main.py``cli.app.main()` 均触发)。
- **`health`**:只读 runtime 诊断,**不下载、不修复 media-assets不执行业务动作**;不输出敏感值。
- **`config-path`**:输出 JSON包含 `skill``env_path``example_path`
- **`version`**:输出 JSON`version``skill`)。
- **`run`**:长时间无 stdout **不代表卡死**;应通过 `logs` / `log-get` 排查。
- **任务完成后**若有 video artifactCLI 应打印录屏路径、录屏日志、视频/音频诊断(见 `task_run_support._print_video_summary`)。
```bash
python {baseDir}/scripts/main.py run \
--date-from 2025-12-01 \
--date-to 2025-12-31 \
[--seller-code AMA1OF6T]
```
## config-path配置路径
| 参数 | 必填 | 默认 | 说明 |
|------|------|------|------|
| `--date-from` | 否 | `2025-12-01` | 起始日期 YYYY-MM-DD |
| `--date-to` | 否 | `2025-12-31` | 结束日期 YYYY-MM-DD |
| `--seller-code` | 否 | (页面首个 seller | Amazon 店铺代码 |
### 成功 stdoutJSON最后一行
```json
{
"skill": "your-skill-slug",
"env_path": "{DATA_ROOT}/{USER_ID}/your-skill-slug/.env",
"ok": true,
"job_id": "abc123",
"file_path": "{DATA_ROOT}/{USER_ID}/download-settlement-report-amazon/downloads/settlement_....xlsx",
"filename": "settlement_....xlsx",
"date_from": "2025-12-01",
"date_to": "2025-12-31"
}
```
### 失败
- 退出码 `1`
- `ERROR:INVALID_ARGS` / `ERROR:ENTITLEMENT` 等前缀,或 JSON 中 `"ok": false`
## logs / log-get
```bash
python {baseDir}/scripts/main.py logs [--limit 10] [--task-type download_settlement] [--status success]
python {baseDir}/scripts/main.py log-get <log_id>
```
## 运行档位
| OPENCLAW_TEST_TARGET | 行为 |
|----------------------|------|
| `mock`(默认) | 离线 mock不写真实浏览器 |
| `simulator_rpa` | Playwright 操作线上 sandbox Reports 页 |
| `real_rpa` | 未实现,回退 mock |
## config-path 示例
```json
{
"skill": "download-settlement-report-amazon",
"env_path": "{DATA_ROOT}/{USER_ID}/download-settlement-report-amazon/.env",
"example_path": "{skill_root}/.env.example"
}
```
@@ -35,36 +74,10 @@ python {baseDir}/scripts/main.py version
- `python_executable` — 当前 Python 解释器路径
- `platform_kit_version` / `platform_kit_min_version` / `platform_kit_version_ok`
- `jiangchang_skill_core_file` — 公共库加载来源(若来自技能目录副本会报 warning
- `media_assets_root``ffmpeg_path``ffmpeg_available``background_music_mp3_count`
- `runtime_issue[warning|error]` — 非致命/致命问题列表
- `env_path` / `env_exists` / `example_path` — 用户 `.env` 与仓库模板路径
- `jiangchang_skill_core_file` — 公共库加载来源
- `env_path` / `env_exists` / `example_path`
## 通用业务命令骨架
```bash
python {baseDir}/scripts/main.py run
python {baseDir}/scripts/main.py run -t <target> -i <input_id>
python {baseDir}/scripts/main.py logs
python {baseDir}/scripts/main.py logs --task-type demo --status failed
python {baseDir}/scripts/main.py log-get <log_id>
```
| 命令 | 用途 |
|------|------|
| `run` | 执行一次任务 |
| `logs` | 列出最近 N 条任务日志 |
| `log-get` | 按 log_id 查看单条任务日志JSON |
## 查询/导出类(可选)
复制后按需增加,例如:`contacts``contact-get``export` 或业务等价命令。
## 若你的技能依赖兄弟技能
使用 `service.sibling_bridge.call_sibling_json(skill_slug, args)`,不要硬编码兄弟技能名到 `sibling_bridge.py` 自身;并在 `SKILL.md` 声明 `dependencies.required`
## 手工排查命令(推荐)
## 手工排查(共享 python-runtime
**建议使用宿主共享 python-runtime**,避免技能目录内临时 venv 加载不到公共库:
@@ -79,9 +92,3 @@ Windows:
`<shared-python>` 通常位于 `{JIANGCHANG_DATA_ROOT}/python-runtime/.venv`
**不建议**在生产/测试机使用技能目录内 `uv run python`,以免加载不到共享 runtime 中的 `jiangchang-platform-kit` / `playwright`
## 模板约定
- 最小模板至少保留 `health` / `config-path` / `version`
- 通用业务技能建议使用 `run` / `logs` / `log-get`
- 不要再用旧模板的 `publish` / `--account-id` / `--article-id` 命名