Imported from Beyrion/arXiv-daily-app (
AGENTS.md). Install upstream withnpx skills add Beyrion/arXiv-daily-app. Copyright stays with the author.
AGENTS.md
产品目标
- 构建一个类 Bilibili 等视频 App 信息流体验的跨端客户端。
- 交互模型借鉴视频 App 的搜索、推荐、收藏与浏览,但核心内容对象是 arXiv 论文,而不是视频内容。
- 当前阶段只初始化应用地基,不实现论文数据、搜索、推荐或详情展示业务。
平台范围
- 桌面端优先支持 macOS。
- 移动端优先支持 Android 与 iOS。
- 不主动添加 Windows、Linux 或 Web 发布目标;除非后续需求明确要求。
技术栈约束
- 原生壳使用 Tauri 2。
- 前端使用 Vite、React、React Router。
- UI 框架使用 Ant Design;自定义样式优先通过少量 CSS-in-JS 编写,避免手写冗长 CSS。
- 图标统一使用
react-icons。 - 国际化使用
i18next与react-i18next,当前必须至少支持zh-Hans与en。
目录结构
src/layouts/:承载应用级布局。当前包含root-layout与main-layout。src/components/:承载可复用组件。当前导航组件放在这里。src/pages/:承载路由页面。当前页面保持空白,用于后续迭代填充。src/locales/:承载国际化初始化与语言资源。src/router/:承载 React Router 配置。src-tauri/assets/icon/icon.png:应用主图标源文件,资源目录必须放在src-tauri/assets/下,路径风格参考../SJMCL/src-tauri/assets/;图标资源当前同步自../RocoAI/src-tauri/icons/。src-tauri/:承载 Tauri 配置与 Rust 入口。
主布局约定
main-layout是当前核心导航布局。- 窄屏使用底部 Tab,包含:首页、收藏夹、设置。
- 宽屏使用左侧导航菜单,菜单项横向显示图标与标题。
- 首页路由为
/home,收藏夹路由为/favorites,设置路由为/settings。 - 首页顶部包含类 Bilibili 的横向论文分类 Tab:
推荐、cs.AI、cs.CL、cs.CV、cs.GR是固定入口,全部按钮常驻最右侧。 全部是独立页面,路由为/categories,不使用 Modal;它仍属于main-layout,必须保留底部/侧边导航,并在导航中保持“首页”激活。- 首页分类常量维护在
src/constants/arxiv-categories.ts。从/categories选择固定入口之外的分类时,首页 Tab 临时显示一个额外分类;再次选择其它非固定分类时替换该临时项。 - 分类 Tab 的激活/聚焦颜色必须保持统一主题色,不按分类切换颜色。
- 除首页顶部搜索和分类导航外,当前页面内容保持空白。
脚本约定
npm run dev:启动 Vite。npm run tauri:dev:启动 Tauri 开发模式。npm run build:构建前端。npm run build:macos:构建 macOS Tauri App bundle。npm run build:android:构建 Android 目标。npm run build:ios:构建 iOS 目标。
迭代规则
- 后续新增页面时优先放入
src/pages/,并在src/router/index.tsx注册路由。 - 后续新增可复用 UI 时优先放入
src/components/。 - 后续新增布局时优先放入
src/layouts/。 - 所有可见文案必须进入
src/locales/的中英文资源,不在组件中硬编码。 - 严禁把功能说明、实现细节、缓存行为、技术来源、操作教程式描述直接写进界面文案;界面只保留必要的名称、按钮、占位符、状态和结果文案。
- 保持移动端优先和桌面宽屏适配,导航行为不得破坏现有三项主入口。