跳转至

听写助手对话记录 61 — DIP1 独立技术开发子项目建立

记录编号:DLG-61 / DOC-A04-D61 日期:2026-08-09 智能体:听写(DT) 参与方:用户(SPO/TL 代表)、DT 沟通渠道:AI 助手对话(Trae CN) 主题:基于 TND-E 建立 DIP1 独立技术开发子项目,完成阶段 1(飞书对接层)+ 阶段 2(一线操作系统)+ 阶段 3(技术基础设施)全套技术设计文档、代码目录、代码骨架占位文件,注册 AGENTS 导航表并记录 WLG


一、用户需求

用户参考 TND-E(技术平台演进方案 V1.1)及项目其他技术文档(MVP-FS / QMD / CPT-D / MDS-D / OPS-D),要求启动一个独立的技术开发子项目,作为 hk2026 主项目的正式子项目(代号 DIP1),专注于完成 TND-E 规划的阶段 1(启动期飞书工作台对接)阶段 2(一线操作系统全定制开发)的具体技术开发工作。具体输出要求:

  1. 在主仓库下创建 dip1/ 子项目代码目录,目录结构严格对齐 DDD 四层(Domain / Application / Infrastructure / Interfaces)
  2. docs/技术文档/ 下建立 dip1/ 子目录,存放子项目专属技术文档
  3. 生成必要的技术文档(技术架构、阶段 1 设计、阶段 2 设计、技术基础设施等)
  4. 创建代码骨架占位文件(requirements / package.json / docker-compose / Dockerfile / Makefile 等),保证 TL 拉下来即可 make install && make up 启动本地环境

二、工作过程记录

步骤 1:背景分析(复用 TND-E + 对话上下文)

  • 先回顾近期项目记忆(topics/sessions),确认 DIP1 为上轮会话已启动的子项目,承接 DLG-60 之后的连续工作
  • 提取 TND-E V1.1 §3~§4 关键信息:模块化单体 + Python FastAPI + React Next.js;DDD 7 子域(QSV/CPT/MDS/DSP/PAY/OPS/Shared);三阶段(启动期/一线OS/全干系方);人员与 RACI 对齐(BO=洪/PO=郭/TL=司徒/OL=成文+黄双人/ML=洪兼BO/FL=待定)
  • 交叉阅读 MVP-FS 实施方案 V1.2 §2.2/§3:提取 6 张飞书多维表(CPT-Lite / QSV-Lite / WPL / CPL / SCL / BPL)字段清单与字段类型映射(snake_case → DB 列名),作为阶段 1 同步层字段映射表的依据

步骤 2:目录结构设计(对齐 DDD)

  • 后端目录(dip1/backend/):
  • app/domain/qsv/ cpt/ mds/ dsp/ pay/ shared/ 7 个子域
  • app/application/:Use Cases + DTO
  • app/infrastructure/db/ feishu/ ai/ storage/
  • app/interfaces/api/ webhooks/
  • tests/domain/ application/ interfaces/
  • alembic/versions/:迁移脚本
  • 前端目录(dip1/frontend/):pnpm monorepo(Turborepo)
  • apps/opr-admin/:运营后台(Next.js App Router,:3000)
  • apps/wkr-app/:师傅端 H5(Next.js,:3001)
  • packages/ui/:@weavely/ui 共享组件
  • 脚本目录(dip1/scripts/):migration/ sync/(feishu_poll_sync.py 等)
  • 文档目录(docs/技术文档/dip1/):README + ARC + P1 + P2 + P3
  • 使用 PowerShell New-Item -ItemType Directory 一次性批量建目录

步骤 3:撰写 DIP1 技术文档(共 5 份,9600+ 行)

