Files
nexus/Project/fonrey/PRD/TASK_AGENT_READY.md
2026-04-30 18:40:55 +08:00

390 KiB
Raw Blame History

TASK Agent Ready PromptsOpenCode 执行版)

生成时间2026-04-28 16:01:37 来源文件:PRD/TASK.md 目标:把每条 US 转成可直接交给 OpenCode 的执行提示词。

1) 总体结论

  • 任务总数:83
  • 完备度分级A=24B+=38B=5C=16
  • 其中 C 级(不建议直接编码):16(主要为 P2 验收标准占位)

分阶段统计

Phase 任务数 A B+ B C 验收占位数
P0 42 20 21 1 0 0
P1 28 4 17 4 3 0
P2 13 0 0 0 13 13

2) 模块 → TECH_STACK 技术方案映射

模块 技术方案输入文档
用户登录 Project/fonrey/TECH_STACK/登录管理技术方案.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
楼盘管理 Project/fonrey/TECH_STACK/楼盘管理技术方案.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
房源管理 Project/fonrey/TECH_STACK/房源管理技术方案.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
客源管理 Project/fonrey/TECH_STACK/客源管理技术方案.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
组织人事 Project/fonrey/TECH_STACK/组织人事技术方案.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
权限管理 Project/fonrey/TECH_STACK/权限管理系统技术方案.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
系统配置 Project/fonrey/TECH_STACK/系统设置技术方案.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
系统管理(运营后台) Project/fonrey/TECH_STACK/系统管理技术文档.mdProject/fonrey/TECH_STACK/API_CONTRACT.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md
客户端发布 Project/fonrey/TECH_STACK/API_CONTRACT.mdProject/fonrey/TECH_STACK/系统管理技术文档.mdProject/fonrey/TECH_STACK/TECH_STACK.mdProject/fonrey/TECH_STACK/测试规范.md

3) OpenCode 全局执行约束(每条任务都必须带上)

  1. 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
  2. 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
  3. Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
  4. HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
  5. 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
  6. 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
  7. PII手机号等必须加密存储core/encryption.py展示默认脱敏。
  8. 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
  9. 必须遵守 Project/fonrey/TECH_STACK/API_CONTRACT.md:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
  10. 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
  11. UI_DESIGN/ 下已审阅的静态页面(.html/.md)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
  12. 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

3.1) 可复用模板(建议直接引用)

  • API 契约冲突提报模板:Project/fonrey/prompt/提示词模板/API_CONTRACT_冲突提报模板_v1.md

4) 通用执行模板(复制后替换 US 内容)

你是 OpenCode 编程代理。请在当前仓库根目录实现以下任务。

【任务ID】<US-ID>
【任务标题】<US-标题>
【阶段】<P0/P1/P2>
【模块】<模块名>

【输入文档】
- PRD: <路径>
- DATA_MODEL: <路径或 N/A>
- UI: <路径或 N/A>
- TECH_STACK: <路径列表>

【必须遵循约束】
- 多租户 URL 分离、Admin 弃用、HTMX 片段返回、TenantClient、PII 加密、testing settings 等(见 TASK_AGENT_READY.md §3

【实现要求】
1) 先输出你将修改/新增的文件清单(精确路径)。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 `UI_DESIGN/` 对应 `.html`/`.md` 静态页面,列出“必须保持一致”的页面结构与交互点,再开始编码。
4) 再按最小可交付实现功能,不做额外功能扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补充/更新对应测试。
6) 执行测试命令并给出结果。
7) 输出风险与后续建议。

【验收标准】
<粘贴该 US 的验收标准>

【必须执行测试命令】
- pytest -q
- 如涉及 HTMX 局部接口:补充 HTTP_HX_REQUEST=true 场景测试

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 关键实现说明
- 测试结果
- 未完成项/阻塞项

5) 任务索引与完备性

US Phase 模块 完备度 缺口
US-ACCOUNT-001 P0 用户登录 A
US-ACCOUNT-002 P0 用户登录 B+ 缺 UI
US-ACCOUNT-003 P0 用户登录 B+ 缺 UI
US-COMPLEX-001 P0 楼盘管理 B 引用文件缺失
US-COMPLEX-002 P0 楼盘管理 A
US-COMPLEX-003 P0 楼盘管理 B+ 缺 UI
US-PROPERTY-001 P0 房源管理 A
US-PROPERTY-002 P0 房源管理 A
US-PROPERTY-003 P0 房源管理 A
US-PROPERTY-004 P0 房源管理 B+ 缺 UI
US-PROPERTY-005 P0 房源管理 B+ 缺 UI
US-PROPERTY-006 P0 房源管理 B+ 缺 UI
US-PROPERTY-007 P0 房源管理 B+ 缺 UI
US-PROPERTY-008 P0 房源管理 B+ 缺 UI
US-CLIENT-001 P0 客源管理 A
US-CLIENT-002 P0 客源管理 A
US-CLIENT-003 P0 客源管理 A
US-CLIENT-004 P0 客源管理 A
US-CLIENT-005 P0 客源管理 A
US-CLIENT-006 P0 客源管理 A
US-CLIENT-007 P0 客源管理 A
US-CLIENT-008 P0 客源管理 A
US-CLIENT-009 P0 客源管理 A
US-CLIENT-010 P0 客源管理 A
US-CLIENT-011 P0 客源管理 A
US-CLIENT-012 P0 客源管理 A
US-CLIENT-013 P0 客源管理 A
US-CLIENT-014 P0 客源管理 A
US-CLIENT-015 P0 客源管理 A
US-CLIENT-016 P0 客源管理 B+ 缺 UI
US-CLIENT-017 P0 客源管理 B+ 缺 UI
US-ORG-001 P0 组织人事 B+ 缺 UI
US-ORG-002 P0 组织人事 B+ 缺 UI
US-ORG-003 P0 组织人事 B+ 缺 UI
US-PERMISSION-001 P0 权限管理 B+ 缺 UI
US-PERMISSION-002 P0 权限管理 B+ 缺 UI
US-PERMISSION-003 P0 权限管理 B+ 缺 UI
US-PERMISSION-004 P0 权限管理 B+ 缺 UI
US-PERMISSION-005 P0 权限管理 B+ 缺 UI
US-SETTING-001-A P0 系统配置 B+ 缺 UI
US-SETTING-001-B P0 系统配置 B+ 缺 UI
US-SETTING-001-C P0 系统配置 B+ 缺 UI
US-ACCOUNT-010 P1 用户登录 B+ 缺 UI
US-ACCOUNT-011 P1 用户登录 B+ 缺 UI
US-ACCOUNT-012 P1 用户登录 B+ 缺 UI
US-COMPLEX-010 P1 楼盘管理 B+ 缺 UI
US-COMPLEX-011 P1 楼盘管理 B+ 缺 UI
US-COMPLEX-012 P1 楼盘管理 B+ 缺 UI
US-PROPERTY-010 P1 房源管理 B+ 缺 UI
US-PROPERTY-011 P1 房源管理 B+ 缺 UI
US-PROPERTY-012 P1 房源管理 B+ 缺 UI
US-PROPERTY-013 P1 房源管理 B+ 缺 UI
US-PROPERTY-014 P1 房源管理 B+ 缺 UI
US-CLIENT-020 P1 客源管理 A
US-CLIENT-021 P1 客源管理 A
US-CLIENT-022 P1 客源管理 A
US-CLIENT-023 P1 客源管理 A
US-CLIENT-024 P1 客源管理 B+ 缺 UI
US-ORG-010 P1 组织人事 B+ 缺 UI
US-ORG-011 P1 组织人事 B+ 缺 UI
US-ORG-012 P1 组织人事 B+ 缺 UI
US-PERMISSION-010 P1 权限管理 B+ 缺 UI
US-PERMISSION-011 P1 权限管理 B+ 缺 UI
US-SETTING-010 P1 系统配置 C 缺 UI引用文件缺失
US-SETTING-011 P1 系统配置 C 缺 UI引用文件缺失
US-SETTING-012 P1 系统配置 C 缺 UI引用文件缺失
US-SYSTEM-010 P1 系统管理(运营后台) B 缺 DATA_MODEL缺 UI
US-SYSTEM-011 P1 系统管理(运营后台) B 缺 DATA_MODEL缺 UI
US-RELEASE-010 P1 客户端发布 B 缺 DATA_MODEL缺 UI
US-RELEASE-011 P1 客户端发布 B 缺 DATA_MODEL缺 UI
US-PROPERTY-020 P2 房源管理 C 缺 DATA_MODEL缺 UI验收占位
US-PROPERTY-021 P2 房源管理 C 缺 DATA_MODEL缺 UI验收占位
US-COMPLEX-020 P2 楼盘管理 C 缺 DATA_MODEL缺 UI验收占位
US-CLIENT-030 P2 客源管理 C 缺 UI验收占位
US-CLIENT-031 P2 客源管理 C 缺 UI验收占位
US-CLIENT-032 P2 客源管理 C 缺 UI验收占位
US-ORG-020 P2 组织人事 C 缺 UI验收占位
US-ORG-021 P2 组织人事 C 缺 UI验收占位
US-ORG-022 P2 组织人事 C 缺 UI验收占位
US-SETTING-020 P2 系统配置 C 缺 DATA_MODEL缺 UI验收占位引用文件缺失
US-SETTING-021 P2 系统配置 C 缺 DATA_MODEL缺 UI验收占位引用文件缺失
US-SYSTEM-020 P2 系统管理(运营后台) C 缺 DATA_MODEL缺 UI验收占位
US-SYSTEM-021 P2 系统管理(运营后台) C 缺 DATA_MODEL缺 UI验收占位

