<?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: Rizèl Scarlett</title>
    <description>The latest articles on DEV Community by Rizèl Scarlett (@blackgirlbytes).</description>
    <link>https://dev.to/blackgirlbytes</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%2F302741%2F5ed2ea8e-056a-4065-9bed-57d24a96b607.png</url>
      <title>DEV Community: Rizèl Scarlett</title>
      <link>https://dev.to/blackgirlbytes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/blackgirlbytes"/>
    <language>en</language>
    <item>
      <title>How I Put My Agent in CI to Automate Release Notes</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Fri, 31 Jul 2026 19:00:39 +0000</pubDate>
      <link>https://dev.to/blackgirlbytes/how-i-put-my-agent-in-ci-to-automate-release-notes-2c2h</link>
      <guid>https://dev.to/blackgirlbytes/how-i-put-my-agent-in-ci-to-automate-release-notes-2c2h</guid>
      <description>&lt;p&gt;When I joined Entire, I noticed my boss spending a chunk of time every week writing detailed release notes, called Dispatches at Entire. It looked like a painful process. Each Dispatch had to cover changes across several repositories, explain why those changes mattered, credit external contributors, and carefully avoid leaking anything that was not public yet.&lt;/p&gt;

&lt;p&gt;I offered to take it over. I had solved a similar problem before, so I figured it would be an easy win.&lt;/p&gt;

&lt;h2&gt;
  
  
  The release notes generator I built at Block
&lt;/h2&gt;

&lt;p&gt;While I was at Block, I built a &lt;a href="https://github.com/aaif-goose/goose/blob/main/.github/workflows/goose-release-notes.yml" rel="noopener noreferrer"&gt;release notes generator for goose&lt;/a&gt;. It ran in GitHub Actions after a release workflow completed, checked out the new tag, compared it against the previous one, and handed goose a recipe to inspect the commit diff.&lt;/p&gt;

&lt;p&gt;Goose organized those commits into features, bug fixes, improvements, and documentation. Each entry got a short description and a PR link. The workflow then updated the GitHub release and posted the announcement to Discord, opening a thread if the notes exceeded the message limit.&lt;/p&gt;

&lt;p&gt;It was clean and effective, but it solved a very clean problem: one repository, one new release tag, public commit history, and concise output. So when I looked at Entire’s Dispatches, I assumed I could reuse the same playbook. Gather changes, run goose, post the draft. That assumption did not survive contact with reality.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Dispatch is not a list of commits
&lt;/h2&gt;

&lt;p&gt;A Dispatch spans multiple projects: the Entire CLI, entire.io, EntireDB, external agent integrations, and open source libraries like go-git, go-nuts, git-sync, and ForgeMark. Every project also ships on a different cadence. Some push to &lt;code&gt;main&lt;/code&gt; and deploy continuously. Others bundle work into scheduled releases. The CLI maintains separate stable and nightly channels, which means a feature can be available to testers without being part of the latest stable tag.&lt;/p&gt;

&lt;p&gt;Then there are feature flags. Finding changes was not the hard part because GitHub APIs handle that easily. The hard part was figuring out which changes were safe to announce. A private repository might contain code for a feature that has already launched publicly, while a merged public PR might still be hidden behind a flag. Repository visibility tells you very little about feature visibility.&lt;/p&gt;

&lt;p&gt;The pipeline could not just answer “What changed?” It also needed to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has this actually shipped?&lt;/li&gt;
&lt;li&gt;Is it live for everyone or gated behind a flag?&lt;/li&gt;
&lt;li&gt;Is it stable or nightly?&lt;/li&gt;
&lt;li&gt;Does it matter to a reader?&lt;/li&gt;
&lt;li&gt;Did a community contributor help build it?&lt;/li&gt;
&lt;li&gt;Is there anything sensitive here that should not be shared?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A script could pull the raw data, but those decisions required more context.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first workflow and all its bad assumptions
&lt;/h2&gt;

&lt;p&gt;My first GitHub Actions workflow for Entire was called &lt;code&gt;Release Notes to Slack&lt;/code&gt;. It mirrored my setup at Block: monitor repositories for new releases, pull the diffs, and run goose inside the runner with a recipe that inspected tags and formatted notes for Slack. It made one major assumption: a release tag was the main unit of work. That worked for tagged repositories and failed for a weekly Dispatch trying to cover projects with different deployment processes.&lt;/p&gt;

&lt;p&gt;The commit history from the first day reads like a real-time record of my assumptions falling apart. First, I tried running the workflow across every repository and aggregating the Slack output. Then I stopped relying only on release tags and used the previous Dispatch publication date as the start of the reporting window so the same work would not appear twice. Next, I added another goose recipe to turn those raw notes into a full Dispatch draft written in Marvin’s voice.&lt;/p&gt;

&lt;p&gt;Then came the deployment edge cases. Merged code does not always mean public code. I updated the filtering so drafts only included work that was public, while keeping nightly changes clearly labeled. For entire.io, which uses continuous delivery and feature flags, I added PostHog checks so the workflow could see whether a flag was active before treating a merged PR as public.&lt;/p&gt;

&lt;p&gt;Contributor attribution came next, followed by several experiments with the output: Slack messages, thread replies, Markdown tables, generated PDFs, and eventually a return to plain Markdown. The history was just me learning that “writing release notes” was several smaller problems stacked together.&lt;/p&gt;

&lt;p&gt;The workflow eventually needed different goose recipes for different types of repositories. Entire.io needed rules for continuous delivery and feature flags. Tagged projects needed rules for stable releases, nightlies, and unreleased merges. Go-git needed specific community attribution rules because it is an external open source project. It worked, but the workflow became difficult to maintain. Data collection, release checks, contributor matching, writing style, and output formatting were all tangled together.&lt;/p&gt;

&lt;p&gt;The problem was not running goose in CI. Goose had been running there from the beginning. The problem was deciding what context goose should receive and where each rule belonged.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building V2 around structured collection
&lt;/h2&gt;

&lt;p&gt;The second iteration, &lt;code&gt;Release Summary to Slack V2&lt;/code&gt;, separated data collection from writing. Instead of asking goose to wander through repository directories and figure out what happened, the workflow gathers the facts first.&lt;/p&gt;

&lt;p&gt;It starts by finding the date of the last published Dispatch and using that as the beginning of the reporting window. A matrix job then runs across every repository to collect releases, merged PRs, titles, descriptions, labels, authors, links, feature flag definitions, current PostHog status, commit authors, and organization membership data.&lt;/p&gt;

&lt;p&gt;The first version of V2 also ran an &lt;code&gt;entire dispatch&lt;/code&gt; command for every repository. I later removed that step and kept the factual collection inside the workflow. This made the inputs easier to inspect because goose received the underlying release and PR data instead of a mixture of raw facts and an earlier generated summary.&lt;/p&gt;

&lt;p&gt;Before goose runs, the workflow turns those inputs into two files. The first is the &lt;strong&gt;Source Brief&lt;/strong&gt;, which contains the releases, PRs, links, labels, feature flags, and repository metadata goose is allowed to use as facts. The second is the &lt;strong&gt;Style Reference&lt;/strong&gt;, which contains excerpts from the three most recent Dispatches as examples of tone, structure, and length.&lt;/p&gt;

&lt;p&gt;The recipe makes the boundary explicit. Previous Dispatches are for style only, so goose cannot pull an old change into the new draft simply because it appeared in an example. The recipe also defines a JSON response schema. Goose must return a payload containing the Markdown draft, and the workflow validates it before extracting the text. If goose returns a conversational preamble, malformed JSON, or an empty response, the build fails instead of posting a broken draft to Slack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the workflow uses both a recipe and a skill
&lt;/h2&gt;

&lt;p&gt;The system now relies on two pieces: a goose recipe and a &lt;a href="https://github.com/blackgirlbytes/cli/blob/codex/dispatch-writer-skill/.agents/skills/entire-dispatch-writer/SKILL.md" rel="noopener noreferrer"&gt;Dispatch skill&lt;/a&gt;. The recipe controls the run. It tells goose which files to read, which sources it can trust, which tools are available, and what format to return.&lt;/p&gt;

&lt;p&gt;The skill contains the reusable editorial rules, including which projects belong in each section, how to filter private or flagged work, how to separate nightly features from stable releases, how to explain the value of a change instead of repeating a commit message, and how to capture Marvin’s tone without recycling the same introduction every week.&lt;/p&gt;

&lt;p&gt;The way I made that skill is a little recursive. I also created Entire’s &lt;a href="https://github.com/entireio/skills/blob/main/skills/session-to-skill/SKILL.md" rel="noopener noreferrer"&gt;&lt;code&gt;session-to-skill&lt;/code&gt; skill&lt;/a&gt;, which came from &lt;a href="https://github.com/entireio/skills/pull/10" rel="noopener noreferrer"&gt;a pull request I opened in the Entire skills repository&lt;/a&gt;. It searches Entire-tracked sessions and checkpoints for a repeated workflow, then turns the useful parts into instructions another agent can follow. It is not meant to copy a transcript into a Markdown file. It pulls out the decisions, corrections, commands, checks, and preferences that are worth repeating.&lt;/p&gt;

&lt;p&gt;I used &lt;code&gt;session-to-skill&lt;/code&gt; on the sessions where I wrote and revised previous Dispatches. Those sessions captured the parts that a finished blog post does not show: asking for every bullet to explain the benefit, rejecting intros that sounded corny, correcting project coverage, checking contributor credits, and removing work that was not public. That editing history became the source material for the Dispatch skill, so the workflow now benefits from decisions I had already made while doing the work manually.&lt;/p&gt;

&lt;p&gt;The division now looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions&lt;/strong&gt; gathers and organizes the facts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The goose recipe&lt;/strong&gt; controls the drafting run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Dispatch skill&lt;/strong&gt; contains the editorial and writing rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Privacy still needs a person
&lt;/h2&gt;

&lt;p&gt;The workflow can collect evidence, but it should not make the final privacy decision on its own. For entire.io, it checks feature flag states in PostHog. If a flag is disabled, internal-only, or in the middle of a rollout, the recipe tells goose to leave that work out. For other projects, if the workflow cannot confirm that something is public, the safest choice is to omit it and review it manually.&lt;/p&gt;

&lt;p&gt;This is why I do not automatically publish the result. An awkward sentence is easy to fix. Accidentally announcing an unreleased feature or crediting the wrong contributor damages trust. The generated Markdown goes to Slack for review first.&lt;/p&gt;

&lt;p&gt;The current workflow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GitHub Actions finds the last published Dispatch date.&lt;/li&gt;
&lt;li&gt;A matrix job collects activity, feature flags, and contributor metadata across the repositories.&lt;/li&gt;
&lt;li&gt;The workflow compiles a single Source Brief.&lt;/li&gt;
&lt;li&gt;It adds the latest Dispatches as Style References and loads the Dispatch skill.&lt;/li&gt;
&lt;li&gt;Goose runs with the recipe and generates the Markdown draft.&lt;/li&gt;
&lt;li&gt;The workflow validates the JSON response and uploads the draft to Slack.&lt;/li&gt;
&lt;li&gt;I review, edit, and publish.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The workflow handles the part that used to take the longest: cross-referencing activity across projects and tracking down context. I can spend that time choosing the headline, refining the narrative, checking anything that might still be private, and cleaning up sentences that sound too much like pull request titles.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually got automated
&lt;/h2&gt;

&lt;p&gt;When I built the goose workflow at Block, I thought release note generation was mostly a matter of diffing tags. That works when the boundaries are clear: one repository, public commits, and short output. The Entire Dispatch forced me to handle messier boundaries, including several repositories, different release schedules, feature flags, private work, and a distinct voice.&lt;/p&gt;

