chore: auto release commit (2026-06-08 14:19:45)
All checks were successful
技能自动化发布 / release (push) Successful in 6s
All checks were successful
技能自动化发布 / release (push) Successful in 6s
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# 通用业务技能模板 CLI 模板
|
||||
# 通用业务技能模板 CLI 标准
|
||||
|
||||
将 `{baseDir}` 替换为技能根目录(含 `SKILL.md`、`scripts/` 的目录)。所有命令通过 `python {baseDir}/scripts/main.py` 调用。
|
||||
|
||||
@@ -10,9 +10,16 @@ python {baseDir}/scripts/main.py config-path
|
||||
python {baseDir}/scripts/main.py version
|
||||
```
|
||||
|
||||
## config-path(配置路径)
|
||||
## 标准行为
|
||||
|
||||
输出 JSON,便于排查用户 `.env` 落盘位置:
|
||||
- **任意 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 artifact,CLI 应打印录屏路径、录屏日志、视频/音频诊断(见 `task_run_support._print_video_summary`)。
|
||||
|
||||
## config-path(配置路径)
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -22,55 +29,59 @@ python {baseDir}/scripts/main.py version
|
||||
}
|
||||
```
|
||||
|
||||
启动任意 CLI 命令前会自动执行 `bootstrap_skill_config()`(首次 copy `.env.example`,升级后合并缺失 key)。
|
||||
|
||||
## health 标准输出(runtime diagnostics)
|
||||
|
||||
`health` 委托 `jiangchang_skill_core.collect_runtime_diagnostics`,输出统一 runtime 诊断。典型字段:
|
||||
`health` 委托 `jiangchang_skill_core.collect_runtime_diagnostics`,典型字段:
|
||||
|
||||
- `python_executable` — 当前 Python 解释器路径
|
||||
- `platform_kit_version` / `platform_kit_min_version` — 已安装与要求的 platform-kit 版本
|
||||
- `platform_kit_version` / `platform_kit_min_version` / `platform_kit_version_ok`
|
||||
- `jiangchang_skill_core_file` — 公共库加载来源(若来自技能目录副本会报 warning)
|
||||
- `media_assets_root` — 共享媒体资源根目录
|
||||
- `ffmpeg_path` / `ffmpeg_available` — ffmpeg 探测结果
|
||||
- `background_music_mp3_count` — 可用背景音乐数量
|
||||
- `media_assets_root`、`ffmpeg_path`、`ffmpeg_available`、`background_music_mp3_count`
|
||||
- `runtime_issue[warning|error]` — 非致命/致命问题列表
|
||||
- `env_path` / `env_exists` / `example_path` — 用户 `.env` 与仓库模板路径(不输出敏感值)
|
||||
|
||||
`health` **只读诊断**,不下载、不修复 media-assets,不执行业务 DB / 邮箱 / 订单等检查。
|
||||
- `env_path` / `env_exists` / `example_path` — 用户 `.env` 与仓库模板路径
|
||||
|
||||
## 通用业务命令骨架
|
||||
|
||||
模板默认提供以下命令(复制后按需保留或扩展):
|
||||
|
||||
```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 disburse --status failed
|
||||
python {baseDir}/scripts/main.py logs --task-type demo --status failed
|
||||
python {baseDir}/scripts/main.py log-get <log_id>
|
||||
```
|
||||
|
||||
含义:
|
||||
- `run`:执行一次任务(具体语义由你的 skill 决定)
|
||||
- `logs`:列出最近 N 条任务日志,可按 task_type / status / target 过滤
|
||||
- `log-get`:按 log_id 查看单条任务日志(JSON)
|
||||
| 命令 | 用途 |
|
||||
|------|------|
|
||||
| `run` | 执行一次任务 |
|
||||
| `logs` | 列出最近 N 条任务日志 |
|
||||
| `log-get` | 按 log_id 查看单条任务日志(JSON) |
|
||||
|
||||
## 若你的技能是发布类
|
||||
## 查询/导出类(可选)
|
||||
|
||||
可以把 `run` 命令对外别名为 `publish`,参数 `--target` 别名为 `--account-id`,参数 `--input-id` 保持不变。
|
||||
复制后按需增加,例如:`contacts`、`contact-get`、`export` 或业务等价命令。
|
||||
|
||||
## 若你的技能依赖兄弟技能
|
||||
|
||||
使用 `service.sibling_bridge.call_sibling_json(skill_slug, args)`,不要硬编码兄弟技能名到 sibling_bridge.py 自身。
|
||||
使用 `service.sibling_bridge.call_sibling_json(skill_slug, args)`,不要硬编码兄弟技能名到 `sibling_bridge.py` 自身;并在 `SKILL.md` 声明 `dependencies.required`。
|
||||
|
||||
```bash
|
||||
# 假设 base 与兄弟技能同级
|
||||
python {baseDir}/../<sibling-skill-slug>/scripts/main.py ...
|
||||
## 手工排查命令(推荐)
|
||||
|
||||
**建议使用宿主共享 python-runtime**,避免技能目录内临时 venv 加载不到公共库:
|
||||
|
||||
```text
|
||||
Windows:
|
||||
{JIANGCHANG_DATA_ROOT}\python-runtime\.venv\Scripts\python.exe {baseDir}\scripts\main.py health
|
||||
|
||||
通用:
|
||||
<shared-python> {baseDir}/scripts/main.py health
|
||||
```
|
||||
|
||||
`<shared-python>` 通常位于 `{JIANGCHANG_DATA_ROOT}/python-runtime/.venv`。
|
||||
|
||||
**不建议**在生产/测试机使用技能目录内 `uv run python`,以免加载不到共享 runtime 中的 `jiangchang-platform-kit` / `playwright`。
|
||||
|
||||
## 模板约定
|
||||
|
||||
- 最小模板至少保留 `health` / `version`
|
||||
- 最小模板至少保留 `health` / `config-path` / `version`
|
||||
- 通用业务技能建议使用 `run` / `logs` / `log-get`
|
||||
- 不要再用旧模板的 `publish` / `--account-id` / `--article-id` 命名
|
||||
|
||||
Reference in New Issue
Block a user