6) 每条任务的 OpenCode 可执行提示词

US-ACCOUNT-001 经纪人管理员使用账号密码登录系统

  • 阶段:P0
  • 模块:用户登录
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md - 账号密码登录
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/登录管理/登录_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_账号密码_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/登录管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ACCOUNT-001
【任务标题】经纪人管理员使用账号密码登录系统
【阶段】P0
【模块】用户登录

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 账号密码登录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/登录管理/登录_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
输入正确账号密码后跳转首页;密码错误时展示"账号或密码错误"提示连续错误5次后账号锁定提示登录成功后 Token 写入 Cookie

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ACCOUNT-002 系统识别多租户子域名域名路由

  • 阶段:P0
  • 模块:用户登录
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md - 多租户识别
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_账号密码_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/登录管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ACCOUNT-002
【任务标题】系统识别多租户子域名域名路由
【阶段】P0
【模块】用户登录

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 多租户识别
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
访问不同子域名时系统自动切换对应租户 Schema非法/不存在子域名返回404页面跨租户请求被拦截并返回403

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ACCOUNT-003 系统管理 Token 与会话超时

  • 阶段:P0
  • 模块:用户登录
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md - Token 管理/会话超时
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_账号密码_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/登录管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ACCOUNT-003
【任务标题】系统管理 Token 与会话超时
【阶段】P0
【模块】用户登录

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - Token 管理/会话超时
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
会话超时后自动跳转登录页Token 刷新机制正常工作;登出后 Token 立即失效,再次请求跳转登录页

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-COMPLEX-001 管理员录入与维护楼盘基础信息

  • 阶段:P0
  • 模块:楼盘管理
  • 完备度:B
  • 引用缺失:UI_DESIGN/楼盘管理/楼盘详情_UI.md

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md - 楼盘信息管理
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/楼盘管理/楼盘详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/区域管理_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/楼盘管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-COMPLEX-001
【任务标题】管理员录入与维护楼盘基础信息
【阶段】P0
【模块】楼盘管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘信息管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/楼盘管理/楼盘详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【输入缺口】
- 缺少文件UI_DESIGN/楼盘管理/楼盘详情_UI.md
- 若缺口阻塞实现,请先输出“阻塞清单 + 最小替代方案”,再继续实现可落地部分。

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可录入楼盘名称、地址、楼栋、结构等基础字段;保存成功后楼盘出现在楼盘列表;必填字段未填时高亮错误提示;楼盘编号系统自动生成且唯一

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-COMPLEX-002 经纪人查看楼盘列表与详情

  • 阶段:P0
  • 模块:楼盘管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md - 楼盘列表/楼盘详情
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/楼盘管理/楼盘列表_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/区域管理_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/楼盘管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-COMPLEX-002
【任务标题】经纪人查看楼盘列表与详情
【阶段】P0
【模块】楼盘管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘列表/楼盘详情
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/楼盘管理/楼盘列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
楼盘列表支持按名称/地址关键词搜索支持分页默认20条/页);点击楼盘名称跳转详情页;详情页展示楼盘基本信息、楼栋结构信息

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-COMPLEX-003 管理员维护区域管理城区商圈

  • 阶段:P0
  • 模块:楼盘管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md - 区域管理
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/区域管理_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/楼盘管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-COMPLEX-003
【任务标题】管理员维护区域管理城区商圈
【阶段】P0
【模块】楼盘管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 区域管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可新增/编辑/删除城区和商圈;商圈必须归属于城区;区域数据被房源和客源模块正确关联引用;删除有关联数据的区域时系统给出警告

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-001 经纪人录入二手住宅出售出租

  • 阶段:P0
  • 模块:房源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 录入住宅(二手出售/出租)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/房源管理/新增房源_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-001
【任务标题】经纪人录入二手住宅出售出租
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 录入住宅(二手出售/出租)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/新增房源_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可在3分钟内完成住宅基本信息录入必填字段楼盘/楼层/面积/价格)未填时高亮错误提示;保存成功后跳转房源详情页并显示"保存成功";录入后即刻出现在房源列表

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-002 经纪人查看与筛选房源列表

  • 阶段:P0
  • 模块:房源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 房源列表(二手&租赁)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/房源管理/房源列表_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-002
