<?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 to Improve Playwright Test Coverage Using Agent Context</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Tue, 18 Aug 2026 00:23:30 +0000</pubDate>
      <link>https://dev.to/entire/how-to-improve-playwright-test-coverage-using-agent-context-14l9</link>
      <guid>https://dev.to/entire/how-to-improve-playwright-test-coverage-using-agent-context-14l9</guid>
      <description>&lt;p&gt;I don’t know how to play an instrument, so obviously I built one as an app. Literally, everyone in my family can sign or play an instrument, and I’m the odd one out.&lt;/p&gt;

&lt;p&gt;And I know what you’re thinking, “Who cares? With AI, you can build almost anything.” I’m more excited about the technique I chose to build the app with my agent. Specifically I used context from the agent session that built the app to find and fix the most important gap in its Playwright tests.&lt;/p&gt;

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

&lt;p&gt;Here’s how I did it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Install Entire
&lt;/h3&gt;

&lt;p&gt;Entire captures the prompts, transcripts, tool calls, and decisions behind agent-generated code, seamlessly connecting that underlying context to your Git commits through lightweight checkpoints.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On macOS:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap entireio/tap
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; entire

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

&lt;/div&gt;



&lt;p&gt;Check out these &lt;a href="https://docs.entire.io/installation" rel="noopener noreferrer"&gt;instructions&lt;/a&gt; to install on your operating system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Create the project
&lt;/h3&gt;

&lt;p&gt;I created an empty directory (or you can ask your agent to do this)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;music-app
&lt;span class="nb"&gt;cd &lt;/span&gt;music-app

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Enable Entire
&lt;/h3&gt;

&lt;p&gt;Before handing off any work to the agent, I initialized Entire directly within the repository because I wanted to capture my agent sessions:&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;-y&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;You can also target a specific agent (I personally use Codex):&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;-y&lt;/span&gt; &lt;span class="nt"&gt;--agent&lt;/span&gt; codex

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

&lt;/div&gt;



&lt;p&gt;This sets up the background hooks Entire relies on to capture agent activity, binding that session context directly to the commits generated along the way.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 4: Turn the vague idea into a plan
&lt;/h3&gt;

&lt;p&gt;Rather than starting with a rigid technical spec, I simply shared my initial idea:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I'm not entirely sure about the app i want to build..but i want to build a music app that enables me to play instruments even though idk how..this should use computer vision and it should be able to work with real instruments or just like "air" instruments as in there's no instrument there..but i am moving fingers and sounds are being made..and it should like im making real music. idk if this should be sonic pi..but i know i should use media pipe for it. lets start working on a plan together
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Working together, the agent helped refine this into an “Air Jam” concept: a browser app where MediaPipe tracks hand gestures, a custom gesture engine interprets them, and Tone.js handles the audio output.&lt;/p&gt;

&lt;p&gt;Wanting it to double as a learning tool, I followed up with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;can it still show keys and chords etc..like still be a learning tool in some way
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That added a crucial new dimension. Beyond being a fun novelty, the app could now render notes, highlight active scales and chord tones, and eventually break down the music theory behind what was being played.&lt;/p&gt;

&lt;p&gt;To lock this down, I asked the agent to document everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;ok lets put this plan into a markdown file
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It generated &lt;code&gt;PRODUCT_PLAN.md&lt;/code&gt;, detailing the vision, architecture, development stages, MVP targets, and explicit success criteria.&lt;/p&gt;

&lt;p&gt;Phase 1 focused on laying the foundation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bootstrap the browser application.
&lt;/li&gt;
&lt;li&gt;Request camera access and show mirrored video.
&lt;/li&gt;
&lt;li&gt;Integrate MediaPipe Hand Landmarker.
&lt;/li&gt;
&lt;li&gt;Draw hand landmarks and confidence information.
&lt;/li&gt;
&lt;li&gt;Define eight virtual strings.
&lt;/li&gt;
&lt;li&gt;Detect a fingertip crossing one string.
&lt;/li&gt;
&lt;li&gt;Trigger a basic synth note.
&lt;/li&gt;
&lt;li&gt;Add filtering, hysteresis, and note cooldowns.
&lt;/li&gt;
&lt;li&gt;Measure tracking rate and gesture-to-sound latency.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, it defined a clear exit condition: &lt;em&gt;Deliberate movements reliably produce one corresponding sound with few false triggers.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Set up atomic agent commits
&lt;/h3&gt;

