chore: auto release commit (2026-06-17 09:21:19)
All checks were successful
技能自动化发布 / release (push) Successful in 6s
All checks were successful
技能自动化发布 / release (push) Successful in 6s
This commit is contained in:
@@ -51,11 +51,13 @@ scripts/service/<domain>_adapter/
|
||||
real_rpa.py # 真实系统 RPA(占位,谨慎实现)
|
||||
```
|
||||
|
||||
模板示例:
|
||||
模板示例(均在 `examples/`,**不在** `scripts/`):
|
||||
|
||||
- **四档骨架(占位)**:`scripts/service/example_adapter/` — 复制改名后补齐业务 adapter
|
||||
- **仿真浏览器 RPA 完整案例**:`examples/simulator_browser_rpa/` — mock + simulator_rpa + sandbox 页面 + 测试
|
||||
- **仿真浏览器 RPA 完整案例**:`examples/simulator_browser_rpa/` — mock + simulator_rpa + sandbox 页面 + adapter 分层 + 测试
|
||||
- **真实浏览器 RPA 完整案例**:`examples/real_browser_rpa/` — 登录/验证码/滚动采集
|
||||
- **真实 API / 仿真 API**:`examples/real_api/`、`examples/simulator_api/` — 当前为规划占位,尚未沉淀可复制实现
|
||||
|
||||
复制 adapter 分层时,以 `examples/simulator_browser_rpa/scripts/service/adapter/` 为权威参考,在新技能中创建 `scripts/service/<domain>_adapter/` 并按 README copy map 选择性复制。
|
||||
|
||||
> 先判断属于四象限哪一种(`real_browser_rpa` / `real_api` / `simulator_browser_rpa` / `simulator_api`),再读对应 `examples/*/README.md`。示例是**参考架构与边界**,不是业务代码原样复制。
|
||||
|
||||
|
||||
@@ -160,18 +160,17 @@ scripts/
|
||||
若 skill 需要浏览器/桌面/手机自动化,按以下顺序落地:
|
||||
|
||||
1. **先读三份标准**:`RPA.md`(三端范式与反反爬)、`CONFIG.md`(`.env` 落盘与读取)、`ADAPTER.md`(四档 adapter)。
|
||||
2. **从模板复制骨架**:
|
||||
- `scripts/service/example_adapter/` → 改名为 `scripts/service/<domain>_adapter/`(仅 adapter 四档骨架,**不等同于**真实浏览器 RPA 成功案例)
|
||||
- 若是 **真实浏览器 RPA**(真实网站、登录态、验证码、滚动采集),**必须先读** `examples/real_browser_rpa/README.md`,再按需参考:
|
||||
2. **从 examples 选择性复制**(不要整包照搬 `examples/<mode>/`,见各 example README 的 copy map):
|
||||
- 若是 **真实浏览器 RPA**(真实网站、登录态、验证码、滚动采集),**必须先读** `examples/real_browser_rpa/README.md`,再按需复制到 `scripts/service/`:
|
||||
- `examples/real_browser_rpa/scripts/service/browser_session.py`
|
||||
- `examples/real_browser_rpa/scripts/service/human_verification.py`
|
||||
- `examples/real_browser_rpa/scripts/service/task_rpa.py`
|
||||
- `examples/real_browser_rpa/scripts/service/account_client.py`
|
||||
- 若是 **仿真浏览器 RPA**(自有 sandbox、表单批量提交、可控 DOM),**必须先读** `examples/simulator_browser_rpa/README.md`,再按需参考:
|
||||
- 若是 **仿真浏览器 RPA**(自有 sandbox、表单批量提交、可控 DOM),**必须先读** `examples/simulator_browser_rpa/README.md`,再按需复制到 `scripts/service/`:
|
||||
- `examples/simulator_browser_rpa/scripts/service/browser_session.py`
|
||||
- `examples/simulator_browser_rpa/scripts/service/adapter/`
|
||||
- `examples/simulator_browser_rpa/scripts/service/task_service.py`
|
||||
- `examples/simulator_browser_rpa/sandbox/demo_app.html`
|
||||
- `sandbox/demo_app.html` 仅留在 examples,不进入生产 skill
|
||||
3. **只用共享库,不在 skill 里重写反反爬**:
|
||||
```python
|
||||
from jiangchang_skill_core import config
|
||||
@@ -343,7 +342,7 @@ metadata:
|
||||
|
||||
**`references/`**(Agent 运行/编排/调用时渐进加载)
|
||||
|
||||
- `README.md` — Agent 参考索引
|
||||
- `README.md` — Agent 参考索引(**不是**市场说明;不得含 YAML frontmatter 或 `description`)
|
||||
- `CLI.md` — 命令、参数、默认值、兄弟技能调用方式
|
||||
- `SCHEMA.md` — 数据库路径、核心表结构、日志表结构
|
||||
- 可按需增加 `ERRORS.md`、`INTEGRATION.md` 等编排向补充
|
||||
@@ -529,6 +528,20 @@ python scripts/main.py <your-command>
|
||||
|
||||
## 15. 发布到正式环境验证
|
||||
|
||||
### release workflow 通道
|
||||
|
||||
`.github/workflows/release_skill.yaml` 默认引用:
|
||||
|
||||
```yaml
|
||||
uses: admin/jiangchang-platform-kit/.github/workflows/reusable-release-skill.yaml@main
|
||||
```
|
||||
|
||||
约定如下:
|
||||
|
||||
- `jiangchang-platform-kit` 的 `main` 分支即稳定通道;kit 的开发、测试、验证须在合并 `main` 前完成。
|
||||
- skill **不需要**锁定 workflow 版本(不要改为 `@v1`、`@v1.0.x` 等)。
|
||||
- skill 运行时最低能力要求通过 `SKILL.md` 的 `metadata.openclaw.platform_kit_min_version` 声明。
|
||||
|
||||
在执行 `release.ps1` 之前,必须先在本地确认 `python tests/run_tests.py -v` 通过。测试不通过不得发起正式发布。
|
||||
|
||||
当本地开发、自测和联调完成后,还需要把 skill 发布到正式环境做一次完整验证。建议技术人员严格按下面顺序执行,不要跳步。
|
||||
|
||||
@@ -99,15 +99,15 @@ BrowserType.launch_persistent_context: Arguments can not specify page to be open
|
||||
> - 再参考 `examples/real_browser_rpa/scripts/service/human_verification.py`
|
||||
> - 再参考 `examples/real_browser_rpa/scripts/service/task_rpa.py`
|
||||
|
||||
### 1.4 安装
|
||||
### 1.4 Playwright 与安装边界
|
||||
|
||||
生产/宿主运行:`playwright` 由共享 runtime 提供,无需在技能内 `pip install`。
|
||||
- Playwright 是宿主共享 runtime 提供的通用 Python 包能力;**正式 skill 不负责安装**。
|
||||
- skill 侧**禁止**在 `requirements.txt`、安装脚本、运行脚本、根 `README.md` 用户说明中加入 `playwright install`、`pip install playwright` 或任何自动安装浏览器驱动的逻辑。
|
||||
- 真实浏览器 RPA 默认使用**系统 Chrome/Edge**,由宿主/runtime 管理。
|
||||
- **不要**执行 `playwright install chromium`、`playwright install chrome` 等浏览器驱动安装命令。
|
||||
- 仅当**本地独立开发环境排障**时,开发者可手工检查或补装 Python 包 `playwright`;该操作**不得**进入 skill 交付文件与自动流程。
|
||||
|
||||
独立本地开发环境若缺少 Python 包 `playwright` 时,可手动执行:
|
||||
|
||||
```bash
|
||||
pip install playwright # 仅独立开发补装;用系统 Chrome,无需 playwright install chromium
|
||||
```
|
||||
页面启动仍遵循 1.2:`launch_persistent_context` 的 `args` 只能放 Chrome 启动参数,**不能把 URL 塞进 `args`**;打开页面必须通过 `new_page()` + `goto()`,或通过真实地址栏/点击进入。
|
||||
|
||||
### 引用方式
|
||||
|
||||
@@ -138,7 +138,7 @@ from jiangchang_skill_core.rpa.stealth import stealth_enabled, STEALTH_INIT_SCRI
|
||||
- `examples/real_browser_rpa/scripts/service/task_rpa.py` — RPA 主流程
|
||||
- `examples/real_browser_rpa/scripts/service/account_client.py` — account-manager CLI 封装
|
||||
|
||||
模板内 adapter 仿真示例(`scripts/service/example_adapter/sim_rpa.py`)仅用于 **adapter 四档骨架**,不能替代真实浏览器 RPA 规范。
|
||||
仿真浏览器 RPA 的 adapter 分层权威参考见 `examples/simulator_browser_rpa/scripts/service/adapter/`,**不能**替代真实浏览器 RPA 规范。
|
||||
|
||||
### 1.6 仿真浏览器 RPA 示例(必读)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user