【任务标题】经纪人查看与筛选房源列表
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源列表(二手&租赁)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/房源列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
列表支持按楼盘名/业主姓名/电话/房源编号关键词搜索;支持状态/区域/价格/房型多维度组合筛选列表分页默认20条/页且89000条数据下查询响应<2秒支持导出当前筛选结果为Excel

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-003 经纪人查看房源详情页

  • 阶段:P0
  • 模块:房源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 房源详情页
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/房源管理/房源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-003
【任务标题】经纪人查看房源详情页
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源详情页
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/房源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
详情页完整展示基本信息、产证信息、交易信息;号码默认打码,点击"查看号码"后解密展示并记录审计日志;页面各功能 Tab 可正常切换

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-004 经纪人写入与查看房源跟进记录

  • 阶段:P0
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 跟进记录(全部/写入/修改/其他)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-004
【任务标题】经纪人写入与查看房源跟进记录
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 跟进记录(全部/写入/修改/其他)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
跟进记录按时间线倒序展示;支持写入跟进/修改跟进/其他跟进(钥匙/委托/实勘子Tab切换跟进内容最少6字校验写入成功后记录实时出现在列表顶部

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-005 经纪人管理房源图片上传分类排序

  • 阶段:P0
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 图片管理(相册上传/分类/排序)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-005
【任务标题】经纪人管理房源图片上传分类排序
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 图片管理(相册上传/分类/排序)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
支持上传 bmp/jpg/png/gif 格式图片单文件最大20MB上传成功后自动按分类展示支持拖拽排序封面图可手动指定

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-006 经纪人管理业主联系人

  • 阶段:P0
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 业主联系人管理
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-006
【任务标题】经纪人管理业主联系人
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 业主联系人管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
支持新增/编辑业主联系人(姓名/电话/微信);手机号加密存储,展示时默认打码;可查看同业主名下其他房源;至少保留一个联系人

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-007 经纪人调整房源价格

  • 阶段:P0
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 价格调整(调价/调价记录)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-007
【任务标题】经纪人调整房源价格
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 价格调整(调价/调价记录)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
调价弹窗需填写新价格和调价原因;调价成功后房源列表和详情页价格实时更新;调价记录以时间线形式留存且不可删除;调价幅度在列表中以"降价XX万"标签展示

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-008 经纪人变更房源状态

  • 阶段:P0
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 房源状态变更(在售/暂缓/成交/下架)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-008
【任务标题】经纪人变更房源状态
【阶段】P0
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源状态变更(在售/暂缓/成交/下架)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
状态变更严格遵循状态机流转规则(在售→暂缓/成交/下架);每次状态变更需填写原因;状态变更后列表状态标签实时更新;状态变更记录写入跟进日志

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-001 经纪人录入新私客

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 1经纪人录入新私客5.2 录入私客
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/新增客源_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-001
【任务标题】经纪人录入新私客
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 1经纪人录入新私客5.2 录入私客
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/新增客源_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
录入页面可通过顶部导航「客源」→「+新增私客」或右侧快捷入口「增客」触达联系人1必填姓名/性别/电话1联系人2起可增加删除基础信息必填字段状态/用途/等级/来源)缺填时高亮错误并定位到第一个错误处;保存成功后跳转该客源详情页并显示"保存成功"提示

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-002 经纪人查看与筛选私客列表全部求购求租

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 2/3/4经纪人查看与筛选私客列表5.1 客源列表
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-002
【任务标题】经纪人查看与筛选私客列表全部求购求租
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2/3/4经纪人查看与筛选私客列表5.1 客源列表
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
顶部Tab导航私客/资料客/营销客/成交客/公客及二级Tab求购/求租/暂缓/全部私客)可正常切换;搜索框支持按客源姓名/号码/号码后4位/客源编号/备注检索;筛选栏支持状态/等级/位置/价格/房室等多维度组合筛选列表底部实时显示当前筛选总条数分页默认20条/页89000条数据量下查询<2秒

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-003 经纪人批量操作私客列表

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 2列表批量操作5.1.3 批量操作
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-003
【任务标题】经纪人批量操作私客列表
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2列表批量操作5.1.3 批量操作
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
勾选客源后激活批量操作按钮(修改相关方/修改来源/删除客源/合并客户);批量删除执行软删除,可在"已删客源"中查看批量修改相关方成功后列表归属人字段实时刷新列表支持导出当前筛选结果为ExcelCelery异步处理

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-004 经纪人查看私客详情页

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 6经纪人查看私客详情页Story 15经纪人查看客源信息概览面板
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-004
【任务标题】经纪人查看私客详情页
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 6经纪人查看私客详情页Story 15经纪人查看客源信息概览面板
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
详情页顶部展示需求标题+联系人姓名+带看进度标签;右侧固定信息概览面板展示客户编号/委托日期/需求类型等字段且不随页面滚动消失主内容区Tab导航需求信息/跟进记录/带看/客源解读/智能配房)默认激活"需求信息"Tab右侧面板三个主操作按钮打电话/写跟进/报备带看)可正常触发对应流程

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-005 经纪人查看与编辑需求信息

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 7经纪人查看与编辑需求信息
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-005
【任务标题】经纪人查看与编辑需求信息
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 7经纪人查看与编辑需求信息
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
需求信息Tab展示总价/面积/居室/装修/朝向/楼层/楼龄/意向商圈/意向小区等字段(三栏布局);字段值为空时显示"-"占位符;右上角「编辑」链接点击后字段转为输入框/选择器;保存成功后返回详情页并刷新需求信息区块

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-006 经纪人写入与查看跟进记录

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 8经纪人写入与查看跟进记录
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-006
【任务标题】经纪人写入与查看跟进记录
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 8经纪人写入与查看跟进记录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
跟进记录分5个子Tab全部/写入跟进/敏感信息跟进/修改跟进/其他跟进全部Tab支持时间范围筛选及「有录音」「有图片」快速过滤跟进记录以时间线形式按日期分组倒序展示写入跟进时跟进目的支持23项多选跟进内容最少6字校验系统自动生成的操作日志如新增私客/状态变更)出现在"其他跟进"Tab

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-007 经纪人管理带看记录预约带看新增带看

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 9经纪人管理带看记录
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-007
【任务标题】经纪人管理带看记录预约带看新增带看
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 9经纪人管理带看记录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
带看Tab分"预约"和"带看"两个子Tab新增带看表单必填字段带看时间/带看情况≥6字/带看房源≥1套校验通过才可提交带看记录以时间线展示含带看房源蓝色可点击链接和带看进度标签员工选择器弹层支持组织树搜索和多选带看房源选择器支持按编号/楼盘/业主关键词搜索

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-008 经纪人管理客源联系人查看新增编辑

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 23经纪人管理客源联系人
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-008
【任务标题】经纪人管理客源联系人查看新增编辑
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 23经纪人管理客源联系人
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
联系人面板默认打码显示电话("+86 135\*\*\*\*\*\*\*\*"),点击「查看号码」后展示完整号码并写入敏感信息跟进日志;新增联系人必填字段(姓名/称呼/电话1校验编辑联系人时电话1需点击「查看号码」后才可编辑保存成功后联系人面板实时刷新

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-009 经纪人修改客源等级

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 17经纪人修改客源等级
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-009
【任务标题】经纪人修改客源等级
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 17经纪人修改客源等级
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击「改等级」触发弹窗展示当前等级只读和新等级下拉选择器A急迫/B较强/C一般/D较弱/E暂不关注新等级未选择时「确定」按钮置灰保存成功后信息概览面板等级标签实时更新操作日志中自动新增"改等级"记录

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-010 经纪人修改客源状态

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 18经纪人修改客源状态
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-010
【任务标题】经纪人修改客源状态
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 18经纪人修改客源状态
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击「改状态」触发弹窗,展示当前状态(只读)、新状态下拉(求购/求租/租购)、等级下拉和必填更改理由文本框;新状态未选或理由未填时「确定」按钮置灰;保存成功后信息概览面板状态标签实时更新;操作日志新增"改状态"记录(含更改理由)

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-011 经纪人手动将私客转为公客

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 19经纪人手动将私客转为公客
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-011
【任务标题】经纪人手动将私客转为公客
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 19经纪人手动将私客转为公客
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击「转公客」触发弹窗状态和等级均为必填确认后客源从私客列表移除并进入公客池client_type='public'transfer_to_public_type='manual');操作日志新增"转公客"记录(含操作人/操作时间);权限控制:仅归属人、首录人或有管理权限的店长/经理可操作

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-012 经纪人将私客转为成交客

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 20经纪人将私客转为成交客
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-012
【任务标题】经纪人将私客转为成交客
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 20经纪人将私客转为成交客
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击「转成交」触发"客户成交"弹窗,必填字段(状态/房源类型/成交房源/成交日期/成交价格/成交方)全部填写后「确定」按钮高亮;成交房源选择浮层支持关键词搜索和区域/状态筛选;提交后客源移入成交客列表,状态更新为"成交";操作日志新增"转成交"记录(含成交信息摘要)

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-013 经纪人将客源标记为无效

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 21经纪人将客源标记为无效
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-013
【任务标题】经纪人将客源标记为无效
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 21经纪人将客源标记为无效
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击「转无效」触发弹窗,展示蓝色提示框说明"将把所有电话标记无效",无效原因单选(号码无效/同行中介/广告推销/客户无意向/其他)默认选中"号码无效";确认后所有联系人电话标记为无效,客源从私客活跃列表移除;操作日志新增"转无效"记录(含无效原因);权限控制:仅归属人、首录人或有管理权限者可操作

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-014 经纪人编辑客源完整信息联系人基础信息需求

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 14经纪人编辑客源信息
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/编辑客源_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-014
【任务标题】经纪人编辑客源完整信息联系人基础信息需求
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 14经纪人编辑客源信息
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/编辑客源_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
编辑页面分三个Tab联系人/基础信息/二手或新房或租房联系人Tab的电话1需点击「查看号码」后才可编辑旁边提供「标记无效」链接基础信息Tab包含需求类型/购房目的/付款方式/名下房产/贷款记录等扩展字段;保存时校验所有必填字段,成功后返回详情页并刷新需求信息区块

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-015 经纪人管理客源相关员工查看编辑归属人首录人

  • 阶段:P0
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 24经纪人管理客源相关员工
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-015
【任务标题】经纪人管理客源相关员工查看编辑归属人首录人
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 24经纪人管理客源相关员工
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
相关员工面板展示首录人/归属人的所属门店+小组+姓名及参与时间;点击「编辑」触发弹窗,首录人和归属人均为必填下拉选择器(支持搜索姓名);保存后面板实时更新,操作日志新增"修改相关员工"记录;权限控制:跨团队/跨店修改需店长及以上权限

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-016 系统自动将超时无跟进的私客转为公客

  • 阶段:P0
  • 模块:客源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - 关键业务规则:私客自动转公
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-016
【任务标题】系统自动将超时无跟进的私客转为公客
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - 关键业务规则:私客自动转公
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
Celery Beat 定时任务每日凌晨执行超过运营配置天数如30天无跟进且非保护客的私客自动转入公客池transfer_to_public_type='auto');自动转公后 client_status_logs 生成一条 to_public 记录;即将过期的私客在列表中显示"即将掉公"提示标签

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-017 系统自动检测重复客源并提示

  • 阶段:P0
  • 模块:客源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 2顶部重复检测提示关键业务规则私客手机号唯一性
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-017
【任务标题】系统自动检测重复客源并提示
【阶段】P0
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2顶部重复检测提示关键业务规则私客手机号唯一性
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
录入/编辑联系人手机号时实时通过phone_hash检测与现有私客/成交客/公客的重复;客源列表顶部实时显示"私客与成交客重复XX"和"私客与公客重复XX"蓝色可点击链接;点击重复数字链接可查看重复名单

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-001 管理员维护公司组织结构部门门店树

  • 阶段:P0
  • 模块:组织人事
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 公司组织结构(部门/门店树)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-001
【任务标题】管理员维护公司组织结构部门门店树
【阶段】P0
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 公司组织结构(部门/门店树)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
支持新增/编辑/删除部门和门店节点;组织树以层级结构展示(公司→区域→门店→小组);删除有员工的部门时系统提示并阻止操作;组织结构变更实时反映在员工选择器弹层中

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-002 管理员查看与维护员工列表

  • 阶段:P0
  • 模块:组织人事
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 员工列表/员工详情
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-002
【任务标题】管理员查看与维护员工列表
【阶段】P0
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工列表/员工详情
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
员工列表支持按姓名/手机号关键词搜索;支持按部门/状态筛选;列表展示员工姓名/所属门店/职位/状态等字段;点击员工姓名跳转员工详情页

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-003 管理员办理员工入职并创建系统账号

  • 阶段:P0
  • 模块:组织人事
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 员工入职/账号创建
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-003
【任务标题】管理员办理员工入职并创建系统账号
【阶段】P0
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工入职/账号创建
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
入职表单必填字段(姓名/手机号/所属门店/职位)校验;创建账号后系统自动生成登录密码并可发送给员工;新员工账号立即可登录系统;员工账号与组织树节点正确关联

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PERMISSION-001 管理员配置角色预设角色自定义角色

  • 阶段:P0
  • 模块:权限管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/权限管理/权限管理模块PRD.md - 角色管理(预设角色+自定义角色)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/权限管理系统技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PERMISSION-001
