<?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: Halfcycle</title>
    <description>The latest articles on DEV Community by Halfcycle (@halfcycle).</description>
    <link>https://dev.to/halfcycle</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%2F4174134%2F2e2fb236-50df-4add-b6df-6b2652fcdd26.png</url>
      <title>DEV Community: Halfcycle</title>
      <link>https://dev.to/halfcycle</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/halfcycle"/>
    <language>en</language>
    <item>
      <title>Replit Agent tests its own app. Who reviews the code?</title>
      <dc:creator>Halfcycle</dc:creator>
      <pubDate>Sat, 31 Oct 2026 03:11:41 +0000</pubDate>
      <link>https://dev.to/halfcycle/replit-agent-tests-its-own-app-who-reviews-the-code-1dph</link>
      <guid>https://dev.to/halfcycle/replit-agent-tests-its-own-app-who-reviews-the-code-1dph</guid>
      <description>&lt;p&gt;&lt;em&gt;Halfcycle is a team of AI agents that plans, builds, checks and tests software inside Claude Code. We make it, so read this with that in mind; the full comparison, with every source, is on our site.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Replit Agent is impressive. Describe an idea and it sets up the database and logins, builds the app, opens it in a real browser, clicks through it and fixes what it finds, then publishes it. All in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Replit does well
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Everything in one place.&lt;/strong&gt; Writing, running, data, logins and publishing. Halfcycle does not host apps; it recommends where yours should run and sets that up as a step in the plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It tries the app itself.&lt;/strong&gt; Halfcycle does this too: when a phase is finished, an AI agent that built none of it clicks through the live app in a browser and sends back what it finds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan mode.&lt;/strong&gt; It talks the work through and suggests a task list without touching files. Halfcycle does this too, without you asking: it works out whether a change needs a plan and writes it into your repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Existing projects.&lt;/strong&gt; It imports GitHub repositories. Halfcycle reads the code you have too, and carries on from there.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where the difference is
&lt;/h2&gt;

&lt;p&gt;From Replit's own docs, linked on the full page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Review.&lt;/strong&gt; Its docs describe no separate review of the code by another agent. In Halfcycle, each piece is reviewed by an AI agent that did not build it before it is added.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The plan.&lt;/strong&gt; Replit's plan appears in the chat. Halfcycle writes the product spec, the architecture and a design for each component into your repository, where every later agent works from it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logins.&lt;/strong&gt; With Replit Auth, your users sign in with Replit accounts on a Replit-branded page. With Halfcycle, logins are whatever suits your project and your users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where it runs.&lt;/strong&gt; Replit apps are published on Replit, billed by use. Halfcycle leaves the code with you to put live where you choose.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to choose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An idea you want running in one place, today, and you are happy for it to live on Replit: Replit.&lt;/li&gt;
&lt;li&gt;Software you own, reviewed piece by piece and hosted where you choose: Halfcycle. It can have a first version up today too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full comparison: &lt;a href="https://halfcycle.ai/compare/halfcycle-vs-replit" rel="noopener noreferrer"&gt;https://halfcycle.ai/compare/halfcycle-vs-replit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>replit</category>
      <category>claudecode</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Lovable or your own code? What changes when the app has to last</title>
      <dc:creator>Halfcycle</dc:creator>
      <pubDate>Sat, 31 Oct 2026 03:05:32 +0000</pubDate>
      <link>https://dev.to/halfcycle/lovable-or-your-own-code-what-changes-when-the-app-has-to-last-3pk</link>
      <guid>https://dev.to/halfcycle/lovable-or-your-own-code-what-changes-when-the-app-has-to-last-3pk</guid>
      <description>&lt;p&gt;&lt;em&gt;Halfcycle is a team of AI agents that plans, builds, checks and tests software inside Claude Code. We make it, so read this with that in mind; the full comparison, with every source, is on our site.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Lovable is one of the best AI app builders around. You describe a web app in the browser and it builds it, with a database, logins and hosting on its own backend. The question worth asking before you start is not how quickly it appears. Both can have a first version working today. It is what the app depends on once it is running.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Lovable does well
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The code is yours.&lt;/strong&gt; Its docs say so, and two-way GitHub sync is on every plan. Halfcycle does this too: the code is in your own folder from the first line.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A plan before big changes.&lt;/strong&gt; Plan mode writes a plan you approve before code changes. Halfcycle does this too, without you asking: it works out whether a change needs a plan, and when it does, writes the product spec, the architecture and a design for each part into your repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing to set up.&lt;/strong&gt; A database, logins and hosting come built in. Halfcycle does this too: you run one command and describe what you want, and it suggests a database, logins and hosting that take minutes to set up, then sets them up as a step in the plan.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where the difference is
&lt;/h2&gt;

&lt;p&gt;From Lovable's own docs, linked on the full page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Where the app lives.&lt;/strong&gt; The code can go elsewhere, but the built-in backend, AI features and connectors keep running through Lovable until you replace them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it is built with.&lt;/strong&gt; Lovable chooses the tools; its docs say it does not offer a choice of framework or database. Halfcycle picks what suits the project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Existing code.&lt;/strong&gt; A ZIP upload is rebuilt on Lovable's backend, and GitHub sync cannot connect an existing repository. Halfcycle reads the code you have and carries on from there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checking.&lt;/strong&gt; Lovable runs security scans. Halfcycle plans security in from the start: who can see what is written down once, and each piece is reviewed against it by an AI agent that did not build it, before it is added. At the end of each phase another AI agent clicks through the finished app in a browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to choose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A quick app you are happy to keep on Lovable's backend: Lovable.&lt;/li&gt;
&lt;li&gt;Software you need to own, host where you choose and build on for years: Halfcycle, which runs in Claude Code and leaves ordinary code in your repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full comparison, table, FAQ and sources: &lt;a href="https://halfcycle.ai/compare/halfcycle-vs-lovable" rel="noopener noreferrer"&gt;https://halfcycle.ai/compare/halfcycle-vs-lovable&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>claudecode</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Base44 or your own code? What to check before you build on an AI app builder</title>
      <dc:creator>Halfcycle</dc:creator>
      <pubDate>Thu, 29 Oct 2026 19:58:36 +0000</pubDate>
      <link>https://dev.to/halfcycle/base44-or-your-own-code-what-to-check-before-you-build-on-an-ai-app-builder-361e</link>
      <guid>https://dev.to/halfcycle/base44-or-your-own-code-what-to-check-before-you-build-on-an-ai-app-builder-361e</guid>
      <description>&lt;p&gt;&lt;em&gt;Halfcycle is a team of AI agents that plans, builds, checks and tests software inside Claude Code. We make it, so read this with that in mind; the full comparison, with every source, is on our site.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI app builders like Base44 have made "describe an app, get an app" real. For a lot of work that is exactly right. But the question that decides whether it is right for &lt;em&gt;your&lt;/em&gt; project is not how fast the first version appears. It is what you hold when the building stops.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Base44 does well
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Nothing to set up. A database, user logins, analytics and hosting come with every app.&lt;/li&gt;
&lt;li&gt;No terminal. You work in a chat and a visual editor in the browser.&lt;/li&gt;
&lt;li&gt;Good for internal tools: admin panels, trackers, booking forms and dashboards, where speed matters more than owning the code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What its docs say about leaving
&lt;/h2&gt;

