<?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: Rich Tillman</title>
    <description>The latest articles on DEV Community by Rich Tillman (@effinrich).</description>
    <link>https://dev.to/effinrich</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%2F594232%2F81fab4a4-f9ea-465d-a55a-f1d8514fe714.jpg</url>
      <title>DEV Community: Rich Tillman</title>
      <link>https://dev.to/effinrich</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/effinrich"/>
    <language>en</language>
    <item>
      <title>b4-1794190372643-p16</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:13:06 +0000</pubDate>
      <link>https://dev.to/effinrich/b4-1794190372643-p16-3go9</link>
      <guid>https://dev.to/effinrich/b4-1794190372643-p16-3go9</guid>
      <description>&lt;p&gt;&lt;code&gt;b200e23&lt;/code&gt;, &lt;em&gt;"feat: a unit test loop the brief did not ask for (#89)"&lt;/em&gt;. The unit&lt;br&gt;
test loop came back on 2026-11-03, twenty-eight days after the harness went&lt;br&gt;
with it, and, in the manifest's own words, &lt;em&gt;"without the specs"&lt;/em&gt;. The deletion&lt;br&gt;
was not correct on the brief's terms; the thing it took came back later, on its&lt;br&gt;
own terms.&lt;/p&gt;




&lt;h2&gt;
  
  
  Appendix: reproducing every figure
&lt;/h2&gt;

&lt;p&gt;Every number quoted above, with the command that produces it. Run against&lt;br&gt;
&lt;code&gt;b200e23&lt;/code&gt; in a clone of &lt;code&gt;effinrich/h2-fe-assessment&lt;/code&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Claim&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Commits&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git rev-list --count b200e23&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>git</category>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>b4-1794190327348-p14</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:12:20 +0000</pubDate>
      <link>https://dev.to/effinrich/b4-1794190327348-p14-2129</link>
      <guid>https://dev.to/effinrich/b4-1794190327348-p14-2129</guid>
      <description>&lt;p&gt;&lt;code&gt;b200e23&lt;/code&gt;, &lt;em&gt;"feat: a unit test loop the brief did not ask for (#89)"&lt;/em&gt;. The unit&lt;br&gt;
test loop came back on 2026-11-03, twenty-eight days after the harness went&lt;br&gt;
with it, and, in the manifest's own words, &lt;em&gt;"without the specs"&lt;/em&gt;. The deletion&lt;br&gt;
was not correct on the brief's terms; the thing it took came back later, on its&lt;br&gt;
own terms.&lt;/p&gt;




&lt;h2&gt;
  
  
  Appendix: reproducing every figure
&lt;/h2&gt;

&lt;p&gt;Every number quoted above, with the command that produces it. Run against&lt;br&gt;
&lt;code&gt;b200e23&lt;/code&gt; in a clone of &lt;code&gt;effinrich/h2-fe-assessment&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;| Claim | Command | Result |&lt;/p&gt;

</description>
    </item>
    <item>
      <title>b4-1794190282066-p10</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:11:35 +0000</pubDate>
      <link>https://dev.to/effinrich/b4-1794190282066-p10-bkd</link>
      <guid>https://dev.to/effinrich/b4-1794190282066-p10-bkd</guid>
      <description>&lt;p&gt;&lt;code&gt;b200e23&lt;/code&gt;, &lt;em&gt;"feat: a unit test loop the brief did not ask for (#89)"&lt;/em&gt;. The unit&lt;br&gt;
test loop came back on 2026-11-03, twenty-eight days after the harness went&lt;br&gt;
with it, and, in the manifest's own words, &lt;em&gt;"without the specs"&lt;/em&gt;. The deletion&lt;br&gt;
was not correct on the brief's terms; the thing it took came back later, on its&lt;br&gt;
own terms.&lt;/p&gt;




&lt;h2&gt;
  
  
  Appendix: reproducing every figure
&lt;/h2&gt;

