30 天前,我只是想看看别人在 SOLO 比赛里写了什么。30 天后,我有了 7 个自己写的 Skill、一套跑通了 4000 个作品的竞品分析系统、和一份也许值得一看的榜单。
这不是一个技术大佬的炫技贴,是一个普通人用 AI 工具,认真做完一件事的记录。如果你也在 SOLO 比赛里摸爬滚打,或者好奇"一个人用 AI 到底能做出什么",这篇可能对你有点用。
为什么要做这件事
我是一名独立开发者,平时主要做前端。SOLO 两场赛事接连进行——挑战赛 3400+ 个作品、技能创作赛 800+ 个技能——我一个个看根本看不完。光是把作品列表翻完一遍,就要花掉一个晚上。
但我又很好奇:这么多作品里,到底哪些是真正好的?评审有没有看漏的?公益赛道和主赛道比,质量真的更高吗?投票数高的项目,就一定值得看吗?
这些问题在心里憋了几天,越想越痒。于是我做了一个决定:写一套系统,让 AI 帮我看完所有作品。不是调用一个 API 就完事,而是从采集、评分、分析到审计,完整地走一遍。说实话,开始之前我也不知道能不能跑通。但我想,反正都是写代码,跑不通就当练手,跑通了就赚到了。
"不是调用一个 API 就完事,而是从采集、评分、分析到审计,完整地走一遍。"——这句话后来成了我整个项目的座右铭。
为了这件事,我写了 7 个 Skill
为了把这条流水线跑通,我前后写了 7 个 Skill,每一个都对应流水线上的一个具体环节:
- 反检测爬虫框架 — 数据采集利器,500+ 项目采集零封禁,断点续传不怕崩
- 规则评分引擎 — 可解释的评分系统,零 API 成本,每个分数都能追溯到具体关键词
- AI 批量任务编排 — 整个系统的数据处理核心,用 $8.5 的成本分析了 500+ 个项目,比直接调 API 省了 85%
- 数据审计工具箱 — 自动化数据检查,8 项自动检查,12 个碰瓷项目一键揪出
- PDF 导出解决方案 — 专业报告生成,一行代码解决 TailwindCSS v4 的 oklch 报错
- 后台认证系统 — 权限管理框架,JWT + RBAC + 操作日志,5 分钟接入
- 通用 Hooks 集合 — 常用交互组件,5 个高性能 Hook,数字动画零卡顿
它们不是孤立的小工具,而是串在一起的一套打法。爬虫框架解决"怎么拿到数据",评分引擎解决"怎么给数据打分",AI 编排解决"怎么让 AI 看完所有项目",审计工具箱解决"怎么发现数据里的猫腻"。写到第三个的时候我就发现,Skill 这个东西,单个看不显眼,串起来威力很大——它逼着我把每一步都模块化、可复用,这其实也是工程思维的一种训练。
创作过程:五个模块,两个半小时
整个过程分五个模块走下来:
- 模块一:全量采集(2 小时) — 用反检测爬虫框架采集 4000+ 个项目完整数据
- 模块二:多维度评分(10 分钟) — 6 个维度评分:功能完整度 20%、创新性 20%、用户体验 20%、视觉设计 15%、技术难度 10%、实用性 15%
- 模块三:AI 洞察分析(15 分钟) — 为每个项目生成一句话点评、SWOT 分析、改进建议
- 模块四:数据审计(5 分钟) — 自动发现碰瓷项目、异常数据、质量问题
- 模块五:报告导出(1 分钟) — React PDF 导出
最后总耗时约 2.5 小时,AI 成本 $8.5,代码量 63,600+ 行(前端 React 36,884 + Python 23,146 + Go ~2,100)。这里最有意思的是评分引擎。一开始我想直接用 AI 给每个项目打分,但跑下来发现两个问题:一是成本爆炸,二是分数不可解释——AI 给了一个 7.5 分,你不知道它是怎么算出来的。后来改成了关键词驱动的规则评分,每个维度的分数都能追溯到具体的关键词命中,整个系统的可信度一下子就上来了。
# 规则评分引擎 — 关键词驱动,可解释
SCORING_RULES = {
"innovation": {"weight": 0.20, "keywords": {"AI": 2, "LLM": 2, "独创": 3, "首创": 3}},
"completeness": {"weight": 0.20, "keywords": {"完整": 3, "闭环": 3, "可用": 2}},
"ux": {"weight": 0.20, "keywords": {"交互": 2, "引导": 2, "动效": 2}},
"visual": {"weight": 0.15, "keywords": {"设计": 2, "配色": 2, "排版": 2}},
"difficulty": {"weight": 0.10, "keywords": {"算法": 3, "分布式": 3, "编译": 3}},
"utility": {"weight": 0.15, "keywords": {"实用": 2, "日常": 2, "高频": 2}},
}
def score(project):
"""每个分数都能追溯到具体关键词命中"""
result = {}
for dim, rule in SCORING_RULES.items():
hits = [(kw, pts) for kw, pts in rule["keywords"].items()
if kw in project.description]
result[dim] = {
"score": sum(pts for _, pts in hits) * rule["weight"],
"hits": hits, # 留痕,方便审计
}
return result
四个让我印象最深的坑
- TailwindCSS v4 的 oklch 颜色问题 — html2canvas 不支持 oklch,导出前遍历元素转 hex
- 爬虫被封 IP — 单 IP 采集 50 个请求就被封,引入 15 套浏览器指纹轮换 + 随机延迟 2-8 秒
- AI 分析成本超预算 — 500 个项目全量调用 API 成本 $50,先用本地洞察引擎筛选,只对有价值项目调用 AI,成本降到 $8.5
- 评分结果不可解释 — 改用关键词驱动的规则评分引擎,每个分数都有据可查
爬虫那个坑最深。最开始我以为加个 User-Agent 就够了,结果采集到第 50 个请求直接 403。后来才明白,现在反爬早就看指纹了——Canvas、WebGL、字体、屏幕分辨率,一组合就能识别你。上了 15 套指纹轮换之后,500+ 项目零封禁,这个 Skill 我觉得可以单独拎出来用很久。
# 反检测爬虫 — 15 套浏览器指纹轮换
FINGERPRINTS = [
{"ua": "Mozilla/5.0 ...", "canvas": "noise_1", "webgl": "vendor_a"},
{"ua": "Mozilla/5.0 ...", "canvas": "noise_2", "webgl": "vendor_b"},
# ... 共 15 套,覆盖 Canvas / WebGL / 字体 / 分辨率
]
async def crawl(urls):
for i, url in enumerate(urls):
fp = FINGERPRINTS[i % len(FINGERPRINTS)]
await page.set_user_agent(fp["ua"])
await spoof_canvas(page, fp["canvas"])
await spoof_webgl(page, fp["webgl"])
await asyncio.sleep(random.uniform(2, 8)) # 随机延迟
await page.goto(url)
if i % 50 == 0: # 断点续传:每 50 个落盘一次
await checkpoint.save()
成本那个坑也很关键。一开始我天真地以为 500 个项目全调 API 也就几十块,算了一下 $50,直接劝退。后来想了个办法:先用本地规则引擎做一轮粗筛,只对真正有看头的项目调 AI 做深度分析。这样一折算,成本降到 $8.5,省了 85%。这个思路我觉得对很多想做"AI 批量分析"的人都适用。
跑完之后,几个有意思的发现
跑完这套系统,有几个发现挺有意思:
- 公益赛道质量碾压主赛道 — 公益赛道平均分 5.2,Code-with-SOLO 4.8,More-than-Coding 4.5
- 展示图数量是胜负手 — A 级平均 18.5 张,B 级 12.3 张,C 级 4.2 张,D 级 1.8 张
- 创新性比实用性更重要 — 创新性与综合评分相关系数 0.72,六个维度里最高
- 教育类项目数量最多但质量最差 — 778 个,平均分 4.6
- 高票项目不一定高质量 — 投票 Top 10 中只有 2 个 A+,3 个 A,5 个 B
第一个发现让我有点意外。原本以为公益赛道是"情怀分",没想到质量也真的更高。仔细想想也合理——做公益的人,往往更较真。第二个发现对所有做比赛的人都有用:展示图真的很重要。你辛辛苦苦写了一个月代码,最后因为展示图不够被埋没,太亏了。
第五个发现最"扎心"。投票 Top 10 里,只有 2 个是 A+,5 个是 B。说明人气和质量真的不是一回事。如果你想找真正好的作品,别只看投票榜。完整的双榜我放在了这里:https://soloscope-xd21y01q2.maozi.io/,感兴趣可以自己翻翻。
回头看这 30 天,最值钱的不是那 7 个 Skill,也不是那份榜单,而是"用一套系统把一件复杂事跑通"的体验。AI 不是万能的,但当你把它和规则、和工程、和较真结合起来,它能帮你做到的事,比你想象的多得多。