### 开发环境说明
- 多八多云端开发容器环境
- Node.js 20.19.2
- PostgresSQL 17 (默认数据库: postgres) 
- Redis 7
- MinIO(默认存储桶: d8dai)
- 所有服务使用默认参数连接，正式环境参数相同
- 默认开放8080端口供外网访问
- 开发服务器在8080端口默认开机自动启动，无需手动启动

- ### Claude Code
- use pnpm
- 数据库在同一容器组的另一个容器中，需要运行 psql -h 127.0.0.1 -U postgres 来访问
- vitest中，只有console.debug会显示，其他的都屏蔽了
- vitest中，用import 来配合 vi.mocked，而不是require
- **E2E测试**:
  - 运行所有E2E测试: `pnpm test:e2e:chromium`
  - 运行单个测试文件: `pnpm test:e2e:chromium <测试文件名>` (如: `pnpm test:e2e:chromium disability-person-complete`)
  - **快速失败模式** (推荐调试时使用): 使用 Linux `timeout` 命令限制总运行时间
    - `timeout 30 pnpm test:e2e:chromium` (所有测试，30秒后中断)
    - `timeout 60 pnpm test:e2e:chromium disability-person-complete` (单文件测试，60秒后中断)
  - E2E测试失败时先查看页面结构 `test-results/**/error-context.md`
  - E2E测试在 web 目录下运行: `cd web && pnpm test:e2e:chromium`
  - **配置文件超时**: `playwright.config.ts` 中已设置 `timeout: 60000` (60秒，单个测试的默认超时)
- 前端是 hono/client  hc  rpc 的，不是直接fetch
- **project-context.md 路径**: `_bmad-output/project-context.md`
- 必须用中文回答
- **git提交**: 当遇到git锁文件冲突时，使用单条命令：`rm -f /mnt/code/184-172-template-6/.git/index.lock && git add <文件> && git commit -m "提交信息"`
- **测试调试**: 使用 `pnpm test --testNamePattern "测试名称"` 来运行特定测试查看详细信息 (mini使用Jest，其他包使用Vitest)
  - **Vitest**: 支持 `-t` 或 `--testNamePattern`
  - **Jest**: 只支持 `--testNamePattern`，mini是Jest
  - **Mini测试**: 需要先进入mini目录再运行 `pnpm test --testNamePattern "测试名称"`
- **表单调试**: 表单提交失败时，在表单form onsubmit=form.handleSubmit的第二个参数中加console.debug来看表单验证错误，例如：`form.handleSubmit(handleSubmit, (errors) => console.debug('表单验证错误:', errors))`
- 类型检查 可以用 pnpm typecheck 加 grep来过滤要检查的 指定文件
- **长文档分段生成**: 如果文档（如 story 文档）太长一次生成不完，应该分段生成：
  1. 先使用 Write 工具创建文件的基础部分（header、requirements）
  2. 使用 Edit 工具逐步添加其他部分（dev notes、references、dev agent record 等）
  3. 每次添加一个主要部分，确保不会超过单次生成的长度限制