</description>
    </item>
    <item>
      <title>b4-1794190236672-p19</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:10:50 +0000</pubDate>
      <link>https://dev.to/effinrich/b4-1794190236672-p19-4jf</link>
      <guid>https://dev.to/effinrich/b4-1794190236672-p19-4jf</guid>
      <description>&lt;p&gt;Liquid syntax error: 'raw' tag was never closed&lt;/p&gt;
</description>
      <category>git</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>p2-1794190178385-noCodeTag</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:09:52 +0000</pubDate>
      <link>https://dev.to/effinrich/p2-1794190178385-nocodetag-25ge</link>
      <guid>https://dev.to/effinrich/p2-1794190178385-nocodetag-25ge</guid>
      <description>&lt;p&gt;Liquid syntax error: 'raw' tag was never closed&lt;/p&gt;
</description>
      <category>git</category>
      <category>softwaredevelopment</category>
      <category>testing</category>
    </item>
    <item>
      <title>p2-1794190132128-tableOnly</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:09:06 +0000</pubDate>
      <link>https://dev.to/effinrich/p2-1794190132128-tableonly-56go</link>
      <guid>https://dev.to/effinrich/p2-1794190132128-tableonly-56go</guid>
      <description>&lt;p&gt;| Process-prefix commits | &lt;code&gt;git log --format=%s b200e23 \| grep -cE '^(docs\|chore\|style\|build)'&lt;/code&gt; | 45 |&lt;br&gt;