&lt;p&gt;I prefer keeping commits bite-sized, which is especially helpful when an agent is touching multiple parts of a codebase. To enforce this, I added a repo rule:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;also in an agents.md write a rule that says every time we make a change to a file, make a commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since I didn't want that configuration change committed just yet, I quickly clarified:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;no dont make any commits..just add the note
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From then on, the agent created neat, focused commits as features were built. And thanks to Entire, every single commit remained tied to the exact session context that created it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Build Phase 1
&lt;/h3&gt;

&lt;p&gt;With the roadmap in place, we dove straight into implementation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lets start with phase 1..gesture to sound experiment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent systematically assembled the foundation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Webcam access
&lt;/li&gt;
&lt;li&gt;MediaPipe hand tracking
&lt;/li&gt;
&lt;li&gt;Eight virtual strings
&lt;/li&gt;
&lt;li&gt;Gesture-to-note conversion
&lt;/li&gt;
&lt;li&gt;Tone.js audio
&lt;/li&gt;
&lt;li&gt;Velocity-sensitive notes
&lt;/li&gt;
&lt;li&gt;Gesture smoothing and cooldowns
&lt;/li&gt;
&lt;li&gt;Landmark and string visualizations
&lt;/li&gt;
&lt;li&gt;Camera-free note buttons
&lt;/li&gt;
&lt;li&gt;Live performance diagnostics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And just like that, it worked. I could wave a finger across a virtual string and play a fully functional air harp.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7: Generate Playwright tests
&lt;/h3&gt;

&lt;p&gt;Before expanding the app, I wanted a solid browser test suite to protect what we’d built. I kept my request broad:&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="nx"&gt;write&lt;/span&gt; &lt;span class="nx"&gt;some&lt;/span&gt; &lt;span class="nx"&gt;playwright&lt;/span&gt; &lt;span class="nx"&gt;tests&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent generated five passing Playwright tests covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The initial interface
&lt;/li&gt;
&lt;li&gt;Camera-free note buttons
&lt;/li&gt;
&lt;li&gt;Starting and stopping the synthetic camera
&lt;/li&gt;
&lt;li&gt;Camera permission errors
&lt;/li&gt;
&lt;li&gt;The mobile layout&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On paper, everything was green. But a passing test suite doesn't automatically mean you're testing what actually matters. Because I hadn't written the code or designed the test architecture myself, I wasn't entirely convinced these five tests actually protected the core user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 8: Start a new agent session
&lt;/h3&gt;

&lt;p&gt;By this time, my original session had consumed roughly 87 percent of its context window.&lt;/p&gt;

&lt;p&gt;I generally avoid pushing agents when their context gets that crowded. It puts them right into what I call the "dumb zone." While the agent technically retains the conversation history, its ability to prioritize key details begins to degrade.&lt;/p&gt;

&lt;p&gt;My usual fix is to compact the history or spin up a fresh session. I opted for a fresh start here, not as a staged setup for this article, but as a natural next step after an extended session spent planning, building, debugging, and testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 9: Compare the tests with the original intent
&lt;/h3&gt;

&lt;p&gt;While the new agent could easily read the code, I wanted it to evaluate the application using the rich context Entire had captured from our earlier planning, implementation, and testing sessions.&lt;/p&gt;

&lt;p&gt;I passed it this prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;look at the existing Playwright tests and compare to my entire sessions and checkpoints. Do they actually test the main user experience from beginning to end, or do they only test separate pieces of it? Tell me what important behavior is still untested, and show me what you found in the sessions that led you to that conclusion.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent pulled up the Playwright suite, cross-referencing it with our earlier Entire checkpoints. Codex summarized its findings:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We tested the camera. We tested the notes. But we never tested that moving your hand actually plays a note.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And there it was. It hadn't actually tested whether waving your hand played a note, which is the fundamental purpose of the app.&lt;/p&gt;

&lt;p&gt;Digging deeper into the suite revealed why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The camera tests used synthetic video, but the MediaPipe mock always returned zero hands. It proved the video feed could toggle, but never actually passed hand data through the system.
&lt;/li&gt;
&lt;li&gt;The note tests triggered audio by clicking UI buttons directly. They proved notes could sound, but skipped testing whether a tracked fingertip crossing a virtual string would trigger one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Entire provided the agent with concrete historical context to back up this realization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The original planning checkpoint explicitly required that deliberate movements produce exactly one sound.
&lt;/li&gt;
&lt;li&gt;The implementation checkpoint defined the core feature around that full camera-to-gesture-to-note feedback loop.
&lt;/li&gt;
&lt;li&gt;The test-writing checkpoint showed that the initial five tests were narrowly scoped to basic UI, buttons, camera toggles, errors, and layout.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 10: Add the missing Playwright test
&lt;/h3&gt;