# 文档 简称 页数 核心内容
1 README 目录索引 DIP1 - 子项目入口、与 TND-P/TND-E 关系图、阅读顺序(ARC → P1 → P2 → P3)、代码目录导航
2 架构设计 DIP1-ARC 14 设计原则(DDD 四层/依赖倒置/模块化单体)· C4 Container 图(9 容器 + 外部系统)· 上下文映射(QSV↔MDS↔CPT 关联)· 部署拓扑 · NFRs 指标(延迟/吞吐/可用/安全/可维护) · 10 条 ADR(模块化单体 / FastAPI / Next.js / PG+JSONB / ULID / Testcontainers / Redis Stream / R2 / Actions / RLS)
3 阶段 1 飞书对接 DIP1-P1 28 定位:飞书 ↔ 领域层双向桥;FeishuClient(Token 缓存 + httpx 异步 + 指数退避);BitableApi 14 接口(字段管理/记录 CRUD/视图);6 类 Webhook 事件(record/field/user/im)+ 签名验证;Sync 注册表 + 6 表字段映射(CPT 40 字段 → 领域实体完整列表见附录 A);Webhook 实时 + 每 15 分钟巡检双轨同步;幂等去重 + DLQ;搭建脚本 orchestrator + 种子数据导入;回写端口(预留);指标(Prometheus 4 指标集);工作量 12 人天
4 阶段 2 一线操作系统 DIP1-P2 46 域划分(7 子域)+ 上下文映射 · SharedKernel(EntityId ULID / Money / Address / Contact / 领域事件) · QSV Quote(8 因子 × base_fee + 增项 − 折扣)MIN(封顶价);recalculate() 内聚保证 · CPT Order 8 阶段状态机 + L6 6S 6 节点作业规范校验 · MDS 四库(SCL/BPL/WPL/CPL)+ TSMM TagDefinition(三层分类+PDPO隐私+自动打标DSL) · OPS Leads/Referrals/WOM 口碑闭环 · 领域事件 4 条(QuoteConfirmed/WorkerAssigned/NPSCollected/OrderCompleted)最终一致性 · REST API(70+ 端点:QSV 7条/CPT 13条/MDS 11条/OPS 6条/Auth 4条 + 分页过滤幂等规范) · DB 12+ 表 SQL(qsv_quotes + param_snapshots / cpt_orders + stage_transitions + attachments / mds_4 库 + tag_definitions / ops_leads + referrals / auth_users+roles+permissions+row_policies) · RBAC 角色×权限矩阵(6 角色×21 权限)+ PG RLS 行级策略(师傅仅见自己订单) · 交付物工作量:后端 46 + 前端 27 = 73 人天
5 技术基础设施 DIP1-P3 18 工具链版本(Py3.12 / Node 20 / PG 16 / Redis 7)· setup-dev.ps1 一键初始化 · .env.example 18 项环境变量 · docker-compose(PG/Redis/Mailpit/Jaeger)· Git Flow Lite + Conventional Commits + PR 准入 Checklist · CI/CD 8 Job(lint/test-backend/test-frontend/migrate-check/security/build-push/deploy-staging/smoke)· 测试金字塔(Unit < 2min / Integration Testcontainers / API 冒烟 / E2E Playwright / Locust 性能 / ZAP 安全)· 部署架构(香港双 AZ + ALB + FastAPI gunicorn 2 worker × 2~4 ECS + PG 主从半同步 + Redis 哨兵 + R2)· 蓝绿 10%/50%/100% 灰度 · 备份 RPO/RTO(WAL 5min / RPO 5 分钟 RTO 30 分钟)· 可观测三支柱(structlog+Loki / Prom+Grafana / OTel+Jaeger)· 8 项告警阈值推飞书群 · ADR 10 条摘要