| &lt;code&gt;Co-authored-by&lt;/code&gt; trailers | &lt;code&gt;git log b200e23 --format=%B \| grep -c '^Co-authored-by:'&lt;/code&gt; | 126 |&lt;br&gt;
| Trailer split | &lt;code&gt;… \| sed 's/Co-authored-by: //' \| sort \| uniq -c \| sort -rn&lt;/code&gt; | Cursor 102, MiniMax Code 14, author 5, Copilot 4 across three accounts, CI bot 1 |&lt;br&gt;
| Tracked files | &lt;code&gt;git ls-tree -r --name-only b200e23 \| grep -vc '^$'&lt;/code&gt; | 165 |&lt;br&gt;
| Decision records | &lt;code&gt;git ls-tree -r --name-only b200e23 -- docs/decisions/ \| grep -cE '\.md$'&lt;/code&gt; | 17 |&lt;br&gt;
| The removal | &lt;code&gt;git show --shortstat --format='' 9eeb60a&lt;/code&gt; | 137 files, +104, −10,097 |&lt;br&gt;
| Per-area split | &lt;code&gt;git show --numstat --format='' 9eeb60a&lt;/code&gt; | libs 107/7,379; apps 10/443; docs 9/1,595; root 9/602; tools 1/73; .github 1/5 |&lt;br&gt;
| Root rulebook, before / after | &lt;code&gt;git show 9eeb60a^:AGENTS.md \| wc -l&lt;/code&gt;; &lt;code&gt;git show 9eeb60a:AGENTS.md \| wc -l&lt;/code&gt; | 166 / 67 |&lt;br&gt;
| Instruction files before | &lt;code&gt;git ls-tree -r --name-only 9eeb60a^ \| grep -cE '(^/\|/)(AGENTS\|CLAUDE)\.md$'&lt;/code&gt; | 14 |&lt;br&gt;
| The phrase, before / after | &lt;code&gt;git grep -ic 'stay inside the brief' 9eeb60a^ -- .&lt;/code&gt; and &lt;code&gt;git grep -ic 'stay inside the brief' 9eeb60a -- AGENTS.md&lt;/code&gt; | no matches (exit 1) / 1 |&lt;br&gt;
| The gate before / after the removal | &lt;code&gt;git show 9eeb60a^:package.json&lt;/code&gt;; &lt;code&gt;git show 9eeb60a:package.json&lt;/code&gt; | &lt;code&gt;nx affected -t lint,format,typecheck,test,build,build-storybook,test-storybook&lt;/code&gt; → &lt;code&gt;nx affected -t lint,format,typecheck,build,build-storybook&lt;/code&gt; |&lt;br&gt;
| The record that contradicts the commit | &lt;code&gt;git show 5915058^:docs/decisions/0007-storybook-scope.md \| sed -n '1,12p'&lt;/code&gt; | &lt;code&gt;- Date: 2026-10-01&lt;/code&gt;; "the brief is graded partly on design" |&lt;br&gt;
| The same record, on the stories | &lt;code&gt;git show 5915058^:docs/decisions/0007-storybook-scope.md \| sed -n '/Interaction assertions/,+2p'&lt;/code&gt; | "Interaction assertions live in play functions" |&lt;br&gt;
| The brief, on design consistency | &lt;code&gt;git show b200e23:docs/brief.md \| sed -n '16p'&lt;/code&gt; | "at: ease of use, design consistency, user experience." |&lt;br&gt;
| The judgement, in the operator's words | &lt;code&gt;git show b200e23:docs/safeguards.md \| sed -n '18,21p'&lt;/code&gt; | "That is a judgement failure, and it is ordinary" |&lt;br&gt;
| The commit before the removal | &lt;code&gt;git show -s --format='%h %ad %s' --date=iso 5915058&lt;/code&gt; | &lt;code&gt;5915058 2026-10-06 00:07:04 -0400&lt;/code&gt;. The direct parent of &lt;code&gt;9eeb60a&lt;/code&gt; |&lt;br&gt;
| The guardrail notes that went first | &lt;code&gt;git show --name-status --format='' 5915058 \| grep -E 'ai-guardrails\|handoff\|gate\.sh\|guard\.sh\|qa-'&lt;/code&gt; | six deletions, among them &lt;code&gt;ai-guardrails.md&lt;/code&gt; and &lt;code&gt;handoff.md&lt;/code&gt; |&lt;br&gt;
| The trunk camera | &lt;code&gt;git log -1 --format='%h %ad %s' --date=short 6f6ec34&lt;/code&gt; | &lt;code&gt;6f6ec34 2026-10-05 refactor(camera): one component per file, stories split by theme&lt;/code&gt; |&lt;br&gt;
| Identical to the branch | &lt;code&gt;git diff --stat 6f6ec34 origin/refactor/camera-components -- libs/web/features/camera/&lt;/code&gt; | empty |&lt;br&gt;
| Trunk / branch camera size | &lt;code&gt;git ls-tree -r --name-only 6f6ec34 -- libs/web/features/camera \| grep -cE '\.tsx?$'&lt;/code&gt;; the same for &lt;code&gt;origin/refactor/camera-structure&lt;/code&gt; | 30 / 36 |&lt;br&gt;
| Correction #47 | &lt;code&gt;git show --shortstat --format='' a27f292&lt;/code&gt; | 29 files, +365, −1,561 |&lt;br&gt;
| Correction #57 | &lt;code&gt;git show --shortstat --format='' c7fe8ae&lt;/code&gt; | 15 files, +98, −370 |&lt;br&gt;
| ADR 0017's claim | &lt;code&gt;git show b200e23:docs/decisions/0017-camera-tool.md&lt;/code&gt; line 38 | "None of it reached &lt;code&gt;main&lt;/code&gt; — it lived in branches and in the working tree." |&lt;br&gt;
| The bespoke primitive still ships | &lt;code&gt;git show b200e23:libs/web/features/camera/src/lib/crop-shape-util.tsx \| grep -n 'class CropShapeUtil'&lt;/code&gt; | &lt;code&gt;38:export class CropShapeUtil extends BaseBoxShapeUtil&amp;lt;CropShape&amp;gt; {&lt;/code&gt; |&lt;br&gt;
| The lint rules that do exist | &lt;code&gt;git show b200e23:.oxlintrc.json&lt;/code&gt; | &lt;code&gt;@nx/enforce-module-boundaries&lt;/code&gt;, &lt;code&gt;max-lines&lt;/code&gt; 150, &lt;code&gt;unicorn/filename-case&lt;/code&gt;, &lt;code&gt;typescript/no-explicit-any&lt;/code&gt;; no primitive rule |&lt;br&gt;
| The F3 skip | &lt;code&gt;git show f471a29:tools/guardrails.mjs&lt;/code&gt; lines 158–160 | &lt;code&gt;} catch {&lt;/code&gt; / &lt;code&gt;continue&lt;/code&gt; / &lt;code&gt;}&lt;/code&gt;: the file was never read |&lt;br&gt;
| The F3 fix | &lt;code&gt;git show 98f6d3f -- tools/guardrails.mjs&lt;/code&gt; | the skip replaced by a failure that names the file |&lt;br&gt;
| The fix's own account | &lt;code&gt;git show --format=%B --no-patch 98f6d3f&lt;/code&gt; | "project file could not be parsed: libs/web/features/probe/package.json" |&lt;br&gt;
| F3's other two checks | &lt;code&gt;git show b200e23:docs/decisions/0015-verification-surface.md&lt;/code&gt; lines 44–49 | attested by ADR 0015; their buggy forms appear in no commit |&lt;br&gt;
| The generalisation | &lt;code&gt;git show b200e23:docs/decisions/0015-verification-surface.md&lt;/code&gt; lines 38–42 | "a gate that fails because a tool is missing has proven nothing…" |&lt;br&gt;
| Who drafted each record | the loop in F4 | 11 single agent, 4 agent and owner, 2 no trailer |&lt;br&gt;
| ADR 0017's drafting commit | &lt;code&gt;git log -1 --format='%h %ad %s' --date=iso -- docs/decisions/0017-camera-tool.md&lt;/code&gt; | &lt;code&gt;39c7710 2026-10-27 00:33:32 -0400&lt;/code&gt; |&lt;br&gt;
| What that commit also did | &lt;code&gt;git show --name-status --format='' 39c7710 \| grep -E '0017-camera-tool\|crop-shape-util\|crop-export'&lt;/code&gt; | the record, and a new crop shape on the trunk |&lt;br&gt;
| The corpus's own note on authorship | &lt;code&gt;git show 858629c:docs/decisions/README.md \| sed -n '12,15p'&lt;/code&gt; | "The prose is usually an agent's" |&lt;br&gt;
| The mechanism's size | &lt;code&gt;git show b200e23:tools/guardrails.mjs \| wc -l&lt;/code&gt; (245) + &lt;code&gt;tools/size-budget.mjs&lt;/code&gt; (54) + &lt;code&gt;tools/guardrails.manifest.json&lt;/code&gt; (154) | 453 |&lt;br&gt;
| Manifest shape | &lt;code&gt;git show b200e23:tools/guardrails.manifest.json&lt;/code&gt; | &lt;code&gt;files&lt;/code&gt; 9, &lt;code&gt;assertions&lt;/code&gt; 6, &lt;code&gt;forbiddenPaths&lt;/code&gt; 14, &lt;code&gt;secretPatterns&lt;/code&gt; 8, &lt;code&gt;removed&lt;/code&gt; 5 |&lt;br&gt;
| Gate targets | the same file | &lt;code&gt;"required": ["test"]&lt;/code&gt;, &lt;code&gt;"forbidden": ["test-storybook"]&lt;/code&gt; |&lt;br&gt;
| &lt;code&gt;gateTargets&lt;/code&gt; introduced | &lt;code&gt;git show 8c75684 -- tools/guardrails.manifest.json&lt;/code&gt; | &lt;code&gt;"forbidden": ["test", "test-storybook"]&lt;/code&gt; |&lt;br&gt;
| Budgets | &lt;code&gt;bun run budget&lt;/code&gt; | &lt;code&gt;81/95 files, 3073/3300&lt;/code&gt;; &lt;code&gt;4/12 files, 227/400&lt;/code&gt; |&lt;br&gt;
| Guardrails run | &lt;code&gt;bun run guardrails&lt;/code&gt; | &lt;code&gt;9 files, 6 invariants, 17 records, 165 tracked files scanned&lt;/code&gt; |&lt;br&gt;
| The gate today | &lt;code&gt;git show b200e23:package.json \| grep '"gate"'&lt;/code&gt; | &lt;code&gt;bun run budget &amp;amp;&amp;amp; bun run guardrails &amp;amp;&amp;amp; nx affected -t lint,format,typecheck,build,build-storybook,test&lt;/code&gt; |&lt;br&gt;
| Commits that carried the mechanism | &lt;code&gt;git log --format=%h b200e23 -- tools/ docs/decisions/ AGENTS.md CLAUDE.md lefthook.yml .cursor/hooks.json .claude/settings.json .github/workflows/guardrails.yml \| sort -u \| wc -l&lt;/code&gt; | 29 |&lt;br&gt;
| The guardrail warning arrived | &lt;code&gt;git log --format='%h %ad %s' --date=short -S'not scaffolding' b200e23 -- AGENTS.md&lt;/code&gt; | &lt;code&gt;affe349 2026-10-26&lt;/code&gt; |&lt;br&gt;
| Branch protection | &lt;code&gt;gh api repos/effinrich/h2-fe-assessment/branches/main/protection --jq …&lt;/code&gt; | &lt;code&gt;{"admins":true,"checks":["Gate","Guardrails"],"deletions":false,"force_push":false,"pull_request_reviews":"absent","strict":true}&lt;/code&gt; |&lt;br&gt;
| The &lt;code&gt;main&lt;/code&gt; ruleset | &lt;code&gt;gh api repos/effinrich/h2-fe-assessment/rulesets/24388801 --jq …&lt;/code&gt; | &lt;code&gt;"bypass_actors":[]&lt;/code&gt;; &lt;code&gt;pull_request&lt;/code&gt; requires 0 approving reviews; checks &lt;code&gt;Gate&lt;/code&gt;, &lt;code&gt;Guardrails&lt;/code&gt; |&lt;br&gt;
| The second ruleset | &lt;code&gt;gh api repos/effinrich/h2-fe-assessment/rulesets/24519354 --jq …&lt;/code&gt; | condition &lt;code&gt;~ALL&lt;/code&gt;; 18 bypass actors (3 repository roles, 15 integrations) |&lt;br&gt;
| &lt;code&gt;RepositoryRole&lt;/code&gt; actor ids | GitHub REST API description issue 7111 and the Terraform provider's ruleset reference; GitHub itself documents the mapping nowhere | id 2 is maintain, id 4 is write, id 5 is admin, on those third-party sources' authority only |&lt;br&gt;
| The pre-failure ruleset | &lt;code&gt;git show b200e23:docs/safeguards.md&lt;/code&gt; lines 95–98 | "it protected the shape of a merge and nothing about its content" |&lt;br&gt;
| The compromised host | &lt;code&gt;git show b200e23:docs/safeguards.md&lt;/code&gt; lines 11–13 | "the machine the agents ran on was compromised by a trojan" |&lt;br&gt;
| The second lock | &lt;code&gt;git show b200e23:.github/CODEOWNERS&lt;/code&gt; | a request for review, not a requirement |&lt;br&gt;
| The value check | &lt;code&gt;git show b200e23:docs/transcripts/README.md&lt;/code&gt; lines 67–72 | run by hand, not part of the gate |&lt;br&gt;
| The pin, and what came after | &lt;code&gt;git log --oneline b200e23..858629c&lt;/code&gt; | 4 later commits, 2026-11-04 and 2026-11-05 |&lt;br&gt;
| The corpus licence | &lt;code&gt;git ls-tree -r --name-only b200e23 \| grep -i -E "licen\|copying"&lt;/code&gt; | no matches |&lt;/p&gt;

