# 第 5 周——使用 Warp 进行智能体式开发

请将 `week5/` 中的应用作为你的实验场。本周作业与上一次类似，但将重点放在 Warp 智能体式开发环境和多智能体工作流上。

## 了解 Warp
- Warp 智能体式开发环境：[warp.dev](https://www.warp.dev/)
- [Warp University](https://www.warp.dev/university?slug=university)


## 探索起始应用
这是一个最小化全栈起始应用。
- 使用 SQLite（SQLAlchemy）的 FastAPI 后端
- 静态前端（无需 Node 工具链）
- 最小化测试（pytest）
- Pre-commit（black + ruff）
- 用于练习智能体驱动工作流的任务

请将此应用作为实验场，用来尝试你构建的 Warp 自动化。

### 目录结构

```
backend/                # FastAPI 应用
frontend/               # 由 FastAPI 提供服务的静态界面
data/                   # SQLite 数据库及种子数据
docs/                   # 用于智能体驱动工作流的任务清单
```

### 快速开始

1) 激活你的 conda 环境。

```bash
conda activate cs146s
```

2) （可选）安装 pre-commit 钩子

```bash
pre-commit install
```

3) 运行应用（从 `week5/` 目录）

```bash
make run
```

4) 访问 `http://localhost:8000` 查看前端，访问 `http://localhost:8000/docs` 查看 API 文档。

5) 尝试使用这个起始应用，熟悉其现有特性和功能。


### 测试
运行测试（从 `week5/` 目录）
```bash
make test
```

### 格式化/代码检查
```bash
make format
make lint
```

## 第一部分：构建你的自动化（选择至少 2 项）
从 `week5/docs/TASKS.md` 中选择任务并实现。你的实现必须通过以下两种方式使用 Warp（更多细节见下文）：

- A) 使用 Warp Drive 功能，例如已保存的提示词、规则或 MCP 服务器。
- B) 在 Warp 中使用多智能体工作流。

请将改动限定在 `week5/` 内的后端、前端、逻辑或测试中。
请注明每项所选任务的难度级别。


### A) Warp Drive 已保存的提示词、规则、MCP 服务器（必做：至少一项）
创建一个或多个适用于此代码仓库且可共享的 Warp Drive 提示词、规则或 MCP 服务器集成。例如：
- 支持覆盖率统计和不稳定测试重跑的测试运行器
- 文档同步：根据 `/openapi.json` 生成/更新 `docs/API.md`，并列出路由差异
- 重构工具：重命名模块、更新导入并运行代码检查/测试
- 发布助手：递增版本号、运行检查并准备一段变更日志
- 集成 Git MCP 服务器，使 Warp 能够自主地与 Git 交互（创建分支、提交、拉取请求说明等）

>*提示：保持工作流目标明确；支持传入参数；确保幂等性；并尽可能优先采用无界面、非交互式步骤。*

### B) Warp 中的多智能体工作流（必做：至少一项）
运行一次多智能体会话，让不同 Warp 标签页中的独立智能体并发处理彼此独立的任务。
- 在不同 Warp 标签页中使用并发智能体，执行 `TASKS.md` 中多个相互独立、可自行完成的任务。挑战：你能让多少个智能体同时工作？

>*提示：[git worktree](https://git-scm.com/docs/git-worktree) 可能有助于防止智能体相互覆盖改动。*


## 第二部分：实际运用你的自动化
既然你已经构建了至少 2 个自动化，现在就来实际使用它们！请在 `writeup.md` 的 *“你如何使用该自动化（它解决了什么痛点或加速了什么工作）”* 一节中，说明你如何利用每个自动化来改进某项工作流。

## 约束与范围
严格在 `week5/` 中工作（后端、前端、逻辑、测试）。除非自动化明确需要修改其他周的内容，并且你记录了原因，否则请勿改动其他周。


## 提交内容
1) 两个或更多 Warp 自动化，可以包括：
   - Warp Drive 工作流/规则（提供分享链接和/或导出的定义）以及任何辅助脚本
   - 用于协调多个智能体的任何补充提示词/操作手册

2) `week5/` 下的书面报告 `writeup.md`，其中应包括：
   - 每个自动化的设计，包括目标、输入/输出和步骤
   - 使用前与使用后的对比（即手动工作流与自动化工作流的对比）
   - 每项已完成任务所使用的自主性级别（授予了哪些代码权限、原因是什么，以及你如何监督）
   - （如适用）多智能体说明：角色、协调策略，以及并发带来的收益/风险/失败情况
   - 你如何使用该自动化（它解决了什么痛点或加速了什么工作）



## 提交说明
1. 确保你已将所有改动推送到远程代码仓库，以供评分。
2. **确保你已将 brentju 和 febielin 两人都添加为作业代码仓库的协作者。**
2. 通过 Gradescope 提交。
