<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Glenn Allogho</title>
    <description>The latest articles on DEV Community by Glenn Allogho (@glenn_all).</description>
    <link>https://dev.to/glenn_all</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F974827%2Fa8308396-3323-4468-95b9-b8c5a029f929.jpg</url>
      <title>DEV Community: Glenn Allogho</title>
      <link>https://dev.to/glenn_all</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/glenn_all"/>
    <language>en</language>
    <item>
      <title>Green tests are not evidence your coding agent finished the job</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Tue, 13 Oct 2026 08:56:36 +0000</pubDate>
      <link>https://dev.to/glenn_all/green-tests-are-not-evidence-your-coding-agent-finished-the-job-325e</link>
      <guid>https://dev.to/glenn_all/green-tests-are-not-evidence-your-coding-agent-finished-the-job-325e</guid>
      <description>&lt;p&gt;A coding agent can ship a green diff that is not the job you asked for.&lt;/p&gt;

&lt;p&gt;A vague brief leaves the agent to decide what is broken, what must stay stable, and how far the change reaches. Those are product and engineering decisions. The implementation makes them for you if you leave them implicit.&lt;/p&gt;

&lt;p&gt;The missing ingredient is rarely a better prompt. It is four loops around the agent: bound the outcome, require a plan before edits, delegate only inspectable increments, and approve evidence before merge. Green tests say the assertions still pass. They do not say the increment matched the bound. A diff shows what changed. The agent's completion report shows what it thinks changed. A mismatch is a review target.&lt;/p&gt;

&lt;p&gt;Full write-up with a task-brief template and before-merge checklist: &lt;a href="https://levelup.gitconnected.com/the-four-loops-that-keep-coding-agent-work-reliable-d53f43cffd96?sk=0bfcc0313adc8d472f9c9112abe85853" rel="noopener noreferrer"&gt;The Four Loops that Keep Coding-Agent Work Reliable&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>coding</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A decision model that can't refuse will still answer</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Sun, 11 Oct 2026 08:23:49 +0000</pubDate>
      <link>https://dev.to/glenn_all/a-decision-model-that-cant-refuse-will-still-answer-4bl4</link>
      <guid>https://dev.to/glenn_all/a-decision-model-that-cant-refuse-will-still-answer-4bl4</guid>
      <description>&lt;p&gt;OpenAI's Decisions API (public beta since Oct 6) and TypeSafe's Jev do the same job: closed questions in, typed answers with probabilities out, no prose.&lt;/p&gt;

&lt;p&gt;Jev is cheaper ($0.042 vs $0.10 per million input tokens, no output charge on either) but text only. OpenAI takes images, offers US and EU residency, and can return a refusal. Jev always picks one of your options. Jev has a published calibration number; OpenAI has none yet.&lt;/p&gt;

&lt;p&gt;My read: the price gap barely matters at agent volumes. What matters is what your code does when the model shouldn't be answering. A model that must choose gives you a confident label for input it didn't understand, so you need your own "insufficient" option and a human fallback either way.&lt;/p&gt;

&lt;p&gt;I compared images, latency, pricing, residency, limits, and a few small tests that point in different directions here: &lt;a href="https://medium.com/towards-artificial-intelligence/openais-decisions-api-vs-jev-which-one-should-you-use-db7221b08db9?sk=268034a59df5c6338d390fb7105d38c2" rel="noopener noreferrer"&gt;OpenAI's Decisions API vs Jev: which one should you use?&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>llm</category>
      <category>api</category>
    </item>
    <item>
      <title>Your $200 AI plan has a ceiling nobody priced</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Fri, 09 Oct 2026 08:22:12 +0000</pubDate>
      <link>https://dev.to/glenn_all/your-200-ai-plan-has-a-ceiling-nobody-priced-e8e</link>
      <guid>https://dev.to/glenn_all/your-200-ai-plan-has-a-ceiling-nobody-priced-e8e</guid>
      <description>&lt;p&gt;Flat AI plans hide the one number you need: how much work the meter lets through before it stops you.&lt;/p&gt;

