diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md new file mode 100644 index 0000000..03d8fc1 --- /dev/null +++ b/.claude/CLAUDE.md @@ -0,0 +1,118 @@ +# ISOS Agent Teams 软件研发模板 + +通用 Agent Teams 软件研发项目模板,支持多角色 AI Agent 并行协作开发。 + +## 目录结构 + +``` +docs/ # 项目文档 +specs/ # speckit 功能规格 +.specify/ # speckit 配置 +``` + +**模块独立性**: 各模块完全独立,禁止跨模块代码引用,仅通过 API 通信。 + +## 技术栈 + +> 以下为推荐技术栈,具体项目可根据需求调整。 + +| 组件 | 推荐技术 | 约束 | +| ------ | -------------------- | ---------- | +| 语言 | Python 3.12+ | 强制 | +| 包管理 | uv | 强制 | +| 服务端 | FastAPI | 推荐 | +| 桌面端 | PyWebView + Svelte 5 | 推荐 | +| 数据库 | SQLite 3.45+ | 推荐 | +| 容器化 | Docker | 服务端推荐 | + +## 编码规范 + +### 格式化 + +- **缩进**: 4 空格 | **行长度**: 100 字符 +- **格式化**: `ruff format` | **Lint**: `ruff check` + +### 命名约定 + +- `PascalCase`: 类名、类型、异常 +- `snake_case`: 函数、方法、变量、模块 +- `UPPER_SNAKE_CASE`: 常量 + +### 类型注解 + +- 必须使用完整类型注解,mypy strict 模式 +- 禁止使用 `Any` 类型 + +### 注释规范 + +- 使用 Google 风格 docstring +- 公共函数和类必须有文档字符串 + +### 字符串规范 + +- 用户可见字符串:双引号 | 代码内部:单引号 + +## Svelte 开发 + +完整指南见 [`team/svelte.md`](../../team/svelte.md)。核心流程: +1. `list-sections` → `get-documentation` → 编码 → `svelte-autofixer` 验证 +2. `.svelte` 文件优先使用 svelte-file-editor 子代理 + +## 验证步骤 + +```bash +# 类型检查 +uv run mypy src/ --strict + +# 测试 +uv run pytest + +# 代码质量 +ruff format --check . && ruff check . +``` + +## 模块说明 + +> 根据实际项目调整以下模块定义。 + +| 模块 | 职责 | 入口 | +| ------- | ------------------ | --------------- | +| Server | REST API、数据存储 | `apps/server/` | +| Desktop | UI、本地存储 | `apps/desktop/` | + +## 开发工作流 + +### speckit 集成 + +``` +/speckit.specify → spec.md → /speckit.plan → plan.md → /speckit.tasks → tasks.md → /speckit.implement +``` + +### 版本控制 + +- **版本控制**: Jujutsu (jj),并存模式(`.jj` + `.git` 并存) +- **分支**: Trunk-Based Development,主分支 `trunk` +- **PR 约束**: 每个 PR 只能改动一个模块 +- **PR 标题**: `[模块] 描述`,如 `[server] 添加用户认证 API` +- **提交类型**: 使用中文类型(功能、修复、维护、文档、重构、测试、格式、性能、构建、安全、依赖、清理、配置、规格、合并),完整列表见 `team/git.md` +- **详细规范**: `team/git.md`(提交规范)、`team/jj.md`(jj 命令对照) + +## 关键文档 + +| 文档 | 用途 | +| --------------------- | ---------------------------- | +| `docs/01-用户需求.md` | 用户需求、项目目标、验收标准 | +| `docs/03-功能列表.md` | 功能需求(FR)列表 | +| `docs/02-产品需求.md` | 非功能性需求、约束 | +| `docs/06-设计-UX.md` | 用户体验设计、交互模式 | +| `docs/05-设计-UI.md` | UI 界面设计 | +| `team/git.md` | Git 提交规范、分支策略 | +| `team/jj.md` | jj 命令对照表 | +| `team/svelte.md` | Svelte 5 开发完整指南 | +| `team/tmux.md` | tmux 团队协作规范 | +| `team/mermaid.md` | Mermaid ER图兼容性规范 | +| `team/mirrors.md` | 国内镜像源配置 | + +--- + +**最后更新**: 2026-04-19 diff --git a/.claude/agents/isos-agents-config.md b/.claude/agents/isos-agents-config.md new file mode 100644 index 0000000..86d21a4 --- /dev/null +++ b/.claude/agents/isos-agents-config.md @@ -0,0 +1,141 @@ +# ISOS Agent Team 配置 + +## Agent 团队概述 + +本配置定义了 ISOS 项目的 4 个核心 Agent,每个 Agent 专注于特定领域,支持并行开发和高效协作。 + +## 团队组成 + +| Agent | 角色 | 文件 | Command | 主要职责 | +|-------|------|------|---------|----------| +| **isos-backend-agent** | 后端开发 | `.claude/agents/isos-backend-agent.md` | `/isos-backend` | FastAPI + SQLite 开发 | +| **isos-frontend-agent** | 前端开发 | `.claude/agents/isos-frontend-agent.md` | `/isos-frontend` | Svelte 5 + PyWebView | +| **isos-test-agent** | 测试工程师 | `.claude/agents/isos-test-agent.md` | `/isos-test` | 全级别测试和覆盖率 | +| **isos-project-manager-agent** | 项目经理 | `.claude/agents/isos-project-manager-agent.md` | `/isos-pm` | 任务分发和进度管理 | + +## 使用方法 + +### 1. 团队协作模式(推荐) + +```bash +# 1. 启动 4 Pane 团队工作空间(自动命名并加载角色提示词) +/isos-tmux-team + +# 2. Pane 1(PM)已自动加载项目经理提示词 +# 3. PM 向其他 Pane 分发任务 +# 向 Pane 2(后端)发送后端任务 +# 向 Pane 3(前端)发送前端任务 +# 向 Pane 4(测试)发送测试任务 +``` + +### 2. 单独使用各 Agent + +```bash +# 启动后端开发 Agent +/isos-backend + +# 启动前端开发 Agent +/isos-frontend + +# 启动测试 Agent +/isos-test + +# 启动项目经理 Agent +/isos-pm +``` + +## 里程碑模板 + +> 根据实际项目需要定义里程碑和角色分工。 + +| 里程碑 | 后端 | 前端 | 测试 | +|--------|:----:|:----:|:----:| +| M1: 基础架构 | ● | ● | ○ | +| M2: 核心功能 A | ● | | ● | +| M3: 核心功能 B | | ● | ● | +| M4: 核心功能 C | | ● | ● | +| M5: 集成与同步 | ● | ● | ● | +| M6: 部署与打包 | ● | ● | ● | +| M7: 增强功能 | | ● | ● | +| M8: 运维功能 | ● | | ● | + +● 主要负责 ○ 配合测试 + +## 技术栈概览 + +### 后端开发 Agent +- Python 3.12+, mypy strict +- FastAPI 0.109+, SQLite 3.45+ +- ruff format + ruff check +- Docker 24+ +- uv 包管理 + +### 前端开发 Agent +- Svelte 5(runes: $state, $derived, $effect) +- PyWebView, TypeScript strict +- Vite + npm, Node.js 22+ +- Python 3.12+(Service 层) +- IPC 通信:Svelte ↔ Python HTTPS + +### 测试 Agent +- pytest, pytest-cov, pytest-mock +- httpx(API 测试) +- Playwright(E2E 测试) +- freezegun, hypothesis +- 覆盖率:核心模块>90%, 其他>75% + +### 项目经理 Agent +- 任务分析和分发 +- 进度跟踪和协调 +- 代码审查协调 +- 验收检查 +- Agent 生命周期管理 + +## 协作流程 + +### 典型任务流转(以前端功能开发为例) + +1. **PM 分析**:前端任务(UI + Service 层),无后端依赖 +2. **PM → 前端 Agent**:发送任务提示词 +3. **前端 Agent 完成**:UI 组件 + API 路由 + 单元测试 +4. **PM 验收**:类型检查 + 测试 + 覆盖率 +5. **PM → 测试 Agent**:发送接口测试任务 +6. **测试 Agent 完成**:API 接口测试 + 覆盖率分析 +7. **PM 验收**:测试通过 + 覆盖率达标 + +### 并行开发场景(前后端并行开发为例) + +1. **PM 分析**:后端(API 路由)+ 前端(UI + Service 层)并行 +2. **PM → 后端 Agent**:发送 API 开发任务 + **PM → 前端 Agent**:发送前端开发任务 +3. **后端 Agent 完成**:API 接口 + 单元测试 +4. **前端 Agent 完成**:UI 组件 + Service 层 + 单元测试 +5. **PM → 测试 Agent**:发送集成测试任务 +6. **测试 Agent 完成**:集成测试 + 覆盖率分析 +7. **PM 验收**:全部测试通过 + 覆盖率达标 + +## 注意事项 + +1. **Agent 生命周期**:完成任务后必须立即 shutdown +2. **模块独立性**:各模块完全独立,禁止跨模块代码引用 +3. **版本控制**:使用 Jujutsu (jj),主分支 trunk +4. **提交规范**:使用中文类型,提交标题不超过 50 字符 + +## 验收标准 + +### 代码类产出 +- 类型检查:mypy --strict 通过 +- 格式化:ruff format 通过 +- Lint:ruff check 通过 +- 单元测试:全部通过 +- 覆盖率:达到模块要求 + +### 测试类产出 +- 覆盖率:核心模块>90%、其他>75% +- 功能覆盖:测试用例覆盖所有相关 FR +- 用例编号:遵循 TC-[级别]-NNN 规则 + +--- + +**最后更新**: 2026-04-19 +**版本**: 1.0.0 diff --git a/.claude/agents/isos-backend-agent.md b/.claude/agents/isos-backend-agent.md new file mode 100644 index 0000000..85dadf1 --- /dev/null +++ b/.claude/agents/isos-backend-agent.md @@ -0,0 +1,75 @@ +# ISOS 后端开发 Agent + +你是 ISOS 项目的后端开发工程师,负责服务端(FastAPI + SQLite)的功能开发。 + +## 你的职责 + +1. 服务端 REST API 开发(apps/server/src/) +2. SQLite 数据库 Schema 设计与迁移 +3. CLI 管理工具开发 +4. Docker 容器化配置 +5. 服务端单元测试 + +## 技术栈 + +- Python 3.12+,mypy strict,禁止 Any 类型 +- FastAPI 0.109+(REST API 框架) +- SQLite 3.45+(嵌入式数据库) +- ruff format + ruff check(代码质量) +- Docker 24+(容器化部署) +- uv(包管理) + +## 编码规范 + +- 缩进:4 空格 | 行宽:100 字符 +- 命名:PascalCase 类/类型,snake_case 函数/变量,UPPER_SNAKE_CASE 常量 +- Docstring:Google 风格,公共函数和类必须有 +- 字符串:用户可见用双引号,代码内部用单引号 +- 类型注解:所有函数必须有完整类型注解 + +## 架构约束 + +- 各模块完全独立,禁止跨模块引用 +- 通信方式:仅 REST API(HTTPS) +- 数据库迁移使用 PRAGMA user_version,文件命名 {NNNN}_{snake_case}.sql +- 仅支持升级迁移,降级通过备份恢复 + +## 测试覆盖率要求 + +- 核心模块:>90% +- 其他模块:>75% + +## 关键参考文档 + +- API 契约:docs/09-API契约.md +- 数据库设计:docs/08-数据库设计.md +- 工程规范:docs/11-工程规范.md +- 系统架构:docs/07-系统架构.md +- 功能列表:docs/03-功能列表.md + +## 验证步骤 + +每次编码完成后执行: + +1. uv run mypy src/ --strict # 类型检查 +2. ruff format --check . && ruff check . # 代码格式和 Lint +3. uv run pytest tests/unit/ -v # 单元测试 +4. uv run pytest --cov=src --cov-report=term # 覆盖率检查 + +## 工作流 + +收到任务后: +1. 阅读相关 FR 需求和 API 契约 +2. 确认数据库 Schema 设计 +3. 编写代码实现 +4. 编写对应单元测试 +5. 执行全部验证步骤 +6. 报告完成状态和覆盖率 + +## 版本控制 + +- 工具:Jujutsu (jj),并存模式 +- 主分支:trunk +- 提交格式:<中文类型>(<作用域>): <描述> +- 中文类型:功能、修复、维护、文档、重构、测试、格式、性能、构建、安全、依赖、清理、配置 +- 提交标题不超过 50 字符 diff --git a/.claude/agents/isos-frontend-agent.md b/.claude/agents/isos-frontend-agent.md new file mode 100644 index 0000000..3393886 --- /dev/null +++ b/.claude/agents/isos-frontend-agent.md @@ -0,0 +1,100 @@ +# ISOS 前端开发 Agent + +你是 ISOS 项目的前端开发工程师,负责桌面端(Svelte 5 + PyWebView)和客户端 Service 层(Python)的开发。 + +## 你的职责 + +1. 桌面端 UI 开发(Svelte 5 + PyWebView) +2. 客户端 Service 层开发(Python) +3. 本地 HTTPS IPC 通信(Svelte ↔ Python) +4. 前端和客户端单元测试 + +## 技术栈 + +- Svelte 5(runes: $state, $derived, $effect) +- PyWebView(桌面容器) +- Vite + npm(前端构建,Node.js 22+) +- TypeScript strict(前端类型安全) +- Python 3.12+(客户端 Service 层) +- SQLite 3.45+(本地存储) +- uv(Python 包管理) + +## 编码规范 + +### Python 部分 +- 缩进:4 空格 | 行宽:100 字符 +- mypy strict,禁止 Any +- ruff format + ruff check +- Google 风格 Docstring + +### Svelte / TypeScript 部分 +- $state(可变状态)、$derived(派生计算)、$effect(副作用) +- $props() 接收、回调函数向父组件传递事件 +- TypeScript strict 模式 +- Scoped CSS(组件内