{"role":"user","message":{"content":[{"type":"text","text":"\n读取docs/README.md 文件,现在钱包逻辑有变化。请更新最新的钱包逻辑到README.md文件里面\n"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"先读取 `docs/README.md`,并在代码库中查找最新的钱包逻辑实现。\n\n[REDACTED]"},{"type":"tool_use","name":"Read","input":{"path":"/Users/ray/Documents/project/www/ray/docs/README.md"}},{"type":"tool_use","name":"Glob","input":{"glob_pattern":"**/*wallet*","target_directory":"/Users/ray/Documents/project/www/ray"}},{"type":"tool_use","name":"Grep","input":{"pattern":"钱包|Wallet","glob":"**/*.{md,php}","head_limit":80}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"正在读取 `slot-wallet/doc/wallet.md` 及核心实现,核对与 README 的差异。\n\n[REDACTED]"},{"type":"tool_use","name":"Read","input":{"path":"/Users/ray/Documents/project/www/ray/slot-wallet/doc/wallet.md","limit":250}},{"type":"tool_use","name":"Read","input":{"path":"/Users/ray/Documents/project/www/ray/slot-wallet/doc/win.md"}},{"type":"tool_use","name":"Read","input":{"path":"/Users/ray/Documents/project/www/ray/slot-wallet/.cursor/rules/slot-wallet-prd-and-money.mdc"}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"[REDACTED]"},{"type":"tool_use","name":"Read","input":{"offset":250,"limit":350,"path":"/Users/ray/Documents/project/www/ray/slot-wallet/doc/wallet.md"}},{"type":"tool_use","name":"Grep","input":{"pattern":"消耗顺序|Withdrawable|打码组|FIFO|BetService","glob":"slot-wallet/**/*","head_limit":60}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"[REDACTED]"},{"type":"tool_use","name":"Read","input":{"limit":120,"offset":680,"path":"/Users/ray/Documents/project/www/ray/slot-wallet/doc/wallet.md"}},{"type":"tool_use","name":"Read","input":{"path":"/Users/ray/Documents/project/www/ray/docs/README.md","offset":105}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"正在将 `docs/README.md` 第五节与 `slot-wallet/doc/wallet.md`、`win.md` 对齐。\n\n[REDACTED]"},{"type":"tool_use","name":"StrReplace","input":{"path":"/Users/ray/Documents/project/www/ray/docs/README.md","old_string":"# 五、钱包核心规则\n\n钱包采用「**聚合余额展示 + 资金 Lot 精细记账**」设计。用户看到的是聚合余额,系统真实记账以**资金 Lot 与钱包流水**为准(真账以 `wallet_fund_lot` 与流水为准)。\n\n## 1. 四类核心余额\n\n1. **Withdrawable Balance / Withdrawable Cash**:当前可直接申请提现的金额。\n2. **Locked Deposit Balance**:已充值到账、尚未完成解锁条件的充值资金。\n3. **Bonus Credits**:平台赠送额度,可用于游戏,不可直接提现。\n4. **Pending Withdrawal Balance**:提交提现申请后、审核中的冻结金额。\n\n## 2. 提现原则\n\n1. 提现只依赖 Withdrawable Balance。\n2. 未完成 Deposit Task 不影响已有 Withdrawable Balance 提现。\n3. 未完成 Bonus Task 不影响已有 Withdrawable Balance 提现。\n4. 未完成任务只限制对应的 Locked Deposit / Bonus Credits。\n5. **不做账户级提现锁定。**\n6. 已进入 Withdrawable 的资金,不会因新充值 / 新 Bonus / 新任务重新锁定。\n7. 用户可随时提现已进入 Withdrawable 的现金。\n\n推荐用户文案:\n\n- 英文:`You can withdraw your Withdrawable Cash anytime. Bonus Credits must be converted before they can be withdrawn.`\n- 中文:你可以随时提现可提现现金。奖励额度需完成转化条件后,才可转为可提现现金。\n\n## 3. 下注资金消耗顺序\n\n下注时固定按以下顺序消耗:**Bonus Credits → Locked Deposit → Withdrawable Balance**。\n\n设计目标:优先用 Bonus;再用 Locked Deposit 推进充值解锁;最后才动 Withdrawable,尽量保护可提现现金,降低用户「平台故意锁钱 / 不让提现」的焦虑感。\n\n推荐用户文案:\n\n- 英文:`We use bonus and locked funds first to help protect your withdrawable cash.`\n- 中文:系统会优先使用奖励额度和锁定余额,尽可能保留你的可提现余额。\n\n## 4. Bonus / Deposit 任务原则\n\n1. 每笔充值生成一个 Deposit Lot。\n2. 每笔 Bonus 领取生成一个 Bonus Lot。\n3. Deposit Unlock Task 与 Bonus Conversion Task 独立计算。\n4. Deposit 下注只推进对应 Deposit Task。\n5. Bonus 下注只推进对应 Bonus Task。\n6. Withdrawable 下注不推进任何 Deposit / Bonus 任务。\n7. 不同 Bonus Lot 不共享进度、不合并进度、不互相补进度。\n8. Deposit Task 不过期。\n9. Bonus Conversion Task 默认不过期。\n10. 任务完成后转入 Withdrawable 的是该 Lot **当前剩余金额**,不是原始金额。\n11. Bonus 用完但未完成转化时,状态为 PlayedOut / Not Converted。\n\n## 5. Slots Round 结算原则\n\n1. Slots 结算单位是 **Round**,不是单次派奖事件。\n2. 一局内可能有多次派奖。\n3. 不能在中间派奖时提前做 Bonus 转化。\n4. 不能在中间派奖时提前判断 PlayedOut。\n5. Bonus 转 Withdrawable 只在 **Round Final Settlement** 后执行。\n6. PlayedOut 也只能在 Round Final Settlement 后判断。\n7. 派奖按下注出资来源归属。\n8. Feature / Free Spins 派奖继承原始下注资金来源。\n\n## 6. 钱包流水原则\n\n所有余额变化必须写流水,包括:充值到账、Bonus 领取、下注扣款、Round 最终派奖、Deposit 解锁、Bonus 转化、Bonus 取消、PlayedOut、提现冻结、提现成功、提现失败退回、后台冲正、风控冻结 / 解冻等。\n\n流水必须支持:`before` / `after`、`change_amount`、`biz_type` / `biz_id`、`request_id`(幂等 ID)、`lot_id`、`round_id`、`withdraw_order_id`(与提现相关时)。\n\n**所有资金变化必须可追踪、可审计、可回滚。**","new_string":"# 五、钱包核心规则\n\n钱包采用「**聚合余额展示 + 资金 Lot 精细记账**」设计。用户看到的是聚合余额,系统真实记账以 **`wallet_fund_lot` / `wallet_fund_lot_group` 与钱包流水** 为准(真账以 Lot / 打码组与流水为准,聚合字段仅作展示)。\n\n> 完整 PRD 见 `slot-wallet/doc/wallet.md`(主文档)与 `slot-wallet/doc/win.md`(派奖 / Round 结算专题)。\n\n## 1. 四类核心余额\n\n1. **Withdrawable Balance / Withdrawable Cash**:当前可直接申请提现的金额。\n2. **Locked Deposit Balance**:已充值到账、尚未完成解锁条件的充值资金。\n3. **Bonus Credits**:平台赠送额度,可用于游戏,不可直接提现。\n4. **Pending Withdrawal Balance**:提交提现申请后、审核中的冻结金额。\n\n聚合字段对照(`wallet_account`):`withdraw_balance` = Withdrawable,`deposit_balance` = Locked Deposit,`frozen_bonus` = Bonus Credits,`withdraw_lock` = Pending Withdrawal。\n\n## 2. 提现原则\n\n1. 提现只依赖 Withdrawable Balance。\n2. 未完成 Deposit Task 不影响已有 Withdrawable Balance 提现。\n3. 未完成 Bonus Task 不影响已有 Withdrawable Balance 提现。\n4. 未完成任务只限制对应的 Locked Deposit / Bonus Credits。\n5. **不做账户级提现锁定。**\n6. 已进入 Withdrawable 的资金,不会因新充值 / 新 Bonus / 新任务重新锁定。\n7. 用户可随时提现已进入 Withdrawable 的现金。\n\n推荐用户文案:\n\n- 英文:`You can withdraw your Withdrawable Cash anytime. Bonus Credits must be converted before they can be withdrawn.`\n- 中文:你可以随时提现可提现现金。奖励额度需完成转化条件后,才可转为可提现现金。\n\n## 3. 下注资金消耗顺序\n\n下注时固定按以下顺序消耗:**Withdrawable Balance → Locked Deposit → Bonus Credits**(可提现优先)。\n\n设计目标:可提现余额是用户最自由的资金,优先消耗它下注;其有效投注同样计入打码进度,帮助推进充值 / 奖励解锁,而不是「死守可提现、不参与打码」。\n\n推荐用户文案:\n\n- 英文:`We use your withdrawable balance first; its wagering still counts toward unlocking your deposit and bonus.`\n- 中文:系统会优先使用可提现余额下注,其有效投注同样计入解锁充值与奖励的打码进度。\n\n## 4. 打码组、Lot 与任务原则\n\n### 4.1 资金 Lot\n\n1. 每笔充值生成一个 **Deposit Lot**;每笔 Bonus 领取生成一个 **Bonus Lot**。\n2. Lot 是资金归属与任务进度的最小单位;任务完成后转入 Withdrawable 的是该 Lot **当前剩余金额**,不是原始金额。\n3. Deposit Task 不过期;Bonus Conversion Task 默认不过期。\n4. Bonus 用完但未完成转化时,状态为 **PlayedOut / Not Converted**(只能在 Round Final Settlement 后判定,不能在下注扣完 Bonus 后立刻判定)。\n\n### 4.2 打码组(`wallet_fund_lot_group`)\n\n1. 同一来源(充值 / 注册)同时产生的 Deposit 与 Bonus 归为一个 **打码组**,整组合并打码、整组一起解锁。\n2. 组所需打码额 `required_wager` = 各成员 `required_wager` 之和(建组时确定)。\n3. 组内任意来源(Withdrawable / Deposit / Bonus)的有效投注都累加到 `group.current_wager`,**打码互通**。\n4. 整组 `current_wager ≥ required_wager` 且组内成员关联的全部 Round 均已结算后,整组一起解锁:**先 Deposit 解锁进可提现,再 Bonus 转化进可提现**,最后置组 Completed。\n5. 组内资金全部耗尽却仍未达标时,Bonus 成员置 PlayedOut、整组置 PlayedOut。\n\n### 4.3 打码进度归属\n\n1. **Withdrawable 出资**:有效投注计入 **FIFO 最早未完成打码组** 的 `group.current_wager`;无打码组时不推进任何任务。\n2. **Deposit / Bonus 出资**:有效投注同时推进所属 Lot 自身 `current_wager`(成员明细)与所属打码组的 `group.current_wager`(权威解锁进度)。\n3. **未分组的单独 Deposit / Bonus Lot**:仍各自独立计算打码任务,不与其他 Lot 共享进度。\n4. **不同打码组 / 不同 Bonus Lot**:不共享进度、不合并进度、不互相补进度。\n5. Deposit 任务按充值顺序 FIFO(`created_at ASC, id ASC`);未到顺序的 Deposit Lot 可置 **Waiting**,获准后再 **Active** 参与消耗与打码。\n\n## 5. Slots Round 结算与派奖原则\n\n1. Slots 结算单位是 **Round**,不是单次派奖事件;一局内可能有多次派奖。\n2. **打码进度在下注当下累加**到 Lot 与所属组;**派奖不推进打码进度**。\n3. 中间派奖(`is_end=0`)仅幂等累计该 Round 的待结算派奖额(`pendingWin`),**不入账、不解锁、不判终态**。\n4. 不能在中间派奖时提前做 Bonus 转化或判断 PlayedOut。\n5. Bonus 转 Withdrawable、Deposit 解锁、PlayedOut 判定只在 **Round Final Settlement**(`is_end=1`)后执行。\n6. **派奖不再按下注出资比例拆分**(`wallet_bet_funding` 已废弃);整笔派奖在 Final Settlement 时点按**当前账户状态**路由到单一资金桶:\n\n| 序 | 条件(按序判定) | 入账去向 |\n| --- | --- | --- |\n| 1 | 当前 `withdraw_balance > 0` | 整笔进 **可提现余额** |\n| 2 | 不存在任何打码任务(无 Waiting/Active/PendingConversion 的 Lot) | 整笔进 **可提现余额** |\n| 3 | 其余(可提现为 0 且存在打码任务) | 整笔进 **锁定充值余额**,并回流到 FIFO 最早未完成组的 Deposit Lot `remaining_amount`,随整组达标一起解锁 |\n\n7. 若规则 3 触发但不存在可回流的 Deposit Lot(极端:仅有 Bonus 任务),则降级整笔进可提现并记录告警日志。\n\n## 6. 钱包流水原则\n\n所有余额变化必须写流水,包括:充值到账、Bonus 领取、下注扣款、Round 最终派奖、Deposit 解锁、Bonus 转化、Bonus 取消、PlayedOut、提现冻结、提现成功、提现失败退回、后台冲正、风控冻结 / 解冻等。\n\n流水必须支持:`before` / `after`、`change_amount`、`biz_type` / `biz_id`、`request_id`(幂等 ID)、`lot_id`、`round_id`、`withdraw_order_id`(与提现相关时)。\n\n**所有资金变化必须可追踪、可审计、可回滚。**"}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"检查 README 中是否还有与旧钱包逻辑不一致的表述。\n\n[REDACTED]"},{"type":"tool_use","name":"Grep","input":{"path":"/Users/ray/Documents/project/www/ray/docs/README.md","pattern":"Bonus.*Locked|Locked.*Bonus|出资|bet_funding|独立计算"}},{"type":"tool_use","name":"Read","input":{"offset":60,"limit":15,"path":"/Users/ray/Documents/project/www/ray/docs/README.md"}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"[REDACTED]"},{"type":"tool_use","name":"StrReplace","input":{"new_string":"| `slot-wallet` | **钱包服务(资金核心)**。余额、充值到账、提现扣款、Bonus、打码组 / Wager、下注扣款、派奖入账、资金冻结 / 回滚、资金 Lot(`wallet_fund_lot` / `wallet_fund_lot_group`)、钱包流水。**所有余额变化必须由 wallet 完成并写流水**,按 `uid` 分库分表,关键扣减用 `version` 乐观锁。 |","old_string":"| `slot-wallet` | **钱包服务(资金核心)**。余额、充值到账、提现扣款、Bonus、Wager、下注扣款、派奖入账、资金冻结 / 回滚、资金 Lot、钱包流水。**所有余额变化必须由 wallet 完成并写流水**,按 `uid` 分库分表,关键扣减用 `version` 乐观锁。 |","path":"/Users/ray/Documents/project/www/ray/docs/README.md"}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"已根据 `slot-wallet/doc/wallet.md` 与 `slot-wallet/doc/win.md` 的最新实现,更新了 `docs/README.md` 第五节「钱包核心规则」。主要变更如下:\n\n### 1. 下注消耗顺序(反转)\n- **旧**:Bonus → Locked Deposit → Withdrawable(优先保护可提现)\n- **新**:**Withdrawable → Locked Deposit → Bonus**(可提现优先,且其有效投注计入打码进度)\n\n### 2. 新增「打码组」体系\n- 同一来源(充值/注册)的 Deposit + Bonus 归入 **`wallet_fund_lot_group`**\n- 组内打码互通,整组达标后一起解锁(先 Deposit,再 Bonus)\n- Withdrawable 出资计入 **FIFO 最早未完成打码组** 的进度\n\n### 3. 派奖规则重写\n- **不再**按下注出资比例拆分(`wallet_bet_funding` 已废弃)\n- Final Settlement 时整笔派奖按账户状态路由到单一资金桶\n- 打码进度在**下注时**累加,**派奖时不推进**打码\n\n### 4. 其他补充\n- 增加聚合字段对照表(`withdraw_balance` / `deposit_balance` 等)\n- 增加 PRD 文档引用(`slot-wallet/doc/wallet.md`、`win.md`)\n- 更新 `slot-wallet` 服务描述,补充打码组相关表名\n\n提现原则、四类余额结构、流水原则等未变部分保持不变。若还需要把前端 Playthrough 相关文案或接口说明一并同步进 README,可以继续说。\n\n[REDACTED]"}]}}
{"role":"user","message":{"content":[{"type":"text","text":"\n我这份README.md是给AI看的,当做项目的背景知识的。帮我觉得\n"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"你的消息似乎没发完;我先通读 `docs/README.md`,从「给 AI 当项目背景知识」的角度帮你评估结构和缺口。\n\n[REDACTED]"},{"type":"tool_use","name":"Read","input":{"path":"/Users/ray/Documents/project/www/ray/docs/README.md"}}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"你的消息好像没发完(「帮我觉得…」),我先按「这份 README 适不适合给 AI 当项目背景知识」来评价。\n\n---\n\n## 总体结论\n\n**方向是对的,已经能当 AI 背景文档用。** 产品定位、回答偏好、架构边界、钱包核心规则都写清楚了,AI 不容易把 `slot-pwa` 当成前端、也不会再按旧规则理解下注顺序。\n\n作为「全局背景」,它现在大约 **7.5/10**:架构和产品心智够用;钱包规则已经跟上最新实现;但还缺「AI 该怎么用这份文档」的分层指引,以及若干容易误导的细节。\n\n---\n\n## 做得好的地方\n\n**1. 开头就定调**\n\n> 本文件是给 AI 看的;用真实服务名;不要臆造\n\n这能直接减少 AI 胡编服务名、乱造字段的问题,很实用。\n\n**2. 第二节「回答重点」**\n\n把「不要过度讲合规」「美国用户习惯」「不同问题怎么答」写清楚,比只堆技术栈更有价值。AI 会知道你是要产品/体验/落地建议,不是法律意见书。\n\n**3. 架构表 + 易混点**\n\n- `slot-pwa` ≠ 前端,`slot-lobby` 才是 C 端\n- 余额变动只能走 `slot-wallet`\n- 跨服务走 `slot-sdk`\n\n这些都是 AI 最容易搞错的地方,你写对了。\n\n**4. 第五节钱包规则**\n\n更新后已经和 `slot-wallet/doc/wallet.md`、`win.md` 对齐,包含:\n- 下注顺序:Withdrawable → Deposit → Bonus\n- 打码组 `wallet_fund_lot_group`\n- 派奖按账户状态路由、不再按出资比例拆分\n\n对 AI 来说,**第五节就是「资金域不可违背的硬规则」**,篇幅也合适。\n\n---\n\n## 需要改进的地方\n\n### 1. 第四节表格格式有 bug(会误导 AI)\n\n第 72–78 行几个服务被包在 `>` 引用块里,Markdown 里**不会渲染成表格行**:\n\n```72:78:docs/README.md\n> 注:`slot-game`(早期自研 Slots 游戏引擎)**已废弃**...\n> | `slot-activity` | **活动服务**。...\n> | `slot-risk` | **风控服务**。...\n```\n\nAI 可能读不到 `slot-activity`、`slot-risk` 等服务的职责。建议把废弃说明单独成段,其余服务回到正常表格里。\n\n### 2. 缺少「文档分层」说明\n\n现在第五节末尾指向完整 PRD,但没有告诉 AI:\n\n| 层级 | 文档 | 何时读 |\n|------|------|--------|\n| L1 背景 | `docs/README.md` | 每次对话默认 |\n| L2 领域 PRD | `slot-wallet/doc/wallet.md`、`win.md` | 改钱包/派奖/打码 |\n| L3 需求 | `docs/requirements/*` | 做具体功能 |\n\nAI 容易在背景文档和 PRD 之间重复展开,或在细节不足时瞎补。加 5–10 行「阅读优先级」会明显提升稳定性。\n\n### 3. 钱包写得很细,其他域几乎空白\n\n第五节占全文约 40%,钱包很强;但支付、游戏回调、活动发奖、风控边界只有服务表一行。\n\n常见 AI 幻觉场景:\n\n- 充值到账谁写账?(`slot-pay` 回调 → `slot-wallet`?)\n- 活动发奖是直接改余额还是走 grant 接口?\n- 游戏 bet/win 谁入口?(`slot-pwa` → `slot-wallet`)\n\n不必写满,但各加 **3–5 条「不可违背原则」** 就够,结构和第五节类似。\n\n### 4. 缺少「命名/术语对照」\n\nAI 经常在以下之间混用:\n\n- 产品名:Withdrawable Cash / Locked Deposit / Bonus Credits\n- 库字段:`withdraw_balance` / `deposit_balance` / `frozen_bonus`\n- 前端文案:Playthrough、Wager Task\n\n你已有部分字段对照,建议加一小节 **「术语速查」**,避免 AI 建议改字段名或文案时和实现脱节。\n\n### 5. 缺少「AI 禁止事项」清单\n\n对资金类项目,建议在文末加短清单,例如:\n\n- 禁止绕过 `slot-wallet` 直接改余额\n- 禁止在事务内调第三方 / 发 MQ\n- 禁止恢复 `wallet_bet_funding` 按比例派奖\n- 禁止把 `slot-pwa` 当 C 端前端\n- 禁止宿主机直接跑 `php` / `composer`(Docker 环境)\n\n这类规则 AI 一次违规代价很高,写进背景文档很值。\n\n### 6. 工程约定还可以再「AI 友好」一点\n\n第三节分层写得对,但可以补:\n\n- 典型路径:`slot_wallet/app/api/logic/`、`slot_sdk/src/service/`\n- 本地容器:`php82`、`/app/www/slot/`\n- 响应格式 / 错误码来自 `slot-foundation`\n\nAI 写代码或给命令时会少猜路径。\n\n---\n\n## 作为 AI 背景文档,理想结构建议\n\n```text\n一、产品背景 ← 已有,好\n二、AI 回答偏好 ← 已有,好\n三、技术栈与工程约定 ← 略补路径/环境\n四、架构与服务 ← 修表格 + 补跨域原则\n五、领域硬规则\n 5.1 钱包(已有)\n 5.2 支付 / 充值提现(待补)\n 5.3 游戏回调 / Round(待补)\n 5.4 活动发奖(待补)\n六、术语对照 ← 建议新增\n七、文档索引 ← 建议新增\n八、AI 禁止事项 ← 建议新增\n```\n\n原则:**README 只放「AI 必须知道且不能猜错」的东西**;细节继续链到各 repo 的 `doc/`。\n\n---\n\n## 一句话评价\n\n> 这份 README 已经能很好地告诉 AI「这是什么产品、服务怎么拆、钱包规则是什么」;下一步重点是 **修表格 bug、加文档分层、补支付/游戏/活动几条硬规则、加禁止事项**,这样 AI 既不会漏读服务,也不会在没读 PRD 时乱编资金逻辑。\n\n---\n\n如果你本意是「帮我觉得还要不要改 / 怎么改」,我可以直接帮你改一版(修表格 + 加「文档索引」「AI 禁止事项」「术语对照」三节)。你是想要**评审意见**,还是**我直接改文档**?\n\n[REDACTED]"}]}}
{"role":"user","message":{"content":[{"type":"text","text":"\n我是给chatGPT项目背景知识,我会把这个文件的内容给到它的官网的\n"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"你的用法我理解了:这份 `docs/README.md` 会整份贴到 **ChatGPT 官网的项目背景 / Project Instructions / Knowledge** 里,不是给 Cursor 读仓库用的。\n\n在这个场景下,评价标准要换一下。\n\n---\n\n## 适不适合直接上传?\n\n**可以用,但建议先改一版再上传。**\n\nChatGPT 项目背景的特点是:\n\n1. **读不到你仓库里的其他文件** —— 文里写的 `slot-wallet/doc/wallet.md`、`win.md` 它访问不到,除非你也单独上传。\n2. **不会自动扫代码** —— 只能信你写进去的内容,猜错代价高(尤其是钱包、服务名)。\n3. **篇幅有限** —— 太长会占 context,太短又容易漏关键约束。\n4. **Markdown 渲染不稳定** —— 格式错了,AI 可能整段读漏。\n\n所以:**这份文档要「自洽、可独立理解」**,不能当「索引页」,而要当「唯一真相来源」。\n\n---\n\n## 现在这版的上传风险\n\n| 问题 | 影响 |\n|------|------|\n| 第 72–78 行服务表在 `>` 引用块里 | `slot-activity`、`slot-risk` 等可能读不全 |\n| 指向 `slot-wallet/doc/wallet.md` | ChatGPT 看不到,细节只能靠第五节 |\n| 钱包写得很细,支付/游戏/活动几乎没写 | 问充值、回调、发奖时容易瞎编 |\n| 没有「不知道就说不知道」 | 容易编造接口、字段、流程 |\n| 没有「禁止事项」 | 容易建议绕过 wallet、恢复旧派奖逻辑 |\n\n---\n\n## 给 ChatGPT 上传,理想结构\n\n建议控制在 **2500–4000 字**(中文),结构如下:\n\n```text\n0. 使用说明(给 ChatGPT 自己看的)\n - 本文是唯一项目背景,不要臆造服务/表/接口\n - 不确定时明确说「文档未覆盖,需确认」\n\n1. 产品是什么(1 段)\n2. 回答偏好(美国用户、少讲合规、输出格式)\n3. 架构与服务(一张完整表 + 3 条铁律)\n4. 工程约定(技术栈、分层、Docker、禁止宿主机 php)\n5. 领域硬规则\n 5.1 钱包(保留现有第五节,这是核心)\n 5.2 支付 / 充值 / 提现(5 条原则)\n 5.3 游戏回调(slot-pwa → slot-wallet,Round / bet-win)\n 5.4 活动发奖(activity 不直接改账,走 wallet grant)\n6. 术语对照(产品名 ↔ 库字段 ↔ 前端文案)\n7. 禁止事项(8–10 条)\n8. (可选)若你还上传 wallet.md,这里写「细节以 wallet 文档为准」\n```\n\n**原则:README 里只放 ChatGPT 必须知道、且不能猜的内容;** 完整 PRD 若也要给 ChatGPT,就**另外上传** `wallet.md` + `win.md`,并在 README 里写清楚分工。\n\n---\n\n## 第五节钱包:可以保留\n\n钱包规则已经对齐最新逻辑,对 ChatGPT 很有价值,建议**整段保留**,包括:\n\n- 下注顺序:Withdrawable → Deposit → Bonus \n- 打码组 `wallet_fund_lot_group` \n- 派奖按账户状态路由、不按出资比例拆分 \n\n这是最容易被 AI 编错的部分,写进背景知识是对的。\n\n---\n\n## 上传前建议加的一段「给 ChatGPT 的说明」\n\n放在文件最开头,例如:\n\n```markdown\n> 【给 ChatGPT】本文是 REELHALL 项目的唯一背景知识。\n> - 回答时必须使用文中真实服务名(slot-wallet、slot-console 等),禁止臆造。\n> - 涉及资金、支付、游戏回调时,严格遵循第五节及下文硬规则;文档未写明的细节应回答「需查代码/PRD 确认」,不要编造接口或表结构。\n> - slot-pwa 是游戏网关后端,不是 C 端前端;C 端是 slot-lobby。\n> - 所有余额变动只能经 slot-wallet 完成并写流水。\n```\n\n这段对 ChatGPT 官网项目背景特别有用。\n\n---\n\n## 和 Cursor 用的区别\n\n| | Cursor(当前) | ChatGPT 项目背景 |\n|--|----------------|------------------|\n| 能否读代码 | 能 | 不能 |\n| 能否读其他 md | 能 | 只有你上传的 |\n| 文档角色 | 索引 + 背景 | **唯一真相** |\n| 钱包细节 | 可链到 wallet.md | 要么写全,要么另传 wallet.md |\n\n---\n\n## 建议你怎么做\n\n1. **必做**:修第四节服务表格式(引用块里的表格)。\n2. **必做**:开头加「给 ChatGPT 的使用说明」+ 文末加「禁止事项」。\n3. **建议做**:补支付 / 游戏 / 活动各 5 条硬规则 + 术语对照。\n4. **可选**:把 `slot-wallet/doc/wallet.md`、`win.md` 也上传到同一 ChatGPT 项目,并在 README 里写「L1 背景 / L2 钱包 PRD」分工。\n\n---\n\n如果你愿意,我可以直接帮你改一版 **「ChatGPT 项目背景专用」** 的 `docs/README.md`(自洽、修表格、加说明和禁止事项),你复制到 ChatGPT 官网就能用。要我现在改吗?\n\n[REDACTED]"}]}}