[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80380":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":44,"discoverSource":45},80380,"SkillLens","AndrewNgGirl\u002FSkillLens","AndrewNgGirl","Open-source self-hosted web tool for evaluating Agent Skills with rubric scores, Deep Review, and improvement suggestions.","https:\u002F\u002Fgithub.com\u002FAndrewNgGirl\u002FSkillLens#readme",null,"TypeScript",63,5,2,1,0,3,4,9,50.23,"MIT License",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"agent-skills","ai-agents","claude","claude-code","cursor","developer-tools","llm","nextjs","openclaw","rubric","self-hosted","skill","skill-evaluation","skills","typescript","2026-06-12 04:01:27","# SkillLens\n\n[简体中文](README.md) | [English](README.en.md)\n\n## 产品演示\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F8bc9bfce-bfe5-4c3a-a915-9aaf1520969e\n\nSkillLens 是一个开源、自托管的 Web 工具，用来评测 **Agent Skills**。你可以上传一个 `SKILL.md`、一个 skill 文件夹，或一个 skill 压缩包，SkillLens 会生成量化报告，包括评分细则、证据、SkillLens Deep Review、市场信号和可执行的改进建议。\n\n它面向正在为 Cursor、Claude、OpenClaw 或类似 Agent 生态构建 skill 的开发者，帮助你回答一个核心问题：\n\n这个 skill 是否真的有用、可靠、容易被发现，并且值得发布？\n\n## 当前能力地图\n\nSkillLens 的能力由三个正交维度组合而成，按需挑选即可：\n\n- **评什么**（评测视角）\n  - **通用评测**：5 大支柱、100 分制；按 skill 结构（atomic \u002F pipeline \u002F composite）启用差异化子维度\n  - **金融专家版**（可叠加）：在通用总分之外，针对金融场景额外输出 `domainExpert` 专家分，覆盖投融资、量化、炒股、证券、银行、投教等\n\n- **多深**（评测深度）\n  - **规则分预览**：确定性检查（pass \u002F partial \u002F fail \u002F not_applicable），秒级返回，不耗 LLM 额度\n  - **SkillLens Deep Review**：在规则分之上，由 LLM 评估主观维度；规则项仍由官方 scorer 决定，避免 LLM 自由发挥\n\n- **谁来用**（调用入口）\n  - **Web UI**：给人用——浏览器拖拽上传，可视化报告\n  - **Agent CLI**：给 code agent 用（Cursor \u002F WorkBuddy \u002F Hermes 等）——`--agent-wizard` 引导选择，并通过 `deepReviewCertificate` 证书校验避免 agent 编造分数\n\n三个维度可任意组合。例如 *CLI + 金融专家版 + Deep Review*：跑 `--agent-wizard` 选择金融并指定场景，由 code agent 自己的模型完成完整的 agent-side 金融专家深度评测，最终 JSON 含 `domainExpert.score` 与 verified 证书。\n\n## 最值得一试的地方\n\nSkillLens 不只是检查 `SKILL.md` 写没写对，而是把一个 skill 当成“可发布的 AI 产品雏形”来评估。它会同时看清晰度、真实需求、商业价值、差异化、运行成本、稳定性和可维护性，帮你判断这个 skill 是“格式合格”，还是“真的值得别人安装和反复使用”。\n\n- **从“写得规范”提升到“值不值得做”**：不仅看 frontmatter、章节和示例，也会评估目标用户、使用频率、价值主张和沉淀潜力。\n- **把主观评审变成可调权重的量化报告**：5 大支柱的默认权重透明，子维度按 skill 类型自动启用，并可以按你的团队标准自定义。\n- **三类型差异化标准**：atomic \u002F pipeline \u002F composite 三种结构形态各自有专属维度——pipeline 评估路由设计、子 agent 边界、IO 协议；composite 评估工具索引、正交性、一致性。不会再用单一文档型标准误判流水线和工具集。\n- **同时考虑市场和替代风险**：不仅问“这个 skill 能不能跑”，还会问“它和通用 LLM、Copilot、CodeQL、现有开源工具相比有什么独特价值”。\n- **关注真实落地成本**：会检查上下文预算、分层加载、外部依赖、缓存友好度，避免 skill 看起来很强但每次运行都很贵、很慢或很脆弱。\n- **输出可执行改进建议**：报告会给出证据、分数、等级和 Top 改进项，适合开源发布前自检、团队内部评审或 marketplace 提交前打磨。\n- **新增金融专家版**：上传页可以选择金融场景，额外生成 Finance Expert Score、风险等级和商业成熟度，覆盖投融资、创业、量化、炒股、证券研究、银行流程等场景。\n- **支持中英文切换**：界面和报告可在中文 \u002F English 之间切换，方便中文团队和国际开源用户共同使用。\n- **自托管、可预览、可扩展**：没有模型 key 也能用 mock 模式体验 UI；配置自己的 key 后可启用完整 Deep Review。\n\n## 为什么需要 SkillLens\n\nAgent Skills 正在变成一种可复用的软件资产：它们把指令、工作流、脚本、参考资料、schema 和示例封装在一起，让 AI Agent 更稳定地完成某类专门任务。\n\n但一个 skill 看起来完整，不代表实际好用。常见问题包括触发条件模糊、目标用户不清、输入输出没写明、缺少异常处理、示例薄弱、上下文成本过高，或者价值主张让人看不懂。\n\nSkillLens 可以帮助 skill 作者和团队：\n\n- **量化评估 skill 质量**：使用透明的 100 分制评分标准。\n- **定位具体短板**：避免只得到“再优化一下”这种模糊反馈。\n- **一致地比较不同 skill**：兼容 Cursor \u002F Claude \u002F OpenClaw 风格的 skill 包。\n- **提升发布准备度**：适合提交市场、团队内共享或开源前自检。\n- **生成可导出的评测报告**：便于复盘、迭代和文档沉淀。\n\n## 评测什么\n\nSkillLens 用 5 大支柱、100 分制评分。rubric 共 34 个子维度，按 skill 结构通过 `applies_to` 字段自动启停：atomic 启用 25 个，pipeline 启用 26 个（含 5 个 pipeline 专属），composite 启用 27 个（含 4 个 composite 专属）。\n\n通用骨架：\n\n| 支柱 | 默认权重 | 通用子维度 |\n|---|---:|---|\n| Skill 价值 | 25 | 目标用户清晰度 5；用户需求真实度 6；价值主张清晰度 5；复用价值 5；沉淀 \u002F 记忆点潜力 4 |\n| 市场竞争力 | 15 | 差异化 5；聚焦度 4 ⓐ；通用模型可替代风险 3；竞品调研意识 3 |\n| 运行成本 | 15 | 上下文预算 4；分层加载 4 ⓐⓒ；外部依赖重量 4；可缓存性 3 |\n| 效果稳定性 | 20 | 任务模型匹配度 5；脚本兜底 4 ⓐⓒ；输出校验 4 ⓐ；幂等性 3；异常路径 2；边界情况 2 |\n| 书写质量 | 25 | 元数据规范性 4；可发现性 5；结构与可读性 3（含 ## Workflow ⓐ）；可执行性 6（含 steps_atomic ⓐ + io_explicit ⓐ）；安全合规 3；可维护性 4 |\n\nⓐ = 仅 atomic 适用 · ⓒ = atomic + composite 适用 · 未标注 = 三类型通用。\n\n按 skill 类型新增的专属维度（reliability pillar 内）：\n\n| 类型 | 专属维度 | 总权重 |\n|---|---|---:|\n| **atomic** | 仅使用通用骨架（脚本兜底、输出校验等都生效） | — |\n| **pipeline** | `pipeline_routing` 5 · `pipeline_boundaries` 4 · `pipeline_io_protocol` 3 · `pipeline_partial_failure` 2 · `pipeline_subskill_quality` 2（rule） | 16 raw |\n| **composite** | `composite_tool_index` 4 · `composite_orthogonality` 3 · `composite_consistency` 2 · `composite_discoverability` 2 | 11 raw |\n\n`applies_to` 归一化机制会把 pipeline 的 raw 28 weight 和 composite 的 raw 27 weight 都映射回 reliability pillar 的 20 分上限，让三种类型的 pillar 满分仍是 20。\n\n所有支柱和子维度权重都可以在 Web 界面里自定义。默认值对一般开源 skill 已经够用；要按团队标准调整就调。\n\n评分标准位于 `skills\u002Fskill-scorer\u002Frubric\u002Frubric.yaml`——Web 应用与 CLI 共用的单一事实源。改动后跑 `python3 skills\u002Fskill-scorer\u002Fscripts\u002Fsync_rubric_to_ts.py` 就能把镜像同步到 `web\u002Flib\u002Frubric\u002Frubric.ts`。\n\n金融专家版的领域评分标准位于 `skills\u002Fskill-scorer\u002Fdomains\u002Ffinance\u002Frubric.yaml`。它作为通用总分之外的专家附加报告，不替代默认 100 分通用评分。不同金融子场景会使用不同的权重、专属检查项和 LLM 评测重点。\n\n## 支持的输入\n\n**包形态**（自动识别 + 可手动指定 `--skill-type`）：\n\n- **atomic**：单个 `SKILL.md`，或一个 SKILL.md + `scripts\u002F` `references\u002F` `assets\u002F` `tests\u002F` `*.schema.json` `requirements.txt` 等附属文件的目录。\n- **pipeline**：含多个子 SKILL.md 的\"编排器\"包，根 SKILL.md 是 router，业务逻辑下沉在 `agents\u002F\u003Csub-agent>\u002FSKILL.md` 或子目录里。CLI 与 Web 都会自动识别（≥1 个子 SKILL.md 即视为 pipeline），并切换到 pipeline lens 评测视角。\n- **composite**：含多个独立 SKILL.md 的\"工具集\"包（每个子 SKILL.md 是一件独立工具，根 SKILL.md 主要负责索引与路由说明）。需要通过 `--skill-type composite`（CLI）或 Uploader 上方\"Composite\"卡片（Web）显式指定。\n- **打包格式**：以上三种都支持 `.zip` 上传——压缩包会被解压、按目录原样评测。\n\n**兼容的 Skill 生态**：Claude \u002F OpenClaw \u002F Cursor 三套 frontmatter 与目录约定都能正确解析；只要根目录有 `SKILL.md` 且含基本 frontmatter（`name` + `description`），SkillLens 就能跑评分。\n\n**输入来源**：本地路径（CLI \u002F Web 拖拽）、`.zip` 上传、Web 端的\"载入示例\"。Web UI 暂不直接支持 GitHub URL 拉取，code agent 路径下可以由 agent 先 clone 再传本地路径。\n\n**内置示例**：`skills\u002Fskill-scorer\u002Fexamples\u002F` 下共 11 个示例——1 个通用 atomic（`pr-reviewer`）、2 个 pipeline（`pr-pipeline` \u002F `mega-pipeline`，含 53 子 agent 的大规模压测样本）、8 个金融场景 atomic（每个对应金融专家版的一个 `--scenario`，其中 `stock-trading-analyst` 是最完整、含 schema\u002Fscripts\u002Ftests\u002Freferences 的金融示例）。Web 端\"载入示例\"按钮会按当前评测模式自动映射对应的 skill。\n\n## 两种使用入口\n\nSkillLens 现在分成两条清晰路径：\n\n- **Web UI**：给人使用。上传 `SKILL.md`、skill 文件夹或 `.zip`，在浏览器里生成报告。详见 `web\u002FREADME.md`。\n- **Agent CLI**：给 Cursor、WorkBuddy、Hermes、小龙虾等 code agent 使用。通过官方 CLI 和证书机制完成 agent-side Deep Review，也支持 `--domain finance --scenario \u003Cscenario-id>` 金融专家版。详见 `skills\u002Fskill-scorer\u002FUSAGE.md`。\n\n## 输出结果\n\n无论从 Web UI 还是 CLI 进入，评分逻辑和 rubric 都是同一套；差异在于\"看到的形态\"。\n\n### Web UI 上你会看到\n\n- **总分卡 + 等级**：100 分制总分、`S \u002F A \u002F B \u002F C \u002F D` 等级、5 维雷达图\n- **5 大支柱与维度证据卡**：每个 check 的 pass \u002F partial \u002F fail \u002F not_applicable 状态、证据引用、fix 建议\n- **Top 改进建议**：按权重影响排序的可执行清单\n- **金融专家版 tab**（启用时）：通用 \u002F 金融两个 tab 切换，金融视图默认在前，含风险等级与商业成熟度\n- **市场调研信号**：基于 GitHub Search 的同类 skill 与替代品提示\n- **导出**：JSON \u002F 复制 Markdown \u002F 生成 PDF\n- **中英双语切换**：界面与报告内容都支持\n\n未配置模型 key 时，自动用 mock 分数进入预览模式，UI 仍可完整体验。\n\n### CLI 输出\n\n默认把 JSON 评分写到 stdout。加 `--output-dir \u003Cdir>` 同时落盘三份产物（视觉与 Web 一致，**浏览器打开后 Cmd+P 即可导出 PDF**，无需任何额外依赖）：\n\n```text\n\u003Cskill-name>-report.json   原始评分 JSON（与 stdout 同内容）\n\u003Cskill-name>-report.html   自包含单文件 HTML（含 ZH\u002FEN 切换、@media print 打印样式）\n\u003Cskill-name>-report.md     GitHub-flavored Markdown\n```\n\n`--agent-prompt` 模式下，`--output-dir` 还会落盘 `\u003Cskill-name>-agent-deep-review-prompt.md`。\n\n报告语言默认跟随 SKILL.md 主语言；`--llm-language {auto,zh,en}` 可强制 LLM 答复语言（例如英文 skill 让 LLM 出中文 evidence \u002F fix）。\n\n## 快速开始\n\n两条路径平行存在，按需选择即可。\n\n### Web UI（给人用）\n\n```bash\ncd web\nnpm install\ncp .env.example .env.local      # 可选：填模型 key\nnpm run dev                     # 打开 http:\u002F\u002Flocalhost:3000\n```\n\n填模型 key 才能跑完整 Deep Review，至少填一个：\n\n```env\nDEEPSEEK_API_KEY=\nANTHROPIC_API_KEY=\n```\n\n公网部署时保留浏览器同源保护，避免外部工具直接打 `\u002Fapi\u002Fllm` 消耗你的额度：\n\n```env\nLLM_REQUIRE_BROWSER_REQUEST=1\n```\n\n需要服务端到服务端调用可额外设置 `LLM_ACCESS_TOKEN`。其他可选环境变量、安全注意事项见 [`web\u002FREADME.md`](web\u002FREADME.md)。\n\n### CLI（给 code agent 用）\n\n不需要任何 key 就能跑规则分预览：\n\n```bash\n# 规则分预览（rule-only）\npython3 skills\u002Fskill-scorer\u002Fscripts\u002Fscore.py \u003Cpath-to-skill>\n\n# 大型 \u002F 多子 skill 包：可显式指定类型（默认自动识别）\npython3 skills\u002Fskill-scorer\u002Fscripts\u002Fscore.py --skill-type pipeline \u003Cpath-to-package>\n\n# 导出 HTML + Markdown + JSON 三件套\npython3 skills\u002Fskill-scorer\u002Fscripts\u002Fscore.py --output-dir .\u002Fout \u003Cpath-to-skill>\n```\n\n需要完整 Deep Review 时用交互式向导，由 CLI 引导选择通用 \u002F 金融专家版并打印官方三步命令：\n\n```bash\npython3 skills\u002Fskill-scorer\u002Fscripts\u002Fscore.py --agent-wizard \u003Cpath-to-skill>\n```\n\n完整调用契约（`--agent-prompt` → 模型 JSON → `--llm-results` 三步流、`deepReviewCertificate` 证书校验、金融专家版 `--domain finance --scenario \u003Cid>` 参数、可粘贴给 code agent 的提示词）见 [`skills\u002Fskill-scorer\u002FUSAGE.md`](skills\u002Fskill-scorer\u002FUSAGE.md)。\n\n## 仓库结构\n\n```text\n.\n├── README.md \u002F README.en.md \u002F CHANGELOG.md \u002F LICENSE\n├── skills\u002F\n│   └── skill-scorer\u002F                # 给 code agent \u002F CLI 使用的 skill 包\n│       ├── SKILL.md                 # 入口描述（when-to-use \u002F outputs \u002F workflow）\n│       ├── USAGE.md                 # Agent CLI 官方调用契约\n│       ├── rubric\u002Frubric.yaml       # 通用评分单一事实源（含 applies_to）\n│       ├── domains\u002Ffinance\u002F         # 金融专家版 rubric + 8 个子场景\n│       ├── scripts\u002F\n│       │   ├── score.py             # 官方 CLI（rule + agent-prompt + merge）\n│       │   ├── render_report.py     # HTML \u002F Markdown 渲染（与 web 视觉对齐）\n│       │   └── sync_rubric_to_ts.py # 同步 rubric.yaml → web\u002Flib\u002Frubric\u002Frubric.ts\n│       ├── references\u002F              # 最佳实践等参考资料\n│       └── examples\u002F                # 通用 + 金融子场景示例\n└── web\u002F                             # Next.js App Router 前端\n    ├── app\u002F\n    │   ├── page.tsx                 # 主报告页面（dashboard \u002F pillar \u002F suggestions）\n    │   └── api\u002F                     # \u002Fapi\u002Fllm · \u002Fapi\u002Fmarket · \u002Fapi\u002Fsample\n    ├── components\u002F                  # Uploader \u002F PillarSection \u002F SubSkillsCard 等\n    ├── lib\u002F\n    │   ├── rubric\u002F                  # rubric.ts（YAML 镜像）+ types.ts\n    │   ├── scoring\u002F                 # 规则引擎 \u002F 聚合 \u002F LLM 客户端\n    │   ├── llm\u002F                     # provider \u002F prompts \u002F cache \u002F types\n    │   ├── domain\u002F                  # 金融专家版逻辑\n    │   ├── market\u002F                  # 市场调研（GitHub Search）\n    │   └── spec\u002F                    # SKILL.md \u002F 子 SKILL.md 解析\n    ├── .env.example\n    └── README.md                    # 仅讲 Web 部署 \u002F 配置\n```\n\n## 开发\n\n**Web 端**（Next.js \u002F TypeScript）：\n\n```bash\ncd web\nnpm run lint        # ESLint\nnpm run typecheck   # tsc --noEmit\nnpm run build       # 生产构建\n```\n\n**CLI \u002F rubric 端**（Python，无虚拟环境，仅依赖 `pyyaml`）：\n\n```bash\n# 改完 rubric.yaml 后必跑：检查 web\u002Flib\u002Frubric\u002Frubric.ts 镜像是否同步\npython3 skills\u002Fskill-scorer\u002Fscripts\u002Fsync_rubric_to_ts.py --check\n\n# 镜像不同步时直接重新生成\npython3 skills\u002Fskill-scorer\u002Fscripts\u002Fsync_rubric_to_ts.py\n\n# 跑某个 example skill 的规则分回归（不耗 LLM 额度，秒级返回）\npython3 skills\u002Fskill-scorer\u002Fscripts\u002Fscore.py skills\u002Fskill-scorer\u002Fexamples\u002Fpr-reviewer\n```\n\n修改 rubric 后请同时回归 atomic \u002F pipeline \u002F composite 三种类型的样例（`pr-reviewer` \u002F `pr-pipeline` \u002F 自建 composite fixture），确保 `applies_to` 过滤和 pillar 归一化没被破坏。Web 部署细节见 [`web\u002FREADME.md`](web\u002FREADME.md)。\n\n## 安全注意事项\n\n- 不要提交 `.env.local`、`.env` 或任何真实 API Key。\n- 不要通过 `NEXT_PUBLIC_*` 环境变量暴露密钥。\n- 公网部署且服务端有模型 key 时，请保持 `LLM_REQUIRE_BROWSER_REQUEST=1`。\n- 如果某个 key 曾经被提交、贴到 issue、出现在截图或日志中，请立即在服务商后台轮换。\n- 发布前建议做一次密钥扫描，例如运行 `gitleaks detect --source .`。\n\n## License\n\nMIT\n","SkillLens 是一个开源、自托管的 Web 工具，用于评估 AI 代理技能的质量。它通过上传 `SKILL.md` 文件或技能文件夹生成详细的评分报告，包括评分细则、证据、深度审查和改进建议。核心功能包括基于 5 大支柱的 100 分制评分体系、金融专家版评分、规则分预览及 LLM 深度审查等。该工具支持多种调用方式，如 Web 界面和 Agent CLI，并提供中英文切换选项。SkillLens 适用于为 Cursor、Claude、OpenClaw 等平台开发技能的开发者，帮助他们确保技能不仅格式正确，而且具有实际价值、可靠性和市场竞争力。","2026-06-11 04:00:32","CREATED_QUERY"]