Axiu logo
VibeCoding正在放大半成品思考
写代码1 min read

VibeCoding正在放大半成品思考

M
Max
写代码,也记录生活里的小片段。
今天在训练的时候,我遇到一个很小的问题: 我杠铃卧推做了60kg x 8、60kg x 8、80kg x 8、80kg x 8。 那下次系统应该提示我继续 60kg,还是以 80kg 为新目标?
目前的app提示是继续做60kg,但是我觉得既然能做两组80kg,那提示加重量是不是也没什么问题?如果我是在做递增/递减组,或者金字塔/反向金字塔呢?又或者我是临时加重,或者只是试探加重呢?如果RPE特别高,又能不能算数呢?

问题思考

所以,这一个表面看着只是提示文案的小问题,继续往下拆,发现它牵涉到一堆边界条件。
这就是“放大半成品思考”:
因为有了 AI,它可以很快把你模糊的想法写成代码、状态机、文案、测试,甚至看起来结构完整。
以前一个没想清楚的功能,会卡在设计、沟通、实现阶段,暴露得比较慢。拉长时间线当然会拖慢节奏,但是时间足够长,也让思考更充分。于是现在问题变成:
你的思考还没成熟,但AI给的产物已经很像成熟方案了。仿佛一切已经可以执行了,但是立刻执行,在几轮之后往往暴露出巨大的难以弥补的缺陷。
**AI 确实会加速实现,也会加速错误判断的落地。**它只是把你已经表达出来的判断,快速放大成了系统行为。这就是Vibe Coding最危险的地方,提前产品化的半成品思考,往往无法持续维护。
如何在一定程度上规避这些问题呢?有以下几个实践: 1.阻止AI快速开始实施。尤其是类似Antigravity这种IDE,会特别希望立刻开始写代码,一定要压制
2.多几轮边界和用例,一定要自己每条都看,并从中总结出问题。最起码,让AI给你按P0~P2设置用例等级,以专注于核心用例
3.TDD,测试驱动开发。让AI写足够的用例,以免漏掉边界条件

AI沟通示例

下面是我和AI的聊天,涉及到我平时沟通的基本流程
CleanShot 2026-06-17
CleanShot 2026-06-17
[描述问题]
Q:我本次完成了计划内上斜杠铃卧推,60x8、60x8、80x8、80x8。系统提示“继续完成 60 kg 的计划目标”。这是否在口径上冲突,为什么不是判断到已经增加重量且完成一定组数,并做相应提示?
A:是,当前口径有冲突,而且冲突点很明确:系统现在仍然把这次 closeout 解释成“继续完成 60 kg 的计划目标”,没有一个状态去表达“你已经上探到更高重量,并完成了部分有效组”。
所以现在不是“没看到你加重了”,而是“看到了也没有对应的语义状态可表达”,最后被压回了 60 kg 的计划口径。这就是为什么你会觉得不对,而且这个感觉是对的。
更合理的口径应该是: 上斜杠铃卧推 · 80 kg 本次已完成 2 组 80 kg。 下次优先把 80 kg 累积到更多有效组,再判断是否继续推进。
Q:应该判断足够的边界,例如是否在做递减/递增组,或者临时减重等。帮我搜索并收集足够的常见边界
A:现有 NextLiftCue 基本是按“计划目标重量 + 直组完成度”理解的。所以它天然缺一个状态:已在更高重量完成部分有效组数,下一次继续在该重量建立更多组
需要收集的常见边界 下面这些边界足够覆盖大部分真实训练记录场景。我把它们按产品判断优先级排了序。
  1. 热身 / 递增热身组 例如 20, 40, 60, 80 逐步上来。前面的低重量不该参与“下次主目标”判断,只能作为热身背景。
  2. 顶组 + 回退组 先做一个重顶组,再做较轻 back-off sets。这个场景下主目标不能简单取“出现次数最多的重量”。
  3. 递增金字塔 重量逐组升高、次数逐组下降。它不是“同一主重量没完成”,而是刻意编排。
  4. 递减组 / drop set 做到接近失败后立刻减重继续。这里更不能把低重量组和主工作组混在一起判断。公开资料对 drop set 的定义很一致,核心就是降重继续训练。
  5. 反向金字塔 / reverse pyramid 先重后轻,主信号通常来自前几组重组,不是后面轻重量补量组。
  6. 临时减重 前两组目标重量完成,但后面因疲劳、技术、疼痛预警、 spot 不足而降重。这种场景的提示应该是“当前重量已建立部分有效组,下一次先补齐”,不是退回到更低重量当主目标。
  7. 临时加重 / 探重组 像你这次,先按计划重量做两组,再上探更高重量做两组。这是最关键的边界。它应当识别为“更高重量已建立,但未完全站稳”。
  8. AMRAP / plus set 最后一组故意做尽可能多次,不能拿它和前面直组并列判断。
  9. rest-pause / cluster 同一目标重量被拆成小段完成,中间只有短休。产品上不应误判成多组独立直组。
  10. 计划组数未完成 比如目标 4 组,只做了 2 组。现在这条已经部分覆盖,但还没和“更高重量部分完成”结合好。
  11. 补做组 / bonus set 计划已完成后又多做 1-2 组。这种额外组可以作为进展证据,但不应直接改写计划目标口径。
  12. 动作形式变化 同名动作但器械、角度、握距、辅助方式变了,比如器械卧推 vs 杠铃卧推、辅助引体 vs 自重引体。不能直接串进同一条主目标。
  13. 负重粒度限制 很多健身房没有细小加重,只能从 60 直接跳 80,或器械只有固定档位。提示文案不能默认“已加重 = 已稳定完成新重量”。
  14. 高 RPE / 技术接近崩坏 即便 reps 达标,如果 RPE 很高或后几组明显掉速,也不该直接提示继续加重。
  15. 超组 / 交替组 胸背交替、推拉交替时,后续组的疲劳结构不同,不能简单按连续时间序列解释。