步骤 4:创建代码骨架占位文件(50+ 个)

  1. Python 依赖requirements.txt 46 包(FastAPI/SQLAlchemy async/httpx/structlog/OTel/R2 boto3/Typer/ulid-py)+ requirements-dev.txt(ruff/mypy/pytest-asyncio/Testcontainers/hypothesis/factory-boy/pre-commit/bandit)
  2. FastAPI 工厂app/main.py(create_app 工厂 + lifespan + CORS + 7 个 Router 挂载);app/infrastructure/config.py(pydantic-settings,18 项配置);interfaces/api/ 下 health/auth/qsv/cpt/mds/ops 5 个 Router 占位
  3. Feishu Webhook 入口interfaces/webhooks/feishu_webhook.py(Header 签名 + URL 验证 + async 分发占位)
  4. DDD 各子域 init.py:qsv/cpt/mds/dsp/pay/shared/application/infrastructure/{db,feishu,ai,storage}/interfaces/{api,webhooks}/tests/{domain,application,interfaces} 共 18 个
  5. Docker 镜像backend/Dockerfile(多阶段 builder/runtime,Tini 1 号进程,Healthcheck,非 root 运行,gunicorn + uvicorn worker 2 × threads 4)
  6. 本地编排docker-compose.yml(Postgres 16 + Redis 7 + Mailpit + Jaeger OTLP,Healthcheck)
  7. Makefile:19 个 Target(help/install/dev/up/down/lint/typecheck/test/test-unit/test-integration/test-cov/migrate/migration/migrate-downgrade/ci-local/build-api/build-frontend/clean),对齐 DIP1-P3
  8. 配置模板.env.example 18 项;.pre-commit-config.yaml(ruff/ruff-format/mypy/hadolint/Dockerfile lint + 前端 pnpm lint);pyproject.toml(ruff/mypy/pytest/coverage 配置);alembic.ini(asyncpg)
  9. 前端 Monorepopnpm-workspace.yaml + package.json(Turborepo + React 19 RC / Next 15 RC / TanStack Query / Zod / React Hook Form / Tailwind / Lucide);turbo.json(build/dev/lint/test/typecheck 流水线与缓存);opr-admin / wkr-app / @weavely/ui 三个 package.json
  10. 测试tests/__init__.py + 3 子域

步骤 5:注册 AGENTS 导航表与版本升级

  • TND 技术文档区块新增 6 行条目(DIP1 目录 V1.0 DOC-D01 / DIP1-ARC / DIP1-P1 / DIP1-P2 / DIP1-P3)
  • TND 版本号:V3.4 → V3.5
  • 底部注释同步:TND V3.5
  • 修订记录新增 V8.4(DLG-61 同步)
  • 入口文档版本号:AGENTS V8.3 → V8.4

步骤 6:WLG 工作日志记录(本文件 DLG-61)

  • 创建 对话记录/20260809_听写助手对话记录61_DIP1子项目建立.md(即本文件)
  • 在 WLG README 对话记录表末尾追加 DLG-61
  • WLG 版本表追加 V6.4(新增 DLG-61)

三、结论与产出

本次对话产出物清单