&lt;p&gt;I did not automate editorial judgment. I automated the research, data collection, recurring checks, and first draft. Before this workflow, writing a Dispatch meant spending hours opening tabs, reading PRs, and reconstructing the week from scratch. Now goose brings the source material together, applies the editorial rules, and gives me a draft to polish.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ci</category>
      <category>devops</category>
      <category>goose</category>
    </item>
    <item>
      <title>Stateless MCP for Beginners</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Fri, 31 Jul 2026 18:34:13 +0000</pubDate>
      <link>https://dev.to/blackgirlbytes/stateless-mcp-for-beginners-23dg</link>
      <guid>https://dev.to/blackgirlbytes/stateless-mcp-for-beginners-23dg</guid>
      <description>&lt;p&gt;I've been seeing news everywhere that MCP just went stateless, but I had no clue what it means. So I decided to dig into it and write a blog post about it. &lt;/p&gt;

&lt;h1&gt;
  
  
  Stateless MCP for Beginners
&lt;/h1&gt;

&lt;p&gt;The Model Context Protocol (MCP) connects AI assistants to tools, databases, and external applications. In the &lt;code&gt;2026-07-28&lt;/code&gt; specification revision, MCP removed protocol-level sessions and became stateless.&lt;/p&gt;

&lt;p&gt;That change makes remote MCP servers easier to operate. They can scale behind ordinary load balancers without sticky routing or a shared MCP session store. Clients can safely cache tool definitions, and agents get more control over which application resources they share.&lt;/p&gt;

&lt;p&gt;But stateless does not mean MCP servers can no longer remember anything. A browser can still have open tabs, a database transaction can still have uncommitted changes, and a shopping cart can still hold items. The difference is how the client refers to that state.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MCP Sessions Became a Problem
&lt;/h2&gt;

&lt;p&gt;State is information a system remembers between requests. Imagine an MCP server that controls a web browser. An agent might call &lt;code&gt;open_browser&lt;/code&gt;, followed by &lt;code&gt;navigate&lt;/code&gt;, &lt;code&gt;click&lt;/code&gt;, and &lt;code&gt;take_screenshot&lt;/code&gt;. The server needs to know that all four actions refer to the same browser.&lt;/p&gt;

&lt;p&gt;In earlier MCP versions, the connection could provide that context. The client began with an &lt;code&gt;initialize&lt;/code&gt; request. Under Streamable HTTP, the server could respond with an &lt;code&gt;Mcp-Session-Id&lt;/code&gt;, which the client attached to later requests. The server could then use that ID to recover information associated with the session.&lt;/p&gt;

&lt;p&gt;This worked naturally when one client talked to one server process. It became more complicated when an MCP service ran across several machines behind a load balancer. If Server A created a session and the next request reached Server B, Server B needed some way to recover that session. Infrastructure teams typically solved this with sticky routing, which kept the client tied to Server A, or a shared database that every server could use for session lookup.&lt;/p&gt;

&lt;p&gt;Sessions also meant different things in different clients. A session could last for one tool call, one conversation, one page load, or the lifetime of an application. Server authors could store a browser or shopping cart inside a session, but they could not reliably predict how long that state would survive or which conversations might share it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed in Stateless MCP
&lt;/h2&gt;

&lt;p&gt;Under the &lt;code&gt;2026-07-28&lt;/code&gt; revision, the &lt;code&gt;initialize&lt;/code&gt; and &lt;code&gt;notifications/initialized&lt;/code&gt; handshake is gone. Servers no longer issue MCP session IDs, and clients no longer store or resend them.&lt;/p&gt;

&lt;p&gt;Instead, every request carries the protocol information needed to understand it, including the protocol version and client capabilities. A client can also call &lt;code&gt;server/discover&lt;/code&gt; to learn which versions and features a server supports without opening a session.&lt;/p&gt;

&lt;p&gt;This means any compatible server instance can understand an incoming MCP request without recovering information from an earlier handshake. If a tool manages application state, such as a running browser, the service still needs a way to locate that resource. Stateless MCP removes protocol session state, not application state.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making Application State Explicit
&lt;/h2&gt;

&lt;p&gt;When a tool needs state across calls, the server can return an explicit identifier, often called a handle. A handle is not a special MCP data type. It is an ordinary value returned by one tool and passed to another.&lt;/p&gt;

&lt;p&gt;For example, a browser server might work like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Open a browser and receive its handle&lt;/span&gt;
&lt;span class="nf"&gt;open_browser&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;// Returns: { "browser_id": "browser_abc123" }&lt;/span&gt;

&lt;span class="c1"&gt;// Pass the handle into later calls&lt;/span&gt;
&lt;span class="nf"&gt;navigate&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;browser_id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;browser_abc123&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;url&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The browser still lives on the server and keeps its tabs, cookies, and history. The relationship between calls is now visible in the tool arguments instead of hiding inside the connection.&lt;/p&gt;

&lt;p&gt;Explicit handles also give orchestrators more control over shared state. If three agents are shopping together, they can share one &lt;code&gt;cart_id&lt;/code&gt; while each receives a separate &lt;code&gt;browser_id&lt;/code&gt;. A single MCP session could not express those two state boundaries cleanly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling Multi-Step Work
&lt;/h2&gt;

&lt;p&gt;Some tools need more information before they can finish. A deployment tool might ask for confirmation before publishing to production. Under the Multi Round-Trip Requests (MRTR) pattern, the tool returns an &lt;code&gt;input_required&lt;/code&gt; result describing what it needs. The result may include an opaque &lt;code&gt;requestState&lt;/code&gt; value, which the client returns with the requested answers when it retries the original call. The information needed to continue travels with the retried request instead of remaining tied to an open connection.&lt;/p&gt;

&lt;p&gt;For longer-running or durable work, servers can use task handles through the Tasks extension. The client can check or update the task later without keeping a network connection open.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making Tool Lists Easier to Cache
&lt;/h2&gt;

&lt;p&gt;In previous MCP versions, the tools returned by &lt;code&gt;tools/list&lt;/code&gt; could vary by session. A server might expose a &lt;code&gt;connect_database&lt;/code&gt; tool first, then add &lt;code&gt;query_database&lt;/code&gt; after the connection was established. Because the list could depend on session history, clients could not safely reuse it elsewhere.&lt;/p&gt;

&lt;p&gt;Tool lists can still change when a server is updated or a user's permissions change, but they no longer vary by MCP connection. Servers return &lt;code&gt;ttlMs&lt;/code&gt; and &lt;code&gt;cacheScope&lt;/code&gt; values that tell clients how long a result should remain fresh and whether it can be shared. This allows an orchestrator to reuse tool definitions across subagents, reducing redundant requests and improving prompt-cache reuse.&lt;/p&gt;

&lt;h2&gt;
  
  
  What MCP Server Authors Need to Change
&lt;/h2&gt;

&lt;p&gt;If you build or maintain an MCP server:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Update your SDK and version configuration:&lt;/strong&gt; Use an SDK that supports &lt;code&gt;2026-07-28&lt;/code&gt; and enable the new revision if your framework requires an explicit opt-in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replace session state with explicit handles:&lt;/strong&gt; Return identifiers such as &lt;code&gt;browser_id&lt;/code&gt; or &lt;code&gt;connection_id&lt;/code&gt; and require them in later calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan for cleanup:&lt;/strong&gt; Give temporary resources expiration policies or explicit cleanup tools instead of relying on a connection closing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authorize every handle:&lt;/strong&gt; Treat an ID as the name of a resource, not proof that the caller can access it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make side effects safe to retry:&lt;/strong&gt; Use idempotency keys where appropriate for operations such as charging a card or triggering a deployment. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Takeaway
&lt;/h2&gt;

&lt;p&gt;MCP began with a connection-oriented model that worked naturally for local processes running on a single machine. As the ecosystem expanded into cloud services, hosted gateways, and multi-agent systems, connection-level state became a scaling bottleneck.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;2026-07-28&lt;/code&gt; specification separates these concerns. Protocol details travel with the request, application state uses explicit handles, interactive workflows pass continuation state, and tool definitions are cached cleanly. MCP servers still remember everything they need to remember. They just name that state directly inside the request.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>agents</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why Is Everyone Trying to Rebuild Git Hosting?</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Wed, 15 Jul 2026 19:21:36 +0000</pubDate>
      <link>https://dev.to/entire/why-is-everyone-trying-to-rebuild-github-356o</link>
      <guid>https://dev.to/entire/why-is-everyone-trying-to-rebuild-github-356o</guid>
      <description>&lt;p&gt;These past few weeks at &lt;a href="https://entire.io" rel="noopener noreferrer"&gt;Entire&lt;/a&gt; have been so exciting. We just launched our git hosting platform, and the reaction from the community has been incredible. People are genuinely embracing our product and our vision.&lt;/p&gt;

&lt;p&gt;But I’ve also seen some completely fair curiosity. Some people are wondering: why are we trying to build a git hosting platform? GitHub has done an amazing job for almost two decades. It also has established and well-loved alternatives like GitLab and Bitbucket. There's also a new wave of git hosting competitors popping up that are tackling the solution from different angles. For example: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tangled.org/" rel="noopener noreferrer"&gt;Tangled&lt;/a&gt; is focused on federated, social hosting using the AT Protocol. &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cursor.com/origin" rel="noopener noreferrer"&gt;Cursor Origin&lt;/a&gt; is building an AI-native forge to handle heavy agent traffic. &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gitlawb.com/" rel="noopener noreferrer"&gt;Gitlawb&lt;/a&gt; is leaning into decentralized agent identity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, which architecture actually makes sense for the future?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy1nuflkeggswnfav94wm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy1nuflkeggswnfav94wm.png" alt=" " width="799" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My answer is ripe with bias, but I truly believe Entire is the git hosting platform that will matter in the end. &lt;/p&gt;

&lt;p&gt;That's because we aren't trying to rebuild GitHub 1:1 or just make a clone of it. Simply copying existing features onto a new host doesn't solve the friction of how humans and AI agents need to work together. We are building something fundamentally different.&lt;/p&gt;

&lt;p&gt;To understand why there is a sudden race to rebuild git hosting, and why Entire’s approach is the one that will actually last, we have to look at how git hosting works under the hood.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Beauty of GitHub
&lt;/h2&gt;

&lt;p&gt;First, let's give GitHub credit where it’s due. I love GitHub. It is the platform where I first dived into coding, made my first open source contribution, and landed my first Developer Advocacy job. My Developer Relations career started at GitHub five years ago, and it changed my life forever. I found the career path I truly fit into.&lt;/p&gt;

&lt;p&gt;Beyond that, GitHub made software development easier for the whole industry. Before it existed, people struggled to collaborate on code. Some developers used email, while others used systems that constantly overwrote lines of code and caused unresolvable merge conflicts.&lt;/p&gt;

&lt;p&gt;GitHub put a beautiful interface layer on top of git (a command line tool that is not always the easiest to navigate) and made collaboration feel natural. The solution was so good that people often use "git" and "GitHub" interchangeably, even though they are different things. The pull request was a brilliant invention that allowed us to learn from each other, review code, and build together.&lt;/p&gt;

&lt;p&gt;But platforms like GitHub were designed for human traffic.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;I don’t know if you noticed, but lately, major git hosting platforms have been having outages and performance issues. It’s becoming an expected part of the developer experience. It is widely acknowledged across the industry that AI and automated traffic is a major factor behind these reliability issues.&lt;/p&gt;

&lt;p&gt;Before I joined this company, I noticed that many platforms and apps were down or buggy, so I blamed it on companies leaning too heavily into vibe coding, creating bugs that caused systems to crash. But for the case of git hosting problems, the culprit is agent traffic.&lt;/p&gt;

&lt;p&gt;Traditional git hosting has a system that works well for the human pace of development, where humans search for code, clone repos, create branches, push commits, and open pull requests fairly slowly.&lt;/p&gt;

&lt;p&gt;For example, it might take me days after cloning a repo, getting familiar with it, and trying to solve a problem before I am ready to open a pull request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traditional Code Hosting is Centralized
&lt;/h2&gt;

&lt;p&gt;Traditional platforms store data in central servers by default, meaning the majority of global developer traffic goes directly to a primary cluster of data centers.&lt;/p&gt;

