Files
ray zhou 2dd9f17da9 ok
2026-06-29 14:51:55 +08:00

14 lines
26 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"role":"user","message":{"content":[{"type":"text","text":"<user_query>\n读取docs/README.md 文件现在钱包逻辑有变化。请更新最新的钱包逻辑到README.md文件里面\n</user_query>"}]}}
{"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":"<user_query>\n我这份README.md是给AI看的当做项目的背景知识的。帮我觉得\n</user_query>"}]}}
{"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第 7278 行几个服务被包在 `>` 引用块里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 之间重复展开,或在细节不足时瞎补。加 510 行「阅读优先级」会明显提升稳定性。\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不必写满但各加 **35 条「不可违背原则」** 就够,结构和第五节类似。\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/<repo>`\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":"<user_query>\n我是给chatGPT项目背景知识我会把这个文件的内容给到它的官网的\n</user_query>"}]}}
{"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| 第 7278 行服务表在 `>` 引用块里 | `slot-activity`、`slot-risk` 等可能读不全 |\n| 指向 `slot-wallet/doc/wallet.md` | ChatGPT 看不到,细节只能靠第五节 |\n| 钱包写得很细,支付/游戏/活动几乎没写 | 问充值、回调、发奖时容易瞎编 |\n| 没有「不知道就说不知道」 | 容易编造接口、字段、流程 |\n| 没有「禁止事项」 | 容易建议绕过 wallet、恢复旧派奖逻辑 |\n\n---\n\n## 给 ChatGPT 上传,理想结构\n\n建议控制在 **25004000 字**(中文),结构如下:\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-walletRound / bet-win\n 5.4 活动发奖activity 不直接改账,走 wallet grant\n6. 术语对照(产品名 ↔ 库字段 ↔ 前端文案)\n7. 禁止事项810 条)\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]"}]}}