&lt;p&gt;These come from Base44's own documentation, linked on the full page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Export:&lt;/strong&gt; on paid plans you can copy the code to GitHub. The copy includes the screens, the backend functions and the structure of your data. Records come out separately as CSV files; users and secret keys stay on Base44.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running it elsewhere:&lt;/strong&gt; exported code "still relies on Base44 to run", and self-hosting is not supported. Moving off means replacing the database, logins and integrations yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bringing code in:&lt;/strong&gt; importing code from GitHub is not supported.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that is a criticism. It is the shape of a platform: the same thing that makes it quick to start is what ties the app to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The other way to have AI build it
&lt;/h2&gt;

&lt;p&gt;If the software has to last, you can have AI build it as ordinary code you own. That is what we built Halfcycle for. It runs inside Claude Code and works like a software team made of AI agents:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You describe what you want in plain language. It asks the questions a product owner, an architect and a senior engineer would ask, one at a time, with a recommended answer for each.&lt;/li&gt;
&lt;li&gt;It writes the product spec, the architecture and a design for every component into your repository.&lt;/li&gt;
&lt;li&gt;Builder agents write the code, each on its own copy. A separate set of reviewer agents checks every piece before it is added, and a tester agent checks the finished app.&lt;/li&gt;
&lt;li&gt;An online console shows the plan, the agents and the live build.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On our own webhook inbox project it raised six problems before any code was written, including one that would have broken resending Stripe's payment notifications.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to choose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A quick internal tool that only has to work this month, and you are happy for it to live on the platform: Base44.&lt;/li&gt;
&lt;li&gt;Software your business depends on, that you need to own, move, or build on later: build it as your own code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full comparison, with the table, Base44's limits, a FAQ and every source, is here: &lt;a href="https://halfcycle.ai/compare/halfcycle-vs-base44" rel="noopener noreferrer"&gt;https://halfcycle.ai/compare/halfcycle-vs-base44&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>claudecode</category>
      <category>webdev</category>
    </item>
    <item>
      <title>One page per project: everything the Halfcycle console shows you</title>
      <dc:creator>Halfcycle</dc:creator>
      <pubDate>Tue, 27 Oct 2026 14:14:58 +0000</pubDate>
      <link>https://dev.to/halfcycle/one-page-per-project-everything-the-halfcycle-console-shows-you-2dga</link>
      <guid>https://dev.to/halfcycle/one-page-per-project-everything-the-halfcycle-console-shows-you-2dga</guid>
      <description>&lt;p&gt;Halfcycle is a module that runs a five-layer build method inside your own Claude Code (npx halfcycle).&lt;/p&gt;

&lt;p&gt;Halfcycle's agents work in your terminal. The console is where you see what they did, and where you make the decisions that are yours to make.&lt;/p&gt;

&lt;p&gt;Every project you run with Halfcycle gets its own private console on the web. It shows where the project stands, what is being built right now, which agents are working on it, what problems were caught along the way, and what is waiting for a decision from you. It updates in real time, so nobody has to be in the session, read the repository or ask for a status update to know where things are.&lt;/p&gt;

&lt;p&gt;In this guide, we walk through each page of the console: what it shows, and what you can do on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your projects
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fya5vr6pd253vtv6j8mah.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fya5vr6pd253vtv6j8mah.webp" alt="The projects page: every project you have access to, with your role on each" width="800" height="732"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you sign in, you see a list of your projects. Each one shows its current state and your access level. In this example, you are an admin on one project, a viewer on another, and your access request to a third is still pending.&lt;/p&gt;

&lt;p&gt;From here you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open any project's console;&lt;/li&gt;
&lt;li&gt;see which projects have access requests waiting for your approval;&lt;/li&gt;
&lt;li&gt;give someone access to a project without giving them access to your terminal or your code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To start a new project, run &lt;code&gt;npx halfcycle&lt;/code&gt; in a new folder. It appears in this list automatically.&lt;/p&gt;

&lt;p&gt;For the rest of this guide, we use one example project, &lt;strong&gt;Northwind Ledger&lt;/strong&gt;: a payments product with two phases built so far and a third waiting for approval. Every screenshot from here on is from that project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;The Overview page is the first page you see when you open a project. It answers two questions: what needs my attention, and where does the project stand?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F62gnhqp9x9x4zxwnf8cy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F62gnhqp9x9x4zxwnf8cy.webp" alt="The Overview page: what is waiting on you, the six stages, and the approvals between them" width="799" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is waiting on you.&lt;/strong&gt; Anything that needs your decision appears in a banner at the top. Here, the next phase (Notifications) has been planned and needs your approval before any agent starts building it. The banner tells you what to do and links you straight to it. You can also approve from your Claude Code session by typing &lt;code&gt;approve notifications&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The six stages.&lt;/strong&gt; Every Halfcycle project moves through the same six stages, in order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Set up:&lt;/strong&gt; name the product and prepare the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define:&lt;/strong&gt; agree what you are building and who it is for.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persist:&lt;/strong&gt; write down the architecture and the rules the system must follow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope:&lt;/strong&gt; split the work into phases small enough to finish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design:&lt;/strong&gt; specify each feature in detail, with a second reviewer checking it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build:&lt;/strong&gt; build each phase, then test it the way a real user would.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each stage shows whether it is complete and how many decisions were recorded in it. Below the stages are the approvals that moved the project forward, each signed by a person and dated. Because every project uses the same stages, you can compare several projects at a glance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh8r5aualvc371b1rm5pc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh8r5aualvc371b1rm5pc.webp" alt="In flight, needs a person, and flagged" width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Further down the page are three lists:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In flight:&lt;/strong&gt; tasks running right now, with the agent working on each and how long it has been running.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Needs a seat:&lt;/strong&gt; tasks only a person can do, such as answering a question the spec left open, or testing the finished phase. Agents never sit waiting silently; anything that needs a person is listed here with the reason.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flagged:&lt;/strong&gt; tasks that are still moving but need a closer look.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34jpr7cy70nnjw7b53t0.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34jpr7cy70nnjw7b53t0.webp" alt="Agents at work and the latest interventions" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the bottom, you can see which agents are working and on what, along with the latest entries from the Ledger (the problems that were caught, who caught them, and where).&lt;/p&gt;

