本项目是股票投研工作流定制化平台,采用 T3 Stack(Next.js App Router + TypeScript + tRPC + Prisma + Tailwind CSS),核心目标是通过 LangGraph 编排的智能工作流快速排除市场噪音,聚焦高价值投资标的。
- 前端框架: Next.js 15+ (App Router 模式,禁用 Pages Router)
- 语言: TypeScript (严格模式,禁用
any类型除非有明确注释说明) - API 层: tRPC (端到端类型安全)
- 数据库: Prisma ORM
- 样式: Tailwind CSS
- 认证: NextAuth.js
- 代码质量: Biome (Linting + Formatting)
- 路径别名:
~/(例如import { User } from "~/server/db/schema")
-
DDD 分层架构 (Domain-Driven Design)
- 应用应当在横向上划分为不同的限界上下文;纵向上划分出应用层、领域层、基础设施层(没有接口层,因为采用了tRPC)
- 领域层内包括聚合根、实体、值对象、领域服务、领域事件,领域服务保持无状态
- 应用层保持无状态
-
T3 Stack (TypeScript) + Python FastAPI 微服务 混合架构:
- T3 Stack (Next.js):负责用户界面、业务逻辑编排、数据持久化,代码位于
src/目录 - Python FastAPI 服务:专门提供金融数据接口(AkShare),代码位于
python_services/目录 - 两者为独立的运行时和部署单元,通过 HTTP API 通信
- T3 侧通过基础设施层的 HTTP client 调用 FastAPI 服务,领域层不直接依赖外部服务(通过接口反转)
- T3 Stack (Next.js):负责用户界面、业务逻辑编排、数据持久化,代码位于
-
目录结构约定
src/server/domain/— 按限界上下文组织领域代码(如screening/、workflow/)src/server/infrastructure/— 基础设施层(仓储实现、外部服务客户端等)src/server/api/routers/— tRPC routers 充当应用层入口,编排领域服务调用,本身不含业务逻辑python_services/— Python 微服务,独立的工具链(pyproject.toml)、独立测试、独立部署
-
LangGraph 工作流编排
- 所有 AI Agent 工作流使用 LangGraph.js 定义
- 工作流配置存储在数据库,支持用户自定义
当你完成以下任何一类操作后,必须自动执行 git add {修改的文件}、git commit -m "<message>"、git push:
- 修复 bug 或错误(如导入路径修复、运行时报错修复)
- 新增功能或文件
- 重构代码(如重命名、移动文件、调整结构)
- 修改配置文件(如 Dockerfile、pytest.ini、requirements.txt 等)
- 更新或新增测试
- 更新文档(如 README、需求文档、AGENTS.md 等)
使用中文,遵循 Conventional Commits 风格:
<type>: <简要描述>
<可选的详细说明>
type 取值:
fix: 修复 bugfeat: 新功能refactor: 重构docs: 文档变更chore: 构建/配置/工具变更test: 测试相关style: 格式调整(不影响逻辑)
- 每次操作完成后立即提交,不要积攒多个不相关的变更到一个 commit
- commit 消息要准确描述本次变更内容
- 如果一次用户请求涉及多个不相关的改动,拆分为多个 commit