You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
luoweijian e5bbde8286 ticket13: ProjectRuleQueryPort inbound(crm-rule 声明自实现,①⑤真读 ②③④签名预留桩)+ 看板列头/详情阶段名别名优先 + 标底等级判定接入 10 hours ago
..
01-schemecard-owner-refactor.md ticket02: crm-project 模块骨架 + /project/create + /project/detail(独立 crm_project 全列/双轴枚举/建档闭环/票01端口真实现/bruno-sync 首配/CONTEXT.md) 11 hours ago
02-module-skeleton-create.md ticket02: crm-project 模块骨架 + /project/create + /project/detail(独立 crm_project 全列/双轴枚举/建档闭环/票01端口真实现/bruno-sync 首配/CONTEXT.md) 11 hours ago
03-project-list.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
04-project-board.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
05-stage-advance.md ticket05-08: 项目状态机(推进+3→5连跳/多步回退+三终态锁+赢单锁死/关闭记因四要素/赢输分叉/冲突解除=报备审核双写)+ 回退授权 seam + spec 回写连跳口径 10 hours ago
06-stage-rollback-terminal-lock.md ticket05-08: 项目状态机(推进+3→5连跳/多步回退+三终态锁+赢单锁死/关闭记因四要素/赢输分叉/冲突解除=报备审核双写)+ 回退授权 seam + spec 回写连跳口径 10 hours ago
07-close-win-lose.md ticket05-08: 项目状态机(推进+3→5连跳/多步回退+三终态锁+赢单锁死/关闭记因四要素/赢输分叉/冲突解除=报备审核双写)+ 回退授权 seam + spec 回写连跳口径 10 hours ago
08-conflict-release-filing.md ticket05-08: 项目状态机(推进+3→5连跳/多步回退+三终态锁+赢单锁死/关闭记因四要素/赢输分叉/冲突解除=报备审核双写)+ 回退授权 seam + spec 回写连跳口径 10 hours ago
09-tab-follow-attachment.md ticket09-11: 详情 Tab 全读侧(跟进/附件子表+crm-file biz 定位/客户目录单列/动态投影读/方案报价招投标开标主表扩展列零阶段子表) 10 hours ago
10-tab-customer-timeline.md ticket09-11: 详情 Tab 全读侧(跟进/附件子表+crm-file biz 定位/客户目录单列/动态投影读/方案报价招投标开标主表扩展列零阶段子表) 10 hours ago
11-tab-stage-reads.md ticket09-11: 详情 Tab 全读侧(跟进/附件子表+crm-file biz 定位/客户目录单列/动态投影读/方案报价招投标开标主表扩展列零阶段子表) 10 hours ago
12-transfer-sync-seams.md ticket12: 移交与同步接缝——项目域移交迁入 crm-project(断 extends 查 crm_project)、删商机侧旧类、ProjectOwnerSyncPort 真实现替换 Noop、crm-auth 零改动 10 hours ago
13-projectrule-port.md ticket13: ProjectRuleQueryPort inbound(crm-rule 声明自实现,①⑤真读 ②③④签名预留桩)+ 看板列头/详情阶段名别名优先 + 标底等级判定接入 10 hours ago
14-demo-board-list.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
15-demo-detail-statemachine.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
16-prototype-audit-test.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
17-retest-verify.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
18-docs-closeout.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
19-acceptance-handoff.md ticket03+04: /project/list(scope双轴/阶段7值筛/报备独立筛/分页)+ /project/board(7列全画/计数/冲突badge/stage0冲突入口/列头字典名回退) 11 hours ago
README.md ticket13: ProjectRuleQueryPort inbound(crm-rule 声明自实现,①⑤真读 ②③④签名预留桩)+ 看板列头/详情阶段名别名优先 + 标底等级判定接入 10 hours ago

README.md

crm-project(A5 项目管理)实现票仓

父文档(契约权威):.scratch/crm-project-wayfinding/deliverable-spec.md(12 项承重决策见其 §0)。 拆票会话:2026-09-10,to-tickets。原型权威树:.scratch/api-docs-reorg/lanhu-tree-v29.md