&lt;h2&gt;
  
  
  System view
&lt;/h2&gt;

&lt;p&gt;The System view draws your whole product as a diagram: clients, the edge, services, data and outside services, with a card for each part. You use it to see what each phase will change, approve it before it is built, and review it when it is done.&lt;/p&gt;

&lt;p&gt;Each phase can be viewed at three stages, using the &lt;strong&gt;Stage&lt;/strong&gt; switch at the top:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scoped:&lt;/strong&gt; what the phase plans to change, before anything is built.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Building:&lt;/strong&gt; progress on each part while the phase is being built.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Closed:&lt;/strong&gt; what actually changed, once the phase is finished.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frkoksk02fe9940swkf32.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frkoksk02fe9940swkf32.webp" alt="The System view while a phase is being built" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While a phase is building, each card shows its status: built and reviewed, building, not started, waiting for a person, or blocked. Two statuses are worth watching:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not in plan:&lt;/strong&gt; a part that changed even though the plan did not include it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No task builds this:&lt;/strong&gt; a part the plan expects to change, but no task has been created for it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both would normally only surface at the end of a project. Here you see them as they happen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Approve a phase before it is built
&lt;/h3&gt;

&lt;p&gt;Before any agent builds a phase, you approve its scope in the System view.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fheerljxo7fdejk3ss69v.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fheerljxo7fdejk3ss69v.webp" alt="Approving a scope: the phase drawn on your system, with every planned part marked" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The diagram shows exactly what the phase will touch. In this example, one part will be added, four will change and none will be removed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyseyyfsu4tbwqjwwjt32.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyseyyfsu4tbwqjwwjt32.webp" alt="The review panel: check each part, then approve" width="800" height="900"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To approve a scope:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the System view and select the phase.&lt;/li&gt;
&lt;li&gt;Click each planned part to see what will change and what it connects to.&lt;/li&gt;
&lt;li&gt;Mark each part &lt;strong&gt;Looks right&lt;/strong&gt;, or click &lt;strong&gt;Request a change&lt;/strong&gt; and describe what should change.&lt;/li&gt;
&lt;li&gt;Once every part is checked, click &lt;strong&gt;Approve phase scope&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The approve button stays disabled until every part has been checked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhvcsmhj07xtlhx5f30go.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhvcsmhj07xtlhx5f30go.webp" alt="Requesting a change on one part" width="800" height="639"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you request a change, the phase goes back with your note, and the parts you already marked stay as they are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Approving from Claude Code.&lt;/strong&gt; You can also approve without opening the console. Type &lt;code&gt;approve notifications&lt;/code&gt; in your session, and the console records the approval: who approved, that it was done in chat, and which version of the plan was approved. It is also added to the phase's Build Record. Only a person can approve; text written by an agent never counts as an approval.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5nd937tj5m0t1496g2d7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5nd937tj5m0t1496g2d7.webp" alt="A scope approved from the Claude Code session" width="800" height="719"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When the plan changes after you approve.&lt;/strong&gt; If the plan changes after your approval, Halfcycle does not carry your approval over. In this example, a push provider was added and the event queue now owns more code. Your approval no longer covers those two parts, and no agent will build them until you approve them again. The other four parts stay approved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feik3vtktvoxjebuv095g.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feik3vtktvoxjebuv095g.webp" alt="The plan changed after approval: two parts need checking again" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu264rtsh5x8ll9xd7vl9.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu264rtsh5x8ll9xd7vl9.webp" alt="Only the changed parts need approving again" width="800" height="1001"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Review and close a phase
&lt;/h3&gt;

&lt;p&gt;When a phase finishes building, a close review opens in the System view.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmuf8zjkgoz03r7dpog2j.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmuf8zjkgoz03r7dpog2j.webp" alt="The close review: what actually happened to every part" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every part is listed with what actually happened to it: added, changed, removed, not in plan, or planned but not built.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3gc7kdz21btl11emi669.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3gc7kdz21btl11emi669.webp" alt="The close review panel: decide on each part to close the phase" width="800" height="1230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For each part, you can accept it, ask a question, or send it back. Any planned part that was not built must be either carried over to the next phase or dropped, with a reason. Once every part has a decision, you close the phase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff810f4lndbbhq49apnd7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff810f4lndbbhq49apnd7.webp" alt="A closed phase, with one part carried over to the next phase" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Closed phases keep their diagram. Click any part to compare what the plan said with what Halfcycle actually found in the code. In this example, the audit trail was planned but not built, so it was carried over to phase 2, and the reason is recorded on the card.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl8e9en2958nguvnuzwez.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl8e9en2958nguvnuzwez.webp" alt="What the plan said, and what Halfcycle found in the code" width="800" height="1044"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This gives you a written record of every phase: what was agreed, what was delivered, and what moved to the next phase and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live build
&lt;/h2&gt;

