Shaan-alpha/Skill-Issue
GitHub: Shaan-alpha/Skill-Issue
一款由 AI 驱动的 GitHub 情报平台,通过分析用户主页生成确定性百分制工程评分和可分享的记分卡,帮助开发者和招聘者量化评估真实工程能力。
Stars: 3 | Forks: 0
# Skill Issue
**你的 GitHub 主页就是你的真实简历。Skill Issue 会如实解读它。**
[](https://github.com/Shaan-alpha/Skill-Issue/releases)
[](./LICENSE)
[](https://skill-issue-tau.vercel.app)
[](https://skill-issue-tau.vercel.app)
[](https://nextjs.org/)
[](https://react.dev/)
[](https://tailwindcss.com/)
[](https://fastapi.tiangolo.com/)
[](https://www.python.org/)
[](https://neon.tech/)
[](https://upstash.com/)
[](https://groq.com/)
**Skill Issue** 是一个由 AI 驱动的 GitHub 情报平台。输入用户名,它就会分析代码库、工程成熟度、OSS 贡献、编程规范和成长轨迹——然后将其转化为可操作的反馈、100 分制的工程评分,以及可分享的“GitHub Receipts”。
工程洞察优先。AI 调味其次。评分是确定性且可解释的;AI 仅负责叙述、总结和幽默。
## 功能
- **主页分析** — 固定仓库、贡献频率、README 质量、CI/CD、部署成熟度、测试文化、开源协议检测
- **工程评分 (100 分)** — 仓库质量 30 · 工程成熟度 20 · OSS/协作 15 · 一致性 10 · 招聘者信号 15 · 学习轨迹 10
- **7 级身份阶梯** — 业余爱好者 · 学生开发者 · 入门级 · 专业级 · 高级 · 主管级 · 首席工程师,包含级内子排名
- **可堆叠徽章** — OSS 贡献者、PR 大师、维护者、Star 吸引者、多语言者、长期坚持者、独立开发者、工具制造者(信号驱动、确定性、可多重获得)
- **等级解锁深度** — 更高的等级会解锁更丰富的信号(协议 SPDX、CI 工作流、README 质量、PR 审查深度、提交信息质量、跨仓库重构)
- **分析模式** — Roast(吐槽) + Mentor(导师)(标准两项;招聘者 / CTO / 职涯模式已于 2026-05-19 弃用)
- **GitHub Receipts™** — 可用于 LinkedIn、X、Discord、个人作品集分享的 1200×630 OG 记分卡
- **热缓存延迟** — 由 Upstash Redis 支持的重复 `/analyze/{user}` p95 ≤ 200ms(v0.7.0+)
## 状态
目前已发布 **v1.0.0** — 首个稳定版本(主页链接预览卡片、自动聚焦搜索、报告页面上的“分析另一个”内联搜索以及仓库清理)。之前的 v0.9.8 添加了发布落地页版块 — 示例报告、“工作原理”方法论版块以及 GitHub-star CTA;v0.9.7 添加了隐私政策和服务条款,链接位于全新的全站页脚中;v0.9.6 为预热状态的 `/analyze` 路径添加了可复用的负载测试工具(完整的 100 RPS 运行属于运维步骤);v0.9.5 进行了全面的上线前安全审计 — 无高危/严重发现 — 将 GitHub OAuth 范围收紧为只读,并添加了 HTTP 安全标头;v0.9.4 使数据库连接池大小可通过环境变量调节,并真正修复了后退导航时的搜索加载动画;v0.9.3 添加了支持撤销的可删除 `/me` 历史记录、为项目创建者账号设计的专属“创造者”记分卡,以及首次(并不完整)对后退导航加载动画修复的尝试。已上线于 https://skill-issue-tau.vercel.app — GitHub OAuth 登录、Neon Postgres 持久化、`/me` 历史记录、可选开启的 `/share/[slug]` 公开链接。AI 叙述层(Roast + Mentor)运行在 **Groq**(`llama-3.3-70b-versatile`)上。v0.7.0 添加了 Upstash Redis 缓存(预热状态 `/analyze` ≤ 200 ms);v0.7.2 完成了性能预算认证(CLS 从 0.080 结构性降至 **0**,perf 从 90 升至 94,LCP 从 2,804 降至 2,773 ms);v0.8.0 发布了 Sentry(前端+后端)、PostHog(事件 + web vitals)、structlog JSON 日志、符合风格的 404 页面,以及全面的 axe a11y 测试;v0.8.1 发布了带有 bearer 认证的夜间 cron 任务;v0.8.2 将其与 `/me` 上的手动强制刷新按钮配对;v0.8.3 热修复了空仓库导致的崩溃;v0.8.4 修复了无声的叙述归属错误;v0.8.5 通过添加合并前 CI 门禁闭环了部署后 Sentry 监控;v0.8.6 闭环了 v0.7.1 延迟的分享页面缓存;v0.8.7 现代化了项目配置;v0.9.0 开启了带有边界化 GH 扇出的 Beta 加固阶段;v0.9.1 解决了 `/me` 的 N+1 问题 + 添加了基于命名空间的 Report 缓存版本控制;v0.9.2 在 `/analyze` 和 `/narrative` 上添加了速率限制(匿名用户基于 IP,登录用户具有更高的上限);v0.9.3 添加了支持撤销的可删除 `/me` 历史记录,尝试修复后退导航搜索加载动画,并为创造者的记分卡进行了镀金处理。v0.9.4 使数据库连接池大小可通过环境变量调节(默认值保持不变 — RUM 显示连接池未耗尽),并落实了真正的后退导航加载动画修复(v0.9.3 的尝试针对了错误的机制);v0.9.5 进行了全面的上线前安全审计(无高危/严重发现),将 OAuth 范围收紧至 `read:user`,并添加了 HTTP 安全标头;v0.9.6 为预热的 `/analyze` 路径添加了可复用的负载测试工具(完整的 100 RPS 运行属于运维步骤);v0.9.7 添加了隐私政策和服务条款,链接位于全新的全局页脚中;v0.9.8 添加了发布落地页版块(示例报告、工作原理版块、GitHub-star CTA);**v1.0.0 是首个稳定版本**(主页 Open Graph 预览、自动聚焦 + 内联搜索、仓库清理)。公开发布 — 域名、帖子、流量监控 — 记录在 [`docs/LAUNCH.md`](./docs/LAUNCH.md) 中。有关已发布的切片请参见 [`CHANGELOG.md`](./CHANGELOG.md),完整路线图请参见 [`PLAN.md`](./PLAN.md),最近的会话交接请参见 [`docs/PROGRESS_LOG.md`](./docs/PROGRESS_LOG.md)。
## 文档地图
| 文件 | 用途 |
| --- | --- |
| [`PLAN.md`](./PLAN.md) | 版本化路线图 — 每个 v0.X.0 会发布什么 |
| [`CHANGELOG.md`](./CHANGELOG.md) | 实际已发布的内容,遵循 Keep-a-Changelog 规范 |
| [`AGENTS.md`](./AGENTS.md) | **每个 AI agent 或人类贡献者的必读内容** — 交互规则 |
| [`ARCHITECTURE.md`](./ARCHITECTURE.md) | 系统设计 + MCP 生态 |
| [`docs/PRODUCT_VISION.md`](./docs/PRODUCT_VISION.md) | 个性、目标用户、评分标准、语气 |
| [`docs/TECH_STACK.md`](./docs/TECH_STACK.md) | 每一个库、版本锁定及其原因 |
| [`docs/PROGRESS_LOG.md`](./docs/PROGRESS_LOG.md) | 持续更新的叙述性日志 — 做了什么以及为什么 |
| [`docs/DEPLOY.md`](./docs/DEPLOY.md) | 如何部署到 Vercel(单一多服务项目 + Upstash + Neon 指南) |
| [`docs/superpowers/plans/`](./docs/superpowers/plans/) | 每个版本切片的 TDD 子计划 |
## 快速开始
你需要两个终端 — FastAPI 后端和 Next.js 前端在开发环境中并行运行。
### 后端 (`:8000`)
```
cd backend
uv sync
cp .env.example .env # then edit .env and add your GITHUB_TOKEN and OPENAI_API_KEY
uv run uvicorn app.main:app --reload --port 8000
```
验证:`curl http://localhost:8000/health` → `{"status":"ok","version":"1.0.0","db":"up"|"down","cache":"up"|"down"|"unconfigured"}`。当配置了 `DATABASE_URL` 时,`db` 字段会报告数据库的可达性;`cache` 字段报告 Upstash 的可达性(如果未设置 `UPSTASH_REDIS_REST_URL` 则为 `unconfigured` — 这对于本地开发完全没有问题,进程内回退机制会覆盖它)。
调用分析器:`curl http://localhost:8000/analyze/octocat`。
### 前端 (`:3000`)
```
cd frontend
npm install
npm run dev
```
前端会从 `frontend/.env.local` 读取 `NEXT_PUBLIC_BACKEND_URL`(默认为 `http://localhost:8000`)。
打开 标签:AV绕过, FastAPI, PostgreSQL, 人工智能, 代码分析, 凭证管理, 开发效率, 用户模式Hook绕过, 网络可观测性, 逆向工具