№ · 任务清单
CH.07.13
2026-07-13-w30-q2-auction-contract-owner
⟦tag:v2|task|2026-07-13-w30-q2-auction-contract-owner⟧
kind: task
id: 2026-07-13-w30-q2-auction-contract-owner
lane: W30-Q2-auction-contract
title: Auction 类型契约恢复长工(无时间门)
objective: 在不改变拍卖数值、流程或 UI 的前提下,消除当前 21 条 Auction 类型错误并补足契约回归。
scope: src/types.ts Auction 类型段(约 563-746 行,独占),src/data/auction/**,src/utils/auctionRules.ts,新建必要的 Auction regression;不碰 src/components/auction/**。
worker threadId: 019f5a67-78f6-7160-9918-9ebd0fda0663
current state: verified / callback absorbed
blockers: none;Auction 文件锁已释放,与 R10、Q3-B/Q4 无交叉。
next action: none;剩余全仓错误不属于 Q2,由 Q3-A/其他 lane 处理。
callback absorbed:
- thread:
019f5a67-78f6-7160-9918-9ebd0fda0663 - type owner:
src/types.tsAuction 段仅补现有 runtime 字段与状态联合 - implementation:
src/utils/auctionRules.ts观察表改为完整静态键构造 - regression:
src/utils/auctionRules.regression.ts4/4 - verification:Auction
21 -> 0,build PASS,test:w2939/39,diff-check PASS - behavior:拍卖数值、流程、UI 未改;全仓当前 7 条错误均在 Q2 禁区外
prompt
角色:[长工]#W30-Q2-Auction类型契约恢复@v1.0
单一 Goal:把 Auction 分组 21 条 TypeScript 错误降为 0,不改变任何拍卖业务行为。
已确认错误族
src/data/auction/contentTables.ts:1 条winner_choicescope 漂移。src/utils/auctionRules.ts:20 条,集中于entryFeePaid,statusEffects,wins,ownerParticipantId,immediateFine,观察记录初始化和 settled lot 联合类型。- 全仓当前 lint 基线 41;Buff 已从 27 清零。
执行边界
- 先从 runtime 使用点反推唯一类型 owner,不得用
any、无依据断言或删除分支掩盖错误。 - 根共享类型的唯一 owner 是
src/types.tsAuction 段;只允许修改该段。静态领域配置留src/data/auction/**;业务计算留src/utils/auctionRules.ts或同域 utils。 - 补定向 regression,覆盖 participant 默认值、status effects、winner choice、settlement 和 entry fee 关键契约。
- 不改费用、概率、竞拍顺序、结算金额、玩家文案或 UI。
- 不碰
src/App.tsx,src/components/**,multiplayer,Buff,tools,计划/控制面文件。
验收
- Auction 分组错误
21 -> 0。 - 定向 Auction regression 全过。
cmd /c npm run buildPASS。cmd /c npm run test:w2939/39 PASS。- 全仓 lint 不新增;并行 lane 可能改变总数,以 Auction 路径 0 为硬证据。
- targeted
git diff --checkPASS。 - 回执列出实际类型决策、文件、测试和残余风险。