听写助手对话记录 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(一线操作系统全定制开发)的具体技术开发工作。具体输出要求:
- 在主仓库下创建
dip1/子项目代码目录,目录结构严格对齐 DDD 四层(Domain / Application / Infrastructure / Interfaces) - 在
docs/技术文档/下建立dip1/子目录,存放子项目专属技术文档 - 生成必要的技术文档(技术架构、阶段 1 设计、阶段 2 设计、技术基础设施等)
- 创建代码骨架占位文件(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 + DTOapp/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+ 个)¶
- Python 依赖:
requirements.txt46 包(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) - 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 占位 - Feishu Webhook 入口:
interfaces/webhooks/feishu_webhook.py(Header 签名 + URL 验证 + async 分发占位) - DDD 各子域 init.py:qsv/cpt/mds/dsp/pay/shared/application/infrastructure/{db,feishu,ai,storage}/interfaces/{api,webhooks}/tests/{domain,application,interfaces} 共 18 个
- Docker 镜像:
backend/Dockerfile(多阶段 builder/runtime,Tini 1 号进程,Healthcheck,非 root 运行,gunicorn + uvicorn worker 2 × threads 4) - 本地编排:
docker-compose.yml(Postgres 16 + Redis 7 + Mailpit + Jaeger OTLP,Healthcheck) - 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
- 配置模板:
.env.example18 项;.pre-commit-config.yaml(ruff/ruff-format/mypy/hadolint/Dockerfile lint + 前端 pnpm lint);pyproject.toml(ruff/mypy/pytest/coverage 配置);alembic.ini(asyncpg) - 前端 Monorepo:
pnpm-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 - 测试:
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) |
✅ |
关键决策与说明¶
- 架构策略:严格执行 DIP1-ARC ADR-001「模块化单体优先,阶段 1-2 不拆微服务」——团队规模(当前 FL 待定,TL 1 人主导)、业务域边界未定,单体最佳 ROI
- 阶段 1/2 分离:阶段 1 实现「同步层」不侵入领域模型,Feishu SDK 与业务通过 Port/Adapter 解耦,领域层
domain/*.py零飞书依赖;阶段 2 启动时可无缝替换仓储实现 - 飞书表与 DB 字段映射:采用 MVP-FS §3.5 「snake_case 与未来列名完全一致」约定,迁移脚本
mvpfs_to_pg_migrate.py可直接 1:1 映射,零改造成本(阶段 2 前置) - 权限模型:师傅行级权限采用 PostgreSQL RLS 物理隔离(
POLICY ... USING (worker_id = current_setting)),比应用层 WHERE 过滤更可靠,对齐「师傅行级权限为 DT 硬边界不可自动化」约束 - 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 | 待用户明确指令触发 |
五、备注¶
- 与 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 规范
- 与 PJM 合规:所有文档编号、简称、版本号符合 PJM §4 文档管理规范;术语简写(3-5 字符)符合 GLY 规范;架构图全用 Mermaid,无 ASCII 字符画;变更已记入 WLG(PJM §4.2.4 要求)
- 用户下一步:建议按 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。