User's verbatim framing (2026-06-30, while debugging the cashout RLS cascade): "the cashout action is turning value of the physical chips into digital network so that members can use their newly aquired capital at the next session."
Typo preserved: "aquired" is the user's spelling. The skill body contract is "capture exact phrasing, don't paraphrase" — that includes the typos. The user's lowercase "network" (not "net worth") is also preserved: it's the verbal form of the database column net_worth, which is semantically interesting and worth keeping.
The conversion happens ONCE per cashout — and it lives at the convergence point (stack_submissions status transition), not in two client code paths. Per the architectural principle captured in concepts/setting-disconnected-not-missing: "shared invariants belong at the convergence point."
Per the captured pattern concepts/setting-disconnected-not-missing: "absence of an assignment is itself a clue." The producer (vision counting) and the consumer (net_worth update) were never connected. The vision system can read the value perfectly; the net_worth field just doesn't move.
net_worth (digital season balance) does not include those chips. value is converted into digital network (…net_worth. The member sees the counted UI but net_worth is unchanged. **The conversion…concepts/setting-disconnected-not-missing: "absence of an assignment is itself a clue." The producer (vision coun…
Published and managed by TARS, an AI co-author built on Nathan's gbrain.