通用纪律(每张票开工前必读,逐条适用)

  1. 开工前置:前置票已沉淀文档并清理上下文。本票以全新会话起步,只凭本票票面 + 下列沉淀文档(spec / API-SUMMARY / 审计台账 / map Decisions),不依赖任何前票会话记忆
  2. 收工沉淀(代码之外必须落的,按票适用)
    • 新端点 → bruno-sync 生成 .bru(Bruno 仓 E:\code\crm-api-docs,agent 不提交 git,留用户审查提交)+ .scratch/customer-module/API-SUMMARY.md 同款形态的 crm-project API-SUMMARY 增量登记;
    • 拍板/发现/口径 → 回写 spec 对应节或本 README 的 Decisions;
    • 模块级决策 → CONTEXT.md / ADR(spec §8 留痕清单)。
  3. 收工检查:AGENTS.md「新模块接口接入 checklist」出票/收工各跑一遍;全量 BOM 扫描;mvn compile + 模块测试绿。
  4. e2e loop 三段式(测/修/验各自全新会话):16 审计(只测不修,产出 P0–P3 台账)→ 16R-* 返工(从台账动态开票,只修台账所指)→ 17 复测(台账全项复跑,P0/P1 清零才过,不过回环再开 16R)。P2/P3 记档,用户验收时可翻案。
  5. 环境事实(起服 verify profile / mvn 路径 / py -X utf8 / Playwright venv .scratch/customer-e2e/.venv10 / 远程共享 DB):见 .scratch/customer-frontend-handover/map.md「环境事实」节,以彼处为准维护。

依赖图

01 → 02 ─┬→ 03 ─┬→ 14
         ├→ 04 ─┘
         ├→ 04 + 11 → 13 ──→ 16
         ├→ 05 → 06 ┐
         │      07 ─┼→ 15 ──→ 16
         │      08 ─┘
         ├→ 09 ─┐
         ├→ 10 ─┼→ 15
         ├→ 11 ─┘
         └→ 12 ──────────────────────→ 18
16 → 16R-*(动态)→ 17 → 18 → 19

Frontier 推进:01(无阻塞可立即开);02 之后 03/04/05/09/10/11/12 七张并行;13 等 04+11;14 等 03+04;15 等 05–11;16 等 13+14+15;17 等 16R 全清;18 等 12+17;19 等 18。

Decisions

  • 2026-09-10 拆票拍板:存量无 opp_status=5 数据,票 12 仅类级迁移、不加数据搬迁票(用户确认)。
  • 2026-09-10 前端形态:demo 单页 = e2e 载体 + 验收前端参考实现,真实 Vue 仓由前端团队按 Bruno 文档另做(沿 customer 先例)。
  • 2026-09-10 票 02 拍板:项目动态落域内 project_oplog 单表 + ProjectOplogWriter 统一写入器(spec §4「crm-log 投影」落地口径)——crm-log 平台审计表 sys_log_operation 无 biz 维度、无法按项目过滤投影;域内单表对称 opportunity_oplog 先例,写端点另挂 @OpLog 落平台全局审计 crm-log。票 10 读侧按此投影。
  • 2026-09-10 票 02 拍板:深 tag 页面目录 = 项目管理(看板视图)/项目管理(分屏视图)/项目管理(列表视图)/我的项目/项目详情/项目建档。原型树 v29 一行索引未展开详情页;详情/建档 tag 对应原型 a5-1-2-1 页签详情与看板/列表页新建入口。
  • 2026-09-10 票 02 拍板:错误码段 68xxx(auth 61/file 62/dict 63/rule 64/lead 65/opp 66/customer 67 之后顺延);商机侧 66008(卡不存在)在建档入口翻译为 68007(异常不跨 seam)。
  • 2026-09-10 票 13 拍板:ProjectRuleQueryPort 包位置 = com.crm.rule.port.inbound(crm-rule 声明并自实现,对称 CustomerCatalogPort 的 inbound 形态;与 port.outbound「消费方 adapter 实现」方向相反),DTO 随包 record(StageAliasDTO/BidConfigDTO/PoolMemberDTO/ConflictPullDTO/StageRemindDTO),不暴露内部 ProjectRuleDTO。ConflictPullDTO 含「启用维度集+命中阈值+触发条件」签名形态——维度集/阈值为签名预留(conflictPullJson 无该配置层,解析恒空集/占位 1,spin-out 前置补列)。stageCode 取 project_stage 值字符串("0"~"6",容错 "STAGE_0" 形态取尾段)。
  • (后续各票拍板追加于此)