## 诊断流程样例:Edge 扩展上架前检查
### 输入
- 扩展包:`dist/edge/my-extension-1.6.2.3.zip`
- Store 素材:`store/edge/`
- 仓库根目录:`.`
- 发布版本:`1.6.2.3`
### 命令
```bash
python scripts/edge_release_preflight.py \
--zip dist/edge/my-extension-1.6.2.3.zip \
--store-assets store/edge \
--repo . \
--release-version 1.6.2.3
```
### 核心检查
| 检查项 | 输入来源 | 成功信号 | 失败信号 |
| --- | --- | --- | --- |
| Secret 扫描 | zip 解压内容、manifest、配置文件 | 未命中 OpenRouter key / 本机 env / 硬编码 token | 输出命中文件与字段,要求改成用户自己的 key 配置 |
| 品牌/IP 扫描 | icon、SVG、store 文案、README 片段 | 独立品牌名和自有图标 | 命中 Obsidian logo、官方 Web Clipper 名称或官方营销文案 |
| Store listing 完整性 | `store/edge` 的 locale、截图、说明 | 只保留已完成语言,截图和认证说明完整 | 多语言 listing 未完成、缺截图、缺认证说明 |
| 发布授权 | `gh auth status`、tag、release 草稿 | token scope 足够,tag/release 可创建 | GitHub CLI 缺 workflow/release 权限,需要单独授权或手动上传 |
### 输出
- `out/release-preflight/1.6.2.3/report.md`
- `out/release-preflight/1.6.2.3/report.json`
### 判定
通过时输出:`READY_FOR_PARTNER_CENTER_UPLOAD`。
失败时输出:`BLOCKED_PRE_RELEASE`,并按阻塞级别列出必须先处理的问题,例如:
1. `HIGH`: zip 中发现疑似 OpenRouter key。
2. `HIGH`: store icon 仍包含官方 Obsidian logo。
3. `MEDIUM`: `zh-TW` listing 未完成,建议补齐或删除该语言。
4. `LOW`: GitHub release token 缺 scope,不阻塞 Edge 上传,但阻塞自动 release。