</description>
      <category>devops</category>
      <category>git</category>
      <category>tools</category>
    </item>
    <item>
      <title>p2-1794190086791-proseOnly</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:08:20 +0000</pubDate>
      <link>https://dev.to/effinrich/p2-1794190086791-proseonly-5356</link>
      <guid>https://dev.to/effinrich/p2-1794190086791-proseonly-5356</guid>
      <description>&lt;p&gt;Liquid syntax error: 'raw' tag was never closed&lt;/p&gt;
</description>
      <category>git</category>
      <category>softwaredevelopment</category>
      <category>testing</category>
    </item>
    <item>
      <title>p2-1794190041409-baseline</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:07:35 +0000</pubDate>
      <link>https://dev.to/effinrich/p2-1794190041409-baseline-2mc9</link>
      <guid>https://dev.to/effinrich/p2-1794190041409-baseline-2mc9</guid>
      <description>&lt;p&gt;Liquid syntax error: 'raw' tag was never closed&lt;/p&gt;
</description>
      <category>git</category>
      <category>softwareengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>bisect2-1794189865101-14</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:04:38 +0000</pubDate>
      <link>https://dev.to/effinrich/bisect2-1794189865101-14-25c5</link>
      <guid>https://dev.to/effinrich/bisect2-1794189865101-14-25c5</guid>
      <description>&lt;p&gt;Liquid syntax error: 'raw' tag was never closed&lt;/p&gt;
