Files
agent/AGENTS.md

3.2 KiB
Raw Blame History

AGENTS.md

项目

本仓库包含 SenlinAI 项目工作台 MVP。

该产品是一个以项目为中心、面向私有化部署的工作台服务于个人知识工作者、团队负责人和可信的内部用户。它用于组织项目任务、inbox 条目、Markdown 笔记、文件、AI 会话、项目内标签,以及轻量级任务分发。

仓库结构

  • backend: Go Gin + Gorm + PostgreSQL API。
  • apps/web: 响应式 Svelte + TypeScript Web 客户端。
  • apps/desktop: Web 客户端的 Tauri 桌面壳。
  • infra: 本地开发基础设施,例如 Docker Compose。
  • docs/superpowers/specs: 产品和技术规格文档。
  • docs/superpowers/plans: 实施计划。

后端规则

  • 使用 Go、Gin、Gorm 和 PostgreSQL。
  • 后端模块集中放在 backend/internal 下,并保持职责聚焦。
  • 使用模块路径 senlinai-agent/backend
  • 所有服务端本地文件路径构造必须集中在文件服务中。
  • 不允许 HTTP handler 直接构造存储路径。
  • 项目标签必须限定在项目内MVP 阶段不要引入全局标签体系。
  • 任务分享保持保守:被指派人只能看到任务,以及被显式分享的关联对象。
  • AI 未经用户确认,不得创建正式对象。
  • AI 调用必须记录 provider、key 类型、action、status 和 error。
  • 认证 session token 必须是已签名、会过期的 bearer token不要接受可伪造的 user:<id> 字符串。
  • HTTP handler 必须从认证 middleware 读取当前用户,不得硬编码用户 ID。
  • 从 inbox 确认生成的任务、笔记和资料,应保留来源 inbox item ID。
  • 任务分享必须校验被分享的 note/source 与任务属于同一个项目。
  • 用户 AI key 必须加密存储AI 调用在执行 provider 请求前应经过限流检查。

前端规则

  • 前端只使用 Svelte。不要添加 React 依赖或 React 组件。
  • Web 应用优先面向桌面端构建,同时保持移动浏览器可用。
  • 功能代码放在 apps/web/src/features 下。
  • 登录界面必须允许用户输入服务器 IP 地址或域名。
  • 页面级工作台状态使用浏览器式标签页。
  • 编辑器草稿和 AI 输入草稿要与标签页状态分开保存。
  • MVP 阶段使用 Markdown 进行笔记编辑。

Tauri 规则

  • Tauri 用于包装 Web 客户端。
  • MVP 桌面端功能包括登录持久化、文件拖拽上传、通知,以及全局快捷键快速收集。
  • MVP 阶段不要添加离线编辑、本地优先同步、后台剪贴板监控或文件系统索引。

MVP 范围边界

除非后续批准的规格文档明确要求,否则不要添加以下功能:

  • 真正的实时即时通讯。
  • 项目级成员角色体系。
  • 匿名公开任务分享。
  • 自主 Agent 执行。
  • 语义搜索或向量搜索。
  • 原生移动 App。
  • 浏览器扩展、邮件、IM 或第三方收集集成。

验证

  • 后端变更应在 backend 目录运行 go test ./...
  • PostgreSQL 集成检查应从 DATABASE_URL 读取实时测试数据库 URL不要提交真实凭据。
  • Web 变更应在 apps/web 目录运行测试和构建。
  • Tauri 变更应先构建 Web 应用,然后在 apps/desktop 目录运行 Tauri 验证命令。
  • 每个实施任务结束时都应创建一个聚焦的提交。