【任务标题】管理员配置角色预设角色自定义角色
【阶段】P0
【模块】权限管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色管理(预设角色+自定义角色)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
系统预设角色(经纪人/店长/管理员等)不可删除但可复制;支持创建自定义角色并配置功能权限;角色名称在同租户内唯一;删除自定义角色前需解除所有人员绑定

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PERMISSION-002 管理员查看与管理人员权限列表

  • 阶段:P0
  • 模块:权限管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/权限管理/权限管理模块PRD.md - 人员权限列表
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/权限管理系统技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PERMISSION-002
【任务标题】管理员查看与管理人员权限列表
【阶段】P0
【模块】权限管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 人员权限列表
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
人员权限列表展示员工姓名/所属部门/当前角色;支持按部门/角色筛选;列表支持分页;点击员工行可查看详细权限配置

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PERMISSION-003 管理员批量为员工分配角色

  • 阶段:P0
  • 模块:权限管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/权限管理/权限管理模块PRD.md - 角色批量分配
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/权限管理系统技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PERMISSION-003
【任务标题】管理员批量为员工分配角色
【阶段】P0
【模块】权限管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色批量分配
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
勾选多名员工后可批量指定角色批量分配成功后所有选中员工角色立即生效分配后员工下次登录或刷新页面权限即更新Redis权限快照失效重载

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PERMISSION-004 系统执行功能权限控制菜单级

  • 阶段:P0
  • 模块:权限管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/权限管理/权限管理模块PRD.md - 功能权限(菜单级)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/权限管理系统技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PERMISSION-004