&lt;p&gt;The Live build page shows the current phase as it is being built.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5bvkcprl8cdqikgb6m9.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5bvkcprl8cdqikgb6m9.webp" alt="Live build: the phase as waves of tasks, with an agent on each" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tasks are arranged in waves, in the order their dependencies allow. Each card shows the task, the agent working on it, the reviewer who will check it, and how long it has been running. The bar across the top shows tasks completed, in flight, waiting for a person and blocked, along with time elapsed and overall progress.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Task details.&lt;/strong&gt; Click any task to open its details beside the graph.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffe8j9erzwgae6nop5zs0.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffe8j9erzwgae6nop5zs0.webp" alt="Task details: who builds it, who reviews it, what it waits on and what it holds up" width="800" height="1005"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The panel shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;time spent against the estimate, and whether it is on time;&lt;/li&gt;
&lt;li&gt;the agent building it and a different agent reviewing it;&lt;/li&gt;
&lt;li&gt;which tasks it is waiting on, and which tasks are waiting on it;&lt;/li&gt;
&lt;li&gt;whether it is on the critical path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Critical path.&lt;/strong&gt; Click &lt;strong&gt;Critical path&lt;/strong&gt; to highlight the chain of tasks that determines when the phase will finish. A delay on any of these tasks delays the whole phase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2bwnt74jfo5u0m86zfzc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2bwnt74jfo5u0m86zfzc.webp" alt="The critical path, highlighted" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Crew
&lt;/h2&gt;

&lt;p&gt;The Crew page shows the team of agents working on your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frobr7g4k8awskg5qy2ui.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frobr7g4k8awskg5qy2ui.webp" alt="Your team: twenty-three agents and you" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The team is grouped by role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Analysts and architects&lt;/strong&gt; question the idea and design the system before anything is built.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Builders&lt;/strong&gt; write the code and the specs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reviewers&lt;/strong&gt; check what the builders produced.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leads&lt;/strong&gt; run the team and watch every change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You&lt;/strong&gt; approve the scope, answer the questions only you can, and accept each phase.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below the team, a grid shows which roles lead and which help at each of the six stages, with the current stage highlighted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fay6l41dtj19ytn7oecu7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fay6l41dtj19ytn7oecu7.webp" alt="Every agent, with its role and current status" width="800" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each agent is listed with its role and current status: working on a task, idle, waiting for a person, or stood down because its part of the work is finished.&lt;/p&gt;

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

&lt;p&gt;The assignment rules are shown in plain language:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A task only goes to an agent with the right skills for it.&lt;/li&gt;
&lt;li&gt;A builder never reviews its own work.&lt;/li&gt;
&lt;li&gt;Each agent works on one task at a time.&lt;/li&gt;
&lt;li&gt;The final acceptance test is done by a person, and that person cannot be the builder.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Layers
&lt;/h2&gt;

&lt;p&gt;The Layers page lists every step in every stage, with its status and the evidence behind it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fobffzx9dkhnigxrh3bh9.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fobffzx9dkhnigxrh3bh9.webp" alt="Layers: each step, its status, and its evidence" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Evidence can be a document, an answered question, a code change, or the reason a step was put on hold. Steps that need a person are marked, and steps that cannot run yet explain why. Below the list are the documents each stage produced and the approvals that closed it.&lt;/p&gt;

&lt;p&gt;Use this page when you need to check whether something was decided, and where. Every answer links to its source, so you do not have to search through chat history.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ledger
&lt;/h2&gt;

&lt;p&gt;The Ledger records every problem Halfcycle caught on your project, newest first.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkbv0lcggiuzoj6mjllc3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkbv0lcggiuzoj6mjllc3.webp" alt="Ledger: interventions, checks in force, and machines" width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each entry shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;what happened:&lt;/strong&gt; blocked in the code, fixed automatically, corrected in the spec, corrected in the scope, prevented by a question, raised for a person, or approved in the System view;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;when and where:&lt;/strong&gt; the stage it happened at, and a link to the evidence;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;who caught it:&lt;/strong&gt; the agent or person;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;what changed&lt;/strong&gt; as a result.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checks in force&lt;/strong&gt; lists the automatic checks running on this project, what each one looks for, and whether it blocks a change or only warns. Most checks apply to every Halfcycle project: when an implementation goes wrong anywhere, the cause and the fix reach every project automatically. Some checks are specific to this project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Machines&lt;/strong&gt; lists every computer working on the project and whether Halfcycle's checks are running correctly on it. If a check is missing on a machine, this section tells you which one.&lt;/p&gt;

&lt;p&gt;The Ledger is a record of the problems that never reached your product, and exactly where each one was stopped.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phases
&lt;/h2&gt;

&lt;p&gt;The Phases page shows the history of the project, one row per phase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fde32gkcpv6of1h198sgp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fde32gkcpv6of1h198sgp.webp" alt="Phases: dates, approvals, defects found in testing, and outcome" width="799" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For each phase, you can see its dates and duration, its approvals, the defects found when a person tested the finished phase, and the outcome. In this example, one phase was accepted after a second round of testing with three defects fixed, and another was accepted first time with its Build Record delivered.&lt;/p&gt;

&lt;p&gt;Each phase is locked when it closes, so its history cannot change afterwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  On mobile
&lt;/h2&gt;

&lt;p&gt;The console works fully on a phone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F969dw2vvd4uq17mrezni.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F969dw2vvd4uq17mrezni.webp" alt="The Overview page on a phone" width="800" height="1731"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;When something needs your decision, the console opens on your to-do list. Otherwise, it opens on the project diagram.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;With the Halfcycle console, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;see what needs your decision as soon as you open a project;&lt;/li&gt;
&lt;li&gt;review every phase as a diagram and approve it part by part before anything is built;&lt;/li&gt;
&lt;li&gt;rely on approvals that stop counting for any part of the plan that changes afterwards;&lt;/li&gt;
&lt;li&gt;compare what was delivered with what was agreed when each phase closes;&lt;/li&gt;
&lt;li&gt;see the critical path, so you know when a phase will finish and what could delay it;&lt;/li&gt;
&lt;li&gt;manage all your projects from one screen;&lt;/li&gt;
&lt;li&gt;share a live page instead of writing status updates;&lt;/li&gt;
&lt;li&gt;keep a record of what was agreed, built, carried over and dropped, phase by phase;&lt;/li&gt;
&lt;li&gt;see every problem that was caught before it reached your product.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Get started&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;npx halfcycle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run this command in the folder you want to work in, then open the folder in Claude Code and describe what you are building. When the install finishes, it shows the address of your project's console.&lt;/p&gt;