&lt;p&gt;This central hosting infrastructure includes repo storage, networking, APIs, authentication services, databases, search, and Git servers that respond to commands like git clone, git fetch, and git push. Inside this infrastructure is a replication system that stores multiple replicas, or working copies, of a repository on different file servers. This helps make sure the repo remains available if one server or copy becomes inaccessible.&lt;/p&gt;

&lt;p&gt;Traditional platforms also use Points of Presence, or PoPs, around the world. A PoP is mainly an entrance into the hosting network. It helps route the request, but the full repository operation is completed by the central hosting systems, not by the PoP itself.&lt;/p&gt;

&lt;p&gt;This works pretty fine for the pace of human development.&lt;/p&gt;

&lt;p&gt;But it doesn't work well for the pace of agent development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Traffic on Traditional Git Hosting Platforms
&lt;/h2&gt;

&lt;p&gt;Picture this: I am in France and I have an agent. I could have it search for a repo, clone it, fetch its contents, read hundreds of files, make changes, push commits, and open a pull request within five minutes. I could even have multiple agents doing this at the same time, either across many repos or while solving several issues in one repo.&lt;/p&gt;

&lt;p&gt;My agent in France sends its request to the closest PoP. The PoP routes the traffic to the provider's central network. When it gets there, that central network is chugging along processing API requests, searches, and git commands on many servers in parallel.&lt;/p&gt;

&lt;p&gt;The PoP says: "Hey, Rizel’s agent wants to put up this PR."&lt;/p&gt;

&lt;p&gt;The central cluster says: "You’re going to have to wait. I am processing as best as I can requests from thousands of agents across the globe. You will have to wait in line. Here’s a rate limit."&lt;/p&gt;

&lt;p&gt;And if things get really bad, the infrastructure might say: "This is way too much. I’m shutting down for a little. I’m timing out. I’m overwhelmed."&lt;/p&gt;




&lt;h2&gt;
  
  
  Entire’s Approach: Distributed Git Hosting
&lt;/h2&gt;

&lt;p&gt;At Entire we thought of a solution: &lt;em&gt;what if we stored and served repositories from full Git hosting systems running in different regions around the world?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr3pxy6o93hldqnw2zn34.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr3pxy6o93hldqnw2zn34.gif" alt=" " width="500" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of using a European location only to route traffic back to a centralized network, Entire can run the storage and Git services needed to serve a repository directly from Europe. That way, if you are in France, you can choose Europe as your region and let your agents perform more of their work there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Starting With Mirrored Repositories
&lt;/h3&gt;

&lt;p&gt;To help people transition, we are starting with mirrored repos. We know that moving all your repos, teams, permissions, and workflows to a new platform is inconvenient. I currently have approximately 287 repos myself. (Don’t judge me. I make a lot of demo apps. It’s my job.)&lt;/p&gt;

&lt;p&gt;We’re encouraging users to mirror the repos they already have on GitHub to Entire. Mirroring means Entire creates a synchronized copy of your GitHub repo in a region you choose. That copy includes the code, branches, commits, and Git history needed to serve many Git requests.&lt;/p&gt;

&lt;p&gt;If my repo is mirrored into Entire’s European region, my agent in France can clone, fetch, search, and read from that European copy instead of making GitHub process every read. This reduces the amount of repetitive agent traffic hitting GitHub.&lt;/p&gt;

&lt;p&gt;This transition does have a limitation. GitHub is still the official home of that repository. If my agent pushes to a GitHub backed branch, that write operation still has to go back to GitHub. GitHub still has to accept the push, update the repo, and store the change.&lt;/p&gt;

&lt;p&gt;But, we do offer region local branches for mirrored repositories. These branches can stay within Entire instead of being pushed back to GitHub.&lt;/p&gt;

&lt;p&gt;So with mirrors, reads can happen through Entire, writes to GitHub backed branches still depend on GitHub, but users can create branches that remain within an Entire region and don’t depend on GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Next Step: Native Entire Repositories
&lt;/h3&gt;

&lt;p&gt;Soon, we will roll out native repositories created on Entire with zero dependency on GitHub. &lt;/p&gt;

&lt;p&gt;Those repositories will live on Entire’s regional network, allowing agents to read from infrastructure closer to where they are running while writes are handled by the repository’s chosen region. That means agent traffic no longer has to pass through GitHub’s infrastructure. Entire can spread that traffic across its own regions and design the workflow around the speed and volume of coding agents.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Biggest Step: Decentralization (Not the one you’re thinking of)
&lt;/h3&gt;

&lt;p&gt;Decentralization is a heavy word that carries a lot of baggage from blockchain, crypto, and web3, but decentralization just means: Entire would not have to operate every server that stores and serves repositories.&lt;/p&gt;

&lt;p&gt;And Git was designed to be decentralized. Out of convenience, our industry didn’t follow through on that promise, but we have an idea for it. &lt;/p&gt;

&lt;p&gt;We envision giving users the option to self host their own nodes. In this case, a node is a server, or group of servers, running the storage and Git services needed to host repos and respond to reads and writes. For example, I could run a node inside my company’s own European cloud account or data center.&lt;/p&gt;

&lt;p&gt;That node could become the home location for my repo. My agents in Europe would send writes there. An agent in Australia working on the same repo could also send its writes to “Rizel’s European home node”. Entire would not have to operate the home infrastructure.&lt;/p&gt;

&lt;p&gt;This option to self-host is an option; not a mandate. I see this option as ideal for users and organizations that care deeply about data privacy, ownership, security, and control over where their code lives.&lt;/p&gt;

&lt;p&gt;As a result, it would also reduce the amount of traffic hitting Entire’s own infrastructure because companies could use their own servers to support their own agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond Code Hosting
&lt;/h2&gt;

&lt;p&gt;Entire’s vision goes beyond hosting code. We’re building an ecosystem to help humans and agents actually build together. Months ago, we already released Sessions and Checkpoints, features that track agent sessions. As you make a commit, Entire captures the transcript, tool calls, files changed, and more so you can understand the reasoning behind the code. This is because we don’t often know or remember why an agent made such a huge code change and the diff doesn’t reveal much beyond the lines of code changed.&lt;/p&gt;

&lt;p&gt;Many people have asked me: "Why would I want to record my agent’s session history? I’m not going to go back and read it."&lt;/p&gt;

&lt;p&gt;However, I’ve found this method helpful because I’m not necessarily reading through the transcript line by line, but I tell my agent to use the agent history to give me answers to questions I have like: why was this decision made. I don’t have to guess why a change happened because I just ask Entire.&lt;/p&gt;

&lt;p&gt;But this collection of agent session history is only the foundation for our vision of a semantic reasoning layer directly tied to version control history, giving every agent persistent, shared, and pluggable memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Future of the SDLC
&lt;/h2&gt;

&lt;p&gt;We are participating in a fundamental shift in how software is written. The tools that got us through the last fifteen years of human-only development simply cannot support the next fifteen years of agent-human collaboration.&lt;/p&gt;

&lt;p&gt;When you hear me say we are rebuilding "GitHub for the era of agents," it is a shorthand to help you visualize the scale of our vision. We are not literally cloning GitHub. Simply copying pull requests, issues, and wikis onto a new host does not solve the friction of human-agent collaboration.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Instead, Entire is introducing  new primitives: building the native infrastructure for an agent-first software development lifecycle.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The agentic era is here. It is time our developer tools caught up.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>git</category>
      <category>agents</category>
      <category>entire</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Wed, 08 Jul 2026 14:59:19 +0000</pubDate>
      <link>https://dev.to/blackgirlbytes/-4l58</link>
      <guid>https://dev.to/blackgirlbytes/-4l58</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h" class="crayons-story__hidden-navigation-link"&gt;A New Developer Platform for Agent-Human Collaboration&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Open-core Git network for 3x larger PRs&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/entire"&gt;
            &lt;img alt="Entire logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12908%2Fea81b77c-b660-40e7-8b82-ded9c18d44de.png" class="crayons-logo__image" width="200" height="200"&gt;
          &lt;/a&gt;

          &lt;a href="/blackgirlbytes" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F302741%2F5ed2ea8e-056a-4065-9bed-57d24a96b607.png" alt="blackgirlbytes profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/blackgirlbytes" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Rizèl Scarlett
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Rizèl Scarlett
                
              
              &lt;div id="story-author-preview-content-4096108" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/blackgirlbytes" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F302741%2F5ed2ea8e-056a-4065-9bed-57d24a96b607.png" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Rizèl Scarlett&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/entire" class="crayons-story__secondary fw-medium"&gt;Entire&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 8&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h" id="article-link-4096108"&gt;
          A New Developer Platform for Agent-Human Collaboration
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/git"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;git&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/entire"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;entire&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;63&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              5&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>A New Developer Platform for Agent-Human Collaboration</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Wed, 08 Jul 2026 14:49:51 +0000</pubDate>
      <link>https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h</link>
      <guid>https://dev.to/entire/a-new-developer-platform-for-agent-human-collaboration-f1h</guid>
      <description>&lt;p&gt;We've entered a new coding paradigm. Agents can now generate full features at a pace that outstrips traditional engineering workflows, but the systems we use to review, understand, and ship software still assume humans wrote every line.&lt;/p&gt;

&lt;p&gt;For decades, the software development lifecycle was paced by human comprehension. Teams had time and mental bandwidth to align on implementation, intent, and quality before code reached production.&lt;/p&gt;

&lt;p&gt;AI-assisted coding changes that balance. Code generation has accelerated, but the diff still does not carry the reasoning, tradeoffs, or intent that shaped it.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://cursor.com/insights" rel="noopener noreferrer"&gt;data from Cursor&lt;/a&gt;, PRs are 3x bigger than they were 18 months ago! Consequently, developers resort to rubber-stamping agent-generated code with little understanding or accountability. As ownership erodes, codebases accumulate hidden risks, and poor-quality software inevitably slips into production.&lt;/p&gt;

&lt;p&gt;And human cognition isn't the only system under strain.&lt;/p&gt;

&lt;p&gt;As coding agents create more branches, commits, clones, pushes, and automated workflows, today's Git infrastructure is hitting limits it was never designed around. Rate limits, latency, and outages are becoming part of the developer experience.&lt;/p&gt;

&lt;p&gt;It's time to rebuild the software development lifecycle for human-to-agent collaboration.&lt;/p&gt;

&lt;p&gt;Today we're launching an entirely new Git network, built for agent scale. The Entire Developer Platform is now in public preview: an open-core, agent-agnostic, distributed Git-hosting platform built to restore comprehension, traceability, and intent to how teams review and ship code.&lt;/p&gt;

&lt;h2&gt;
  
  
  But wait, what is Entire?
&lt;/h2&gt;

&lt;p&gt;Let's take a step back. &lt;a href="https://entire.io" rel="noopener noreferrer"&gt;Entire&lt;/a&gt; is a CLI-first system of record that captures the context behind agent-assisted code changes and links it to Git. In other words, whenever you commit changes from your agent, Entire automatically captures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your prompts&lt;/li&gt;
&lt;li&gt;The agent's response&lt;/li&gt;
&lt;li&gt;The full transcript&lt;/li&gt;
&lt;li&gt;Files the agent inspected&lt;/li&gt;
&lt;li&gt;Tools it ran&lt;/li&gt;
&lt;li&gt;Decisions it made&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helps you review, search, share, and continue agent work with confidence. This means if something goes wrong in production, you don't have to say, "I don't know. The agent did it."&lt;br&gt;
For example, Entire allows you to run commands such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;entire search&lt;/code&gt;: search not just your code history, but the prompts and reasoning behind it. "Why did we add this workaround?" is finally an answerable question.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;entire blame&lt;/code&gt;: like &lt;code&gt;git blame&lt;/code&gt;, but for why. Surface the session, prompt, and decision behind any line, not just who last touched it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;entire review&lt;/code&gt;: send a branch to multiple agents in parallel and get a review grounded in the actual sessions and intent behind the diff, not just the syntax.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/session handoff&lt;/code&gt;: move work from one agent to another with the full session state carried forward, so the new agent doesn't rebuild context from scratch.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  We're Launching: An Entirely New Git-Hosting Network
&lt;/h2&gt;

