chore: auto release commit (2026-06-08 14:19:45)
All checks were successful
技能自动化发布 / release (push) Successful in 6s

This commit is contained in:
2026-06-08 14:19:46 +08:00
parent 5b555e4313
commit a24f6809da
23 changed files with 701 additions and 184 deletions

View File

@@ -4,23 +4,23 @@
## 核心原则
1. **`.env.example` 进仓库**:带注释的全量默认配置,是配置项的"单一事实来源"
2. **首次运行自动 copy**`scripts/main.py` 启动与 `cli.app.main()` 均会调用 `util.config_bootstrap.bootstrap_skill_config()`,把仓库根目录 `.env.example` 复制到
1. **三层优先级**`进程环境变量` > `{数据目录}/.env` > 仓库 `.env.example` 默认值
2. **`.env.example` 进仓库**:带注释的全量默认配置,是配置项的"单一事实来源"。
3. **首次运行自动 copybootstrap**`scripts/main.py` 启动与 `cli.app.main()` 均会调用 `util.config_bootstrap.bootstrap_skill_config()`,把仓库根目录 `.env.example` 复制到
`{CLAW_DATA_ROOT}/{user}/{slug}/.env`**已存在则不整体覆盖**,保护用户改过的值)。
3. **技能升级合并缺失项**`merge_missing_env_keys` 会把 `.env.example` 中新增、但用户 `.env` 尚未包含的 key **追加**进去(带 `comment_skill` 注释块)。
4. **三级优先级读取**`进程环境变量` > `数据目录/.env` > `.env.example 默认值`
4. **技能升级合并缺失项**`merge_missing_env_keys` 会把 `.env.example` 中新增、但用户 `.env` 尚未包含的 key **追加**进去(带注释块)。
5. **敏感信息绝不进 `.env`**:密码/密钥/口令走 account-manager 的 `secret-ref`(见下"红线")。
## 标准配置项
## 标准配置项`.env` 分组)
每个 skill 的 `.env.example` 至少包含这些(按需增减):
每个 skill 的 `.env.example` 至少包含这些通用项(按需增减):
```ini
# ── 运行模式(对应 adapter 四档,见 ADAPTER.md──
OPENCLAW_TEST_TARGET=simulator_rpa # mock | simulator_rpa | real_api | real_rpa
# ── 运行模式 / adapter 档位(见 ADAPTER.md──
OPENCLAW_TEST_TARGET=mock # mock | simulator_rpa | real_api | real_rpa
# ── 目标系统 ──
TARGET_BASE_URL=https://sandbox.jc2009.com # 仿真/生产地址,可被进程环境变量覆盖
# ── 目标系统(示例占位,复制后改为业务地址)──
TARGET_BASE_URL=https://sandbox.jc2009.com
# ── 默认账号(仅非敏感标识;密码走 account-manager──
DEFAULT_LOGIN_ID=04110001
@@ -29,23 +29,24 @@ DEFAULT_LOGIN_ID=04110001
OPENCLAW_BROWSER_HEADLESS=0 # 0=有头(默认) 1=无头(CI)
OPENCLAW_PLAYWRIGHT_STEALTH=1 # 1=开启反检测指纹(默认)
# ── 存证 ──
OPENCLAW_RECORD_VIDEO=1 # 1=录屏+字幕+背景音+MP4成片RPA技能默认开,见 RPA.md
# ── 录屏与失败存证 ──
OPENCLAW_RECORD_VIDEO=1 # 1=录屏+字幕+旁白+背景音+MP4RPA 默认开,见 RPA.md
OPENCLAW_ARTIFACTS_ON_FAILURE=1 # 1=失败截图(默认)
# ── 节流 / 超时 ──
STEP_DELAY_MIN=1.0 # 步骤间随机等待下限(秒)
STEP_DELAY_MAX=5.0 # 步骤间随机等待上限(秒)
STEP_DELAY_MIN=1.0
STEP_DELAY_MAX=5.0
HUMAN_WAIT_TIMEOUT=180 # 滑块/验证码/2FA 等人工超时(秒)
```
**业务专属配置必须带技能前缀**(如 `DEMO_XXX``MY_SKILL_XXX`**不要污染全局命名空间**(禁止 `SCRAPE_1688_*``RECEIVE_ORDER_*` 等跨技能前缀写入模板)。
## 🚫 红线:敏感信息不进 `.env`
`.env` 只放**非敏感运行参数**模式、地址、开关、超时。密码、密钥、动态口令、token——
`.env` 只放**非敏感运行参数**(模式、地址、开关、超时、账号标识。密码、密钥、动态口令、token——
-**account-manager** 注册凭据,用 `--secret-storage env --secret-ref XXX` 引用;
- 真实值由宿主/用户通过环境变量注入,**不落任何文件、不进 git**。
- 参考 `disburse-payroll-icbc/scripts/cli/cmd_setup.py`:账号写入 account-manager密码只登记 `secret-ref`(如 `ICBC_SIM_PASSWORD`)。
- 真实值由宿主/用户通过进程环境变量注入,**不落任何文件、不进 git**。
`.gitignore` 必须包含:
@@ -79,31 +80,16 @@ config.get_bool("OPENCLAW_BROWSER_HEADLESS")
config.get_float("STEP_DELAY_MIN", 1.0)
```
`config-path` 命令输出 JSON`skill``env_path`(用户数据目录 `.env`)、`example_path`(仓库 `.env.example` 绝对路径)。
## health / config-path
### 引用方式
- **`health`**:输出 `collect_runtime_diagnostics` 字段(`platform_kit_version_ok``ffmpeg_path` 等),**不打印敏感值**;补充 `env_path` / `env_exists` / `example_path`
- **`config-path`**:输出 JSON包含 `skill``env_path`(用户数据目录 `.env`)、`example_path`(仓库 `.env.example` 绝对路径),便于排查落盘位置。
`jiangchang_skill_core.config` 来自共享 runtime 安装的 `jiangchang-platform-kit`;业务代码统一 `from jiangchang_skill_core import config`**不要在技能内复制 config.py**
## doctor / setup 命令(可选)
```python
from jiangchang_skill_core import config
from util.constants import SKILL_SLUG
from util.runtime_paths import get_skill_root
import os
每个 skill 可提供自检命令:
example = os.path.join(get_skill_root(), ".env.example")
config.ensure_env_file(SKILL_SLUG, example)
headless = config.get_bool("OPENCLAW_BROWSER_HEADLESS")
target = config.get("TARGET_BASE_URL")
timeout = config.get_int("HUMAN_WAIT_TIMEOUT", 180)
```
## doctor / setup 命令
每个 skill 应提供自检命令(参考 `disburse``test_doctor`
- `python scripts/main.py doctor`检查浏览器是否安装、Profile/账号是否就绪、`.env` 是否已落盘、设备(手机)是否连接。
- `python scripts/main.py doctor`检查浏览器、Profile/账号、`.env` 落盘、设备等。
- `python scripts/main.py setup`:初始化演示账号、首次落盘 `.env`
## 相关文档