<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>policy-as-code on tomrochette.com</title>
    <link>https://tomrochette.com/tags/policy-as-code/</link>
    <description>Recent content in policy-as-code on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Tue, 06 Oct 2026 04:48:21 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/policy-as-code/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Bernstein</title>
      <link>https://tomrochette.com/agents/orchestration/bernstein/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/orchestration/bernstein/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>orchestration</category><category>deterministic-scheduling</category><category>policy-as-code</category><category>worktrees</category><category>audit</category>
      <description>&lt;p&gt;&lt;strong&gt;Bernstein is the deterministic-scheduler answer to LLM-in-the-loop orchestration: policy as code, a planner-free coordination loop, parallel agents in worktrees behind merge gates, and a run record you can verify offline, at Apache-2.0 and v3.21.0.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Bernstein is a Python 3.12+ orchestration and governance layer for AI agents from sipyourdrink-ltd: you write the policy (who may do what, what needs approval, what must be recorded), and a plain-Python scheduler with no model in the coordination loop runs agents in parallel, gates their output, and records every step.&#xA;Coding tasks each get their own git worktree behind merge gates, artifact tasks (reports, datasets, audit evidence packs) get a workspace under &lt;code&gt;.sdd/workspaces/&lt;/code&gt; and complete on signed lineage receipts instead of commits.&#xA;A replay journal records every run, a lineage spine records every lineage-bearing step, and an opt-in HMAC-chained audit log produces receipts a reviewer verifies offline without rerunning anything.&#xA;It ships as a CLI, TUI, and web UI on PyPI (&lt;code&gt;bernstein&lt;/code&gt;), drives 50-plus CLI agent adapters plus a generic &lt;code&gt;--prompt&lt;/code&gt; wrapper, and offers cluster mode and an air-gap install profile with no SaaS hop.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Active and fast-releasing: 1,404 stars, 30 contributors, and a push on 2026-10-06 as of 2026-10-06, created 2026-03-22, with v3.21.0 published 2026-10-05 (GitHub API, PyPI, as of 2026-10-06).&#xA;The README calls the project beta and solo-maintained, and warns that minor versions may change interfaces, so pinning is advised.&#xA;&lt;strong&gt;The community footprint is thin for the ambition: a 1-point Show HN in August 2026 and a 3-point story in May are the whole independent record, and the strongest third-party coverage is a commercial roundup (Augment Code, updated 2026-08-12) whose hands-on test praised the design, calling it the most architecturally interesting tool in its survey and noting its Janitor verification caught a type error before the merge queue.&lt;/strong&gt;&#xA;The governance framing puts it next to control-plane products, but its unit of work is the parallel coding-agent session in a worktree, which is this category&amp;rsquo;s daily work.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The no-LLM coordination loop makes runs reproducible: replay yesterday&amp;rsquo;s plan and get the same task graph, with non-determinism surfacing as a hash mismatch at the exact step.&lt;/li&gt;&#xA;&lt;li&gt;Verification is an artifact, not a vibe: merge gates, lineage receipts, and the opt-in HMAC audit chain are checkable offline after the fact.&lt;/li&gt;&#xA;&lt;li&gt;Broad and local: 50-plus agent adapters, file-based state, no SaaS dependency, and an air-gap profile for restricted environments.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Beta software with a version number that counts releases, not maturity, and a solo maintainer by its own description.&lt;/li&gt;&#xA;&lt;li&gt;Deterministic scheduling buys reproducibility by giving up LLM-driven planning flexibility, the same trade LoopTroop and Crewplane make, and teams that want an LLM to decompose goals will find the planner layer thin.&lt;/li&gt;&#xA;&lt;li&gt;The 1.4k-star count has almost no independent discussion behind it, so the governance claims rest on the project&amp;rsquo;s own documentation and one commercial review.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Free and open source under Apache-2.0, installable from PyPI with &lt;code&gt;uv tool install bernstein&lt;/code&gt; or &lt;code&gt;pipx&lt;/code&gt;; no hosted tier or paid plan exists.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/foremerge/&#34; &gt;Foremerge&lt;/a&gt;: the other deterministic layer above Git, but advisory (it flags intent collisions) where Bernstein enforces policy and gates merges.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/the-perfect-orchestrator/&#34; &gt;The Perfect Orchestrator&lt;/a&gt;: the adversarial-verification counterpart; both distrust worker self-report, but Bernstein encodes the distrust in policy and receipts while TPO encodes it in a second agent&amp;rsquo;s refutation attempt.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/crewplane/&#34; &gt;Crewplane&lt;/a&gt;: the closest determinism-first runner; Crewplane versioning Markdown runs, Bernstein adding policy gates, lineage, and audit to the same instinct.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Recommended for teams that must be able to prove what their agents did, after the fact, from artifacts alone, and accept beta-grade tooling to get it.&#xA;Not for teams that want LLM-driven planning, a GUI-first experience, or a project with community depth behind it.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-06 - Created after the entrant scan surfaced the active v3.21.0 repository with no note in the section.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/foremerge/&#34; &gt;Foremerge&lt;/a&gt; - the advisory deterministic-coordination counterpart&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/the-perfect-orchestrator/&#34; &gt;The Perfect Orchestrator&lt;/a&gt; - the other verification-first design in the category&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/crewplane/&#34; &gt;Crewplane&lt;/a&gt; - the Markdown-run determinism instinct Bernstein extends&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/agent-swarm/&#34; &gt;Agent Swarm&lt;/a&gt; - the intake-to-PR lead/worker platform, LLM-led where Bernstein is policy-led&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/sipyourdrink-ltd/bernstein&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/sipyourdrink-ltd/bernstein&lt;/a&gt; - repository, README positioning, status banner, license, and stars (GitHub API, as of 2026-10-06)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bernstein.run&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=bernstein.run&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://bernstein.run&lt;/a&gt; - the project website and tagline&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.bernstein.run/en/latest/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=docs.bernstein.run&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://docs.bernstein.run/en/latest/&lt;/a&gt; - documentation root (install, glossary, known limitations)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pypi.org/project/bernstein/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=pypi.org&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://pypi.org/project/bernstein/&lt;/a&gt; - PyPI version 3.21.0 and summary&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.augmentcode.com/tools/open-source-agent-orchestrators&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=www.augmentcode.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://www.augmentcode.com/tools/open-source-agent-orchestrators&lt;/a&gt; - the hands-on commercial roundup with the Janitor verification anecdote&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hn.algolia.com/api/v1/search?query=bernstein.run&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=hn.algolia.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://hn.algolia.com/api/v1/search?query=bernstein.run&lt;/a&gt; - the near-empty HN record grounding the thin-footprint claim (one 1-point Show HN, 2026-08-15)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