【任务标题】系统执行功能权限控制菜单级
【阶段】P0
【模块】权限管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 功能权限(菜单级)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
无权限的菜单在导航中不展示直接访问无权限URL返回403页面权限变更后Redis缓存自动失效用户下一次请求即应用新权限经纪人无法访问管理员专属功能页

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PERMISSION-005 系统执行数据权限控制部门个人全司

  • 阶段:P0
  • 模块:权限管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/权限管理/权限管理模块PRD.md - 数据权限(部门/个人/全司)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/权限管理系统技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PERMISSION-005
【任务标题】系统执行数据权限控制部门个人全司
【阶段】P0
【模块】权限管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 数据权限(部门/个人/全司)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
经纪人只能看到自己名下的房源和客源数据店长可见本门店所有员工的房源和客源管理员可见全司数据不同数据权限级别的用户查询结果严格隔离不可通过URL参数绕过

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-001-A 管理员配置可选枚举值 Lookup Items

  • 阶段:P0
  • 模块:系统配置
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置模块PRD.md - US-SETTING-001-A
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL.md(待 Atlas 补充 lookup_items DDL
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-001-A
【任务标题】管理员配置可选枚举值 Lookup Items
【阶段】P0
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-A
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `lookup_items` DDL
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
- 管理员进入「系统设置 → 参数配置」,页面按模块分组展示所有可配置参数项(客源来源、跟进目的、房源来源)  
- 可新增自定义选项,新选项追加至列表末尾并立即对经纪人录入下拉生效(刷新后)  
- 系统预制选项(`is_system=True`)不可删除,仅可停用;停用后前端下拉不再展示,历史数据保留并标注「已停用」  
- 支持调整选项排序(拖拽或修改排序值),排序变更在保存后前端生效  
- 配置保存时主动失效 Redis 缓存 key `{tenant_schema}:setting:lookup:{module}.{key}`,最长 5 分钟延迟

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-001-B 管理员配置房源字段必填规则

  • 阶段:P0
  • 模块:系统配置
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置模块PRD.md - US-SETTING-001-B
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL.md(待 Atlas 补充 field_requirement_rules DDLProject/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-001-B
【任务标题】管理员配置房源字段必填规则
【阶段】P0
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-B
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `field_requirement_rules` DDL、`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
- 管理员进入「系统设置 → 房源字段规则」,以「用途 × 交易状态」矩阵展示配置(住宅×出售、住宅×出租)  
- 每个字段显示当前规则(必填 / 选填 / 隐藏),以三态 Toggle 或 Radio 形式编辑,保存后生效  
- 规则应用于录入界面:必填字段显示「*」标记,提交时为空则拦截;隐藏字段不渲染  
- 规则变更仅影响新录入,不影响存量房源数据  
- MVP 可配置字段:朝向、装修情况、楼层、建筑面积、套内面积、房型、产权年限、车位数

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-001-C 管理员配置客源录入规则

  • 阶段:P0
  • 模块:系统配置
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置模块PRD.md - US-SETTING-001-C
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL.md(待 Atlas 补充 tenant_settings DDLProject/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-001-C
【任务标题】管理员配置客源录入规则
【阶段】P0
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-C
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `tenant_settings` DDL、`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
- 管理员进入「系统设置 → 客源规则」,可配置新增私客时的查重范围:本人(默认)/ 本部门 / 全公司  
- 查重规则实时生效:经纪人录入手机号失焦后,系统按当前查重范围加密比对,若重复则提示归属人和录入时间,经纪人可选「仍然录入」或「放弃」  
- 可配置客源必填字段开关(等级、来源默认必填;总价区间、居室需求、购房目的默认选填)  
- 配置保存时主动失效 Redis 缓存 key `{tenant_schema}:setting:client_rules`,经纪人下次打开录入界面即应用最新规则

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ACCOUNT-010 经纪人使用短信验证码登录

  • 阶段:P1
  • 模块:用户登录
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md - 短信验证码登录
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_账号密码_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/登录管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ACCOUNT-010
【任务标题】经纪人使用短信验证码登录
【阶段】P1
【模块】用户登录

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 短信验证码登录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击"发送验证码"后60秒内不可重复点击验证码5分钟内有效输入正确验证码后登录成功跳转首页错误验证码给出明确提示

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ACCOUNT-011 经纪人重置账号密码

  • 阶段:P1
  • 模块:用户登录
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md - 密码重置
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_账号密码_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/登录管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ACCOUNT-011
【任务标题】经纪人重置账号密码
【阶段】P1
【模块】用户登录

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 密码重置
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
通过手机号验证码或邮箱链接验证身份新密码需二次确认且满足强度要求8位以上含字母+数字);重置成功后原会话立即失效需重新登录;重置操作写入审计日志

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ACCOUNT-012 系统记住用户登录状态

  • 阶段:P1
  • 模块:用户登录
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md - 记住登录状态
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_账号密码_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/登录_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/登录管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ACCOUNT-012
【任务标题】系统记住用户登录状态
【阶段】P1
【模块】用户登录

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 记住登录状态
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
勾选"记住我"后关闭浏览器重新打开仍处于登录态记住登录的有效期为7天超过有效期自动跳转登录页管理员可在后台强制让指定账号的所有会话失效

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-COMPLEX-010 管理员管理楼盘照片

  • 阶段:P1
  • 模块:楼盘管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md - 楼盘照片管理
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/区域管理_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/楼盘管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-COMPLEX-010
【任务标题】管理员管理楼盘照片
【阶段】P1
【模块】楼盘管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘照片管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
支持上传楼盘封面图和相册图片格式jpg/png/gif单文件≤20MB上传成功后图片在楼盘详情页展示支持删除图片楼盘封面图可手动设置

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-COMPLEX-011 管理员维护楼盘价格走势

  • 阶段:P1
  • 模块:楼盘管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md - 楼盘价格走势
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/区域管理_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/楼盘管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-COMPLEX-011
【任务标题】管理员维护楼盘价格走势
【阶段】P1
【模块】楼盘管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘价格走势
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
楼盘详情页可查看历史价格走势折线图;价格走势数据按月维度展示;支持手动录入或批量导入历史均价数据

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-COMPLEX-012 管理员维护周边配套学校管理

  • 阶段:P1
  • 模块:楼盘管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md - 周边配套(学校管理)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/区域管理_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/楼盘管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-COMPLEX-012
【任务标题】管理员维护周边配套学校管理
【阶段】P1
【模块】楼盘管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 周边配套(学校管理)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可为楼盘关联周边学校(从学校库选择);学校库支持新增/编辑/删除;楼盘详情页展示关联学校列表;学校数据可在客源意向学校字段中搜索引用

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-010 经纪人查看房源维护完成度诊断面板

  • 阶段:P1
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 房源维护完成度(诊断面板)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-010
【任务标题】经纪人查看房源维护完成度诊断面板
【阶段】P1
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源维护完成度(诊断面板)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
房源详情页展示数据完整度百分比及未填字段提示列表点击未填字段提示可直接跳转对应编辑区域完整度≥80%时展示绿色状态,<60%时展示红色警告

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-011 经纪人管理敏感信息跟进权限控制

  • 阶段:P1
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 敏感信息跟进(查看权限控制)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-011
【任务标题】经纪人管理敏感信息跟进权限控制
【阶段】P1
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 敏感信息跟进(查看权限控制)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
敏感信息跟进Tab仅对有权限的角色可见查看敏感信息自动写入审计日志不可删除无权限用户看到Tab时显示"无权限查看"提示而非隐藏Tab

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-012 经纪人管理房源附件

  • 阶段:P1
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 附件管理
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-012
【任务标题】经纪人管理房源附件
【阶段】P1
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 附件管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
支持上传PDF/Word/Excel等文档类附件单文件≤50MB附件按上传时间倒序展示支持下载和删除附件附件上传通过Celery异步处理不阻塞主线程

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-013 经纪人查看房源市场报盘

  • 阶段:P1
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 市场报盘
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-013
【任务标题】经纪人查看房源市场报盘
【阶段】P1
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 市场报盘
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
房源详情页可查看同楼盘其他在售房源的报价分布;展示该楼盘近期成交均价和当前挂牌均价;数据按成交日期倒序展示

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-014 经纪人查看房源价格解读

  • 阶段:P1
  • 模块:房源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 价格解读
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-014
【任务标题】经纪人查看房源价格解读
【阶段】P1
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 价格解读
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
房源详情页展示基于同楼盘/同商圈数据的价格合理性分析;展示当前报价与参考价的偏差百分比;无足够数据时展示"暂无参考数据"

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-020 经纪人使用二手配房功能查看匹配房源

  • 阶段:P1
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 11经纪人使用二手配房功能推荐房源
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-020
【任务标题】经纪人使用二手配房功能查看匹配房源
【阶段】P1
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 11经纪人使用二手配房功能推荐房源
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
智能配房Tab分"录客配房"和"系统配房"两个子Tab录客配房按优质户型/降价/热门/新上四个分组展示房源卡片;每套房源卡片展示封面图/小区名/户型/面积/售价/标签;点击「分享房源」触发房源分享流程;支持「批量分享」多套房源

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-021 经纪人查看客源解读AI行为分析

  • 阶段:P1
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 10经纪人查看客源解读
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-021
【任务标题】经纪人查看客源解读AI行为分析
【阶段】P1
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 10经纪人查看客源解读
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
客源解读Tab展示活跃行为/活跃时间/购房偏好三个模块购房偏好支持近7日/近30日/近90日三个时间维度切换切换后数据联动刷新价格/户型/面积偏好以圆环图+图例形式展示;无数据时展示"暂无数据"而非报错

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-022 经纪人将重点客源收藏至收藏夹

  • 阶段:P1
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 16经纪人收藏客源至私客收藏夹
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-022
【任务标题】经纪人将重点客源收藏至收藏夹
【阶段】P1
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 16经纪人收藏客源至私客收藏夹
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击「☆收藏」触发"选择私客收藏夹"浮层,默认选中"默认收藏夹"支持在浮层内创建新收藏夹名称最多10字超出「创建」按钮置灰收藏成功后图标变为实心★橙色私客列表支持按收藏夹筛选展示

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-023 经纪人通过快捷入口编辑客源基础信息

  • 阶段:P1
  • 模块:客源管理
  • 完备度:A

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 22经纪人编辑客源基础信息快捷入口
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI_Design文档Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-023
【任务标题】经纪人通过快捷入口编辑客源基础信息
【阶段】P1
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 22经纪人编辑客源基础信息快捷入口
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击信息概览面板「编辑客源」入口触发"编辑基础信息"抽屉浮层;浮层包含需求类型/用途/来源(必填)及购房目的/付款方式/名下房产等选填字段;点击「确定」校验必填字段,保存成功后面板相关字段实时更新;点击「取消」或×关闭不保存

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-024 经纪人查看客源操作日志

  • 阶段:P1
  • 模块:客源管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 25经纪人查看客源操作日志
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-024
【任务标题】经纪人查看客源操作日志
【阶段】P1
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 25经纪人查看客源操作日志
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
点击「查看操作日志」跳转独立日志列表页(面包屑:客源/客源详情/客源操作日志);支持按日期范围/操作人/操作类型筛选;日志列表按操作时间倒序排列,展示操作时间/操作人/操作类型/操作内容日志为只读不支持编辑或删除支持分页默认20条/页)

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-010 管理员办理员工离职与调动

  • 阶段:P1
  • 模块:组织人事
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 员工离职/调动
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-010
【任务标题】管理员办理员工离职与调动
【阶段】P1
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工离职/调动
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
员工离职后账号立即禁用无法登录;离职员工名下房源和客源可批量转移给其他员工;员工调动后所属部门/组织信息实时更新;调动/离职操作写入异动记录

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-011 管理员维护员工通讯录

  • 阶段:P1
  • 模块:组织人事
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 员工通讯录
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-011
【任务标题】管理员维护员工通讯录
【阶段】P1
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工通讯录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
通讯录支持按姓名/部门搜索;展示员工姓名/职位/手机号/所属门店;手机号默认打码,有权限才可查看完整号码;支持按部门分组展示

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-012 管理员管理员工职务

  • 阶段:P1
  • 模块:组织人事
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 职务管理
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-012
【任务标题】管理员管理员工职务
【阶段】P1
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 职务管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
支持新增/编辑/删除职务(如经纪人/店长/区域经理);职务可关联权限角色;删除有在职员工绑定的职务时系统提示并阻止

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PERMISSION-010 管理员配置字段级权限敏感字段可见性

  • 阶段:P1
  • 模块:权限管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/权限管理/权限管理模块PRD.md - 字段级权限(敏感字段可见性)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/权限管理系统技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PERMISSION-010