&lt;p&gt;Rolling Halfcycle out across a team or a company? &lt;a href="https://halfcycle.ai/contact" rel="noopener noreferrer"&gt;Talk to us&lt;/a&gt; about fitting it to your process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://halfcycle.ai" rel="noopener noreferrer"&gt;halfcycle.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>claudecode</category>
      <category>projectmanagement</category>
    </item>
    <item>
      <title>Introducing Halfcycle: the software team your AI engineer was missing</title>
      <dc:creator>Halfcycle</dc:creator>
      <pubDate>Tue, 20 Oct 2026 14:26:13 +0000</pubDate>
      <link>https://dev.to/halfcycle/introducing-halfcycle-the-software-team-your-ai-engineer-was-missing-2fpc</link>
      <guid>https://dev.to/halfcycle/introducing-halfcycle-the-software-team-your-ai-engineer-was-missing-2fpc</guid>
      <description>&lt;p&gt;Halfcycle is a module that runs a five-layer build method inside your own Claude Code (npx halfcycle).&lt;/p&gt;

&lt;p&gt;Your coding agent is a very good engineer. It is also working alone. Nobody decides what is being built before it starts, nobody works out how the pieces fit, nobody cuts the work into tasks, and nobody checks its work except the agent that wrote it.&lt;/p&gt;

&lt;p&gt;Halfcycle is the rest of that team, running inside your own Claude Code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;a product owner&lt;/strong&gt;, who drafts what you are building and asks the decisions only you can make, one at a time, each with a recommended answer;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;an architect&lt;/strong&gt;, who works out how the pieces fit and writes down the rules the system has to keep;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;a planner&lt;/strong&gt;, who cuts the work into tasks a team can build in parallel, and puts the things only a person can do into the plan as tasks of their own;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;reviewers&lt;/strong&gt;, who check every plan and every finished task, and never the work they wrote;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;builders&lt;/strong&gt;, named agents that take the tasks, each sized to the job.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You do not need to know any of that process. You say what you want to build, and Halfcycle works out the next step every time. You watch the team on the project console while it works.&lt;/p&gt;

&lt;p&gt;The clearest way to show what that gives you is a real build. So we built a small service, kept everything (every question, every answer, every screenshot) and wrote it up here.&lt;/p&gt;

&lt;h2&gt;
  
  
  The build: a webhook inbox
&lt;/h2&gt;

&lt;p&gt;Webhooks get lost. A handler throws during a deploy, the provider retries on its own schedule or not at all, and a week later somebody asks why a customer's payment never showed up. The fix is a small service in front of the handler: receive every webhook, check its signature, keep a copy, and let you replay any delivery your handler failed.&lt;/p&gt;

&lt;p&gt;It looks like a weekend job: three endpoints and a table. It is also exactly the kind of thing where the expensive mistakes are decisions rather than code: what happens on a retry, what counts as failed, what a replay looks like to the handler. A single coding agent makes those calls silently, as defaults. A team asks them first. That is why this build is quicker and easier with Halfcycle than without it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing it
&lt;/h2&gt;

&lt;p&gt;The whole install is one command, run in the repository you want to work in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx halfcycle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It starts by reading where you are: the version, your Claude Code, the repository, and whether Halfcycle is already set up in it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmb9b3i6s3mxsgjm5pqgp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmb9b3i6s3mxsgjm5pqgp.webp" alt="Running npx halfcycle: what it found, and the account it will use" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then it signs you in through your browser, creates the project, and sets up the repository. Its last lines give you the address of the project's console: the page where you will watch the team work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9rtiqy45c6whw3g9thtr.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9rtiqy45c6whw3g9thtr.webp" alt="npx halfcycle: signed in, project created, and the address of the project console" width="799" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The install also suggests running a setup command next. You do not need to. As the rest of this build shows, telling Claude Code what you want to build gets you to the same place.&lt;/p&gt;

&lt;p&gt;Open the console straight away and it is already there, empty, with the six stages the project will move through: set up, define, persist, scope, design, build. It fills in as the team works.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa0v1rraprnvgz2ipaotf.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa0v1rraprnvgz2ipaotf.webp" alt="The project console right after install: six stages, nothing recorded yet" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What we typed
&lt;/h2&gt;

&lt;p&gt;Then we opened Claude Code in the repository and typed one sentence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I want to build a webhook inbox: a small self-hosted service that receives webhooks from Stripe, GitHub and similar, checks their signatures, stores every delivery, shows them in a simple list page, and lets me replay a stored delivery to my own handler when it failed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That was the last instruction about process. We did not run a setup command, pick a phase or look anything up. Halfcycle read the empty repository, decided there was nothing recorded yet, and started with setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftdfj80b8o2ejo4vg817a.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftdfj80b8o2ejo4vg817a.webp" alt="Halfcycle works out the first step on its own: nothing is recorded yet, so it starts with setup" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From there it asked one question at a time, each with a recommended answer, what it would cost to change later, and the reason. A note on honesty: the answers in this run were typed by an agent acting as the product owner, and every one of them is in the run's decision log.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the team caught before any code
&lt;/h2&gt;

