$ aidlc log --releases
One post per release, generated from the lifecycle state that produced it: the problem, the options weighed, and what shipped — including what each feature cost to build.
v2.16.0 ·
Milestones show up on GitHub
Roadmap milestones landed in the last release, but only on my side of the screen. The local page and aidlc roadmap status grouped every item under the goal it serves. The GitHub issues that aidlc…
v2.15.0 ·
Roadmap items say which milestone they serve
The roadmap could tell you what state every item was in. It could not tell you what any of it was for. In one project I run, the roadmap has 96 items and 51 of them are in hold/. Many were parked…
v2.14.0 ·
Merged roadmap items leave hold when the work ships
Merging is how AIDLC keeps a backlog small. When two roadmap items are about the same thing, one becomes the carrier, the other gets parked in hold/ with a reason like "merged into…
v2.13.0 ·
Autopilot asks you what it is waiting on
Autopilot's agents run unattended, so they can ask nobody anything. The cost is that every decision only a person can make ends up in a file. A paused item, an open question in the decision log, an…
v2.12.0 ·
Every release is installed before it is published
Until now, nothing checked the package you actually install from npm until after it was on npm. The release job ran the whole test suite against the source tree, then published. After that, one step…
v2.11.0 ·
Codex asks a question and waits
AIDLC runs on two platforms, Claude Code and Codex. When the agent needs a decision from you, both read how to ask it from one generated file, .aidlc/resources/questions/rendering.md. On Claude Code…
v2.10.0 ·
Autopilot status says what you need to decide
Since the last release, autopilot only stops after requirements or design when the phase left a decision open. That made every stop worth reading. It did not make any stop easier to act on. aidlc…
v2.9.0 ·
Autopilot stops only when there is a choice to make
The recommended autopilot setup pauses every item twice: once after requirements, once after design. I would come back in the morning to a row of items waiting for my approval. Most of them had…
v2.8.0 ·
Roadmap items carry their own answers
When I write a roadmap item, I know what I mean. I know which edge of the scope I care about, what the flag should be called, and what the default ought to be. Hours later, when autopilot picks the…
v2.7.0 ·
The agent stops asking what it already knows
An audit of every question AIDLC had written down for me found 141 of them. The recommended answer won 140 times. And 43 of them were the same question: should implementation run in one session, or…
v2.6.0 ·
The agent asks before it builds something else
I picked a two-column layout, Cockpit, for the AIDLC console. The agent built the one-column Stream instead and moved Cockpit to a new roadmap item. Nothing stopped it. The rebuild became its own…
v2.5.2 ·
A 429 in a file list is not a rate limit
On October 14 autopilot stopped its own merge queue over a test file. The pull request was green and mergeable. Before merging, autopilot brings the branch up to date with main, and git printed the…
v2.5.0 ·
Start a roadmap item in herdr and the agent is already there
Starting a roadmap item in its own worktree ends with a command to copy: cd <worktree> && claude "/aidlc-continue <name>". In herdr, which gives each worktree its own workspace, that meant the same…
v2.4.0 ·
Overnight runs decide small calls and leave a note
Autopilot runs agents with nobody watching. Until now the rule they follow said that any situation it did not list was a hard stop. So an item could park at 1am on a question a person would have…
v2.3.0 ·
Doctor catches roadmap items filed in the wrong place
Autopilot builds whatever sits in backlog/, in rank order. That folder is supposed to mean "could start now". Nothing checked that it did. In another project of mine, an item sat at rank 3 with a…
v2.2.0 ·
Releases now show up where you can see them
Every aidlc release creates a GitHub release. You have never seen one. The source repo is private, so its releases page is a 404 for everyone but me. The release notes GitHub writes for it are worse…
v2.1.0 ·
You can finally tell me what broke
Until this release, there was no way to tell me aidlc was broken. The source repo is private. So the "Issues" link on the npm page, the "GitHub" link in this site's header, and every link to the…
v2.0.0 ·
Two platforms built well beat six built thinly
AIDLC used to install into six coding agents: Claude Code, Codex, Cursor, Windsurf, Kiro and GitHub Copilot. Every skill, hook and install change had to be shaped six ways. Only two of them ever got…
v1.98.0 ·
One panel for everything being built
The console had two lists of the same thing. AUTOPILOT, across the top, showed what autopilot was building, with step badges, phase, tasks and pull request. INSTANCES, further down, showed every…
v1.97.0 ·
The tutorials caught up with the product
The tutorials on this site were last touched in early September. Since then AIDLC grew autopilot, a project constitution, roadmap ranking, a console, hooks and a way to undo a task. None of that was…
v1.96.0 ·
The console shows everything and takes one key
Two days ago aidlc with no arguments opened a console: one column of plain text, a prompt, and slash commands. It worked, but you had to know what to type. Autopilot showed up as one-line change…
v1.95.0 ·
The autopilot watch shows who needs you
aidlc autopilot status --watch used to draw a plain table with seven columns. On a laptop screen or in a split pane, the right edge fell off. That edge was the last event, the one column that says…
v1.93.0 ·
A roadmap page you can read at 166 items
The roadmap page that aidlc roadmap view opens was built when this repository had a dozen items. It now has 166: 138 done, 26 on hold, 2 in progress. At that size it stopped being something I could…
v1.92.0 ·
A failed start cleans up after itself
On 2026-10-10 the autopilot tried to start two backlog items and failed on both. The items had been written by an agent, and neither had a promotedto: line. aidlc start had already made each…
v1.91.0 ·
Every post now sounds like one person
Most of this blog did not sound like me. Until this change, 75 of the release posts were assembled by a script: the problem section from one lifecycle file, the options from another, what shipped…
v1.90.0 ·
A docs check that failed on a busy machine
This repo checks its own CLI docs every time work leaves the coding step. A script rebuilds the command reference from the built CLI and compares it with the committed copy. If they differ, the step…
v1.89.0 ·
A new release tag no longer fails open pull requests
On 2026-10-10 autopilot released v1.82.0 and v1.83.0 while three other pull requests were still in CI. Their CI failed with tag v1.83.0 has no manifest entry. Main was green. Nothing in those…
v1.88.0 ·
Finished work files its idea even when the link is lost
Three things about finished work and the guardrails around it were wrong, and this release fixes all of them. The first is the one that was visibly losing work. On 2026-10-09 two roadmap items,…
v1.87.0 ·
Finished work stayed claimed
Finishing an instance never let go of its claim. recordCompletion in packages/cli/src/commands/transition.ts is the only writer of status: complete, and it did not touch the claim store. The claim…
v1.85.0 ·
The blog sounded like nobody wrote it
My name is on every post on this blog, and in my own words most of them were "very complicated to understand and a lot of AI slop." They were not written. They were assembled. A release took the…
v1.84.0 ·
The build that failed without running
Autopilot counted every check that finished as fail or cancel as a failed build. That spent one of an item's two CI tries and relaunched the agent to fix code that was never tested. The second such…
v1.83.0 ·
The test results nobody ran
The agent that wrote the tests also wrote the file saying they passed. That was the whole check. Before a piece of work leaves testing, AIDLC wants a test-results.md and wants every acceptance…
v1.82.0 ·
Running discovery again erased what we wrote
Running aidlc discover a second time damaged a knowledge graph people had already written up. It seeds the graph through the same path as aidlc knowledge import, and on a project with hand-written…
v1.81.0 ·
Items a person must start
Autopilot builds whatever aidlc roadmap next names. The function behind it, pickNextAt in packages/cli/src/roadmap/next.ts, skips only bad ranks, promoted items and blocked items. Nothing kept…
v1.80.0 ·
The pack nobody asked for by name
People ask for "SSAE 16 guidance, like SOC 2". SSAE 16 is the retired AICPA standard behind SOC 1 reports. It replaced SAS 70 in 2011 and was replaced by SSAE 18 in May 2017. SOC 1 has no fixed…
v1.79.0 ·
One window instead of three
Bare aidlc opened a one-shot menu. You picked a command, it ran, and the program exited. Working with AIDLC still took three terminals: one for aidlc commands, one for the agent, and one for aidlc…
v1.78.0 ·
The roadmap page that opens on the work in play
The page aidlc roadmap view writes stacked a kanban board above a dependency map, with plain styling, and showed everything at once. I measured this repository's roadmap on 2026-10-09: 153 items,…
v1.76.0 ·
An agent that is not installed no longer stops the run
Autopilot died when the agent it was set up to run was not installed. spawnDetached in packages/cli/src/autopilot/run.ts starts the agent and returns child.pid ?? -1. When the command cannot be…
v1.75.0 ·
A sync that changed nothing reported 229 updates
aidlc knowledge sync, run twice with nothing changed in between, reported most of the graph as updated. On this repo on 2026-10-09 the second run said updated: 229 of 264 entities. The true answer…
v1.68.0 ·
Not every buyer asks for SOC 2
packages/content/packs/ held one compliance pack, soc2. Buyers outside the US ask suppliers for ISO/IEC 27001, not SOC 2, and an ISO auditor works in Annex A control numbers. A team that wanted the…
v1.67.0 ·
The roadmap picture that every move rewrote
The roadmap's only picture was two Mermaid files, graph-backlog.mmd and graph-full.mmd. They needed GitHub or an editor extension to render, and a Mermaid node cannot carry a link or a summary.…
v1.62.0 ·
The autopilot that never waited for a person
Nothing in autopilot waited for a person. aidlc autopilot setup asked about the agent, parallelism, cost cap and release step. The agent was told to run through every phase up to the release…
v1.58.0 ·
Undoing a task no longer means guessing its commits
Nothing tied a commit to the task it implemented. To undo one task I had to read git log and guess which commits were its. aidlc amend reopens a phase's documents, but nothing rolled back the code.…
v1.52.0 ·
The agent that wrote the code also graded it
Implementation ran every task in the task list in one session. By task 8 the context held tasks 1 to 7, and the agent that wrote the code also judged it, including the tests that define done. Nothing…
v1.50.0 ·
The documents were never read together
aidlc review reads one document at a time. Nothing read requirements, design and tasks side by side. A criterion the design forgot, or a task nobody asked for, passed every review and turned up later…
v1.48.0 ·
The changes were written down; the system never was
Each instance's requirements.md describes a change. After 80 instances, nobody could say what the system does today without replaying all of them. New work designed against stale artifacts, or…
v1.46.0 ·
One sentence instead of a cron job
The driver from v1.45.0 only moved when something called it. To use it I had to write a JSON file by hand, understand what a tick is, and install a cron job. What I wanted was to say "do the next 3…
v1.45.0 ·
The backlog works itself
Unattended mode let an agent finish one item with nobody watching. Then it stopped and waited for a person. Somebody still had to start the agent, open the pull request, wait for CI, merge, release,…
v1.44.0 ·
The release writes its own entry
Every release needed a person to pick the bump and hand-write a blog manifest entry. The v1.41.0 release failed once on exactly that. Two chore pull requests merged since the last tag were not…
v1.43.0 ·
The next item is not a guess
Nothing ordered the backlog. "What next?" was answered by a person reading ten items, or by an agent guessing. The order we had agreed for this project's ten items existed only in a chat message.…
v1.42.0 ·
Nobody is watching
Every skill assumed a person was there. Two unattended dry runs of a roadmap item on 2026-10-02 each logged 13 places where a skill said to ask, wait, present a menu or get approval. Without a rule…
v1.41.0 ·
A criterion that names its test
Acceptance criteria in AIDLC were free prose with an ID. Some were testable and some were wishes, and the only way to tell them apart was to read them. Bug fixes were worse. The requirements said…
v1.39.0 ·
A page for each task
The website taught, with tutorials, and listed facts, with the CLI, phases, templates and glossary. It had no page for "I want to do X, give me the steps." Someone who already knew AIDLC and wanted…
v1.38.0 ·
A failure that says what to do
Every phase guide, the review guide and the two gate commands ended by reporting a state and stopping. On 2026-09-29, after a review of the observability-streams instance, the agent listed 26…
v1.37.0 ·
A workflow that had never run
Turn on roadmap.sync and every roadmap item lands on GitHub as a labelled issue. Then it stops. A GitHub Project board on top of that shows every issue in one column with nothing to move it. Two…
v1.36.1 ·
The file was there the whole time
The release blog refused a post because it cited a file that did not exist. The file existed. It had a line number on the end. The blog has a guard that checks every path in backticks names a real…
v1.36.0 ·
A pointer costs the file it lands on
The emitted .aidlc/skills/aidlc-overview.md had grown to 24,564 bytes. It was 22,902 when I filed the item a week earlier, and 18.6KB a week before that. Other skills send readers to it for one rule…
v1.35.0 ·
The report that said nothing was wrong
aidlc amend refused a Reopens: line that named the phase you were standing in, with "a reopen moves backwards". On inbox-intake-bar, in testing, a one-line criterion fix therefore reopened…
v1.34.0 ·
The question nobody could answer
On a fieldmodel-apps piece of work called assertion-store, on 2026-09-26, the product owner declined all four of the first questions AIDLC asked. The reply was the same each time: "I still don't…
v1.33.0 ·
The brake that was only on half the machine
Finishing a piece of work kept creating more of it. The framework has always capped what an instance learns. The retrospective distills zero to three lessons and calls an empty result valid. It…
v1.32.0 ·
The file that only grew
.aidlc/guidance/lessons.md had reached 90,285 bytes, about 22k tokens, across 23 instance sections. Eight phase skills told every session to read all of it on entry, and once read it sat in the…
v1.31.0 ·
Two rules nobody could obey
The skill that writes roadmap items told its agent one thing: do not add any other field. It is the one artifact AIDLC produces that is meant to leave the repository. A contributor with no checkout…
v1.30.0 ·
The protocol that was already dead
A phase would ask me something without saying why, what my answer blocked, what the repository already said about it, or what happened if I said nothing. I could not decide from that. I could guess,…
v1.29.0 ·
The phase nothing ever measured
AIDLC had never once measured the first phase of any piece of work it ran. Every instance, since the beginning. That is not what the report said. The report came from running the lifecycle end to end…
v1.28.0 ·
The cheapest token is the one you never carry
You are not paying for the model to think. You are paying for it to remember. 95.9% of the tokens this project has spent were re-reads of a conversation it was already carrying.
v1.27.1 ·
The plus sign that meant two things
A refresh command rewrote 19 files and said nothing about what it had taken away. Compiled phase skills are build artifacts, regenerated from the project context documents. In practice they were also…
v1.27.0 ·
The bill was never the thinking
I counted before I wrote anything. Across this repository's 53 transcripts, AIDLC counted 17,292 usage-bearing lines. There were 9,357 distinct API responses. That is an over-count of 1.848x. Claude…
v1.26.2 ·
Eleven reviews the gate could not see
aidlc review <instance> requirements wrote requirements.review.md. The review gate looked for findings keyed requirements.md. The two never met, so a complete adversarial review, written, parsed and…
v1.26.1 ·
The suite told nine people somebody else broke it
A test suite is meant to tell you that you broke something. This one told nine people in three days that somebody else had, and it was wrong every time. The cause was a number. Two tests walk the…
v1.26.0 ·
The flag meant “render this way”, not “this is ours”
A guidance layer reaches an agent because it is registered. The file on disk is inert. The entry in the guidance index is what puts a pointer into every emitted skill. Delete the file and you get a…
v1.25.0 ·
The wrong facts were too unimportant to read
The knowledge graph is what every agent reads before it reads any code. aidlc knowledge query costs one command; re-deriving a fact costs a session. So the graph earns its keep by being right, and…
v1.24.1 ·
Everything it needed was already on disk
scripts/release.sh found out that a release blog post was rejected at the worst moment. By the time it ran the generator, it had bumped both package versions, written the release commit and created…
v1.24.0 ·
The refusal was working as designed
The roadmap projection onto GitHub Issues shipped working, and then shipped a second time with better issue bodies. Neither time was it findable. It is opt-in and inert until a roadmap.sync section…
v1.23.0 ·
Four gates that lied, and the one rule under them
Four lifecycle automations were reporting something that was not true. Two blocked work they should have allowed. Two passed over a problem in silence. The review gate required a findings file for…
v1.22.0 ·
The issue said nothing, and said it truthfully
One release earlier I shipped the ability to project the roadmap onto GitHub Issues. The first real output was read by the person who asked for it, and the verdict was two words: pretty lame. An…
v1.21.0 ·
The second write is the one that fails
.aidlc/roadmap/ is the right place for a roadmap and the wrong place for one to be seen. A team that already triages in GitHub Issues will not keep a second backlog in a directory. And anyone who has…
v1.20.0 ·
The gates never checked that two files agree
Every gate in AIDLC asks about existence. Does the requirements file exist and is it marked complete. Does a review file hold at least one real finding. Does every acceptance criterion have a test…
v1.19.0 ·
The graph knows where, not why
Forty-two instances had left forty-two folders of requirements, designs and retrospectives. Not one answered the question a person actually asks: how does this thing work? Three places came close,…
v1.18.0 ·
The platform that was already half working
The question was simple: is AIDLC compatible with GitHub Copilot? The CLI seemed to answer it. Ask it to install for Copilot and it exits with code 2 and a list of platforms that does not include it.…
v1.17.0 ·
An unassessed control is never a pass
AIDLC already produces audit evidence and does not know it. A finished piece of work leaves numbered acceptance criteria, a design, tasks that name the criteria they satisfy, review findings with a…
v1.16.0 ·
The memory that outlived the code
This framework keeps a written memory of the codebase it works on: which parts exist, what they do, which decisions were taken. The phases are told to read it before the code, because a summary is…
v1.15.2 ·
The notes nobody threw away
When a coding session starts, the tool writes a small note: this session is open, working in this project. The note answers one question later. When the session says it is now working on the login…
v1.15.1 ·
The thirteenth prompt cannot forget
The CLI had a bug where a prompt could freeze with nobody there to answer it. The fix before this one found twelve unguarded prompts and added a shared "is this a terminal?" check, applied at each of…
v1.15.0 ·
The link that spent three weeks as literal text
The website had one tutorial. getting-started was 64 lines: install, pick a template, run a session. It ended at the first instance and there was nothing after it. Everything past that point lived in…
v1.14.5 ·
The number that was always missing by seven minutes
Every release post has a card at the top with two numbers: what the work cost, and how long it took from creation to finish. For twelve of the first twenty-six posts, the second one said "not…
v1.14.4 ·
The refresh that rewrote everything it read
aidlc knowledge rebuild is documented as rebuilding the SQLite index from the YAML sources. The index is a gitignored, disposable cache, so the command should have nothing to say to the tracked files…
v1.14.3 ·
The clock that was measuring the wrong thing
A test suite is worth having only if a red run means something broke. This one had two ways to go red that had nothing to do with the code. The first was a directory fight. One website test ran the…
v1.14.2 ·
The lock that only kept out its owner
Two things in this release were wrong in the same quiet way: the state was bad and nothing said so. AIDLC lets two people work the same piece of work, and part of that is a check on who owns the…
v1.14.1 ·
The event that never fired because we followed the instructions
Two automations were declared on the event that fires when a piece of work finishes. One marked the instance as owing a retrospective. One moved the finished item out of the roadmap's "in progress"…
v1.14.0 ·
The cost report that was billing another project
aidlc cost <instance> printed numbers nobody believed. For the interactive-cli-menu instance it said $485.99 and 49.7 hours, with all of it in one phase. Implementation held every dollar. Deployment,…
v1.13.1 ·
The command that answered from the wrong project
Run a command from the wrong directory and you expect an error. That is not what happened here. Every command asked the operating system where it was standing and treated the answer as the project…
v1.13.0 ·
A roadmap more than one person can write
The idea backlog was built for one author capturing braindumps mid-session. A flat directory of markdown files, a three-value status field, no stable identifier, and conventions that lived in skill…
v1.12.0 ·
The fix that deleted its own alarm
Two days after v1.10.8 fixed cost capture going dark, it went dark again for forty-one hours. The command whose whole job is to say whether capture is armed said installed the entire time.
v1.11.0 ·
Words that mean what they say, and a gate that actually gates
Two fixes shipped here, and they share a shape. Something looked like it was working, was not, and nothing complained. The first was a check. The website's lint script was next lint, a command Next…
v1.10.8 ·
The hook that could not say it was broken: fixing a silent failure without opening a security hole
Cost capture was dark, and nothing said so. The hook command was two absolute paths written once at install time, one to the node binary and one to the installed CLI. A renamed account, a new laptop…
v1.10.6 ·
The guidance that never arrived: three mechanisms that reported success and delivered nothing
Every AIDLC phase skill ends with a Guidance section, and for seventeen days that section was a lie. Where an agent should have found the project's security rules, it found the literal text…
v1.10.5 ·
expected false to be true: a flake that stopped a release, and a prompt no one could answer
The v1.10.2 release stopped at pnpm test with expected false to be true. All three CI retries failed the same way, and nothing else was printed. Lifecycle actions and plugin hooks ran through…
v1.10.2 ·
The skills were lying: six places the instructions and the code disagreed
A skill is what an agent obeys. When a skill names a file, a format or a command that the code does not support, the agent does what the skill says and the gate rejects it. The failure looks like the…
v1.10.1 ·
A front door for the CLI: bare `aidlc` opens a menu
Type aidlc with nothing after it, and until this release you got an error. Commander printed the help screen to stderr and exited 1. That was a newcomer's first contact with the tool: a failing exit,…
v1.9.1 ·
The lifecycle tells its own story: a generated release trail
AIDLC ships every day or two. Fifteen tags in the first ten days, and none of that history was visible outside the repo. The GitHub release notes are auto-generated one-liners. v1.7.0 shipped the…
v1.9.0 ·
Skills the app owns: operational work as a lifecycle deliverable
An app built with AIDLC needs repeatable operations that are not features. A blog app needs "create a new post about topic X" with the right frontmatter, slug and date conventions, image paths and…
v1.8.0 ·
A site that runs the lifecycle, and a doctor for the repo
The AIDLC website was a Vite and React single-page app with a generic indigo Tailwind look. It documented the framework but did not sell it. Nothing about it said this was a serious product. And it…
v1.7.0 ·
The framework that learns from itself: retrospectives and the lessons layer
Nothing in AIDLC learned from finished work. Every instance ended and its lessons evaporated: what surprised me, what took longer than estimated, which phase let the defect through. Gates,…
v1.6.0 ·
A design is not done until it is actionable: the task breakdown
The implementation skill told the agent to break the work into discrete steps. But the steps were never written down. The plan lived in the session that made it. When that session ended, got…
v1.5.0 ·
Two agents, one repo: concurrent instances via git worktrees
AIDLC could only do one thing at a time. Start a feature and the next idea waited. The work did not conflict. The framework simply had one working directory, one checked-out branch and one place to…
v1.4.0 ·
From requirement to code and back: AC traceability
Acceptance criteria, tests and code were linked only in prose. The testing notes said "each criterion has a test," an agent wrote that down, and nobody checked. aidlc gate passed when the document…
v1.3.0 ·
What did this feature cost? Per-instance cost tracking
Nobody could say what a piece of work cost. AIDLC already had a unit of work, the instance, and templates that classify it as a bugfix, a quick feature, a full feature, a micro task or a spike. So…
v1.2.1 ·
workspace:* on npm: the publish guard
v1.2.0 went to npm and could not be installed. The dependency said workspace:*, which means nothing outside the monorepo, so the fix was to make the mistake impossible to repeat.
v1.2.0 ·
Ideas that outlive the session: the backlog
An idea that comes up while you are working on something else is worth almost nothing if capturing it costs you your place. In AIDLC it did. There was no way to just write one down. Even a spike…
v1.1.0 ·
The framework that forgot everything: a local knowledge graph
Every time AIDLC needed to understand your code, it started from zero. It re-read directories, re-inferred the architecture, re-discovered the conventions and the debt. And when it changed the code,…
v0.7.0 ·
Before the lifecycle ran itself: v0.2.0 to v0.7.0
Seven releases went out in six days, and none of them left a record in the framework they were building. This is the one post with no lifecycle state behind it, on purpose.