&lt;p&gt;With the gap exposed, I gave a final instruction:&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="nx"&gt;generate&lt;/span&gt; &lt;span class="nx"&gt;tests&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;missing&lt;/span&gt; &lt;span class="nx"&gt;gap&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent updated the MediaPipe mock to supply realistic 21-point hand coordinates, simulating an index fingertip sweeping across a virtual string.&lt;/p&gt;

&lt;p&gt;The new test verified that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MediaPipe successfully returned a tracked hand.
&lt;/li&gt;
&lt;li&gt;The fingertip crossed the target string.
&lt;/li&gt;
&lt;li&gt;The corresponding C4 note activated.
&lt;/li&gt;
&lt;li&gt;The note counter incremented exactly once.
&lt;/li&gt;
&lt;li&gt;Settling after the gesture produced no duplicate triggers.
&lt;/li&gt;
&lt;li&gt;No hidden browser errors occurred during the gesture loop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That brought our suite from five tests to six. But more than just increasing the count, that sixth test mapped directly back to the success criteria we set during our very first planning session.&lt;/p&gt;

&lt;h3&gt;
  
  
  What makes this test genuinely better?
&lt;/h3&gt;

&lt;p&gt;It’s easy to fake a bug or throw in a superficial assertion to craft a good story, but that wasn't the case here. This test is fundamentally better because it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Protects the primary user journey.
&lt;/li&gt;
&lt;li&gt;Exercises the full stack of components end-to-end instead of in isolation.
&lt;/li&gt;
&lt;li&gt;Directly reflects our original definition of success.
&lt;/li&gt;
&lt;li&gt;Uses deterministic synthetic landmarks so it can run reliably in CI without a physical webcam.
&lt;/li&gt;
&lt;li&gt;Ensures strict reliability by validating that one gesture yields exactly one note.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To be clear, it doesn't guarantee that a real-world MediaPipe model will capture every single hand type or that audio physically plays through a user's speakers. Those require dedicated smoke runs or hardware testing. But it &lt;em&gt;does&lt;/em&gt; prove that when realistic hand coordinates hit the app, the entire gesture-to-note pipeline executes flawlessly.&lt;/p&gt;

&lt;p&gt;I don’t use Entire to save my chat transcript and scroll through later on. Instead, I gave it to my agent to use as the historical evidence it needs to make better engineering decisions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please note that I wrote some of this by hand but for much of it I asked my agent to look at my session context and turn it into a blog. Because I have other work to do, and I'm trying to catch up!!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>entire</category>
      <category>playwright</category>
    </item>
    <item>
      <title>How to Review AI-Generated Code with Multiple AI Agents</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Fri, 14 Aug 2026 22:40:09 +0000</pubDate>
      <link>https://dev.to/entire/how-to-review-ai-generated-code-with-multiple-ai-agents-gdc</link>
      <guid>https://dev.to/entire/how-to-review-ai-generated-code-with-multiple-ai-agents-gdc</guid>
      <description>&lt;div&gt;
    &lt;iframe src="https://www.youtube.com/embed/uB519dCwtc4"&gt;
    &lt;/iframe&gt;
  &lt;/div&gt;


&lt;p&gt;Having one model review code written by a model from a different family is becoming increasingly popular.&lt;/p&gt;

&lt;p&gt;You might build a feature with Codex, then ask Claude Code to review it. The idea is that each provider trains its models differently, so the reviewing model may catch problems the original model missed.&lt;/p&gt;

&lt;p&gt;That sounds useful, but it raises an important question: what information are we giving the reviewing model?&lt;/p&gt;

&lt;h2&gt;
  
  
  Is reviewing the code enough?
&lt;/h2&gt;

&lt;p&gt;A typical AI code review might include the final code, the diff, and the commit history.&lt;/p&gt;

&lt;p&gt;That tells the reviewer what changed, but not why it changed.&lt;/p&gt;