&lt;p&gt;All of that context lives in your repo. But your repo still lives on infrastructure that struggles to support your agents. That's what we're fixing today.&lt;/p&gt;

&lt;p&gt;Starting today, you can mirror your public or private GitHub repositories onto Entire's distributed Git network.&lt;/p&gt;

&lt;p&gt;Here's how it works: your repo stays on GitHub, and you keep pushing exactly like you do now. Commands like &lt;code&gt;git clone&lt;/code&gt;, &lt;code&gt;git fetch&lt;/code&gt;, and &lt;code&gt;git push&lt;/code&gt; all work exactly as they always have. Behind the scenes, Entire syncs your changes into a read-optimized copy in the region you choose. Your coding agents clone and fetch from that regional Entire mirror, which absorbs the heavy, concurrent read traffic, so they run fast without hitting the origin repo's rate limits. And when we say fast, we mean it.&lt;/p&gt;

&lt;p&gt;We benchmarked the network under agent-fleet load patterns, and here's what it sustained:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;~570,000 clones per hour from a single repository&lt;/li&gt;
&lt;li&gt;586 pushes per second (about 2.1 million per hour)&lt;/li&gt;
&lt;li&gt;~470 clone + push operations per second on a single repo, at 50 to 60 ms p50 latency, simulating the real loop agents actually run: clone, push, repeat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We measured all of this with &lt;a href="https://github.com/entireio/forgemark" rel="noopener noreferrer"&gt;ForgeMark&lt;/a&gt;, an open source benchmarking tool we're also releasing today, so you can run the numbers yourself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx9lan1ywyp509064jz8k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx9lan1ywyp509064jz8k.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  How to Mirror Your Repos
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Install the Entire GitHub App: https://github.com/apps/entire&lt;/span&gt;

&lt;span class="c"&gt;# 2. Install the CLI and log in&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://entire.io/install.sh | bash
entire login

&lt;span class="c"&gt;# 3. Create your mirror (interactive: pick repos, pick regions)&lt;/span&gt;
entire repo mirror create

&lt;span class="c"&gt;# 4. Clone from your regional mirror&lt;/span&gt;
entire repo clone /gh/OWNER/REPO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Under the hood, Entire runs distributed nodes across multiple regions and jurisdictions, with our first active cells in the US, EU, and Australia. You pin your data to the region you choose, reads get served from the cell closest to your agents, and writes are replicated across multiple providers and availability zones so your repos stay available even if a node goes down.&lt;/p&gt;

&lt;p&gt;We're rolling users off the &lt;a href="https://entire.io" rel="noopener noreferrer"&gt;waitlist&lt;/a&gt; progressively starting today, aiming for full capacity in the coming weeks.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tune In
&lt;/h2&gt;

&lt;p&gt;Our CEO Thomas Dohmke is speaking at WeAreDevelopers World Congress about why Git hosting needs to change and what we're building next. The talk streams live on Thursday, July 9th at 9:30 am CEST (3:30 am ET for the night owls):&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/eSoHzgrhk6Q"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;This launch is only the beginning of what's to come! Here's what's on the horizon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Native repos: public and private repositories hosted directly on Entire's network, no GitHub required&lt;/li&gt;
&lt;li&gt;Multi-region mirroring for a single repo&lt;/li&gt;
&lt;li&gt;Intent-based review: a developer lifecycle where reviewers start with the prompt and the reasoning, not a 500-line diff&lt;/li&gt;
&lt;li&gt;Open sourcing more of Entire. (Our CLI is already open source!)&lt;/li&gt;
&lt;li&gt;Full decentralization, including self-hosting, so no single company (us included) sits at the center of how the world's software is hosted. We recognize that Git was designed to be decentralized, but we traded that for convenience. We're making a committed effort to build our way back to that original promise without giving up the convenience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Join the Rebellion
&lt;/h2&gt;

&lt;p&gt;Sign up for the &lt;a href="https://entire.io" rel="noopener noreferrer"&gt;waitlist&lt;/a&gt;, and while you wait:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📚 &lt;a href="https://docs.entire.io/" rel="noopener noreferrer"&gt;Read the docs&lt;/a&gt; to go deeper on mirroring and the CLI&lt;/li&gt;
&lt;li&gt;💬 Join our &lt;a href="https://discord.gg/jZJs3Tue4S" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; and tell us what works, what breaks, and what you want next&lt;/li&gt;
&lt;li&gt;🐦 Follow &lt;a href="https://twitter.com/EntireHQ" rel="noopener noreferrer"&gt;@EntireHQ&lt;/a&gt; for updates as we roll out&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And because no launch is complete without him, meet our lovable, sarcastic, robot mascot, Marvin:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/2UDXavEqkog"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>git</category>
      <category>entire</category>
    </item>
    <item>
      <title>Human Attention is a Scarce Resource</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Mon, 22 Jun 2026 12:20:08 +0000</pubDate>
      <link>https://dev.to/entire/human-attention-is-a-scarce-resource-1g1o</link>
      <guid>https://dev.to/entire/human-attention-is-a-scarce-resource-1g1o</guid>
      <description>&lt;p&gt;I recently chatted with a Distinguished Engineer about how he uses agents in his engineering workflow and how he builds new team processes around AI-generated work.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2068069283184144450-994" src="https://platform.twitter.com/embed/Tweet.html?id=2068069283184144450"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2068069283184144450-994');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2068069283184144450&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;During the conversation, David Fowler made a really poignant take: when producing code becomes trivial, human attention becomes scarce resource. 🤯&lt;/p&gt;

