<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Constraints on Programmer.ie: Modern AI programming</title>
    <link>http://programmer.ie/tags/constraints/</link>
    <description>Recent content in Constraints on Programmer.ie: Modern AI programming</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 23 Sep 2026 05:00:22 +0100</lastBuildDate>
    <atom:link href="http://programmer.ie/tags/constraints/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Not All Tokens Are Equal</title>
      <link>http://programmer.ie/books/context/07-chapter/</link>
      <pubDate>Wed, 23 Sep 2026 05:00:07 +0100</pubDate>
      <guid>http://programmer.ie/books/context/07-chapter/</guid>
      <description>&lt;p&gt;A coding session under capacity pressure holds six items. A project safety rule: never modify production migrations without explicit approval. A test summary: 917 passed, 3 failed. A compiler log of 18,000 tokens. An architecture decision: PostgreSQL is required for this event-store workload. The contents of a source file. An abandoned hypothesis: maybe the serializer is corrupting timestamps.&lt;/p&gt;&#xA;&lt;p&gt;Pressure arrives, and the harness must yield tokens. The uniform policies on offer are all wrong in different ways. Summarise everything, and the safety rule becomes &amp;ldquo;be careful with migrations,&amp;rdquo; which no longer forbids anything. Delete the oldest material, and the architecture decision vanishes while yesterday&amp;rsquo;s abandoned hypothesis survives on recency. Truncate from the middle, and the file contents go while the log stays. Keep everything, and the request fails at the window. Each policy treats the six items as interchangeable tokens. They are not interchangeable, and the differences between them are exactly what a retention policy needs to know.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Assemble for the Task</title>
      <link>http://programmer.ie/books/context/22-chapter/</link>
      <pubDate>Wed, 23 Sep 2026 05:00:22 +0100</pubDate>
      <guid>http://programmer.ie/books/context/22-chapter/</guid>
      <description>&lt;p&gt;The usable input budget is 4,000 tokens. The non-negotiable pile reads: mandatory instructions 1,100, exact constraints 1,400, required tool schema 900, minimum task evidence 1,200. The total is 4,600 against a 4,000-token ceiling, and no ranking, weighting, or cleverness changes the arithmetic. A relevance packer would silently delete 400 tokens of whichever item scored lowest — perhaps the second half of the exact-constraint block, perhaps the tool schema&amp;rsquo;s required parameters — and emit a plausible, policy-violating bundle whose failure surfaces three turns later as an invalid call or a guessed identifier. The correct output of this computation is not a bundle at all. It is a failure notice naming the 600-token excess — because deleting exact constraints to fit a budget is not optimisation. It is fabrication with good formatting. Everything is eligible; nothing is assembled; and the first question is whether assembly is even possible.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