&lt;p&gt;In the era of coding agents, much of the reasoning behind an implementation lives inside the &lt;a href="https://docs.entire.io/guides/sessions/overview" rel="noopener noreferrer"&gt;agent session&lt;/a&gt;. That session can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The original prompts&lt;/li&gt;
&lt;li&gt;The agent’s responses&lt;/li&gt;
&lt;li&gt;Tool calls and commands&lt;/li&gt;
&lt;li&gt;Files the agent inspected&lt;/li&gt;
&lt;li&gt;Constraints provided by the developer&lt;/li&gt;
&lt;li&gt;Decisions and alternatives considered along the way&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without that context, a model can identify potential bugs, questionable patterns, or missing tests. What it cannot reliably determine is whether the final implementation matches what the developer actually requested.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying an adversarial review without context
&lt;/h2&gt;

&lt;p&gt;I built an Arcade feature with Codex, then asked Claude Code to review the result.&lt;/p&gt;

&lt;p&gt;The review produced reasonable feedback, but it felt incomplete and superficial. Claude could inspect the implementation, but it did not have the conversation that produced it.&lt;/p&gt;

&lt;p&gt;It could review the code as written. It could not compare that code against my original intent.&lt;/p&gt;

&lt;p&gt;This is the missing piece in many cross-agent reviews. The reviewing model sees the destination, but not the journey that led there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviewing with the full agent session
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://entire.io/" rel="noopener noreferrer"&gt;Entire&lt;/a&gt; captures the context behind agent-assisted work and connects it to Git through &lt;a href="https://docs.entire.io/guides/checkpoints/overview" rel="noopener noreferrer"&gt;checkpoints&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead of giving a reviewer only the final diff, Entire can provide the prompts, responses, tool activity, file changes, and decisions that produced it.&lt;/p&gt;

&lt;p&gt;From an Entire-enabled repository, either you or your coding agent can start a review by running:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;On the first run, Entire guides you through creating a &lt;a href="https://docs.entire.io/guides/configuration/review-profiles" rel="noopener noreferrer"&gt;review profile&lt;/a&gt;. A review profile is a reusable configuration that defines what should be checked, which agents should perform the review, and which agent should consolidate the results.&lt;/p&gt;

&lt;p&gt;You can select multiple reviewers. Entire runs them in parallel, then sends their findings to a judge that combines them into one final report.&lt;/p&gt;

&lt;p&gt;The judge resolves contradictions, removes duplicate findings, and prioritizes issues supported by evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checking the code against the original prompt
&lt;/h2&gt;

&lt;p&gt;Because Entire stores the original prompts and agent responses, I could add another check to the review profile:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Compare the final code against what I actually prompted for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To edit the checks in a review profile, 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 review &lt;span class="nt"&gt;--edit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This turns the original prompt into part of the review criteria.&lt;/p&gt;

&lt;p&gt;The reviewer is no longer limited to asking, “Is this code correct?”&lt;/p&gt;

&lt;p&gt;It can also ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did the agent build what was requested?&lt;/li&gt;
&lt;li&gt;Were any requirements missed?&lt;/li&gt;
&lt;li&gt;Did the implementation add behavior that was never requested?&lt;/li&gt;
&lt;li&gt;Did the agent drift away from the original intent?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the profile is ready, start the configured review:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;The selected agents perform their reviews in parallel, and the judge produces a consolidated verdict. You can learn more about this workflow in the &lt;a href="https://docs.entire.io/learn/review-and-recap-agent-work" rel="noopener noreferrer"&gt;cross-agent review tutorial&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Catching intent drift
&lt;/h2&gt;

&lt;p&gt;In my Arcade example, I asked for two ad cards, one for each game.&lt;/p&gt;

&lt;p&gt;The agent built three.&lt;/p&gt;

&lt;p&gt;A traditional code review might not flag that. Three cards are not necessarily broken code. The implementation could be clean, tested, and technically correct.&lt;/p&gt;

&lt;p&gt;But it was not what I requested.&lt;/p&gt;

&lt;p&gt;Because Entire gave the reviewers access to the original prompt, the final report identified the extra card as intent drift. The implementation had drifted away from the stated requirement, even though the code itself appeared valid.&lt;/p&gt;

&lt;p&gt;That is the difference between reviewing only the output and reviewing the complete body of work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code review for the era of agents
&lt;/h2&gt;

&lt;p&gt;Cross-agent adversarial review is a useful start. Different models can notice different problems.&lt;/p&gt;