&lt;p&gt;You can listen to our &lt;a href="https://open.spotify.com/episode/7nwblq1vppZesoInf656cN?si=gkwcvI66QN2yKJZ5Td3kQA" rel="noopener noreferrer"&gt;full conversation&lt;/a&gt; on Spotify. (It's a recording of a Twitter Space I did with him. People have said they really enjoyed the spaces I run, so I saved them as lightly edited podcast episodes).&lt;/p&gt;

&lt;p&gt;See below for my own thoughts on code review in the world of agentic coding: &lt;/p&gt;

&lt;h2&gt;
  
  
  My own thoughts
&lt;/h2&gt;

&lt;p&gt;For decades, software engineering has relied on a foundational necessity: a reliable paper trail. As version control matured from changelogs to CVS to modern Git diffs, we built our craft around durable artifacts that preserve intent, track progress, and safeguard quality.&lt;/p&gt;

&lt;p&gt;Historically, this system worked because software development operated at human speed. An engineer reasoned through a problem, committed code, and opened a pull request. Colleagues reviewed that code, engaging in a back-and-forth dialogue to unpack the underlying logic. We deliberately used this collaborative friction to maintain code quality.&lt;/p&gt;

&lt;p&gt;But today, a new class of autonomous collaborators has disrupted the traditional engineering workflow.&lt;/p&gt;

&lt;p&gt;Coding agents have drastically compressed the implementation window from typing code line-by-line to writing a single prompt that generates a full feature. The most forward facing teams are already moving past single-agent execution, orchestrating parallel sessions where a main agent manages subagents to complete larger bodies of work on demand. (When I worked at Block, this became the way many teams I encountered worked).&lt;/p&gt;

&lt;p&gt;This sudden leap in speed is intoxicating, but it threatens to outrun our ability to keep software trustworthy. In practice, an engineer uses an agent to generate hundreds of lines, but the engineer only skims the results. Reviewers facing a growing backlog do the same. If the Git diff looks right, the team ships. Then a production outage occurs. In the past, you could bring the authoring engineer into the incident room to trace their logic and patch the system. But when the decision was made by one of a dozen subagents running in parallel, there is no one to bring in, and the commit history shows only the result, not the reasoning.&lt;/p&gt;

&lt;p&gt;This is the central problem I keep seeing in AI-native development: we can now produce code faster than we can understand it. And yet, for an industry obsessed with artifacts, meticulously tracking commits, pull requests, and logs, we often throw away the one record that explains all of them: the agent session itself.&lt;/p&gt;

&lt;p&gt;The company I work at, &lt;a href="//entire.io"&gt;Entire&lt;/a&gt;, has been aiming to maintain velocity without sacrificing engineering integrity by preserving agent sessions alongside the tools developers already use. The full chain of AI-assisted work, including prompts, responses, tool calls, subagent activity, checkpoints, and the final commit, can all become part of the engineering context. The mechanics do not have to be heavy. We do this using lightweight hooks around the agent and Git workflow.&lt;/p&gt;

&lt;p&gt;But the purpose of capturing session history is not for users to simply reread a diary of logs and transcripts. (A lot of people tell me, "So what, I don't want to read the logs!") Instead, session history can become an active surface for understanding, unlocking capabilities that standard Git diffs simply cannot support.&lt;/p&gt;

&lt;p&gt;When an engineer or agent needs to understand a complex block of autonomous code, the investigation should not stop at a timestamp, a commit hash, or a best guess. I want to be able to ask why this implementation exists, what prompt produced it, which agent or subagent touched it, and what validation or review context shaped the final result.&lt;/p&gt;

&lt;p&gt;If we want to build at this new speed without losing our grip on the codebase, a static diff of the final code is no longer enough. When the system breaks at 2:00 AM, we cannot rely only on tools built for a human pace to audit agent-to-human collaboration. To keep our systems reliable, we have to preserve more of the actual narrative of how the software came to be.&lt;/p&gt;

&lt;p&gt;Because in an AI-native world, the session is the story.&lt;/p&gt;

&lt;p&gt;Check us out on &lt;a href="https://entire.io" rel="noopener noreferrer"&gt;entire.io&lt;/a&gt; !&lt;/p&gt;

&lt;p&gt;And check out this episode of a crazy time I was on an AI coding game show for CodeTV . I look back at this episode many times, and just think "Ugh, we should've used Entire. It would've made handing off work between my team so much easier."&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/9AoMFGVffV0"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>entire</category>
    </item>
    <item>
      <title>How I Added Goose as an External Agent to Entire</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Thu, 11 Jun 2026 19:13:21 +0000</pubDate>
      <link>https://dev.to/entire/how-i-added-goose-as-an-external-agent-to-entire-6gf</link>
      <guid>https://dev.to/entire/how-i-added-goose-as-an-external-agent-to-entire-6gf</guid>
      <description>&lt;p&gt;I just opened a &lt;a href="https://github.com/entireio/external-agents/pull/39" rel="noopener noreferrer"&gt;PR&lt;/a&gt; to add support for Goose to Entire. Goose is an open source coding agent under the Agentic AI Foundation, the first ever MCP client, and a reference implementation for the Model Context Protocol. I am super excited about this because it is exactly where my two worlds collide. I previously worked on the team building out Goose. Although I left the team to join Entire, I still maintain the Goose documentation and stay semi-active in the project.&lt;/p&gt;

&lt;p&gt;This post walks through how I built the integration. It also doubles as a guide for adding support for your own favorite agent to Entire.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is Entire?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The traditional software development lifecycle was not built for AI agents, so Entire is building the one that is. We identified major friction points that make it hard for humans and agents to collaborate. For example, agents often put up massive PRs that human developers simply do not want to review. Additionally, you completely lose the reasoning behind AI-generated code days after it gets merged because no human actually wrote it.&lt;/p&gt;

&lt;p&gt;We have much more coming down the road, but we started by launching a CLI-first tool that records your agent sessions. It logs the prompts, the agent responses, tool calls, and everything in between.&lt;/p&gt;

&lt;p&gt;That way, when you want to find out why a feature was implemented a certain way, you can go straight to the transcript and read through it .Personally, I prefer to either ask my agent or run a command like &lt;code&gt;entire checkpoint explain&lt;/code&gt; to get a summarized rundown of the exact conversation behind a line of code. All sessions get version controlled via git and live on a dedicated metadata branch within the same repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why add your own agent?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Entire ships with built-in support for leading coding agents like Claude Code, Gemini CLI, Codex, Cursor, and Copilot CLI. But the agent ecosystem moves incredibly fast, and no single team can support every new tool that drops.&lt;/p&gt;

&lt;p&gt;So, we built the &lt;a href="https://github.com/entireio/cli/blob/main/docs/architecture/external-agent-protocol.md" rel="noopener noreferrer"&gt;external agent protocol&lt;/a&gt; that allows you self-serve add support for any agent you prefer to Entire. It gives you a completely self-serve way to add support for any agent you prefer. The user experience is identical to using a built-in agent. All the exact same commands and functionality just work. If Entire doesn't support your favorite agent yet, you don't have to wait on us. You can build the integration yourself directly in the &lt;a href="https://github.com/entireio/external-agents" rel="noopener noreferrer"&gt;entireio/external-agents&lt;/a&gt; repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Goose?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As a maintainer and former full-time developer on Goose, I've been looking for the perfect excuse to wire it up to Entire. The main technical blocker was that Goose didn’t support hooks. Hooks inform Entire when a session starts, when a user submits a prompt, and when the agent finishes a turn. This allows Entire to know when to start and stop recording the session activity.&lt;br&gt;&lt;br&gt;
Recently Goose implemented support for hooks, following the &lt;a href="https://open-plugins.com/agent-builders/components/hooks" rel="noopener noreferrer"&gt;Open Plugins hooks spec&lt;/a&gt;, so now I could fulfill my dream. &lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What your agent needs&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To wire your agent up to Entire, it needs to have the following: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A hooks or lifecycle mechanism:&lt;/strong&gt; You need a reliable way to run an external command when a session starts, a prompt is submitted, or a turn ends. Without this, Entire cannot observe the session.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable session data:&lt;/strong&gt; You need access to transcripts or an exportable session store containing the &lt;em&gt;actual&lt;/em&gt; conversation. We need real assistant responses and precise tool calls, not generic placeholder text like "Working...".
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stable session identity:&lt;/strong&gt; A consistent session ID that you can extract from hook payloads, ideally paired with a resume command (like goose session --resume --session-id &amp;lt;id&amp;gt;).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A non-interactive CLI mode:&lt;/strong&gt; Running commands cleanly (for example, goose run -t "prompt") makes writing automated lifecycle tests dramatically easier.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What you need&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You also need the following items on your device:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your target agent’s CLI install and authenticated
&lt;/li&gt;
&lt;li&gt;Entire CLI installed
&lt;/li&gt;
&lt;li&gt;Go toolchain because external agents for Entire are written in Go.
&lt;/li&gt;
&lt;li&gt;Open an issue first to get alignment with the team at Entire requesting that you want to add this agent. Introducing a new agent means a long-term support commitment for us!
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional&lt;/strong&gt;: An agent that you would use to implement this integration. I used Claude Code with Fable 5. This way, I didn’t have to manually write all the code. Claude Code just followed the pattern to integrate Goose with Entire. &lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;The step-by-step workflow&lt;/strong&gt;
&lt;/h2&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;1. Run the Agent skill&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://github.com/entireio/external-agents" rel="noopener noreferrer"&gt;external-agents repo&lt;/a&gt; includes a built-in developer skill that automates the heavy lifting: &lt;a href="https://github.com/entireio/external-agents/tree/main/.claude/skills/entire-external-agent" rel="noopener noreferrer"&gt;entire-external-agent&lt;/a&gt;. Clone the repository, open it up in your favorite AI development tool, and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/entire-external-agent

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;2. The three development phases&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Phase 1: Research -&lt;/strong&gt; The skill analyzes the protocol spec, probes your agent's binary commands, and, crucially, writes a verification script to capture real hook payloads. &lt;/p&gt;

&lt;p&gt;For Goose, this script wired a capture plugin into a temporary workspace, executed a real goose run prompt, and dumped the exact stdin payloads to disk. Documentation can lie, but captured payloads never do. This phase also ensures the session data is clean and stores everything in an AGENT.md summary file.&lt;/p&gt;

&lt;p&gt;This phase revealed that Goose sessions live in a global SQLite database rather than isolated files, meaning our binary had to materialize transcripts on the fly using goose session export --format json.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2: Write tests -&lt;/strong&gt; The skill scaffolds a fresh Go binary that stubs out the required protocol subcommands with valid JSON shapes. It registers your agent in our end-to-end testing harness. At this point, the shared compliance suite (&lt;a href="https://github.com/entireio/external-agents-tests" rel="noopener noreferrer"&gt;entireio/external-agents-tests&lt;/a&gt;) is supposed to fail. Those specific failures become your exact development roadmap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3 - Implement -&lt;/strong&gt; Now that we (you and the agent implementing the integration) have specific test failures, your agent can use a test-driven development approach to identify the code needed for this to work. It can take those failures and write the code to fix them step by step. For Goose, the failing tests pulled the agent through hook installation, session read and write round trips, and transcript validation. Finally, the agent writes unit tests using the actual data it recorded back in Phase 1 to prove its translation code works perfectly.&lt;/p&gt;

&lt;p&gt;When Entire first discovers your integration, it does a quick programmatic handshake to ask, "What features do you (the target external agent) actually support?" Your external agent binary (mine was Goose in this case) answers by declaring its capabitilies. This list tells Entire exactly what tasks it is allowed to hand off to your agent.&lt;/p&gt;

&lt;p&gt;Here are the specific capabilities Goose declared:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;hooks&lt;/strong&gt;: Tells Entire that the binary can use Goose's native plugin system to listen for session events.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;transcript_analyzer&lt;/strong&gt;: Tells Entire that the binary can read the raw JSON data to find the user's prompts, the tool calls, and the files that were changed.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;transcript_preparer&lt;/strong&gt;: Tells Entire that the binary knows how to pull the conversation history directly out of the local SQLite database.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;token_calculator&lt;/strong&gt;: Tells Entire that the binary can track the total AI tokens used during the session.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;compact_transcript&lt;/strong&gt;: Tells Entire that the binary can clean up the raw conversation formatting so it looks readable when you run entire checkpoint explain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The test harness (in my case Claude Code) automatically runs your new binary (Goose now integrated with Entire) through protocol compliance checks, live LLM prompt scenarios, and session persistence validation to ensure everything works perfectly.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Open your PR&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before putting up a pull request, remember to open an issue first to get alignment with the maintainers. Introducing a new agent means a long-term support commitment for the repository. Once aligned, push your branch and open the PR. Our CI pipeline will automatically compile your binary, run the compliance suite, and verify your unit tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Check for additional bugs&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After the agent skill finished running, I tested the integration myself.&lt;br&gt;&lt;br&gt;
I ran the following command in a repo I didn’t care about:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;entire &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;--agent&lt;/span&gt; goose

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, I prompted goose to make some file changes, commit, and push. I found one bug where it wasn’t generating the full session transcript, and it only generated the first user prompt. I had Claude Code survey past agent integrations to look for patterns and identify what was missing. I added those fixes to my PR, and then I was done!&lt;/p&gt;

&lt;p&gt;It felt lightweight because Claude Code did all the heavy lifting. &lt;/p&gt;

&lt;p&gt;Now, I have to wait and see if my teammates approve my &lt;a href="https://github.com/entireio/external-agents/pull/39" rel="noopener noreferrer"&gt;PR&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Resources&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;There’s some more resources from us about agent hooks and adding external agents: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://entire.io/blog/agent-hooks-the-integration-layer-between-entire-cli-and-your-agen" rel="noopener noreferrer"&gt;Agent Hooks: The Integration Layer Between Entire CLI and Your Agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://entire.io/blog/bring-your-own-agents-to-entire" rel="noopener noreferrer"&gt;Bring Your Own Agents to Entire&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.entire.io/agents/external-agent-plugins" rel="noopener noreferrer"&gt;External Agent Plugin Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Hang out with us!&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can find the Entire crew here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://entire.io/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://discord.gg/jZJs3Tue4S" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://github.com/entireio" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.entire.io/" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And we’ll be at &lt;a href="https://www.wearedevelopers.com/world-congress?utm_campaign=Tickets_WWC26_Berlin_Search_DACH&amp;amp;utm_term=we%20are%20developers%20berlin&amp;amp;utm_source=google_ads&amp;amp;utm_medium=cpc&amp;amp;utm_content=22828467519&amp;amp;hsa_ver=3&amp;amp;hsa_acc=3107839148&amp;amp;hsa_mt=b&amp;amp;hsa_src=g&amp;amp;hsa_cam=22828467519&amp;amp;hsa_grp=199974997184&amp;amp;hsa_tgt=kwd-650207279896&amp;amp;hsa_kw=we%20are%20developers%20berlin&amp;amp;hsa_ad=797064100075&amp;amp;hsa_net=adwords&amp;amp;gad_source=1&amp;amp;gad_campaignid=22828467519&amp;amp;gbraid=0AAAAADEgEv_UfmB6VZoRlGp5Fs8Onjgge&amp;amp;gclid=CjwKCAjwuanRBhBSEiwAY5y6V-EIL8eY5hiBcuMRAOkItHTQ0FsuEjqDYk79M3sxGTaTiEJMAi-tKhoCG5gQAvD_BwE" rel="noopener noreferrer"&gt;We Are Developers Berlin&lt;/a&gt; this July 2026. See you soon! &lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>goose</category>
      <category>entire</category>
    </item>
    <item>
      <title>How to Make Coding Agents Remember Past Solutions</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Wed, 10 Jun 2026 21:40:59 +0000</pubDate>
      <link>https://dev.to/entire/how-to-make-coding-agents-remember-past-solutions-4a71</link>
      <guid>https://dev.to/entire/how-to-make-coding-agents-remember-past-solutions-4a71</guid>
      <description>&lt;p&gt;Some engineering problems are only painful because they happen so rarely.  Even with a coding agent, the frustration still feels the same. I’ll wrestle with a tool that isn't my daily driver, hit a wall of errors, finally find a resolution, and then I neglect to note the solution because the problem is "fixed."&lt;/p&gt;

&lt;p&gt;This happened to me recently with a custom, internal GitHub Actions workflow I use for a post-release DevRel task. To make it work, I need to pass a specific authentication token to run Entire in a headless mode.&lt;/p&gt;

&lt;p&gt;A couple of months ago, I sat down with my AI agent to configure this for the first time. Because Entire is new and our setup is completely undocumented, it took a grueling trial-and-error process to figure out how to generate the token via a local device-flow login.&lt;/p&gt;

&lt;p&gt;Eventually, we found the answer. I pasted the token into my GitHub secrets, the workflow turned green, and I went about my day without writing anything down. I rarely take notes now that I use coding agents, but it’s not a sustainable practice. I need something to take note of the resolution (even if it’s my agent).&lt;/p&gt;

&lt;p&gt;Today, when the token expired, I was back at square one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Didn’t Make a Skill
&lt;/h2&gt;

&lt;p&gt;Normally, my instinct is to automate repetitive tasks by building a reusable workflow, like an Agent skill or a goose recipe. But a dedicated skill didn't make sense here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Low Frequency:&lt;/strong&gt; This happens once every few months. Writing and maintaining code for a skill I barely use is textbook over-engineering.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; Context:&lt;/strong&gt; Generating an auth token involves sensitive device flows. I didn’t want a generic token-generation script floating around in my global automation suite.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wished my agent had a memory, so I could ask “&lt;em&gt;How did we get that GENERIC_ENTIRE_TOKEN last time?"&lt;/em&gt; and have it recall the context.&lt;/p&gt;

&lt;p&gt;Instead, I spent an hour re-debugging a problem I had already solved. It was just my agent and me making guesses.  &lt;/p&gt;

&lt;p&gt;To break the loop before the next expiration, I decided to use Entire. (At the moment, I was literally working in Entire’s repos. I work for Entire, and I’m like okay this is the perfect use case).  &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Entire?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://entire.io/" rel="noopener noreferrer"&gt;Entire&lt;/a&gt; is a tool for preserving the context behind software work.&lt;/p&gt;

&lt;p&gt;When you work with coding agents, a lot of important information lives outside the final diff: the prompt you gave, the dead ends the agent tried, the commands it ran, the reason a change was made, and the little debugging discoveries that never make it into code comments.&lt;/p&gt;

&lt;p&gt;Entire captures that session history and connects it to your git history. So instead of only seeing a generic commit message like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docs: note dispatch auth refresh process

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also recover the agent session that led to that commit and find the answer to questions like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what problem you and the agent solved,
&lt;/li&gt;
&lt;li&gt;what files you and the agent touched inspected,
&lt;/li&gt;
&lt;li&gt;what scenarios you and the agent ruled out,
&lt;/li&gt;
&lt;li&gt;what was the final fix&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Using my session history as an artifact
&lt;/h2&gt;

&lt;p&gt;Unfortunately, my agent could remember the solution from two months ago because Entire connects agent sessions to commits.&lt;/p&gt;

&lt;p&gt;When I fixed the problem the first time, I hadn't changed any code. I just asked my agent a question and it responded with an answer. This meant I didn’ commit. Because there was no commit, there was no permanent record or session transcript for my agent to review. &lt;/p&gt;

&lt;p&gt;So today, after solving the problem a second time, I decided to leave a breadcrumb.&lt;/p&gt;

&lt;p&gt;I created a small markdown file in the repo. I didn't want to document the exact terminal commands step-by-step, nor did I want to risk exposing a security vulnerability by pasting sensitive outputs or token patterns into a file. I needed to document the &lt;em&gt;process&lt;/em&gt;, not leak the &lt;em&gt;credential&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I checked in a minimalist note that looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Workflow Token Refresh&lt;/span&gt;

If this workflow fails because its token is missing, blank, or rejected, refresh the the token using the flow captured in the session history for this commit.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Here’s how my agent responded
&lt;/h2&gt;

&lt;p&gt;Now, I wanted to test if this theory would actually work in the future. I asked my agent the following question:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;how do i get the GENERIC_ENTIRE_TOKEN?
in my github action workflow it says that token is expired

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This triggered my agent to run a skill called &lt;code&gt;using-entire&lt;/code&gt;. This skill is an orchestrator built for codebase exploration and tracking down "why did we do this?" questions. Its core instruction is simple: read the repository's recorded session history before guessing from raw code.&lt;/p&gt;

&lt;p&gt;Here is the exact step-by-step trace of what the agent did autonomously behind the scenes to find the answer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First, the agent ran a quick status check to see if Entire was active in the local project workspace.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;entire status

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;The agent scanned the codebase for the search keywords from my prompt and successfully located the markdown file I checked in earlier.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docs/runbooks/dispatch-workflow-auth-refresh.md

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Once it found the file, my agent checked the git commit history of that file to find the associated Entire Checkpoint.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'%H %b'&lt;/span&gt; &lt;span class="nt"&gt;-5&lt;/span&gt; &lt;span class="nt"&gt;--&lt;/span&gt; docs/runbooks/dispatch-workflow-auth-refresh.md | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-B1&lt;/span&gt; &lt;span class="s1"&gt;'Entire-Checkpoint:'&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command allows the agent to extract the unique session identifier tied directly to the commit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Entire-Checkpoint: f3aaa4d4eafd

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This checkpoint hash acts as a permanent anchor, linking the codebase straight back to the exact historical session transcript where we originally solved the problem.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;With the checkpoint ID secured, the agent called Entire's explanation tools to pull the history.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;entire explain &lt;span class="nt"&gt;--checkpoint&lt;/span&gt; f3aaa4d4eafd &lt;span class="nt"&gt;--transcript&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Once the transcript streamed in, the agent scanned the text for relevant authentication phrases like &lt;code&gt;oauth/device/code&lt;/code&gt;, and &lt;code&gt;oauth/token&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Because the agent successfully dug up that historical context, it handed me the exact  commands I should run to retrieve the token and add it to my GitHub Actions secrets. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By committing a file to the repo, I forced Entire to generate a permanent session history for that specific commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  A new approach to institutional knowledge
&lt;/h2&gt;

&lt;p&gt;The first time I used an agent memory tool in mid-2025, it was essentially a manual knowledge graph. It remembered what I explicitly told it to remember, and retrieved it on command.&lt;/p&gt;

&lt;p&gt;But I don’t want to manually prompt an agent to remember a scenario. I often lack the hindsight to know what information I will need down the road. This is why Entire’s background recording is so valuable. By automatically saving session transcripts, it transforms raw developer activity into a retrievable artifact that your agent can tap into at any time.&lt;/p&gt;

&lt;p&gt;Just a few years ago, every company valued that one engineer who knew everything, holding the context that code alone couldn't capture: the background of architectural decisions, stakeholder trade-offs, and historical workarounds.&lt;/p&gt;

&lt;p&gt;We used to have to track that person down for answers. Now, we can query agents instead. But to do that effectively, we must equip them with the right context regarding troubleshooting steps and past failures.&lt;/p&gt;

&lt;p&gt;Capturing our agent sessions and version controlling them ensures this rich decision history becomes a live, permanent part of the project repository.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>entire</category>
      <category>agentmemory</category>
    </item>
    <item>
      <title>The #1 Developer Skill in the Agentic Era</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Tue, 02 Jun 2026 23:12:42 +0000</pubDate>
      <link>https://dev.to/entire/the-1-developer-skill-in-the-agentic-era-21d7</link>
      <guid>https://dev.to/entire/the-1-developer-skill-in-the-agentic-era-21d7</guid>
      <description>&lt;p&gt;At first, many dismissed AI as a temporary bubble, but now that engineering organizations are adopting agentic workflows at scale, it is much harder to negate this new reality. Naturally, this shift has triggered a wave of industry anxiety. Engineers are looking at the landscape and asking a frantic question: &lt;strong&gt;What skills do I need to keep my job?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For decades, developers prided themselves on memorizing syntax, writing algorithms from scratch, and passing LeetCode interviews by repeating patterns. The pivots we made in the past were typically centered around the framework of the week (especially in the JavaScript world). Switching frameworks only required relying on the strong foundational software engineering skills picked up at school, in a coding bootcamp, or even from a YouTube video. But now that AI agents can produce code in seconds, developer egos are crumbling.&lt;/p&gt;

&lt;p&gt;In pursuit of relevance, developers have to sift through the noise of industry influencers pushing various strategies: Agent Skills, MCP, Gas Town, or building custom agents from scratch. Yet every one of these strategies boils down to a single foundation. That same foundation remains the number one skill for developers today, just as it was before the AI boom: &lt;strong&gt;communication&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Value of Communication in Software Engineering
&lt;/h2&gt;

&lt;p&gt;Code alone does not make a great developer. When coupled with strong communication skills, it becomes a distinct competitive advantage. However, we often overlook these skills because our industry excuses poor communication, hiding behind the stereotype that software engineering is an isolated job for people who just want to avoid human interaction.&lt;/p&gt;

&lt;p&gt;Early in my career as a junior software engineer, I struggled. It was not due to technical aptitude; instead, I simply struggled to verbalize my thoughts well. For example, when I was stuck on a problem, I didn’t understand how to ask for help. I would write essay-length questions on Slack, burying my actual problem in a mountain of unnecessary context, or I wouldnt provide enough information at all. Either way, my teammates werent motivated to help me because they didn’t understand what I was trying to say.&lt;/p&gt;

&lt;p&gt;I finally made progress in my career when I learned how to communicate with clarity. That realization eventually propelled me out of junior loops and into senior leadership roles in developer advocacy, where communication is the core focus.&lt;/p&gt;

&lt;p&gt;This requirement is evident in the way our industry identifies talent. In technical interviews, the engineers who get hired are the ones who vocalize their reasoning, explain their trade-offs, and talk through their strategy as they adapt to new constraints. The candidates who pass are rarely the ones who silently type out a perfect linked list.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Need for Communication in the Agentic Era
&lt;/h2&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2060553984947950017-414" src="https://platform.twitter.com/embed/Tweet.html?id=2060553984947950017"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2060553984947950017-414');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2060553984947950017&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Coding agents have increased the need for clear communication. To have a successful session with an agent, you must be able to clearly express your intent. I find that when engineers claim coding agents are hard to use, unreliable, or hallucinate too much, or when they rely too heavily on overly complex workflows to guide an agent through a codebase, their communication skills often need improvement.&lt;/p&gt;

&lt;p&gt;Methods like context engineering, planning, and leveraging Skills are simply different user experiences designed to help engineers better communicate with their agents. For example, while you can create a plan with an agent before starting work, using a command like &lt;code&gt;/plan&lt;/code&gt; ensures you provide the right details upfront and saves an artifact of that plan in a markdown file.&lt;/p&gt;




&lt;h2&gt;
  
  
  Orchestration Makes Communication Less Visible
&lt;/h2&gt;

&lt;p&gt;As agent harnesses and models improve, and as executive leaders demand more output, engineers are getting creative to work faster. One common solution is orchestration. In practice, this means you act as a manager of multiple agents working simultaneously, even while you sleep, and you simply review the output at the end.&lt;/p&gt;

&lt;p&gt;AI engineering leaders are starting to point out the trade-offs of this approach. &lt;a class="mentioned-user" href="https://dev.to/addyosmani"&gt;@addyosmani&lt;/a&gt; wrote an article about it titled &lt;em&gt;The Orchestration Tax&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2059844244907696186-109" src="https://platform.twitter.com/embed/Tweet.html?id=2059844244907696186"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2059844244907696186-109');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2059844244907696186&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;While your agents might produce a massive amount of work, you now have to review a mountain of output. My main issue with this setup is that the underlying reasoning behind the output often gets lost.&lt;/p&gt;




&lt;h2&gt;
  
  
  Treat Agent Sessions as Engineering Artifacts
&lt;/h2&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2061159078479663601-61" src="https://platform.twitter.com/embed/Tweet.html?id=2061159078479663601"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2061159078479663601-61');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2061159078479663601&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;To solve this, we have to start treating agent sessions as durable engineering artifacts. Just like we use version control for our lines of code, we need an audit trail for our agent interactions. You should be able to go back and view the transcripts, the prompts, the tool calls, and the trade-offs an agent made, giving you the context you need to answer for your architectural decisions.&lt;/p&gt;

&lt;p&gt;This is one of the many tools my team is building at Entire. We wanted to create that missing track record for agentic workflows. Now, if I open a commit from last week and see a vague message like &lt;code&gt;fixed&lt;/code&gt;, I dont have to wonder what happened. I can run a simple command like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;entire checkpoint explain
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Entire then surfaces what was asked, what files changed, what the agent reported back, and which commit it belonged to. It is incredibly useful because I can even ask my agent to look at those tracked sessions to help me better understand and expand on the context. This allows me to keep honing my communication skills and progressing as an engineer.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Real Example
&lt;/h2&gt;

&lt;p&gt;Ill be vulnerable. Yesterday, I published a blog post on our company website. While the tests for the blog post passed in staging, when I merged it to production, it failed to deploy because of a failing Cloudflare test. I worked with my coding agent to diagnose the problem, and then I learned I had to revert a PR from the Head of Design Engineering where he had bumped our Node version up. Someone approved my PR to revert his code, and I merged it. I did this without him knowing because we are in different time zones. However, I anticipated that the next morning, he would want to know why I reverted his code, and I needed to be able to explain myself.&lt;/p&gt;

&lt;p&gt;The problem was that I do not have direct access to Cloudflare since I am not on the core engineering team. I didnt fully understand why he made his original PR, or exactly how my deployment broke it. So, I spent a lot of time asking my agent what happened, why it happened, and how I could fix it. I knew that by the next morning, I would probably forget some of the major details, especially since a lot of the troubleshooting happened at 10 p.m.&lt;/p&gt;

&lt;p&gt;But I used Entire to help remind me. First, I ran a simple terminal command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bashentire checkpoint list

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command surfaces a clean snapshot of my history, giving me a list of various checkpoints and commits from my session with the agent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq92vlgz2jafvklvrb47k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq92vlgz2jafvklvrb47k.png" alt=" " width="800" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Normally, I would choose a specific checkpoint from that list and run &lt;code&gt;entire checkpoint explain&lt;/code&gt; to get an explanation for each individual moment. But because there were so many checkpoints, I wanted to fast-track the process instead of digging through them one by one.&lt;/p&gt;

&lt;p&gt;Fortunately, I have agent skills installed that teach my agent how to interact with Entire commands and execute custom workflows. I handed the agent that same screenshot of my checkpoint list and gave it a simple prompt: &lt;em&gt;Can I get an explanation of each of these checkpoints?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My agent responded by explaining the decisions from beginning to end, covering my initial workaround attempts, how I got confused with the version numbers, and how we finally identified a fix, so the next day I would be able to respond to my coworker.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ge8vpkwqd47jdyatg4c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ge8vpkwqd47jdyatg4c.png" alt=" " width="800" height="762"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Keep Improving Your Communication Skills
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use agents daily:&lt;/strong&gt; This one is simple. The more you use agents, the more you will understand how to use them and how to communicate with them. Over time, you will build your own personal workflows that ensure you get the best outcome. It can be a bit of a learning curve at first, but after constant use, you will get a hang of it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch others work:&lt;/strong&gt; Through reading blog posts, watching livestreams, or even reading my teammates past agent history, I learn a lot about how they operate agents, and I can adapt different parts to my own workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Own the outcome:&lt;/strong&gt; Never ship code you cannot explain to a human peer. If your agent makes a sweeping change across ten files, trace its steps, audit its intent, and ensure you completely understand the reasoning behind those lines before hitting approve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track your agent sessions:&lt;/strong&gt; Let Entire track your sessions behind the scenes. When you find yourself in a moment where you need durable artifacts because someone is asking what happened and why, you will be fully prepared to communicate it.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;It’s a strange world. The best engineers are no longer defined by how well they memorize syntax. At first, the developers who stand out will be the ones who work the fastest, spinning up multiple subagents and impressing everyone with their raw speed.&lt;/p&gt;

&lt;p&gt;But very soon, the most valuable engineers will be the ones who can bring clarity back to the humans on their team. When a system inevitably breaks down, they will be the ones who can look back at their sessions, trace exactly what the agents did, and explain the choices to their team.&lt;/p&gt;

&lt;p&gt;Code is cheap, but clarity is getting more expensive.&lt;/p&gt;

&lt;p&gt;You can get that clarity today with &lt;a href="//entire.io"&gt;Entire&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; entire.io&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation:&lt;/strong&gt; docs.entire.io&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discord community:&lt;/strong&gt; &lt;a href="https://discord.gg/jyAENMgmb3" rel="noopener noreferrer"&gt;https://discord.gg/jyAENMgmb3&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>agentskills</category>
      <category>entire</category>
    </item>
    <item>
      <title>Banning Agent PRs Won't Save Open Source</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Sat, 23 May 2026 19:52:52 +0000</pubDate>
      <link>https://dev.to/entire/why-banning-agent-prs-wont-save-open-source-4822</link>
      <guid>https://dev.to/entire/why-banning-agent-prs-wont-save-open-source-4822</guid>
      <description>&lt;p&gt;It's an unspoken rule that large pull requests are poor etiquette. Traditionally, Agile teams break features into manageable slices to make it easier for developers to tackle the logic and for peers to actually review. That is until the adoption of agents. Now developers are shipping end-to-end features in a fraction of the time, but the result is often an unmanageable wall of code that is discouraging to even open. These "Agent-PRs" almost guarantee a reviewer's eyes will glaze over, leading to a quick "LGTM" that misses subtle logical flaws. This tension has become so high that some open source maintainers have moved to outright banning agent-authored contributions.&lt;/p&gt;

&lt;p&gt;Before the invention of pull requests, contributors would email maintainers their code changes or ask maintainers to pull updates from the contributor's repository. In 2008, GitHub introduced pull requests, giving teams a structured way to propose, discuss, and review changes before merging them. For almost two decades, the pull request provided the perfect workflow. But now the very structure that enabled collaboration is cracking under the weight of AI-generated velocity.&lt;/p&gt;

&lt;p&gt;Prominent open source developers, such as Rémi Verschelde and Jeff Geerling, have taken to social media to express their concerns.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa280omuu6m1biyohjqor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa280omuu6m1biyohjqor.png" alt=" " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdf25kwrkdzohsjf39p6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdf25kwrkdzohsjf39p6.png" alt=" " width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But their sentiment isn’t isolated. Many developers feel this way, and faced with deluge, many have decided to take drastic measures to protect their codebase and sanity by banning AI-assisted contributions completely.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2044406553508274554-2" src="https://platform.twitter.com/embed/Tweet.html?id=2044406553508274554"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2044406553508274554-2');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2044406553508274554&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2011911073834672138-971" src="https://platform.twitter.com/embed/Tweet.html?id=2011911073834672138"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2011911073834672138-971');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2011911073834672138&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2014433315261124760-629" src="https://platform.twitter.com/embed/Tweet.html?id=2014433315261124760"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2014433315261124760-629');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2014433315261124760&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;However, as more developers are encouraged to use AI throughout the software development life cycle, running away from AI-assisted pull requests only hurts open source by closing the door to potentially valuable contributors. Angie Jones, my former manager, argues that &lt;a href="https://angiejones.tech/stop-closing-the-door-fix-the-house/" rel="noopener noreferrer"&gt;closing the door isn't the solution&lt;/a&gt;. Instead, she advocates for better guidelines for both agents and humans.&lt;/p&gt;

&lt;p&gt;She's right. Closing the door isn't the answer, and clearer guidelines are a step forward.&lt;br&gt;&lt;br&gt;
But even with better guidelines, the review process remains fundamentally unchanged. Maintainers are still staring down massive PRs, trying to make sense of what an agent produced.&lt;/p&gt;

&lt;p&gt;To remedy this problem, GitHub recently released a feature giving maintainers the power to set contribution limits, starting with a PR cap for outside contributors and an allowlist for trusted ones.  &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2057864556488306833-259" src="https://platform.twitter.com/embed/Tweet.html?id=2057864556488306833"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2057864556488306833-259');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2057864556488306833&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Many maintainers are excited about this release, but a PR cap is a short-term band-aid. I think it’s a good move, but our industry needs a complete overhaul of how we handle code reviews.&lt;/p&gt;

&lt;p&gt;As a maintainer of &lt;a href="https://github.com/aaif-goose/goose" rel="noopener noreferrer"&gt;goose&lt;/a&gt;, an open source AI agent, I have spent 2025 and 2026 sifting through pull requests. I do not want to limit who can contribute. I want everyone to be able to contribute. The goal is to understand the context of a PR at a fast pace, even if an external contributor uses an agent to build it. Open source needs infrastructure built to support both human-authored and agent-authored work.&lt;/p&gt;

&lt;p&gt;I joined &lt;a href="https://entire.io" rel="noopener noreferrer"&gt;Entire&lt;/a&gt; because our convictions aligned: we need to fix the structural breakdown in open source. Right now, we have built a CLI that provides a system of record that captures the context behind agent-assisted code changes. The record gets stored as a This serves as the baseline for a new era of developer tooling that can help our industry move towards:   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shifting from code review to intent review: This means instead of parsing 500 lines of syntax, reviewers will start with intent by examining the prompt, the session transcript, and the reasoning behind key decisions. This allows reviewers to focus on the problem being solved and whether the right calls were made along the way.
&lt;/li&gt;
&lt;li&gt;The ability to search for the why: Developers and maintainers can ask why a change was made a certain way and receive an answer derived directly from the agent session context.
&lt;/li&gt;
&lt;li&gt;Infrastructure for the AI-native velocity: The open source community needs a foundation that can support the massive volume of human and agent contributions without falling under the weight of the traffic or causing platform outages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To explore the full scope of what we are building, you can read about our &lt;a href="https://entire.io/vision" rel="noopener noreferrer"&gt;vision&lt;/a&gt; and learn more about &lt;a href="https://entire.io/blog/the-entire-cli-how-it-works-and-where-its-headed" rel="noopener noreferrer"&gt;where we are headed&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Open source is where innovation happens. It is how large companies thrive, relying on thousands of open source dependencies. Yet if we shut down external contributions out of fear or fatigue, the community disappears, leaving the ecosystem at risk of stagnation.  Developers are genuinely excited to contribute because agents have given them the confidence to do so. We need to embrace that momentum by building an infrastructure designed for the AI-native software development lifecycle.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/C8n4j6g_ejE"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>opensource</category>
      <category>entire</category>
    </item>
    <item>
      <title>Your Agent Sessions Belong in Your Codebase: Nullius in Verba</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Tue, 19 May 2026 08:56:46 +0000</pubDate>
      <link>https://dev.to/entire/your-agent-sessions-belong-in-your-codebase-nullius-in-verba-3ggd</link>
      <guid>https://dev.to/entire/your-agent-sessions-belong-in-your-codebase-nullius-in-verba-3ggd</guid>
      <description>&lt;p&gt;Your coding agent sessions belong in your codebase. Before I joined &lt;a href="https://entire.io/" rel="noopener noreferrer"&gt;Entire&lt;/a&gt;, the company building the infrastructure to bring your agent sessions into your code, I was already exploring this exact idea on my own.&lt;/p&gt;

&lt;p&gt;In January 2026, I participated in &lt;a href="https://genuary.art/" rel="noopener noreferrer"&gt;Genuary&lt;/a&gt;, a month-long creative coding challenge where artists, designers, and programmers make and share generative art based on a daily prompt. I used my coding agent, goose, to generate the creative code. For me, this was less of an exercise in creative coding and more of a self-taught lesson in orchestrating agents, since doing complex things with agents was on the rise.&lt;/p&gt;

&lt;p&gt;One of the things I built into my process was a repeating workflow where, after every session, my agent automatically committed the &lt;a href="https://github.com/blackgirlbytes/genuary2026/blob/main/genuary/days/day03/transcript.md" rel="noopener noreferrer"&gt;session transcript&lt;/a&gt; into the same repository that held the creative output. It wasn't elegant, because it was literally a huge transcript with every tool call mixed in and almost no structure to make it readable. I did it because some of the creations were so astonishingly beautiful that I wanted my agent and myself to be able to look back later and have enough context to reuse those same patterns for future challenges.&lt;/p&gt;

&lt;p&gt;Three months later, in March, I was working at a company that had built a far more elegant solution to the same problem. Instead of haphazardly dumping whole session transcripts, Entire saves each session as a series of navigable checkpoints. Each checkpoint is a snapshot of a meaningful moment in the session, capturing what the agent did, what changed in your code, and the reasoning that produced the change. Now after using Entire for a few months, I’m realizing that what I had treated as a nice-to-have for myself, I now see as a real necessity for engineers.&lt;/p&gt;

&lt;p&gt;I had this epiphany while doing what my job actually entails, which is advocating for developers. I started noticing a pattern across the developers and community members I talked to. While many of them wanted to track their agent sessions, they did not want those sessions to live in the same codebase. Some people felt their sessions were too embarrassing, full of mistakes or moments where they had been harsh with their agent, because all of us have lost patience with a coding agent that just refuses to understand us. Others felt the sessions were too private. Because Entire already supports &lt;a href="https://docs.entire.io/cli/checkpoints#checkpoint-remote" rel="noopener noreferrer"&gt;storing sessions in a separate repository&lt;/a&gt; and &lt;a href="https://docs.entire.io/security#secret-redaction-always-on" rel="noopener noreferrer"&gt;redacting secrets&lt;/a&gt; by default, I assumed we should be louder about that functionality.&lt;/p&gt;

&lt;p&gt;Surprisingly, one of my teammates disagreed with me. His philosophy was that agent sessions belong alongside your code by default, and that the discomfort developers would eventually go away. Because I am trained to empathize with developers, I initially felt this stance was dogmatic, and I struggled to see eye to eye. Over the past few weeks, though, the idea kept ringing through my mind, I see his perspective. &lt;/p&gt;

&lt;p&gt;Software engineering has never been about flawless first drafts. Our industry thrives precisely because we maintain a transparent, versioned track record of our technical evolution, and when engineers treat interactions with coding agents as ephemeral scratchpads, we end up ignoring a foundational principle of how software actually gets built. Every architectural and logical decision deserves a clear and traceable provenance, and right now that provenance is silently disappearing into chat windows.&lt;/p&gt;

&lt;p&gt;I did some historical research on how deeply embedded proof of work is in our industry, and I learned a lot about what happens when we abandon that proof of work. Here’s what I learned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proof of Work in Mathematics
&lt;/h2&gt;

&lt;p&gt;This foundation goes as far back as mathematics, the predecessor of computer science and software engineering. In the 1600s, mathematicians operated inside a genuinely toxic environment, settling disputes through public academic duels with brutal stakes. Winners kept their university chairs, while losers were publicly humiliated and often lost their livelihoods entirely.&lt;/p&gt;

&lt;p&gt;Because the consequences of losing were so severe, practitioners routinely hid their formulas and hoarded their methodologies. That culture of intense secrecy produced constant intellectual property disputes, redundant reverse-engineering, and a fragmented ecosystem that ended up stalling the progress of the entire discipline.&lt;/p&gt;

&lt;p&gt;The turning point came in the 1660s, when the Royal Society of London adopted a new motto, &lt;em&gt;Nullius in verba&lt;/em&gt;, which translates to "take nobody's word for it." From that point on, mathematicians had to publish their complete, step-by-step processes in academic journals rather than only presenting final conclusions. In exchange for that transparency, they received institutional validation and undisputed peer credit, and the field finally had a shared ledger of truth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proof of Work in Software
&lt;/h2&gt;

&lt;p&gt;Three hundred years later, software engineering experienced a similar reckoning. In the 1960s, code was a tangible, physical artifact. Developers punched holes into cardboard cards, organized them into precise decks, and fed those decks into a mainframe. Version control was physical too, because changing a routine meant pulling a specific card out of the deck and slotting a new one into its place.&lt;/p&gt;

&lt;p&gt;Then, code moved to magnetic tape and hard disks and became digitally invisible. Multiple developers modified the same file and accidentally overwrote each other's changes without any shared source of truth. The industry's response was a slow march back toward visibility, moving from local file-locking systems like SCCS and RCS to centralized trackers like CVS and Subversion, and eventually to Git. Git decoupled development pipelines entirely through a distributed, non-linear architecture, but it was hard to use on its own, and it did not pick up real traction until GitHub layered a collaborative interface on top of it. That interface turned version history into a shared social ledger and defined the modern development workflow.&lt;/p&gt;

&lt;p&gt;The pattern is the same one the Royal Society set in motion three centuries earlier. Every time our industry has taken a leap forward, that leap has come from making invisible work visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Invisible Agent Work
&lt;/h2&gt;

&lt;p&gt;Agentic workflows are becoming the primary engine of software production, but they're abstracting away our work at the same time.&lt;/p&gt;

&lt;p&gt;By committing only the final file output of an agent session, we aren't hiding our work the way 17th-century mathematicians did. But the effect is the same: we are back to delivering an end product while erasing the lineage of how it was reasoned into existence.&lt;/p&gt;

&lt;p&gt;The prompts you write, the specific files your agent reads, and the back-and-forth debugging it takes to get things right are not just logs. They are first-class development artifacts. When we strip them away from a pull request, the rest of our tooling, our reviewers, and our future selves are all left to take the resulting code at face value.&lt;/p&gt;

&lt;p&gt;That is exactly the position the Royal Society found unworkable in the seventeenth century, and there is no good reason to expect it will work for us either.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nullius in Verba
&lt;/h2&gt;

&lt;p&gt;Including your unedited session next to your code feels vulnerable, but so does pushing your first commit to a public repo or opening your first pull request in an open source project. &lt;/p&gt;

&lt;p&gt;That discomfort is not a flaw in the workflow, it is the price of admission for a trustworthy, auditable record of how software actually gets built. &lt;em&gt;Nullius in verba&lt;/em&gt; is still the right principle 300+ years later: take nobody's word for it, not even your agent's. Let the work speak in the place where the work actually lives. That is the direction we are building toward at Entire: making the context behind agent-authored work as visible as the code itself. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Did you like this blog post?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Try out Entire: entire.io &lt;br&gt;
Join our Discord: &lt;a href="https://discord.gg/WUzRcQ5PX4" rel="noopener noreferrer"&gt;https://discord.gg/WUzRcQ5PX4&lt;/a&gt;&lt;br&gt;
Read our docs: docs.entire.io&lt;/p&gt;

&lt;p&gt;If you have additional thoughts, feel free to leave a comment!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>entire</category>
    </item>
    <item>
      <title>How to Keep Entire Checkpoints Separate from Your Code</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Fri, 08 May 2026 08:02:39 +0000</pubDate>
      <link>https://dev.to/entire/how-to-keep-entire-checkpoints-separate-from-your-code-50a1</link>
      <guid>https://dev.to/entire/how-to-keep-entire-checkpoints-separate-from-your-code-50a1</guid>
      <description>&lt;p&gt;Storing a record of your agent sessions solves the biggest friction point for developers: limited context. On the surface, this may look like a dormant log, but Entire transforms those records into procedural memory. By default, the &lt;a href="https://docs.entire.io/cli/overview" rel="noopener noreferrer"&gt;Entire CLI&lt;/a&gt; stores your agent history right alongside your code. More specifically, it stores your &lt;a href="https://docs.entire.io/cli/checkpoints" rel="noopener noreferrer"&gt;checkpoints&lt;/a&gt;, snapshots of your prompts, agent transcripts, and the state of your work at each step, on a dedicated branch in the same repository called &lt;a href="https://docs.entire.io/glossary#checkpoints-branch" rel="noopener noreferrer"&gt;&lt;code&gt;entire/checkpoints/v1&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But as valuable as that memory is, it raises a valid question: What if I don’t want anyone else to see the conversations I have with my agent?&lt;/p&gt;

&lt;p&gt;We’ve heard a few consistent reasons why developers want to keep their agent history private:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The conversations are, frankly, a little embarrassing. (I’ve yelled at my agents before. I am not proud of it, but when tokens are few, so is my patience).
&lt;/li&gt;
&lt;li&gt;It can start to feel like surveillance from their employer.
&lt;/li&gt;
&lt;li&gt;It's a &lt;a href="https://docs.entire.io/security" rel="noopener noreferrer"&gt;privacy concern&lt;/a&gt;. Those conversations might include context their company doesn't want to share publicly or with external collaborators.
&lt;/li&gt;
&lt;li&gt;They want to keep your main repo lean and focused on source code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of those reasons resonate, you have two main paths to a more private workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Push checkpoints to a separate private repo
&lt;/h2&gt;

&lt;p&gt;This is the sweet spot if you’re working on a public or shared project but still want a history that you (and maybe your trusted teammates) can access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Create a private repo for your checkpoints&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On GitHub, create an empty private repo with any name you want. In this example, we’ll use &lt;code&gt;myorg/checkpoints-private&lt;/code&gt;. This is where all your agent sessions will live. You don't need to add a README or initialize it. Entire will push the first checkpoint branch on its own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Point Entire at the new repo.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From inside your project, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;entire configure &lt;span class="nt"&gt;--checkpoint-remote&lt;/span&gt; github:myorg/checkpoints-private
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The format is &lt;code&gt;provider:owner/repo&lt;/code&gt;. Today, &lt;code&gt;github&lt;/code&gt; is the supported provider. This writes the setting to &lt;a href="https://docs.entire.io/cli/configuration#project-settings" rel="noopener noreferrer"&gt;&lt;code&gt;.entire/settings.json&lt;/code&gt;&lt;/a&gt; under &lt;code&gt;strategy_options.checkpoint_remote&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"strategy_options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"checkpoint_remote"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"github"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"repo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"myorg/checkpoints-private"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, your code will be stored in your main repo, and your agent sessions will go to your new private repo. You can read more about this in the &lt;a href="https://docs.entire.io/cli/checkpoints#checkpoint-remote" rel="noopener noreferrer"&gt;Checkpoint Remote docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep your agent sessions local
&lt;/h2&gt;

&lt;p&gt;If you want the highest level of privacy, you can keep your agent sessions local and opt out of pushing them to remote using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;entire configure &lt;span class="nt"&gt;--skip-push-sessions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This modifies &lt;code&gt;.entire/settings.json&lt;/code&gt; with the following values:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"strategy_options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"push_sessions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This setting still allows you to store your sessions locally. For example, you can still &lt;a href="https://docs.entire.io/cli/checkpoints#benefits" rel="noopener noreferrer"&gt;rewind&lt;/a&gt;, look back at what happened, and use all the local features. However, because the checkpoints never get pushed to GitHub or any remote provider, you cannot retrieve them if you switch devices. Also, your teammates won’t have access to your checkpoints.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if I accidentally paste a secret?
&lt;/h2&gt;

&lt;p&gt;We know that mistakes happen, so we have guardrails in place. Whether you store your history alongside your code, in a private repo, or on your local machine, Entire runs every session through a &lt;a href="https://docs.entire.io/security#secret-redaction-always-on" rel="noopener noreferrer"&gt;redaction pipeline&lt;/a&gt; before it hits git.&lt;/p&gt;

&lt;p&gt;We use &lt;a href="https://github.com/betterleaks/betterleaks" rel="noopener noreferrer"&gt;Betterleaks&lt;/a&gt; to automatically scrub:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud credentials (AWS, GCP, Azure)
&lt;/li&gt;
&lt;li&gt;Source control tokens (GitHub, GitLab, Bitbucket)
&lt;/li&gt;
&lt;li&gt;Service keys (Stripe, Slack, Discord, Twilio)
&lt;/li&gt;
&lt;li&gt;Private keys (RSA, SSH, PGP)
&lt;/li&gt;
&lt;li&gt;Database connection strings with embedded passwords
&lt;/li&gt;
&lt;li&gt;Bearer tokens, JWTs, and high-entropy strings that look secret-shaped even if they don't match a known pattern&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  TLDR; Which one should you pick?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;The Goal&lt;/th&gt;
&lt;th&gt;The Command&lt;/th&gt;
&lt;th&gt;Where data lives&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Full Visibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Same repo as your code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Private Collaboration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.entire.io/cli/checkpoints#checkpoint-remote" rel="noopener noreferrer"&gt;&lt;code&gt;--checkpoint-remote&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A separate private repo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Isolation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.entire.io/cli/commands#configure" rel="noopener noreferrer"&gt;&lt;code&gt;--skip-push-sessions&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Your local machine only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Note: Redaction runs across all three. Whether your checkpoints live in your code repo, a private repo, or only on your laptop, &lt;a href="https://docs.entire.io/security#secret-redaction-always-on" rel="noopener noreferrer"&gt;secrets get scrubbed&lt;/a&gt; before they're written.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We recognize that your agent workflow is going to look different based on who you are, the codebase you're in, and your team's unique security needs. Entire is built to adapt to those needs.&lt;/p&gt;

&lt;p&gt;Ready to dive deeper into configuring your setup? Check out our &lt;a href="https://docs.entire.io/cli/checkpoints#checkpoint-remote" rel="noopener noreferrer"&gt; documentation on checkpoint remote&lt;/a&gt; and &lt;a href="https://docs.entire.io/security" rel="noopener noreferrer"&gt;Security &amp;amp; Privacy docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the comments section, let me know: Do you even care if people see your agent history, or would you rather keep those transcripts private?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>entire</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