&lt;p&gt;The product owner and the architect found six problems before a builder was given a task. None of them is a coding mistake, and every one would have survived a normal code review, because the code would have been correct.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replay would have broken the handler.&lt;/strong&gt; The first draft forwarded each stored delivery with the provider's original signature. Halfcycle checked how Stripe signs: the signature carries a timestamp, and Stripe's own libraries reject it after five minutes. So every replay of a Stripe delivery would fail the handler's signature check, which is the one feature the product exists for. The fix was for Hookbox to sign what it forwards with its own secret, so a replay looks exactly like a live delivery however old it is.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi97sbrqm11jv184xhqek.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi97sbrqm11jv184xhqek.webp" alt="Before any code: replay as drafted would fail Stripe's timestamped signature" width="799" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sitting in front of the handler switches off the provider's retries.&lt;/strong&gt; Once Hookbox answers Stripe with a 200, Stripe considers the job done. Stripe would have retried a failing handler for days. Without a retry of its own, Hookbox makes every deploy blip a manual clean-up, which is worse than having no Hookbox. Four automatic retries went into the first version.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1u7ravuusd3n1e8cdo68.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1u7ravuusd3n1e8cdo68.webp" alt="Being in the path stops the provider retrying, so Hookbox needs its own retry" width="800" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal could fail without anyone noticing.&lt;/strong&gt; We agreed the measure was "no lost webhooks". Halfcycle pointed out that nothing in the plan told anyone when a delivery ran out of retries, so failures could pile up unseen, which looks exactly like a lost webhook. A single notification to a URL you choose went in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The assumption that kills the product.&lt;/strong&gt; Retry and replay both resend deliveries. If the handler is not idempotent, Hookbox turns its recovery features into duplicate charges. Halfcycle named this as the claim the whole product rests on and set a thirty-minute test to run against the real handler before Hookbox goes in front of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Whether to build it at all.&lt;/strong&gt; Before any design, it compared building Hookbox with two existing webhook services and with doing nothing, and recommended an hour trying the cheapest credible alternative first. We overrode it: the alternative needed a database server, a queue and two processes for one inbox. That override became a rule the rest of the design had to keep: one process, one file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fhalfcycle.ai%2F_astro%2Fhookbox-build-or-buy.CWllfeel_14HRG0.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fhalfcycle.ai%2F_astro%2Fhookbox-build-or-buy.CWllfeel_14HRG0.webp" alt="It checked whether we should build this at all" width="800" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A bad signature answered with a 200 strands real events.&lt;/strong&gt; If Hookbox's signing secret were misconfigured, every genuine event would fail verification. Answering 200 tells Stripe to stop, so all of them would be stuck. Answering 400 keeps Stripe resending until the secret is fixed. It checked that claim against Stripe's documentation, and where the documentation did not give a number (Stripe's response timeout), it wrote "unverified" instead of guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that took too long
&lt;/h2&gt;

&lt;p&gt;Before any build task was handed out, the feature specs went to review by an agent that had never seen them. If that review found problems, they were fixed, and the specs went to another new reviewer, never back to the one that asked for the fixes.&lt;/p&gt;

&lt;p&gt;That took sixteen rounds. Problems found per round started at 21, 13, 13, 6, 11, 4, 6, 2, 3, then between one and five a round until the sixteenth reviewer let the specs through. Every one was real. Among them: a sign-in redirect that could send you off-site, a send that shutdown would have cancelled halfway, an example config file that would have stopped the service starting. Each round took seven to ten minutes. Finding any of those in production would have cost far more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpyto93106hj96pf3d8x5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpyto93106hj96pf3d8x5.webp" alt="The console records every time the review stopped the work, and why" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But sixteen rounds is heavy for a proof of concept, and later rounds were mostly finding edge cases in the previous round's fixes. We are not defending the sixteen. It is going back into the method.&lt;/p&gt;

&lt;h2&gt;
  
  
  The things only a person can do
&lt;/h2&gt;

&lt;p&gt;Some of the build needed us, not an agent: create a Stripe test account, install the Stripe CLI, capture one real event to test against, and walk the finished thing by hand. We asked for those to go into the build plan as tasks of their own, with steps, so nothing waited on us that did not have to.&lt;/p&gt;

&lt;p&gt;That is what happened. The plan has nineteen tasks. Five are ours, each with numbered instructions and a check that says when it is done. Only the tasks that need a real Stripe event wait on them. Everything else built.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fva7lfwlmqhremoti1466.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fva7lfwlmqhremoti1466.webp" alt="Human tasks in the build plan, each with steps and dependencies" width="799" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The team at work
&lt;/h2&gt;

&lt;p&gt;Once the plan was approved, the build ran as a team. Each task went to a named agent with the right depth for the job: ADA on the delivery store, OTTO on the Stripe receiver, NOVA on the inbox page, MILO on the test handler, HUGO on the build checks. Each finished task went to a different agent for review before it was merged. A builder never reviews its own work.&lt;/p&gt;

&lt;p&gt;The console shows all of it as it happens. The Live Build view is the plan as a graph, wave by wave, with each task's agent and state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyunf92wskxygx3592f5g.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyunf92wskxygx3592f5g.webp" alt="Live Build: fourteen of twenty-one settled, one review failed and was fixed" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The red node is a review that failed. CASS rejected OTTO's Stripe receiver: its test fixture did not match what the spec required, so the test proved less than it claimed. OTTO fixed it, and THEO, a different reviewer, checked it again and passed it. Nobody had to notice. The console did.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fju2ynn4zxredvy2j84eb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fju2ynn4zxredvy2j84eb.webp" alt="Overview: every stage settled, each approval timestamped, and the first problem caught in the code" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Overview also keeps a "first catch": the first problem Halfcycle found in this project's code. Here it was a database update aimed at a row nothing in the change creates, so the update would silently do nothing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmnk9smf0aklejhm43r5g.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmnk9smf0aklejhm43r5g.webp" alt="The first problem caught in the code" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two hours and eleven minutes after the build started, every task that did not need a person was built, reviewed and merged. The build stopped where it should, at our tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it took from us
&lt;/h2&gt;

&lt;p&gt;One sentence to start. Thirty-seven answers, most of them a recommendation we agreed with, and a couple of overrides. No process to learn, no command to remember, no prompt engineering. Halfcycle told us what came next at every step, and the console showed what the team was doing while we were not looking.&lt;/p&gt;

&lt;p&gt;That is the difference between an AI engineer and a software team. The engineer would have built this webhook inbox quickly, and built the six problems into it with the same confidence. The team found them while they were still sentences in a document, where fixing them took minutes, then built it in parallel and checked every piece with someone who had not written it. That is where Halfcycle makes building quicker and easier: the rework you never have to do.&lt;/p&gt;

&lt;p&gt;Your coding agent already writes good code. Give it the team it was missing: run &lt;code&gt;npx halfcycle&lt;/code&gt; in your repository, then tell Claude Code what you want to build.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>webhooks</category>
      <category>go</category>
    </item>
    <item>
      <title>Nine blockers on a feature that was two screens and a button</title>
      <dc:creator>Halfcycle</dc:creator>
      <pubDate>Fri, 09 Oct 2026 19:45:24 +0000</pubDate>
      <link>https://dev.to/halfcycle/nine-blockers-on-a-feature-that-was-two-screens-and-a-button-26o</link>
      <guid>https://dev.to/halfcycle/nine-blockers-on-a-feature-that-was-two-screens-and-a-button-26o</guid>
      <description>&lt;p&gt;Halfcycle is a module that runs a five-layer build method inside your own Claude Code (npx halfcycle).&lt;/p&gt;