如果你要,我下一步可以直接把这套边界整理成一份产品规则表,然后落到 NextLiftCueBuilder 的状态机里。
Q:不适合直接把它直接加进现有状态机
A:现在这个问题本质上不是“少了一个 state”,而是缺少一层组型归因。也就是先判断“这组记录属于哪种组型”,再让状态机产出用户可见结论。
结论:
  • 不要直接往现有流程里硬塞规则。
  • 先加一个轻量 PatternClassifier
  • 然后只新增一个用户可见 action 就够了。
  • 展示层改成“事实 + 下一步”,不要再让计划重量无条件覆盖已建立的新重量。
Q:按照前面的组型判断标准和纬度、流程,给我充足的用户story(测试用例)
A:判断流程:
过滤:只看已完成、非热身、非删除、有记录值的 working sets。
归类:判断组型,不直接生成建议。
解释:结合计划目标、RPE、完成组数,生成下一步动作。
展示:只写可验证事实,不猜测用户意图。
P0 核心用例
P1 边界用例
P1 组型歧义用例
P2 展示文案用例
这套用例的核心原则是:组型负责解释数据结构,状态机负责下一步建议,展示层只说事实。这样后面即使继续扩展 drop set、top set、RPE 自动调节,也不会把所有边界都塞进一个越来越难维护的 NextLiftCueAction
Q:80x4也可能有多种状态,不能直接等同于可以继续加重,如偶尔更高重量,或者RPE过高(9以上),或者确实已经可以完全覆盖计划组。
负重 / 辅助体重动作应该分开处理,另外,辅助重量增加可能代表难度下降。小幅加重应识别为正常 progression。
最后,不要使用“试探”、“无法决定xxx”、“不能判断yyy”、“可能是zzz”等无判断性和指导价值的叙述口径。
A:结论:这些改点基本有效,而且更稳。核心调整是:不要把“更高重量出现”直接等同于“可以继续加重”。对 4×8–10 这种目标,80×8×4 只是证明 80 kg 覆盖了目标下限,不应该进入 tryNextAvailableLoad
建议补充的用例:
更高重量达下限但未达上限(80×8, 80×8, 80×8, 80×8)
更高重量达上限且 RPE 合适(80×10, 80×10, 80×10, 80×10 @7–8)
更高重量达上限但 RPE 高(80×10 ×4 @9–10)
小幅加重 vs 大幅跳重
60 → 62.5 kg60 → 80 kg 不应该用同样的证据门槛。
优先级 建议顺序如下:
  1. 计划动作未完成 / 跳过:先处理
  2. 动作类型不支持重量推进:先排除
  3. 高 RPE / reps 明显掉落:阻止加重
  4. 判断组型
  5. 根据组型生成 action
  6. 展示层只输出事实和下一步动作
#写代码
最后编辑于
Comments
目录
正在生成目录...
Think & Echo