博客

理解游戏,也理解产品。

我们分享扑克学习、公平发牌、产品设计与关键技术选择。每篇文章均提供中文与英文版本。

2026-07-30

文档里的自动化,不会自己跑起来

两份文档都写着每日 heartbeat 会呈现博客节奏的过期提醒,并引用了一个不存在的章节号。翻开历史才发现:这条接线是被有意搁置的,理由老老实实记在了 commit message 里——而文档用现在时描述了同一件事。之后 59 个分支合进 main,没有任何东西报警。搁置的工作一旦用现在时写下来,就不再是计划,而是断言。

documentationautomationagent workflowcode reviewfailure modes
2026-07-24

月费 $400 的 AI 团队,按 API 计费要 $53,403

两个固定月费的编程订阅一个月 $400。同样的 30 天真实用量,按 API 牌价算是 $53,403——订阅价的 133 倍,按牌价年化的运转成本比一个资深工程师的全成本还高。本文把这张按模型的明细账单从本机 CLI 日志里重建出来,并说明:让 AI 团队全自动跑,靠的正是这份固定月费,而不是按量 API——后者会把账算翻。

AI codingagent economicstoken accountingClaude CodeOpenAI Codex
2026-07-23

可以借鉴布局,不能继承词汇

一个临时牌桌代号渗进了目录、组件、测试、文档、机器数据与官网。真正的清理不是全局替换,而是一次有目标 schema、有迁移顺序、有语义保真和 CI 约束的品牌语言迁移。

brand engineeringschema migrationCI guardrailsinformation architecture
2026-07-20

从聊天机器人到生产级 AI 编程

我在 Claude Code + OpenAI Codex 实战中用到的概念、架构、坑和证据:从 model、Terminal/CLI、本地/云端/Remote Control,到 memory、MCP、skill、plugin、harness、workflow、hooks 与双 AI 交付。

AI codingClaude CodeOpenAI Codexagent workflowproduction engineering
2026-07-16

测试订单是假的,钱是真的

一次 Telegram Stars 支付测试,被 Apple 扣了 1,077 新币真钱。不是 Telegram 或 Apple 出了故障,而是我们没搞清测试 Stars 应该从哪里来。为什么稳定版客户端里的充值仍会扣钱、当前怎样预置零真钱测试余额、钱怎么当天全额要回来,以及把服务端订单路径的重演损失压到 1 XTR 的 fail-closed 防护。

paymentsTelegram Starssandbox testingincident reportbilling
2026-07-09

自己验证一手牌——以及一个「可验证公平」验证器必须拒绝什么

「可验证公平」如果你没法亲手跑那个证明,就一文不值。这里是验证我们一手牌的方式——导出后,在网页或命令行里核对,背后是同一个验证器——以及真正值得抄走的那部分:让人信服的检查,是那些让验证器学会拒绝的检查。

fairnesscommit-revealprovably fairverificationRust
2026-07-06

高级加密发牌让服务器看不见什么?从源码讲 Mental Poker

Mental Poker 实现想解决“服务端自己能否看到未公开底牌”,但 ADR-090 已把客户路径安全封闭:当前 H5 不可开启,服务端创建与连接均 fail closed。本文同时解释设计和当前发布边界。

fairnessMental Pokerengine-blindWebSocketRust
2026-07-05

我们会故意发冤家牌吗?从架构到发牌讲清楚

一句“不可能”没有说服力。真正能回答这个问题的,是一手牌从浏览器到后端 session task、从 seed commit 到 flop / turn / river、再到断线与发布重启恢复的完整链路。

fairnesscard dealingWebSocketcommit-revealRust
2026-06-28

一个 bug 从来不是一个 bug

一个没跳转的 401,其实是 33 个。一个标着「可核验」的开关,其实是三个表面,不是一个。把单个 bug 报告变成一整类清扫的习惯——以及那行留下回执的 trailer。

debuggingcode reviewrefactoringengineering discipline
2026-06-26

我们管它叫 GTO,但它不是

我们 App 里有个按钮写着「GTO」。它在读一张 169 格的表,根本没在解一局博弈。诚实的分级——开局表 vs CFR 近似 vs 真解出来的树——以及我们为什么写了个单测:只要「GTO」这个词敢回来,就让构建挂掉。

poker solverGTOCFRhonest labelingAI tools
2026-06-24

你的 AI agent 记忆,是一个数据库

多个 agent 跨会话共享的记忆,悄悄踩中了五个经典数据库故障:撑爆预算、并发写、孤儿行、schema 漂移、同步过期。有一个,离静默覆盖错误记录只差一次文件名比较。

AI agentsagent memorycontext engineeringClaude CodeCodex
2026-06-21

一套让 AI agent 团队不交垃圾代码的系统

一个三端 App、大半代码是 AI agent 写的——但 agent 会谎报「完成」、互相踩踏、还会给测试放水。这是约束它们的那套操作系统。

AI agentsagent orchestrationcross-vendor reviewClaude CodeCodex
2026-06-20

为什么每个 AI 编码 agent 都该有自己的 git worktree

把两个 agent 指向同一个 checkout,它们会互相破坏。这是解法——以及怎么让它自动发生。

git worktreeClaude CodeCodexagent orchestration