&lt;p&gt;Most process claims cannot be checked, because nobody writes down the bugs that never happened. Here is one that can.&lt;/p&gt;

&lt;p&gt;A real feature on a live product: let somebody restore an older version of a document they had edited. Small by any measure. Two screens of work and a button. It was reviewed five times before anybody was allowed to start building.&lt;/p&gt;

&lt;p&gt;Blockers found each round: six, then two, then one, then none, then none. Nine in all.&lt;/p&gt;

&lt;p&gt;Here are eight of them. The first four would have reached real users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Restore could overwrite a file that is meant to be locked.&lt;/strong&gt; The rule was enforced in the normal save path, and nobody copied it into the new restore path. Every test of the new code passes. There is no failing assertion to find, because the thing that is wrong is a rule that is not there. Somebody has to notice an absence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The undo feature could destroy the backup it exists to protect.&lt;/strong&gt; Save a backup, update the search index, commit, all one step. If the index update failed, the backup was discarded and the new content had already been written. The window is small and the loss is total.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The button would never have appeared for anybody.&lt;/strong&gt; It was keyed on a piece of data the system only attaches to exactly the records the feature refuses to act on. The code is correct in isolation. It ships to nobody, silently, and every test is green.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Restoring a document would have silently deleted its labels.&lt;/strong&gt; A shared helper wipes all labels and puts back whatever it is handed, and the design handed it an incomplete list. Nothing fails. Nothing logs. The loss surfaces weeks later, somewhere else, and looks like a different bug entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The plan described a bug that did not exist.&lt;/strong&gt; It came from a search of the codebase that was accurate and drew the wrong conclusion from what it found. Everything downstream of it would have been solving a problem that was not there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The design could not be built where it was going.&lt;/strong&gt; The place the plan chose to hang the new screen is a sibling of the thing it needed to replace, and a sibling cannot replace anything. Correct design. Wrong address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The final checklist pointed at addresses nobody had ever written down.&lt;/strong&gt; It survived four rounds of review doing that. It needed no knowledge of the code to catch — it is a mechanical check that a path exists — and it consumed an expensive human reader anyway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The summary everybody reads first still described a plan three rounds had thrown out.&lt;/strong&gt; The document had been fixed. The abstract at the top of it had not, and the abstract is the part people actually read.&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing they have in common
&lt;/h2&gt;

&lt;p&gt;Not one of them is a coding mistake.&lt;/p&gt;

&lt;p&gt;Every one sits in a join: between two pieces of code, between two people's work, or between the plan and what was already there. An agent writing the file in front of it cannot see any of them, because none of them is visible in the file in front of it. Neither can a reviewer reading the change on its own, for the same reason.&lt;/p&gt;

&lt;p&gt;That is the shape of how AI-assisted work actually fails now. Not bad code. Confident, well-tested, well-structured work built on something nobody examined.&lt;/p&gt;

&lt;p&gt;And notice which tools would have caught which. A linter: none. A type checker: none. A test suite: none, and worse than none, because four of these ship green and green is read as evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest part
&lt;/h2&gt;

&lt;p&gt;Five rounds on a feature that small is heavy, and we are not going to defend it.&lt;/p&gt;

&lt;p&gt;The first round alone returned six blockers. Rounds two through four found five more defects, and nearly all of those five were introduced by the previous round's own fixes. That is its own finding, and it is uncomfortable: &lt;strong&gt;the fixes are the highest-risk region of the work.&lt;/strong&gt; A reviewer who asks for a change is the least able to see what the change broke, which is exactly why the next round has to run in a session that has never seen the last one.&lt;/p&gt;

&lt;p&gt;The method was amended in four places because of this feature. What a scoping document has to mark as unverified before it travels. What a design has to check rather than assume. A cheap mechanical pass that runs before any expensive reader is spent on things a mechanical pass can do — the checklist pointing at nonexistent addresses should never have reached a human at all. And when the summary everybody reads first is allowed to be written, which is: last.&lt;/p&gt;

&lt;p&gt;That is the loop working, and it is also the argument. A finding on one project becomes a step on every project after it, and nobody has to install anything for that to be true.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it would have cost
&lt;/h2&gt;

&lt;p&gt;The four that would have reached users are not equivalent to four bug reports.&lt;/p&gt;

&lt;p&gt;The label deletion is data loss with a delayed and misattributed symptom — the kind that gets investigated as a different problem for a week. The backup destruction is a support conversation you cannot win. The button that appears for nobody is a feature that ships, gets announced, and generates no usage, and somebody spends a sprint on analytics before anyone opens the code.&lt;/p&gt;

&lt;p&gt;Against that: five rounds of review on two screens of work, which felt excessive at the time and still does.&lt;/p&gt;

&lt;p&gt;We do not have a number for what that trade is worth and are not going to invent one. What we have is the list above, which is checkable, and the note that every finding on it is now a step earlier in the process.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Getting started&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;npx halfcycle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run that in the folder you want to work in, then open it in Claude Code and say what you are building. Needs Node 20 or newer. There is nothing to learn first and no next step to remember — it tells you what is next when it is next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://halfcycle.ai" rel="noopener noreferrer"&gt;halfcycle.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codequality</category>
      <category>testing</category>
      <category>ai</category>
      <category>discuss</category>
    </item>
    <item>
      <title>The first useful thing it does is disagree with you</title>
      <dc:creator>Halfcycle</dc:creator>
      <pubDate>Fri, 09 Oct 2026 19:44:19 +0000</pubDate>
      <link>https://dev.to/halfcycle/the-first-useful-thing-it-does-is-disagree-with-you-3knb</link>
      <guid>https://dev.to/halfcycle/the-first-useful-thing-it-does-is-disagree-with-you-3knb</guid>
      <description>&lt;p&gt;Halfcycle is a module that runs a five-layer build method inside your own Claude Code (npx halfcycle).&lt;/p&gt;

&lt;p&gt;Node 20 or newer, and Claude Code. That is the whole prerequisite list. Everything below happens in one sitting.&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;tally &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;tally
npx halfcycle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu80gviivvz2e01n0ilmk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu80gviivvz2e01n0ilmk.webp" alt="Running npx halfcycle in an empty folder, through to the project link" width="799" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That command signs you in through your browser and creates the project your work gets recorded against. It talks to one address, the same one for everybody, and it ships in the CLI, so there is nothing to configure and no value anyone has to give you first. If it cannot reach us it stops and writes nothing, which is deliberate: a folder set up with no cover behind it is worse than one that is not set up at all.&lt;/p&gt;