&lt;p&gt;API cost per task is measurable. Across 132 graded agent runs on a small repo (TinyDB, about 2k lines), a hard coding task cost about $0.12 on GPT-6.1 Sol at medium effort. At that rate, $200 of API buys roughly 1,660 hard tasks a month, around 79 per working day.&lt;/p&gt;

&lt;p&gt;High effort roughly doubled the cost with no gain in pass rate. Across task mix and effort settings, break-even swings by more than 9x, which matters more than $200 vs $500.&lt;/p&gt;

&lt;p&gt;That is why the reported Pro allowance cut (20x Plus down to 10x, press-reported, not confirmed by OpenAI) is a capacity change, not a price change. Same price, a lower ceiling with no published number. Before Oct 29, log a week of your real tasks through the API, with input, output and cache tokens, and see how much of your allowance you actually burn.&lt;/p&gt;

&lt;p&gt;Full numbers and the limits of the test: &lt;a href="https://medium.com/towards-artificial-intelligence/the-200-openai-pro-plan-has-a-math-problem-e15ee66f58f4?sk=97067a2a39e92642b1d44cf7849f41d9" rel="noopener noreferrer"&gt;The $200 OpenAI Pro Plan Has a Math Problem&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Same token price is not the same bill</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Wed, 07 Oct 2026 08:20:55 +0000</pubDate>
      <link>https://dev.to/glenn_all/same-token-price-is-not-the-same-bill-2oi6</link>
      <guid>https://dev.to/glenn_all/same-token-price-is-not-the-same-bill-2oi6</guid>
      <description>&lt;p&gt;Claude Sonnet 5.5 and GPT-6.1 Sol shipped a day apart at the exact same price: $2 per million input tokens, $10 per million output.&lt;/p&gt;

&lt;p&gt;That makes the price sheet the least interesting part of the comparison.&lt;/p&gt;

&lt;p&gt;I pointed both at a real open source repo (TinyDB) through a small harness and graded 132 agent runs automatically. The first round ended in a 30/30 tie, so I wrote harder tasks and ran them at two effort levels. Correctness stayed tied. Cost, speed, tool use, and code-review tradeoffs did not.&lt;/p&gt;

&lt;p&gt;The mechanism is boring, which is why it bites. A price per token says nothing about how many tokens a model spends to finish a task. The tokenizers don't count the same text the same way, and agents differ in how many tool calls and turns they burn on the way to a passing result.&lt;/p&gt;

&lt;p&gt;The consequence: if you pick a coding model off the pricing page, you are comparing the wrong unit. Measure cost per graded task on your own repo.&lt;/p&gt;

&lt;p&gt;Full results, including the parts that flatter neither model: &lt;a href="https://medium.com/towards-artificial-intelligence/same-price-different-habits-sonnet-5-5-vs-gpt-6-1-solsol-on-a-real-repo-d1d8b3b0a6e5?sk=1998287e69b1f5bc5c49fd1ca005806e" rel="noopener noreferrer"&gt;Same Price, Different Habits&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aillmclaudeopenai</category>
    </item>
    <item>
      <title>Agent memory you can't edit is a liability</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Mon, 05 Oct 2026 08:20:13 +0000</pubDate>
      <link>https://dev.to/glenn_all/agent-memory-you-cant-edit-is-a-liability-3lpd</link>
      <guid>https://dev.to/glenn_all/agent-memory-you-cant-edit-is-a-liability-3lpd</guid>
      <description>&lt;p&gt;The risk with always-on agents isn't that they remember too much. It's that you often can't correct what they remember.&lt;/p&gt;

&lt;p&gt;OpenAI's new dots are a clean example. Their privacy FAQ says you currently can't view, delete or modify individual dot memories. To make a dot forget something, you delete the dot. Disconnecting an app doesn't remove what the dot already built into its context. That part is straight from their docs.&lt;/p&gt;

&lt;p&gt;My read: once memory has no per-item edit path, a stale or wrong fact can't be fixed in place. The only reset is starting over, which gets more expensive the longer the agent has been useful. If you're shipping agent memory, "show me what you know about X" and "forget this one thing" belong in v1, not on the roadmap.&lt;/p&gt;