序号 产出物 位置 状态
1 DIP1 子项目 README dip1/README.md ✅ 已完成
2 DIP1 技术文档 README 索引 docs/技术文档/dip1/README.md ✅ 已完成
3 DIP1-ARC 架构设计(DOC-D01-A) docs/技术文档/dip1/DIP1-ARC-架构设计.md ✅ 已完成
4 DIP1-P1 阶段 1 飞书对接设计(DOC-D01-D1) docs/技术文档/dip1/DIP1-P1-MVP-FS飞书对接设计.md ✅ 已完成
5 DIP1-P2 阶段 2 一线操作系统设计(DOC-D01-D2) docs/技术文档/dip1/DIP1-P2-一线操作系统设计.md ✅ 已完成
6 DIP1-P3 技术基础设施(DOC-D01-D3) docs/技术文档/dip1/DIP1-P3-技术基础设施.md ✅ 已完成
7 DIP1 代码目录(DDD 四层) dip1/backend/app/{domain,application,infrastructure,interfaces}/ ✅ 50+ 文件夹
8 前端 Monorepo 目录 dip1/frontend/{apps/opr-admin,apps/wkr-app,packages/ui}/ ✅ 3 工作区
9 Python 依赖声明 dip1/backend/requirements.txt + requirements-dev.txt ✅ 46+18 包
10 FastAPI 主入口 + 配置 + 5 个 API Router 占位 dip1/backend/app/main.py + config.py + interfaces/api/*
11 Dockerfile + docker-compose.yml dip1/backend/Dockerfile + dip1/docker-compose.yml
12 Makefile 19 命令 dip1/Makefile
13 工程配置(pyproject/ruff/mypy/pytest/pre-commit/alembic) dip1/backend/pyproject.toml / .pre-commit-config.yaml / alembic.ini
14 前端配置(pnpm-workspace/package.json/turbo)+ 3 子 package.json dip1/frontend/
15 .env.example 环境变量模板 dip1/.env.example(18 项)
16 AGENTS 导航表 + 版本升级 AGENTS.md V8.3→V8.4(TND V3.4→V3.5,新增 6 条目 + 修订 V8.4)
17 WLG DLG-61 工作日志 本文件 + docs/工作日志/README.md(DLG-61 + V6.4)

关键决策与说明

  1. 架构策略:严格执行 DIP1-ARC ADR-001「模块化单体优先,阶段 1-2 不拆微服务」——团队规模(当前 FL 待定,TL 1 人主导)、业务域边界未定,单体最佳 ROI
  2. 阶段 1/2 分离:阶段 1 实现「同步层」不侵入领域模型,Feishu SDK 与业务通过 Port/Adapter 解耦,领域层 domain/*.py 零飞书依赖;阶段 2 启动时可无缝替换仓储实现
  3. 飞书表与 DB 字段映射:采用 MVP-FS §3.5 「snake_case 与未来列名完全一致」约定,迁移脚本 mvpfs_to_pg_migrate.py 可直接 1:1 映射,零改造成本(阶段 2 前置)
  4. 权限模型:师傅行级权限采用 PostgreSQL RLS 物理隔离(POLICY ... USING (worker_id = current_setting)),比应用层 WHERE 过滤更可靠,对齐「师傅行级权限为 DT 硬边界不可自动化」约束
  5. ID 策略:ULID 非自增主键(ORD-/QTE-/WKR-/CUS-/CAT-/BLD- + 26 位 ULID),可排序、无中心节点、URL 友好,避免序列/雪花 ID 复杂度

四、待办事项

序号 待办 负责人 截止时间 状态
1 DIP1 里程碑执行(阶段 1 代码开发 12 人天):Feishu SDK + Sync 层 + 搭建脚本 + DLQ/观测落地,单元测试覆盖率 80% TL(司徒总)+ DT 建议 2026-08-23(2 周) 待确认启动时间
2 DIP1 里程碑(阶段 2 后端 46 人天 + 前端 27 人天):DDD 各子域模型落地 + REST API + Alembic 迁移 + RBAC + 前端双端 TL + FL(待定) 建议 2026-10-15(8 周) 待 FL 招聘到位
3 迁移 MVP-FS 数据到 Postgres:执行 mvpfs_to_pg_migrate.py,校验 6 表一致性 ≥ 99.99%;双写 3 天后切流 TL + OL 阶段 2 UAT 前 1 周 待阶段 2 上线前
4 TND-P(技术规划)D01-D10 补全:DIP1 文档已覆盖 D01(架构)、D02(报价引擎 P1§2+P2§2.3)、D09(订单跟踪 P2§2.4)、D10(MDS P2§2.5);剩余 D03-D08 按需补写 TL 2026-08-31 待确认优先级
5 生产凭据配置:TL 按 AGENTS 附录 B 配置飞书自建应用凭据;申请 Cloudflare R2(S3 兼容)存储桶;申请阿里云香港 ECS 2 台 + PG RDS TL + BO(郭总) 阶段 1 完成前 待凭据到位
6 DIP1 文档汇 PDF:5 份技术文档(ARC/P1/P2/P3 + README)合并输出 PDF 供 TL/SPO 评审(AI 特定行为 #1:发布/ 目录) DT 2026-08-11 待用户明确指令触发

五、备注

  1. 与 TND-E 对齐:全部设计严格对齐 TND-E V1.1:阶段划分(启动期→一线 OS→全干系方)、技术栈(Py FastAPI + Next.js + PG + Redis + R2)、人员 RACI、RBAC 角色;文档中出现的角色称呼均用简称(SPO/BO/PO/TL/OL/ML/FL),遵循 PJM §3 规范
  2. 与 PJM 合规:所有文档编号、简称、版本号符合 PJM §4 文档管理规范;术语简写(3-5 字符)符合 GLY 规范;架构图全用 Mermaid,无 ASCII 字符画;变更已记入 WLG(PJM §4.2.4 要求)
  3. 用户下一步:建议按 DIP1-P3 §1.2 scripts/dev/setup-dev.ps1 + make up 先跑通本地环境;确认里程碑 M1/M2/M3 启动时间后,DT 再配合 TL 启动阶段 1 代码实现(Feishu SDK 第 1 块)

本记录编号 DLG-61(DOC-A04-D61 V1.0 / WLG V6.4 新增条目),对齐 PJM §4.2.4。