【任务标题】管理员配置字段级权限敏感字段可见性
【阶段】P1
【模块】权限管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 字段级权限(敏感字段可见性)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可为不同角色配置联系人手机号/证件号码等敏感字段的可见性无查看权限的角色访问时号码始终打码无法点击查看查看敏感字段操作记录在审计日志中字段级权限配置变更后Redis缓存立即失效

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PERMISSION-011 管理员配置个人特定权限覆盖

  • 阶段:P1
  • 模块:权限管理
  • 完备度:B+

引用文档

    • 参考PRD文档Project/fonrey/PRD/权限管理/权限管理模块PRD.md - 个人特定权限覆盖
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/权限管理系统技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PERMISSION-011
【任务标题】管理员配置个人特定权限覆盖
【阶段】P1
【模块】权限管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 个人特定权限覆盖
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
支持在角色权限基础上为特定员工单独开启或关闭特定权限点;个人覆盖权限优先级高于角色权限;个人权限覆盖配置记录可查看和删除

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-010 管理员配置首页展示内容

  • 阶段:P1
  • 模块:系统配置
  • 完备度:C
  • 引用缺失:PRD/系统配置/系统配置.md

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置.md - 首页设置
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PUBLIC.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-010
【任务标题】管理员配置首页展示内容
【阶段】P1
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置.md` - 首页设置
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PUBLIC.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【输入缺口】
- 缺少文件PRD/系统配置/系统配置.md
- 若缺口阻塞实现,请先输出“阻塞清单 + 最小替代方案”,再继续实现可落地部分。

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可配置首页展示的统计数据卡片(如今日新增房源/客源数量);配置变更后首页实时生效;不同角色可配置不同的首页视图

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-011 管理员配置相关方规则

  • 阶段:P1
  • 模块:系统配置
  • 完备度:C
  • 引用缺失:PRD/系统配置/系统配置.md

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置.md - 相关方设置
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PUBLIC.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-011
【任务标题】管理员配置相关方规则
【阶段】P1
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置.md` - 相关方设置
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PUBLIC.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【输入缺口】
- 缺少文件PRD/系统配置/系统配置.md
- 若缺口阻塞实现,请先输出“阻塞清单 + 最小替代方案”,再继续实现可落地部分。

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可配置房源/客源的相关方角色(如协作人/跟进人)及其权限范围;相关方配置影响房源/客源详情页的相关员工区块展示

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-012 管理员配置客源相关参数

  • 阶段:P1
  • 模块:系统配置
  • 完备度:C
  • 引用缺失:PRD/系统配置/系统配置.md

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置.md - 客源设置(基本配置/参数配置)
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_PUBLIC.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-012
【任务标题】管理员配置客源相关参数
【阶段】P1
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置.md` - 客源设置(基本配置/参数配置)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PUBLIC.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【输入缺口】
- 缺少文件PRD/系统配置/系统配置.md
- 若缺口阻塞实现,请先输出“阻塞清单 + 最小替代方案”,再继续实现可落地部分。

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可配置私客自动转公客的天数阈值可配置客源来源枚举值lookup_items可配置活跃度计算的各阈值天数配置变更后Celery定时任务下次执行时使用新配置

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SYSTEM-010 Platform Admin平台超级管理员管理租户开通暂停配置

  • 阶段:P1
  • 模块:系统管理(运营后台)
  • 完备度:B

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统管理/系统管理模块PRD.md - 租户管理(开通/暂停/配置)
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统管理技术文档.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SYSTEM-010
【任务标题】Platform Admin平台超级管理员管理租户开通暂停配置
【阶段】P1
【模块】系统管理(运营后台)

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统管理/系统管理模块PRD.md` - 租户管理(开通/暂停/配置)
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统管理技术文档.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
可在运营后台新开通租户自动创建独立PostgreSQL Schema可暂停租户暂停后租户用户无法登录可为租户配置域名/子域名;租户操作记录写入平台操作日志

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SYSTEM-011 Platform Admin平台超级管理员监控系统健康状态

  • 阶段:P1
  • 模块:系统管理(运营后台)
  • 完备度:B

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统管理/系统管理模块PRD.md - 系统健康监控
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统管理技术文档.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SYSTEM-011
【任务标题】Platform Admin平台超级管理员监控系统健康状态
【阶段】P1
【模块】系统管理(运营后台)

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统管理/系统管理模块PRD.md` - 系统健康监控
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统管理技术文档.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
运营后台展示系统核心指标API响应时间/错误率/Celery队列积压Sentry错误告警正常接收Grafana面板可查看历史监控数据关键指标超阈值时触发告警通知

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-RELEASE-010 系统发布Windows桌面客户端安装包

  • 阶段:P1
  • 模块:客户端发布
  • 完备度:B

引用文档

    • 参考PRD文档Project/fonrey/PRD/发布管理/客户端发布管理模块PRD.md - Windows桌面客户端
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统管理技术文档.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-RELEASE-010
【任务标题】系统发布Windows桌面客户端安装包
【阶段】P1
【模块】客户端发布

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/发布管理/客户端发布管理模块PRD.md` - Windows桌面客户端
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统管理技术文档.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
electron-builder 输出 NSIS .exe 安装包和便携版 .zip安装包经EV证书签名安装时无SmartScreen警告安装包上传至Cloudflare R2并通过CDN分发后端 ClientRelease 表新增一条版本记录

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-RELEASE-011 客户端自动检测并更新至最新版本

  • 阶段:P1
  • 模块:客户端发布
  • 完备度:B

