技能详情(站内镜像,无评论)
作者:do_while_true @autoxj
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 0 · 21 · 0 current installs · 0 all-time installs
⭐ 0
安装量(当前) 0
🛡 VirusTotal :良性 · OpenClaw :良性
Package:autoxj/skill-everyday
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :良性
OpenClaw 评估
代码与说明文件在功能上自洽:脚本使用 Playwright 抓取 Clawhub 热门技能、在本地生成报告并记录已分析项;没有请求外部凭据或隐蔽的网络回传。
目的
技能名/描述与实现基本一致:定期抓取热门技能并生成本地报告。唯一超出直觉的点是脚本会尝试访问宿主环境中上一级的 skills/ 目录(targetSkillDir),列出本地技能文件名以便把本地代码作为额外上下文纳入报告——这与“深入分析”可以解释得通,但会读取并展示本地文件列表(不读文件内容)。
说明范围
SKILL.md 与 runner.mjs 的指示一致:用 Playwright 打开 clawhub.ai、拦截并读取 Convex API 响应以获取榜单,打开技能详情页抓取标题/描述,并在本地写入 data/reports 和 data/analyzed.json。没有看到把本地或抓取到的数据发往未经申明的远端服务;唯一硬编码的外部端点是 Convex 的请求 URL(wry-manatee-359.convex.cloud),用于从网页拦截榜单数据。
安装机制
无安装规范(instruction-only),但仓内包含 package.json(声明 playwright 依赖)和运行脚本;README 明确建议 npm install + npx playwright install chromium。风险/影响可见:Playwright 会下载 Chromium 等大文件,且需在运行环境中安装 Node.js 与浏览器二进制。
证书
不要求任何环境变量或外部凭据(primaryEnv: none),这是合理且比例适当。但脚本会访问文件系统:创建 data/、写入 reports 与 analyzed.json,并尝试列出父目录下目标技能目录的文件名(可能暴露本地项目结构)。没有看到要求或使用不相关的密钥/令牌。
持久
没有设置 always:true;技能仅在自身目录下持久化状态(data/、data/reports/LATEST.md、data/analyzed.json)。没有修改其他技能配置或系统范围设置,agent-autonomy 保持默认(可被 agent 调用)。
scripts/runner.mjs:169
Dynamic code execution detected.
scripts/runner.mjs:183
File read combined with network send (possible exfiltration).
综合结论
该技能总体一致且用途明确,但在安装/运行前请注意: - 此脚本会在本地创建 data/ 并写入报告(包括固定的 LATEST.md),若不希望将生成内容保存在某路径请调整或在隔离目录运行。 - 脚本会尝试访问父级的 skills/ 目录并列出目标技能的文件名(不会读取文件内容),如果宿主机上有敏感工程或私有代码,建议在隔离环境(容器或干净目录)中运行。 - 运行前需安装 Node.js 与 Playwright,并执行 npx playwright install chromium(会下载浏览器二进制,占用下载/磁盘资源)。 - 源自 unknown(未提供 homepage/作者信任信息),若你信任该来源则可以使用;否则建议先人工审阅 runner.mjs 并在受控环境中试运行,或直接把脚本拷贝到受控目录并禁用本地目录检查(注释掉读取父目录相关代码)。 总结:功能与所需操作相符、未见隐蔽外发或凭据窃取行为;主要注意点是本地文件列表访问和 Playwright/Chromium 的安装成本。Static analysis: 2 patterns detectedDetails ▾✗scripts/runner.mjs:169Dynamic code execution detected.!scripts/runner.mjs:183File read combined with network send (possible exfiltration).Patterns worth reviewingThese patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「skill everyday」。简介:每天抓取 Clawhub 热门技能,深入分析并生成报告。每次执行获取一个未分析过的热门技能,避免重复。。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/autoxj/skill-everyday/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: skill-everyday
description: 每天抓取 Clawhub 热门技能,深入分析并生成报告。每次执行获取一个未分析过的热门技能,避免重复。
metadata:
{
"openclaw": {
"emoji": "📊",
"requires": { "modules": ["playwright"] }
}
}
---
# 技能分析日报 (skill-everyday)
每天执行一次,抓取 Clawhub 热门技能,深入分析并生成报告。
## 特性
- **无需平台账号或 API Key**:榜单与详情来自公开页面;运行期状态只写在本地 `data/`。
- **去重**:按 `data/analyzed.json` 记录已分析 slug,每次只取「当前榜单中、未分析过的第一个」热门技能。
- **依赖需先行安装**:本技能依赖 **Node.js**、**Playwright** 与 **Chromium**(见下方「依赖」)。装好后再执行脚本即可,无需编辑配置文件。
## 目录结构
```
skill-everyday/
├── SKILL.md # 本文件
├── README.md # 安装与运行(给人看的简要说明)
├── package.json # 可选:声明 playwright 依赖,便于 npm install
├── data/
│ ├── analyzed.json # 已分析技能列表(自动管理)
│ └── reports/ # 每日报告
│ └── YYYY-MM-DD-<slug>.md
└── scripts/
└── runner.mjs # 执行脚本
```
首次运行 `scripts/runner.mjs` 时会自动创建 `data/`、`data/reports/`(若不存在),并初始化 `data/analyzed.json`。
## 使用方法
在**本技能根目录**(`SKILL.md` 所在目录)执行:
```bash
node scripts/runner.mjs
```
或在 OpenClaw 中按触发语调用本技能后,由 Agent 执行上述命令。
## 工作流程
### 1. 获取热门技能列表
使用 Playwright 访问 `clawhub.ai/skills` 并拦截页面请求的 Convex `api/query` 响应以取得榜单数据:
```javascript
import { chromium } from 'playwright';
let apiData = null;
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
await page.route('https://wry-manatee-359.convex.cloud/api/query', async route => {
const response = await route.fetch();
const data = await response.json();
apiData = data;
route.continue();
});
await page.goto('https://clawhub.ai/skills', { waitUntil: 'networkidle' });
await page.waitForTimeout(3000);
const result = apiData?.status === 'success' ? apiData.value : apiData;
const skills = result?.page || [];
// 按下载量排序
skills.sort((a, b) => (b.skill?.stats?.downloads || 0) - (a.skill?.stats?.downloads || 0));
```
### 2. 避免重复分析
从技能根目录下的 `data/analyzed.json` 读取已分析列表(路径以 `SKILL.md` 为锚:`path.join(skillRoot, 'data', 'analyzed.json')`)。
```javascript
// 与 scripts/runner.mjs 一致:SKILL_DIR = dirname(scripts),再拼 data/analyzed.json
const analyzedFile = path.join(SKILL_DIR, 'data', 'analyzed.json');
if (!analyzedData.analyzed.includes(skillSlug)) {
// 分析该技能
}
```
### 3. 获取技能详情
打开技能详情页 `https://clawhub.ai/skill/{slug}`,读取标题、描述与页面正文(与榜单接口分离,非单独「完整信息」REST 文档)。
### 4. 尝试读取本地技能源码
在常见 OpenClaw 布局下,技能根目录的上一级为 `skills/`,据此拼接目标技能目录:
```javascript
const skillsRoot = path.join(SKILL_DIR, '..');
const targetSkillDir = path.join(skillsRoot, skillSlug);
```
### 5. 生成报告
按模板生成报告,保存到 `data/reports/YYYY-MM-DD-<slug>.md`(同日多次运行不会互相覆盖)。
### 6. 更新状态
自动更新 `data/analyzed.json` 添加新技能。
## 报告模板
- **内置深度模板的技能**(如 `self-improving-agent`):标题行 + **核心原理** + Clawhub 简介 + 元数据表 + **一、核心工作原理(OpenClaw 主流实现)**(1~4 小节)+ **二、为什么受欢迎** + 可选榜单数据补充;不插入通用「技术/设计亮点」占位段落。
- **其他技能**:排名/名称/标识/分类/下载与点赞 + Clawhub 功能介绍 + **核心流程与特点**(默认模板)+ 可选榜单数据补充。
报告保存到 `data/reports/YYYY-MM-DD-<slug>.md`。
## 依赖
- **Node.js**:执行 `scripts/runner.mjs`(ESM)。
- **Playwright + Chromium**:若目录内有 `package.json`,可在技能根目录执行 `npm install`,再 `npx playwright install chromium`;否则全局或上级环境已安装 `playwright` 亦可。仅声明 `metadata.openclaw.requires` 不会自动安装浏览器。
## 触发方式
用户发送 "分析一个 Clawhub 技能" 或 "skill-everyday" 时执行。