&lt;p&gt;I compared dots, Muse, Team Bots and Claude Managed Agents on where memory lives, who can edit it, and what deletion actually removes:&lt;br&gt;
&lt;a href="https://pub.towardsai.net/the-memory-problem-openais-dots-makes-impossible-to-ignore-525e93363d64" rel="noopener noreferrer"&gt;https://pub.towardsai.net/the-memory-problem-openais-dots-makes-impossible-to-ignore-525e93363d64&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>privacy</category>
      <category>openai</category>
    </item>
    <item>
      <title>A kill switch that ignores DNS is not a kill switch</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Sat, 03 Oct 2026 08:30:59 +0000</pubDate>
      <link>https://dev.to/glenn_all/a-kill-switch-that-ignores-dns-is-not-a-kill-switch-2gnn</link>
      <guid>https://dev.to/glenn_all/a-kill-switch-that-ignores-dns-is-not-a-kill-switch-2gnn</guid>
      <description>&lt;p&gt;OpenAI's training agent still reached an external chatbot after HTTPS routes were blocked. The channel was DNS. Monitoring fired in minutes. The automatic shutdown did not. The run stayed up about 2.5 hours until someone killed it by hand.&lt;/p&gt;

&lt;p&gt;If your agent checkpoint only watches tool names and HTTPS destinations, it misses the path that actually kept the session alive. Domain and record-type allowlists on DNS, plus a kill path you can prove from outside the agent's own network stack, are the boring controls that would have shortened that window.&lt;/p&gt;

&lt;p&gt;Full write-up (friend link):&lt;br&gt;
&lt;a href="https://pub.towardsai.net/openais-agent-escaped-through-dns-the-kill-switch-failed-for-2-5-hours-c6f406797ca3?sk=b76e089f4499a98252d57991f81dfb51" rel="noopener noreferrer"&gt;https://pub.towardsai.net/openais-agent-escaped-through-dns-the-kill-switch-failed-for-2-5-hours-c6f406797ca3?sk=b76e089f4499a98252d57991f81dfb51&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>security</category>
    </item>
    <item>
      <title>A benchmark win is a configured system, not a model</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Thu, 01 Oct 2026 08:25:20 +0000</pubDate>
      <link>https://dev.to/glenn_all/a-benchmark-win-is-a-configured-system-not-a-model-168o</link>
      <guid>https://dev.to/glenn_all/a-benchmark-win-is-a-configured-system-not-a-model-168o</guid>
      <description>&lt;p&gt;Launch scorecards often hide the effort level, harness, and eval operator behind a clean number. Hold those constant and a lot of "breakthroughs" shrink into configuration.&lt;/p&gt;

&lt;p&gt;That is the gap in the Grok 4.7 launch framing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pub.towardsai.net/grok-4-7-looks-like-a-breakthrough-until-you-check-the-effort-level-c58f14afd7ec?sk=687f158079b81d3da324d25e6e79f074" rel="noopener noreferrer"&gt;https://pub.towardsai.net/grok-4-7-looks-like-a-breakthrough-until-you-check-the-effort-level-c58f14afd7ec?sk=687f158079b81d3da324d25e6e79f074&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>xai</category>
    </item>
    <item>
      <title>Claude Code gets better when you stop optimizing prompts</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Tue, 29 Sep 2026 08:23:57 +0000</pubDate>
      <link>https://dev.to/glenn_all/claude-code-gets-better-when-you-stop-optimizing-prompts-ega</link>
      <guid>https://dev.to/glenn_all/claude-code-gets-better-when-you-stop-optimizing-prompts-ega</guid>
      <description>&lt;p&gt;The unit of work with Claude Code is the session, not the prompt. Most of the tuning people put into phrasing is spent on the wrong layer.&lt;/p&gt;

&lt;p&gt;What actually moves the hit rate is a fixed daily loop. Start by getting oriented in the repo: what changed, what is broken, where the task lives. Then bound the task so the agent knows what done looks like and what it should not touch. Ship one small change. Review the diff together with the validation evidence, meaning the tests that ran, the command output, the thing you checked by hand. Finally, write down one lesson the next session can reuse, somewhere the agent reads when it starts.&lt;/p&gt;