引用文档

    • 参考PRD文档Project/fonrey/PRD/发布管理/客户端发布管理模块PRD.md - 自动更新机制
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统管理技术文档.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-RELEASE-011
【任务标题】客户端自动检测并更新至最新版本
【阶段】P1
【模块】客户端发布

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/发布管理/客户端发布管理模块PRD.md` - 自动更新机制
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统管理技术文档.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。

【验收标准(原始)】
客户端启动时及每4小时自动检测 GET /api/client/updates/latest/ 接口有新版本时后台静默下载下载完成后提示用户重启下载完成后校验SHA256与服务端返回一致才允许安装强制更新标记时用户无法跳过更新

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-020 经纪人录入别墅商铺商住写字楼其他类型房源

  • 阶段:P2
  • 模块:房源管理
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 录入别墅/商铺/商住/写字楼/其他
  • DATA_MODELN/A

    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-020
【任务标题】经纪人录入别墅商铺商住写字楼其他类型房源
【阶段】P2
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 录入别墅/商铺/商住/写字楼/其他
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-PROPERTY-021 经纪人查看全部商铺写字楼列表

  • 阶段:P2
  • 模块:房源管理
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/房源管理模块PRD.md - 全部商铺列表/全部写字楼列表
  • DATA_MODELN/A

    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/房源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增房源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/房源详情_UI.html
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-PROPERTY-021
【任务标题】经纪人查看全部商铺写字楼列表
【阶段】P2
【模块】房源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 全部商铺列表/全部写字楼列表
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-COMPLEX-020 管理员使用应用数据标准功能

  • 阶段:P2
  • 模块:楼盘管理
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md - 应用数据标准
  • DATA_MODELN/A

    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/楼盘管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/区域管理_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/楼盘详情_UI.html
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-COMPLEX-020
【任务标题】管理员使用应用数据标准功能
【阶段】P2
【模块】楼盘管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 应用数据标准
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-030 经纪人查看与管理公客列表

  • 阶段:P2
  • 模块:客源管理
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 12经纪人查看与筛选公客列表
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-030
【任务标题】经纪人查看与管理公客列表
【阶段】P2
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 12经纪人查看与筛选公客列表
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-031 经纪人查看与管理成交客列表

  • 阶段:P2
  • 模块:客源管理
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 13经纪人查看成交客列表
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-031
【任务标题】经纪人查看与管理成交客列表
【阶段】P2
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 13经纪人查看成交客列表
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-CLIENT-032 经纪人管理暂缓私客

  • 阶段:P2
  • 模块:客源管理
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/客源管理/客源管理模块PRD.md - Story 5经纪人管理暂缓私客
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源列表_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/新增客源_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/客源详情_UI.html
    • 参考UI静态页面Project/fonrey/UI_DESIGN/编辑客源_UI.html
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/客源管理技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-CLIENT-032
【任务标题】经纪人管理暂缓私客
【阶段】P2
【模块】客源管理

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 5经纪人管理暂缓私客
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-020 管理员查看员工异动记录

  • 阶段:P2
  • 模块:组织人事
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 异动记录
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-020
【任务标题】管理员查看员工异动记录
【阶段】P2
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 异动记录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-021 管理员管理员工奖惩记录

  • 阶段:P2
  • 模块:组织人事
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 奖惩记录
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-021
【任务标题】管理员管理员工奖惩记录
【阶段】P2
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 奖惩记录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-ORG-022 管理员查看门店分布地图

  • 阶段:P2
  • 模块:组织人事
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md - 门店分布地图
    • 参考DATA_MODEL文档Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/组织人事技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-ORG-022
【任务标题】管理员查看门店分布地图
【阶段】P2
【模块】组织人事

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 门店分布地图
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-020 管理员配置人事OA相关参数

  • 阶段:P2
  • 模块:系统配置
  • 完备度:C
  • 引用缺失:PRD/系统配置/系统配置.md
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置.md - 人事OA设置
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-020
【任务标题】管理员配置人事OA相关参数
【阶段】P2
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置.md` - 人事OA设置
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【输入缺口】
- 缺少文件PRD/系统配置/系统配置.md
- 若缺口阻塞实现,请先输出“阻塞清单 + 最小替代方案”,再继续实现可落地部分。

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SETTING-021 管理员配置交易规则

  • 阶段:P2
  • 模块:系统配置
  • 完备度:C
  • 引用缺失:PRD/系统配置/系统配置.md
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统配置/系统配置.md - 交易设置
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统设置技术方案.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SETTING-021
【任务标题】管理员配置交易规则
【阶段】P2
【模块】系统配置

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置.md` - 交易设置
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`

