同步技能全量内容:更新主说明、跨平台安装脚本与面板UI审计脚本

This commit is contained in:
yi
2026-10-10 19:03:24 +08:00
parent 5295c1cf58
commit 55478ce04a
5 changed files with 12 additions and 39 deletions
+8 -8
View File
@@ -1,13 +1,13 @@
# 技能安装与迁移说明 # 技能安装与迁移说明
技能名称:**panel-project-deploy** 技能名称:**project-init-panel-deploy**
用途:自动化克隆、初始化、品牌化、Docker 部署开源项目,并强制改造成炫酷科技感玻璃面板风格 UI; 用途:自动化克隆、初始化、品牌化、Docker 部署开源项目,并强制改造成炫酷科技感玻璃面板风格 UI;
同时对齐《开源软件改造部署外包服务合同》的交付物与验收标准。 同时对齐《开源软件改造部署外包服务合同》的交付物与验收标准。
## 一、目录内容 ## 一、目录内容
```text ```text
panel-project-deploy/ project-init-panel-deploy/
├── SKILL.md # 技能主文件(18 步工作流,必须先读) ├── SKILL.md # 技能主文件(18 步工作流,必须先读)
├── references/ ├── references/
│ ├── panel-ui.md # 面板风格 UI 设计与验收规范 │ ├── panel-ui.md # 面板风格 UI 设计与验收规范
@@ -35,20 +35,20 @@ panel-project-deploy/
```powershell ```powershell
# 1. 复制整个技能目录到 Codex 技能目录 # 1. 复制整个技能目录到 Codex 技能目录
Copy-Item .\panel-project-deploy "$env:USERPROFILE\.codex\skills\" -Recurse -Force Copy-Item .\project-init-panel-deploy "$env:USERPROFILE\.codex\skills\" -Recurse -Force
# 2. 执行安装脚本(创建 venv 可选;安装 playwright) # 2. 执行安装脚本(创建 venv 可选;安装 playwright)
.\panel-project-deploy\install.ps1 .\project-init-panel-deploy\install.ps1
``` ```
### macOS / Linux ### macOS / Linux
```bash ```bash
# 1. 复制技能目录 # 1. 复制技能目录
cp -r ./panel-project-deploy ~/.codex/skills/ cp -r ./project-init-panel-deploy ~/.codex/skills/
# 2. 执行安装脚本 # 2. 执行安装脚本
bash ./panel-project-deploy/install.sh bash ./project-init-panel-deploy/install.sh
``` ```
> 若使用的是其他 Agent 框架,技能目录也可能是 `~/.agents/skills/`,按对应框架要求放置即可。 > 若使用的是其他 Agent 框架,技能目录也可能是 `~/.agents/skills/`,按对应框架要求放置即可。
@@ -67,8 +67,8 @@ python -m playwright install-deps chromium
## 五、验证安装 ## 五、验证安装
```bash ```bash
python ~/.codex/skills/panel-project-deploy/scripts/panel_ui_audit.py --help python ~/.codex/skills/project-init-panel-deploy/scripts/panel_ui_audit.py --help
python ~/.codex/skills/panel-project-deploy/scripts/workflow_manager.py --help python ~/.codex/skills/project-init-panel-deploy/scripts/workflow_manager.py --help
``` ```
能正常打印帮助即安装成功。 能正常打印帮助即安装成功。
+1 -1
View File
@@ -1,5 +1,5 @@
--- ---
name: panel-project-deploy name: project-init-panel-deploy
description: 自动化克隆、初始化、品牌化、Docker 部署并提交项目,同时强制将前端页面改造成炫酷的科技感玻璃面板风格。适用于“初始化并部署项目”“项目页面改版”“面板风格 UI”“科技感大屏/仪表盘”等请求。 description: 自动化克隆、初始化、品牌化、Docker 部署并提交项目,同时强制将前端页面改造成炫酷的科技感玻璃面板风格。适用于“初始化并部署项目”“项目页面改版”“面板风格 UI”“科技感大屏/仪表盘”等请求。
--- ---
+1 -1
View File
@@ -1,4 +1,4 @@
# panel-project-deploy 技能安装脚本 (Windows) # project-init-panel-deploy 技能安装脚本 (Windows)
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
Write-Host "==> 安装 Python 依赖 (playwright)" -ForegroundColor Cyan Write-Host "==> 安装 Python 依赖 (playwright)" -ForegroundColor Cyan
python -m pip install --upgrade pip python -m pip install --upgrade pip
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# panel-project-deploy 技能安装脚本 (macOS / Linux) # project-init-panel-deploy 技能安装脚本 (macOS / Linux)
set -euo pipefail set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "==> 安装 Python 依赖 (playwright)" echo "==> 安装 Python 依赖 (playwright)"
+1 -28
View File
@@ -7,7 +7,6 @@ from __future__ import annotations
import argparse import argparse
import json import json
import os
import sys import sys
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
@@ -260,31 +259,6 @@ def audit_page(page: Page, route: str, extra_openers: list[str]) -> dict[str, An
return {'route': route, 'issues': issues} return {'route': route, 'issues': issues}
def launch_chromium(playwright):
launch_options = {'headless': True}
channel = os.environ.get('PANEL_PLAYWRIGHT_CHANNEL')
executable_path = os.environ.get('PANEL_PLAYWRIGHT_EXECUTABLE_PATH')
if channel:
launch_options['channel'] = channel
elif executable_path:
launch_options['executable_path'] = executable_path
else:
local_app_data = os.environ.get('LOCALAPPDATA', '')
playwright_cache = Path(local_app_data) / 'ms-playwright' if local_app_data else None
has_downloaded_chromium = bool(
playwright_cache and list(playwright_cache.glob('chromium-*/chrome-win64/chrome.exe'))
)
if not has_downloaded_chromium:
program_files_x86 = os.environ.get('ProgramFiles(x86)', '')
program_files = os.environ.get('ProgramFiles', '')
edge_candidates = [
Path(program_files_x86) / 'Microsoft' / 'Edge' / 'Application' / 'msedge.exe',
Path(program_files) / 'Microsoft' / 'Edge' / 'Application' / 'msedge.exe',
]
if any(edge.exists() for edge in edge_candidates):
launch_options['channel'] = 'msedge'
return playwright.chromium.launch(**launch_options)
def csv_list(value: str) -> list[str]: def csv_list(value: str) -> list[str]:
return [item.strip() for item in value.split(',') if item.strip()] return [item.strip() for item in value.split(',') if item.strip()]
@@ -313,7 +287,7 @@ def main() -> int:
report: dict[str, Any] = {'baseUrl': args.base_url, 'pages': []} report: dict[str, Any] = {'baseUrl': args.base_url, 'pages': []}
with sync_playwright() as playwright: with sync_playwright() as playwright:
browser = launch_chromium(playwright) browser = playwright.chromium.launch(headless=True)
page = browser.new_page(viewport={'width': args.viewport_width, 'height': args.viewport_height}) page = browser.new_page(viewport={'width': args.viewport_width, 'height': args.viewport_height})
if not args.skip_login: if not args.skip_login:
@@ -348,4 +322,3 @@ def main() -> int:
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(main()) sys.exit(main())