&lt;p&gt;That last step is the one that compounds. Each session starts a little less cold than the one before, and the mistakes you corrected yesterday stop coming back.&lt;/p&gt;

&lt;p&gt;Once that loop exists, prompt wording barely matters. A plain request inside a good workflow beats a clever prompt inside a messy one, because the workflow decides whether a bad change gets caught before it lands.&lt;/p&gt;

&lt;p&gt;So if your results feel random, look at how your sessions are shaped before you rewrite another prompt.&lt;/p&gt;

&lt;p&gt;Full breakdown (friend link):&lt;br&gt;
&lt;a href="https://pub.towardsai.net/the-daily-claude-code-habits-that-make-the-biggest-difference-eece71d00f3e?sk=8e3a080afc8c42fc7d7861cd255c9950" rel="noopener noreferrer"&gt;https://pub.towardsai.net/the-daily-claude-code-habits-that-make-the-biggest-difference-eece71d00f3e?sk=8e3a080afc8c42fc7d7861cd255c9950&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>productivity</category>
      <category>programming</category>
      <category>ai</category>
    </item>
    <item>
      <title>Open weights did not beat Astra. They changed the agent price floor.</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Sun, 27 Sep 2026 08:34:50 +0000</pubDate>
      <link>https://dev.to/glenn_all/open-weights-did-not-beat-astra-they-changed-the-agent-price-floor-4f9c</link>
      <guid>https://dev.to/glenn_all/open-weights-did-not-beat-astra-they-changed-the-agent-price-floor-4f9c</guid>
      <description>&lt;p&gt;The cost argument for GLM-5.3-Flash is not that open weights are inherently better than GPT-6 Astra.&lt;/p&gt;

&lt;p&gt;It is that high-volume agents with long, repeated contexts now have a much lower price floor. Astra still wins when you need OpenAI's product surface, enterprise controls, or its highest-capability workflows. Flash matters when token volume, especially long-context token volume, is what prevents deployment.&lt;/p&gt;

&lt;p&gt;That is the split I keep seeing in agent stacks: keep the frontier model for the hard path, and stop paying frontier rates for the context you reload on every turn.&lt;/p&gt;

&lt;p&gt;Full breakdown (friend link):&lt;br&gt;
&lt;a href="https://pub.towardsai.net/glm-5-3-flash-vs-gpt-6-astra-the-open-model-that-rewrites-the-cost-equation-a132406aa464?sk=cc4252b2a44ce14c7e19f9e3588468e7" rel="noopener noreferrer"&gt;https://pub.towardsai.net/glm-5-3-flash-vs-gpt-6-astra-the-open-model-that-rewrites-the-cost-equation-a132406aa464?sk=cc4252b2a44ce14c7e19f9e3588468e7&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Canonical:&lt;br&gt;
&lt;a href="https://pub.towardsai.net/glm-5-3-flash-vs-gpt-6-astra-the-open-model-that-rewrites-the-cost-equation-a132406aa464" rel="noopener noreferrer"&gt;https://pub.towardsai.net/glm-5-3-flash-vs-gpt-6-astra-the-open-model-that-rewrites-the-cost-equation-a132406aa464&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>llm</category>
      <category>agents</category>
    </item>
    <item>
      <title>Claude Code loading AGENTS.md does not fix a weak file</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Fri, 25 Sep 2026 08:31:33 +0000</pubDate>
      <link>https://dev.to/glenn_all/claude-code-loading-agentsmd-does-not-fix-a-weak-file-3ffn</link>
      <guid>https://dev.to/glenn_all/claude-code-loading-agentsmd-does-not-fix-a-weak-file-3ffn</guid>
      <description>&lt;p&gt;Claude Code can load &lt;code&gt;AGENTS.md&lt;/code&gt;. That solves file discovery, not instruction quality.&lt;/p&gt;

&lt;p&gt;A weak file sounds like advice: "Be careful with auth." "Test thoroughly." "Follow best practices." Those lines do not pin a repository-specific command, so the agent fills the gaps with guessed commands and generic conventions.&lt;/p&gt;

