Routing Between Local Gemma and Cloud Gemini 3.5 Flash by How Easily You Can Verify the Output
When I split local and cloud work by whether it was sensitive, or by which was faster, my decisions wobbled every time. The axis that finally held was different: if the output is wrong, can I catch it cheaply and undo it cheaply? Here is a router that chooses a model from verifiability and recovery cost, with working code and a measurement ledger.
When the Default Model Changes Underneath You: Pinning and Diff-Gating Scheduled Runs
Antigravity 2.0 promoted Gemini 3.5 Flash to the default fast model. It is a welcome upgrade, but any scheduled run that leaned on the default starts producing subtly different output one morning. Here is how I pin the model explicitly, fingerprint the output, and gate drift, sized for a solo developer's pipeline.
After Generating Several Candidates, Which One Do You Adopt? Designing Best-of-N That Arbitrates by Verification
With Gemini 3.5 Flash's speed, generating several implementations of the same task has become practical. The hard part is no longer generation but arbitration. Here is the design and TypeScript implementation of a Best-of-N arbiter that picks the winner using verifiable signals only — not majority vote, not self-reported confidence.
After Gemini 3.5 Flash Became the Default, Route Flash and Pro Per Task
Now that Antigravity's default Flash is Gemini 3.5 Flash, leaving everything on Flash wastes accuracy and forcing everything onto Pro wastes time. Here is a two-axis decision table for splitting work between Flash and Pro, plus the routing setup to wire it into your agents.
Routing thinking_level by Task in Gemini 3.5 Flash — Re-measuring My Token Spend
After Gemini 3.5 Flash became Antigravity's default, my thinking tokens crept up quietly. Here's how I measured thinking_level per task type and landed on a setup that cuts spend without losing accuracy.