本文档是全项目最高纲领,定义「做什么、为什么、做成什么样」。 所有子文档(design / architecture / cli-setup)与规范均以此为准绳对齐; 任何新增功能、UI 决策、技术取舍,先对照本文档再动手。
通过 GitHub 官方 API,全量复刻 GitHub 前端;功能完成度以官方页面为基准, 界面保持干净整洁、操作由繁化简。
不满足于「核心闭环」,而是以官方页面为基准逐页复刻:官方有的页面 / 模块 / 功能,原则上都应具备。
未登录访问策略:仅开放仓库 Code 浏览;其余仓库 tab 切换时内容区显示登录墙(登录后回落)。首页/搜索/用户主页保持匿名可浏览。
「简约」不决定做什么(那是全量复刻的范围),只决定怎么做:
- 页面干净:统一宽度、统一间距、统一组件(shadcn/ui)、信息密度适中,无广告无干扰
- 组件原生:组件构造直接使用 shadcn 官方组件默认样式(尺寸/颜色/间距/圆角),非必要不对原始 shadcn 样式手动调整;确需定制走主题 CSS 变量。用 shadcn 原生组件构建干净界面,不逐像素复刻官方 DOM
- 操作化简:高频操作一步直达(star / fork / 创建 issue 在详情页直接可用);导航符合 GitHub 心智模型(仓库 tab、设置左侧导航)
- 技术化简:Octokit SDK 统一封装 + GraphQL 唯一主通道(GraphQL 失败 →
withRestFallback熔断降级 REST;匿名强制 REST),页面组件不感知协议细节
复刻取舍判据(全量 × 简洁的平衡):功能做全(对齐官方页面),呈现自定义(shadcn 原生组件 + 干净界面 + 一步直达交互)。当官方功能本身是复杂工作流时,按官方交互复刻,不自行删减步骤。官方功能无公开 API 时:构造预留页/预留项并外链引导至官方(新窗口,标注「仅官方」),不捏造数据、不做假开关(详见
design.md「官方兜底」)。
- 全部数据经 GitHub 官方 API(Octokit SDK 统一封装,登录态 GraphQL 唯一主通道、匿名强制 REST),不造假数据
- 双端点 API 一律 smart 包装(GraphQL 失败 →
withRestFallback熔断降级 REST),实现熔断(详见architecture.md) - CLI 集成:git 镜像端点自动代理 clone / pull / push(
insteadOf一行配置接入)
| 原则 | 落地要求 |
|---|---|
| 全量 | 新增功能先对照官方页面是否缺失 |
| 简洁(UX) | 页面复用 shadcn/ui(直接用官方组件默认样式,非必要不手动调整);布局遵循 GitHub 心智模型;交互一步直达;「做简」仅限呈现层,不限功能范围 |
| 真实 | 一切数据来自官方 API(登录态 GraphQL 唯一主通道、匿名强制 REST),不造假数据 |
「一个功能对齐官方、界面干净整洁、登录后能看、能搜、能管(issue/PR/star/fork/评审/设置)、能 clone/pull/push 的 GitHub 前端复刻。」