&lt;p&gt;When it finishes it points you at your project's page on the web. You can also just sign in at app.halfcycle.ai whenever you want.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhzv8hakzch7zngv38if3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhzv8hakzch7zngv38if3.webp" alt="Your projects, listed after signing in at app.halfcycle.ai" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click one and you are looking at its console. There is nothing to set up and no second account — it is the same sign-in as the install.&lt;/p&gt;

&lt;p&gt;The part worth opening on day one is the crew.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fimjwbnd8rih9ctv3j5fy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fimjwbnd8rih9ctv3j5fy.webp" alt="The Crew page: every agent on the project, and what each is doing right now" width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is the team, live. Twenty-one agents grouped into builders, reviewers, and the ones that are always on. Each shows what it is for and how deep it goes, and each is busy, idle or stood down right now — not a log of what ran an hour ago.&lt;/p&gt;

&lt;p&gt;You will not have much on that page twenty minutes in, and that is the point of looking at it early: you can watch it fill up. The first time you run real work, the page stops being a roster and starts being the answer to a question that has no good answer in a terminal. If three agents are running, "what are they all doing" gets you three scrollbacks and a guess.&lt;/p&gt;

&lt;p&gt;The other page to know about on day one is the overview, which is where the project's shape lives.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhdtbp6a9i8ktlu3tec17.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhdtbp6a9i8ktlu3tec17.webp" alt="The Overview page: where each gate stands, the active phase, and what is in flight" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Where each gate stands, which phase is active, and what is happening right now. A phase is a slice of the product that ships and can be shown to someone, and the strip along the top is every gate between you and closing this one.&lt;/p&gt;

&lt;p&gt;On a solo project all of this sounds pointless right up until the first time you come back after two weeks away and cannot remember where you were. The console is a faster way to reload a project than your own notes, because it is a record of what happened rather than a record of what you meant to do. On a team it is the only place the work exists for somebody who was not in the session.&lt;/p&gt;

&lt;p&gt;Then open the folder in Claude Code.&lt;/p&gt;

&lt;p&gt;That is the last instruction in this article, which is worth pausing on, because it is unusual. There is no command to learn, no next step to remember, and no order to get right. Say hello, or say what you want to build, and it takes it from there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The next ten minutes are questions
&lt;/h2&gt;

&lt;p&gt;This is the part people are not expecting, so it is worth saying plainly: nothing asks you to fill in a form. It reads the folder first, works out what it can, and then asks you only the things it genuinely cannot answer.&lt;/p&gt;

&lt;p&gt;The questions come one at a time, in an order where nothing gets asked before the thing it depends on. Each one arrives with a recommended answer and the reasoning behind it, so the cheap path is to read the recommendation and say yes. And where the answer is a fact about your repo rather than a decision, it has already gone and looked, and it shows you what it found rather than asking you to confirm something it could have checked.&lt;/p&gt;

&lt;p&gt;You also cannot get ahead of it. Ask for something three steps away and it either does it, because that is what came next anyway, or it tells you why not and what is missing. There is no path through this where you skip a step by accident, which means there is nothing to hold in your head and no checklist to keep open in another tab.&lt;/p&gt;

&lt;p&gt;The one thing it will not do is let you record a decision without a reason. Not a spelling of a reason. An actual one. This is the first place the tool has an opinion, and it is worth understanding why it holds it: in three months, the only difference between a decision you can revisit and a decision you have to re-litigate from scratch is whether anyone wrote down why. Every agent session after this one reads what you decided here. A decision with no rationale attached is a decision the next session will quietly reinterpret.&lt;/p&gt;

&lt;p&gt;Answer them honestly rather than quickly. You are the only person in this loop who knows what you are building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then it asks what you are making
&lt;/h2&gt;

&lt;p&gt;Say it in your own words. Not a spec, not a structured brief. A paragraph.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I want a thing where I can log what I ate and it tells me roughly what I have had this week. Just for me. Web, phone browser mostly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What comes back is a draft of what you just described, longer and more specific than what you said, and about seventy percent right. That draft is not the product. It is the strawman, and the strawman exists because pushing back on a specific wrong claim is enormously easier for a human than answering an open question against a blank page. Anyone who has been handed a template with an empty "Non-functional requirements" heading knows exactly what that difference feels like.&lt;/p&gt;

&lt;p&gt;So it drafts, and then it turns on the draft. Same interrogation shape as the setup: one question at a time, ordered, each with a recommended answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The moment worth waiting for
&lt;/h2&gt;

&lt;p&gt;Somewhere in there, it asks you something you had not decided.&lt;/p&gt;

&lt;p&gt;On a food log, it is usually this one, or a version of it: what happens when you log the same thing twice in one day. That sounds trivial. It is not, and here is the honest shape of why. If two identical entries are one row with a count, your weekly total is a sum over counts and your history is lossy. If they are two rows, your total is a row count and you can show the day back to the user exactly as it happened. Both are fine. But one of them is a schema, and you are about to build on it, and nobody was going to ask.&lt;/p&gt;

&lt;p&gt;That is the intervention. It is not a bug caught. It is a decision surfaced before it became a default, which is the only time a decision is cheap.&lt;/p&gt;

&lt;p&gt;The tell that it landed is that you stop typing for a second.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you have after twenty minutes
&lt;/h2&gt;

&lt;p&gt;Files, in your own folder, in plain markdown. The context your agent sessions read on every future session, the decisions you made and the reasons you gave, and the beginning of a description of your product that is more specific than the one in your head.&lt;/p&gt;

&lt;p&gt;Nothing of ours is left in there. The process itself — the steps, the templates, the questions — arrives in the session that asks for it, sized for the step you are on, and is not at rest in your repository. What stays is what you wrote.&lt;/p&gt;

&lt;p&gt;You have not built anything yet. You do not need to know what happens next, either. It will say.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Getting started&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;npx halfcycle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run that in the folder you want to work in, then open it in Claude Code and say what you are building. Needs Node 20 or newer. There is nothing to learn first and no next step to remember — it tells you what is next when it is next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://halfcycle.ai" rel="noopener noreferrer"&gt;halfcycle.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ai</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