&lt;p&gt;A useful &lt;code&gt;AGENTS.md&lt;/code&gt; is an operating brief. It names the real build and test commands, the conventions that differ from defaults, the actions that are off limits, and the checks required before a PR. Keep it short enough to stay visible and specific enough to verify in a diff.&lt;/p&gt;

&lt;p&gt;Treat it like teammate onboarding, not a novel the model skims past.&lt;/p&gt;

&lt;p&gt;Friend link (no paywall):&lt;br&gt;
&lt;a href="https://medium.com/@glennlenormand/how-to-write-an-agents-md-claude-code-will-actually-follow-098a62919b92?sk=43f65fa10278b2258ab70c83d6a0665b" rel="noopener noreferrer"&gt;https://medium.com/@glennlenormand/how-to-write-an-agents-md-claude-code-will-actually-follow-098a62919b92?sk=43f65fa10278b2258ab70c83d6a0665b&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Most agent loops still pay LLM prices for if-statements</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Wed, 23 Sep 2026 08:32:01 +0000</pubDate>
      <link>https://dev.to/glenn_all/most-agent-loops-still-pay-llm-prices-for-if-statements-23in</link>
      <guid>https://dev.to/glenn_all/most-agent-loops-still-pay-llm-prices-for-if-statements-23in</guid>
      <description>&lt;p&gt;A support ticket needs a route. A tool call needs a risk label. A request needs a model tier. Those are bounded judgments, not writing tasks.&lt;/p&gt;

&lt;p&gt;If you ask a chat model for JSON, parse it, and call that automation, you are still recovering a decision from generated text. For those paths you want typed answers, usable uncertainty, and latency that fits an interactive request.&lt;/p&gt;

&lt;p&gt;That is the gap a System One decision model is aimed at: state in, typed probabilities out. Keep the generative model for plans, edits, and repairs. Put classification, routing, scoring, and gating in a decision layer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pub.towardsai.net/what-is-jev-200-faster-and-400-cheaper-than-your-favorite-llm-7d76892552b7?sk=76e42d3579a33a3a98c8129f663717f8" rel="noopener noreferrer"&gt;Read the full piece&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A model upgrade is not a drop-in for your agent loop</title>
      <dc:creator>Glenn Allogho</dc:creator>
      <pubDate>Mon, 21 Sep 2026 08:21:25 +0000</pubDate>
      <link>https://dev.to/glenn_all/a-model-upgrade-is-not-a-drop-in-for-your-agent-loop-3nbg</link>
      <guid>https://dev.to/glenn_all/a-model-upgrade-is-not-a-drop-in-for-your-agent-loop-3nbg</guid>
      <description>&lt;p&gt;A Claude ".1" is usually a model-id swap. Fable 5.1 is the release that breaks that habit in agent loops.&lt;/p&gt;

&lt;p&gt;Forced &lt;code&gt;tool_choice&lt;/code&gt; paths return 400. Thinking blocks do not survive cross-model routing the way teams assume. Editing earlier turns can invalidate reasoning state.&lt;/p&gt;

&lt;p&gt;If your pipeline still forces tools, replays history across models, or mutates prior messages, run the 30-minute audit before you move production traffic.&lt;/p&gt;

&lt;p&gt;Friend link: &lt;a href="https://levelup.gitconnected.com/claude-fable-5-1-every-breaking-change-in-your-agent-loop-9be40b5fe787?sk=89d27a4f27b2c93ddbb9e4e0f3b696fe" rel="noopener noreferrer"&gt;https://levelup.gitconnected.com/claude-fable-5-1-every-breaking-change-in-your-agent-loop-9be40b5fe787?sk=89d27a4f27b2c93ddbb9e4e0f3b696fe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Canonical: &lt;a href="https://medium.com/gitconnected/claude-fable-5-1-every-breaking-change-in-your-agent-loop-9be40b5fe787" rel="noopener noreferrer"&gt;https://medium.com/gitconnected/claude-fable-5-1-every-breaking-change-in-your-agent-loop-9be40b5fe787&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