</description>
      <category>git</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>bisect2-1794189852806-13</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:04:26 +0000</pubDate>
      <link>https://dev.to/effinrich/bisect2-1794189852806-13-lbf</link>
      <guid>https://dev.to/effinrich/bisect2-1794189852806-13-lbf</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git log &lt;span class="nt"&gt;--oneline&lt;/span&gt; b200e23..858629c
858629c docs: say when a record was drafted, not that it was drafted during the work &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="c"&gt;#93)&lt;/span&gt;
a3e4403 docs: say &lt;span class="nb"&gt;who &lt;/span&gt;wrote each decision record &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="c"&gt;#92)&lt;/span&gt;
eb87bf2 docs: the hiring process is not the repository&lt;span class="s1"&gt;'s business (#91)
3fd900c feat: the desk and the sheet (#90)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>bisect2-1794189795148-12</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:03:28 +0000</pubDate>
      <link>https://dev.to/effinrich/bisect2-1794189795148-12-3jah</link>
      <guid>https://dev.to/effinrich/bisect2-1794189795148-12-3jah</guid>
      <description>&lt;p&gt;Liquid syntax error: 'raw' tag was never closed&lt;/p&gt;
</description>
      <category>documentation</category>
      <category>git</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>bisect2-1794189782819-11</title>
      <dc:creator>Rich Tillman</dc:creator>
      <pubDate>Mon, 09 Nov 2026 02:03:16 +0000</pubDate>
      <link>https://dev.to/effinrich/bisect2-1794189782819-11-3poe</link>
      <guid>https://dev.to/effinrich/bisect2-1794189782819-11-3poe</guid>
      <description>&lt;p&gt;&lt;strong&gt;The preprint:&lt;/strong&gt; &lt;a href="https://github.com/effinrich/prose-does-not-bind-agents" rel="noopener noreferrer"&gt;https://github.com/effinrich/prose-does-not-bind-agents&lt;/a&gt;.&lt;br&gt;
&lt;code&gt;paper.md&lt;/code&gt; is the source of truth; &lt;code&gt;paper.pdf&lt;/code&gt; is the rendered copy. Appendix A&lt;br&gt;
lists the commands behind the paper's counts, and the commands quoted here are&lt;br&gt;
drawn from it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Licence:&lt;/strong&gt; the preprint is CC BY 4.0 (Copyright (c) 2026 Rich Tillman). The&lt;br&gt;
corpus carries no licence file, so this post quotes it in short extracts,&lt;br&gt;
always with the commit, the path and the line numbers.&lt;/p&gt;

&lt;p&gt;One note on the pin. &lt;code&gt;b200e23&lt;/code&gt; is the last commit of the study period, not the&lt;br&gt;
last commit of the repository: four commits landed after it, on 2026-11-04 and&lt;br&gt;
2026-11-05. Every figure in this post is quoted at the pin or at a commit named&lt;br&gt;
in the command that reads it, so later commits do not change any of them.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>github</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