&lt;p&gt;But changing the reviewing model is only part of the solution. The reviewer also needs the context behind the implementation.&lt;/p&gt;

&lt;p&gt;When the review includes the prompts, responses, decisions, and final code, it can evaluate more than technical correctness. It can determine whether the agent understood the task and delivered what was actually requested.&lt;/p&gt;

&lt;p&gt;That is code review built for the era of agents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://entire.io/" rel="noopener noreferrer"&gt;Try Entire today&lt;/a&gt; or explore the &lt;a href="https://docs.entire.io/cli-reference/review" rel="noopener noreferrer"&gt;&lt;code&gt;entire review&lt;/code&gt; documentation&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>programming</category>
      <category>entire</category>
    </item>
    <item>
      <title>How to Enable Entire</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Fri, 14 Aug 2026 22:17:46 +0000</pubDate>
      <link>https://dev.to/entire/how-to-enable-entire-4h9l</link>
      <guid>https://dev.to/entire/how-to-enable-entire-4h9l</guid>
      <description>&lt;h1&gt;
  
  
  How to Enable Entire in Your Repository
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://entire.io/" rel="noopener noreferrer"&gt;Entire&lt;/a&gt; captures the context behind AI-assisted code changes and connects it to your Git history.&lt;/p&gt;

&lt;p&gt;It preserves details such as prompts, tool calls, file changes, and session transcripts as &lt;a href="https://docs.entire.io/overview" rel="noopener noreferrer"&gt;checkpoints&lt;/a&gt;. A checkpoint is a versioned record of the work completed during an agent session, linked to the Git commit that resulted from it.&lt;/p&gt;

&lt;p&gt;Here’s how to enable Entire and prepare your repository for its first checkpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enable Entire with one command
&lt;/h2&gt;

&lt;p&gt;From the root of your Git repository, 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 &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;-y&lt;/code&gt; flag accepts the default setup options, including enabling Entire for all &lt;a href="https://docs.entire.io/agents/overview" rel="noopener noreferrer"&gt;supported coding agents&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Entire installs the necessary hooks and creates its project configuration. These hooks capture the context from your agent sessions and connect it to your commits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Entire stores checkpoint data
&lt;/h2&gt;

&lt;p&gt;New setups use Git refs by default, storing each checkpoint independently under:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Entire also supports storing checkpoints together on a dedicated branch:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Both approaches keep your &lt;a href="https://docs.entire.io/glossary" rel="noopener noreferrer"&gt;session history&lt;/a&gt; separate from your working branch, so transcripts and checkpoint metadata do not clutter your code commits.&lt;/p&gt;

&lt;p&gt;To select the branch-based option explicitly, 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 &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nt"&gt;--checkpoint-backend&lt;/span&gt; branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Existing repositories using &lt;code&gt;entire/checkpoints/v1&lt;/code&gt; can continue using it, while new repositories use the refs-based approach by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Entire interactively
&lt;/h2&gt;

&lt;p&gt;If you want to review the setup options and choose which agents to connect, 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 &lt;span class="nb"&gt;enable&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Entire will guide you through the configuration process.&lt;/p&gt;

&lt;p&gt;You can also select a checkpoint storage option explicitly:&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;--checkpoint-backend&lt;/span&gt; refs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&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;--checkpoint-backend&lt;/span&gt; branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Confirm that Entire is enabled
&lt;/h2&gt;

&lt;p&gt;Once setup is complete, check the repository’s status:&lt;br&gt;
&lt;/p&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;p&gt;You’ll see which agents are connected, where checkpoints will be synchronized, and whether any agent sessions are active.&lt;/p&gt;

&lt;p&gt;After you work with an agent and create a Git commit, you can view the resulting checkpoints with:&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 list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your repository is now ready to capture the context behind your agent-assisted work.&lt;/p&gt;

&lt;p&gt;For a complete walkthrough, visit our &lt;a href="https://docs.entire.io/quickstart" rel="noopener noreferrer"&gt;Quickstart&lt;/a&gt;. If you are working with sensitive repositories, review Entire’s &lt;a href="https://docs.entire.io/security" rel="noopener noreferrer"&gt;security and privacy documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy trails!&lt;/p&gt;

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

</description>
      <category>ai</category>
      <category>agents</category>
      <category>entire</category>
      <category>programming</category>
    </item>
    <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>
  </channel>
</rss>
