# figo-willpay-skill **Repository Path**: hfqf1234/figo-willpay-skill ## Basic Information - **Project Name**: figo-willpay-skill - **Description**: 飞哥整理skill用于出售的的仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: feat/mysql-go-api - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-25 - **Last Updated**: 2026-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 免费 Skill 精选库 ## 文档索引信息 - 背景:本仓库用于收集公开 Skill,筛选无需额外账号、OAuth 和 API Key 的条目。 - 目标:建立有来源、有授权依据、有验证记录的 Skill 目录,并支持后续打包交付。 - 标签:Skill、OpenClaw、ClawHub、SkillHub、内容筛选、OPC。 - 适用范围:首批 Skill 录入、自动审核、内容编辑、产品目录和交付资料设计。 - 后续可用方向:中文目录、安装指南、U 盘与压缩包交付、公众号案例、闲鱼商品资料。 ## 当前阶段 按任务查找资料请先看[项目文档导航](docs/README.md)。 服务器架构已升级为 **Go API + Python Worker + MySQL 8.4**。Go 提供目录、完整详情、分类、推荐、编辑和任务接口;Python 继续负责双平台抓取、清洗、证据分类与推荐计算。MySQL 保存业务数据与持久任务,对象文件按 SHA256 保留。支持原 SQLite v4 全部业务数据的只读导入与逐表内容核验。 首次 Git + SSH 部署以 [deploy 部署实施计划](deploy/README.md) 为入口。接口见 [API 使用说明](docs/api/API使用说明.md) / [OpenAPI](docs/api/openapi.yaml),实测见 [MySQL 与 Go API 迁移实验](docs/experiments/2026-10-26-MySQL与GoAPI.md)。既有 [完整详情与分类实验](docs/experiments/2026-10-25-完整详情与分类.md)、[抓取 MVP 实验](docs/experiments/2026-10-25-抓取MVP.md) 保留历史证据。 当前采集来源仅限 **SkillHub 和 ClawHub**。新增来源须由用户明确指定。 源码集中在 `code/`:`api/` 为 Go 接口,`python/` 为采集与任务,`h5/` 为公开站点与原型,`admin/` 为运营页面,`database/` 为共享 MySQL 迁移。根目录的 `data/`、`dist/` 分别保存运行数据与生成产物,不随源码移动。具体入口见[源码目录说明](code/README.md),目录整理的边界和验证见[设计说明](docs/superpowers/specs/2026-10-28-code目录整理设计.md)。 官网域名采用 `bestskill.space`,品牌副标题为“一个发现最好 Skill 的空间。”,Slogan 为“最好的 Skill,只为更好的你”。首期面向办公、内容创作与电商用户。定位及分析方法见[官网定位](docs/product/BestSkill官网定位与分析方法.md);可点击的本地原型从[首页](code/h5/prototypes/bestskill-homepage/index.html)进入,现包含目录、按任务找、三个场景、21 个 Skill 详情、评测选题、推荐依据和工具包说明。生成方式与 SEO/GEO 发布门槛见[原型说明](code/h5/prototypes/bestskill-homepage/README.md),历史设计见[文档导航](docs/README.md)。原型全部设置 `noindex`。本机真实服务体验地址为 `http://127.0.0.1:8081/`,连接本机 Go API、Python Worker 和 MySQL;当前固定快照中的目录候选仍标记为待核验,部署步骤见[原生部署计划](deploy/README.md)。 正式官网的前后端功能、公开/运营接口与页面拆分见[设计稿](docs/superpowers/specs/2026-10-26-bestskill-frontend-backend-functional-design.md)。当前已完成多版本迁移、官网固定快照、Bearer 管理接口、读取 active 快照的公开只读 API、[静态生成器](code/h5/web/README.md)与本机发布/撤回演练。运营网页的候选、证据、中文编辑和重审入口已在本机完成;榜单期号与往期归档、飞哥实测的本机主链路已验证。B1 本机演示审核、C3 发布台、D1 工具包按[本次开发实施计划](docs/superpowers/plans/2026-10-27-bestskill-current-development.md)推进。原生部署方案已写入 `deploy/`,目标服务器尚未验证;实际接口以 [OpenAPI](docs/api/openapi.yaml) 为准。 当前开发任务顺序和每批验收条件见[本次开发实施计划](docs/superpowers/plans/2026-10-27-bestskill-current-development.md);历史批次记录见[官网前后端总计划](docs/superpowers/plans/2026-10-26-bestskill-website-fullstack.md)。 本机一次性双平台全量任务的实时进度运行 `python3 code/python/scripts/full_crawl_status.py` 查看。目录、完整详情和分类分别计数,全阶段结束后才生成最终报告。任务口径、带时间的状态快照及恢复方法见[首次全量抓取](docs/experiments/2026-10-26-首次全量抓取.md),优化数据见[吞吐实测](docs/experiments/2026-10-26-全量抓取吞吐优化.md)。 数据库设计见 [数据模型与录入事务](docs/database/数据库设计.md),可执行的设计稿见 [SQLite 表结构草案](code/database/schema-design.sql)。 首批入选口径:买家使用 Skill 时,除已有 AI Agent 外,无需注册额外账号、完成 OAuth 授权或提供 API Key。所有候选须经过授权、依赖和安全复核后才能进入可交付目录。 审核目标是由系统完成证据检查并在全部门槛满足后自动入选;现阶段证据不足的条目进入补证队列。本机编辑入口已支持中文资料、词项覆盖和重新审核入队;来源关联和撤回发布属于后续运营闭环。 当前实现完成抓取与待审输入,并接通固定版本静态自动审核任务:文件齐备后自动入队,发现明确的账号、OAuth、API Key、付费或许可禁用证据时拒绝;其余缺证据条目写入 `needs_evidence` 报告。独立本机演示、受控 Agent 审查和交付包仍按设计继续实现;本机运营编辑入口已接通,静态审核不会生成 approved release。抓取成功不会生成审核通过结论。 ## 服务器部署 目标主机采用 MySQL 8.4 + Go API + Python Worker 的原生部署,由 systemd 管理。首次迁移、21G 磁盘关口、数据校验与官网发布见 [deploy 部署实施计划](deploy/README.md)。API 监听 `127.0.0.1:8080`;公开 API 和运营 Cookie 接口由主机 HTTPS 代理转发,Bearer 管理接口仅在回环地址访问。服务器入口缺少 DSN 或结构不匹配时拒绝启动,没有 SQLite 回退;没有新增周期抓取任务。 ## 本地 SQLite MVP(历史兼容) 此兼容路径要求 Python 3.11+、SQLite 3.37+;使用 MySQL 时另安装 `code/python/requirements.txt`。以下旧命令在未设置 CATALOG_MYSQL_DSN 时访问本地 SQLite,设置后访问指定 MySQL。在仓库根目录运行: ```bash export PYTHONPATH=code:code/python:code/h5 python3 -m skill_catalog --data data/mvp crawl --source all --pages 2 --page-size 20 python3 -m skill_catalog --data data/mvp list --limit 20 python3 -m skill_catalog --data data/mvp stats ``` `crawl` 默认对 SkillHub 使用免费、免 API Key 标签预筛,对 ClawHub 使用非可疑条目过滤。标签不代表已审核。每站独立保存任务,分页预算耗尽时返回 `partial`,输出的 `error=null` 表示正常停在断点。`--unfiltered` 可关闭 SkillHub 标签预筛。 当前目录保留规则为来源下载量至少 1000,或来源创建于近 30 天内。采集时对下载量与创建时间都有值且同时不达标的条目不入库;缺字段的条目保留证据。已存在条目若不再达标,续抓会将其设为不可发布,物理清理仍须显式执行。口径与本机清理记录见[下载量与新发布保留清理](docs/experiments/2026-10-28-下载量与新发布保留清理.md)。 跨平台重复项以 SkillHub 明确的 ClawHub 原站 URL 及 ClawHub 作者、slug 精确匹配为证据,只保留 ClawHub 条目;同名或同 slug 不自动删除。采集时阻止重复镜像回流,已有镜像的物理删除仍需显式执行。清理结果与迁移备份见[跨平台重复 Skill 清理](docs/experiments/2026-10-28-跨平台重复Skill清理.md)。 `crawl` 默认在保存列表后继续采集符合目录保留规则的条目详情全部字段、版本列表、最新版本文件清单、平台评估或安全扫描、主说明正文,以及 SkillHub 的独立概述;`--catalog-only` 仅采集列表。列表页原始字节保留,入库条目的完整详情 JSON 与原始响应关联,未知字段自动入库。采集失败保留记录;详情身份必须按作者匹配。 补齐既有目录、导出详情和运行本地推荐: ```bash python3 -m skill_catalog --data data/mvp details --all --missing python3 -m skill_catalog --data data/mvp show-detail --id 84 --output data/mvp/exports/detail-84.json python3 -m skill_catalog --data data/mvp classify --all python3 -m skill_catalog --data data/mvp recommend CAD --preview python3 -m skill_catalog --data data/mvp recommend 小学数学教师 --preview python3 -m skill_catalog --data data/mvp recommend '教师备课,不要 CAD' --preview ``` 编号来自本机实验,新环境从 `list` 取得编号。`details --missing` 按本地已知更新时间、版本、补充资源和完整采集记录决定跳过;需要强制刷新时去掉 `--missing`。离线缓存不能证明上游未更新。 词表初版含 143 个标准词项、8 个维度、42 条关联,每个标签保存字段路径、原文与对象哈希。正式推荐默认仅使用已审核发布;`--preview` 返回未审核候选,供验证召回和整理资料,不能代表可售或实测质量。详情与分类模型见 [完整详情、分类与推荐设计](docs/database/完整详情与分类设计.md)。 根据 `list` 返回的本地编号获取一个候选的完整文件,例如本机实验中的条目 46: ```bash python3 -m skill_catalog --data data/mvp fetch --id 46 ``` 续抓使用 `crawl --resume` 加上该次输出的 `run_id`,沿用原平台和查询参数。本机实验断点示例: ```bash python3 -m skill_catalog --data data/mvp crawl --resume d51f8cad73a84aeab7b05e02e3fac55e --pages 1 ``` 数据库、对象文件与文件获取事件分别位于 `data/mvp/catalog.sqlite3`、`data/mvp/objects/`、`data/mvp/events.jsonl`,均由 Git 忽略。文件接口严格固定版本,所有文件获取后核对大小和 SHA256;每个候选限制 64 个文件、总量 10 MiB。 ## 验证 ```bash export PYTHONPATH=code:code/python/tests:code/python:code/h5 python3 -m unittest discover -s code/python/tests -v python3 code/database/verify_schema.py go -C code/api test ./... go -C code/api vet ./... python3 code/python/scripts/verify_details.py --data data/mvp --output data/mvp/detail-coverage.json ``` 离线采集测试使用临时 SQLite 和固定来源响应,不抓取网络。真实 MySQL 测试须显式设置独立 CATALOG_TEST_MYSQL_DSN,未设置会明确 skip;详情见[原生部署计划](deploy/README.md)。`verify_details.py` 支持 SQLite 和环境变量指定的 MySQL,逐对象核对哈希、完整 JSON、字段路径和补充资源,并列出未获取项。