【输入缺口】
- 缺少文件PRD/系统配置/系统配置.md
- 若缺口阻塞实现,请先输出“阻塞清单 + 最小替代方案”,再继续实现可落地部分。

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SYSTEM-020 Platform Admin平台超级管理员查看操作审计日志

  • 阶段:P2
  • 模块:系统管理(运营后台)
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统管理/系统管理模块PRD.md - 操作审计日志
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统管理技术文档.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SYSTEM-020
【任务标题】Platform Admin平台超级管理员查看操作审计日志
【阶段】P2
【模块】系统管理(运营后台)

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统管理/系统管理模块PRD.md` - 操作审计日志
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统管理技术文档.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

US-SYSTEM-021 Platform Admin平台超级管理员管理灰度发布滚动升级

  • 阶段:P2
  • 模块:系统管理(运营后台)
  • 完备度:C
  • 备注:当前验收标准仍为占位,建议先补充 PRD 后再编码。

引用文档

    • 参考PRD文档Project/fonrey/PRD/系统管理/系统管理模块PRD.md - 灰度发布/滚动升级
  • DATA_MODELN/A
  • UIN/A
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/系统管理技术文档.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/API_CONTRACT.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/TECH_STACK.md
    • 参考TECH_STACK文档Project/fonrey/TECH_STACK/测试规范.md
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。

【任务ID】US-SYSTEM-021
【任务标题】Platform Admin平台超级管理员管理灰度发布滚动升级
【阶段】P2
【模块】系统管理(运营后台)

【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统管理/系统管理模块PRD.md` - 灰度发布/滚动升级
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统管理技术文档.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`

【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。

【实现步骤】
1) 先输出“实现计划(不编码)”:包含文件变更清单、接口/模型变更、测试计划。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 对缺失的验收标准提出可测试化建议2~5条。
5) 不直接提交代码,等待确认后再实现。

【验收标准(原始)】
规划中详细验收标准待PRD细化后补充

【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景

【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
  - 冲突接口Method + Path
  - 当前契约要求(来自 API_CONTRACT
  - 实现差异 / 建议改动
  - 影响面(前端/后端/测试/存量数据)
  - 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项

7) 高优先级缺口清单(建议先补)

  • 引用文件不存在:6 条任务受影响。
    • US-COMPLEX-001: UI_DESIGN/楼盘管理/楼盘详情_UI.md
    • US-SETTING-010: PRD/系统配置/系统配置.md
    • US-SETTING-011: PRD/系统配置/系统配置.md
    • US-SETTING-012: PRD/系统配置/系统配置.md
    • US-SETTING-020: PRD/系统配置/系统配置.md
    • US-SETTING-021: PRD/系统配置/系统配置.md
  • 验收标准仍占位:13 条(均不建议直接编码)。
    • US-PROPERTY-020US-PROPERTY-021US-COMPLEX-020US-CLIENT-030US-CLIENT-031US-CLIENT-032US-ORG-020US-ORG-021US-ORG-022US-SETTING-020US-SETTING-021US-SYSTEM-020US-SYSTEM-021
  • 缺少 DATA_MODEL 引用:11 条。
    • US-SYSTEM-010US-SYSTEM-011US-RELEASE-010US-RELEASE-011US-PROPERTY-020US-PROPERTY-021US-COMPLEX-020US-SETTING-020US-SETTING-021US-SYSTEM-020US-SYSTEM-021

说明:本文件用于“把 TASK 直接交给 OpenCode 执行”。若需进一步提升自动化成功率,建议下一步把 P0/P1 的每条任务补充“目标文件路径 + API/字段契约 + 指定测试文件路径”。