$ 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.
v1.32.0 ·
The file that only grew
.aidlc/guidance/lessons.md is 90,285 bytes (88.2KB, ~22k tokens) across 23 instance sections. Eight phase skills mandate reading all of it: 10-ideation, 20-requirements, 30-design, 40-implementation,…
v1.31.0 ·
Two rules nobody could obey
AIDLC produces exactly one artefact that is meant to leave the repository. It is a portable skill for writing a roadmap item: a contributor with no checkout, no terminal, and no particular interest…
v1.30.0 ·
The protocol that was already dead
Two failures share one surface, and the second is the interesting one. The first is ordinary. A phase asks you something without saying why it is asking, what the answer blocks, what the repository…
v1.29.0 ·
The phase nothing ever measured
The framework had never once measured the first phase of any piece of work it ran. That is not what the report said. The report came from running the lifecycle end to end on somebody else's codebase…
v1.28.0 ·
The cheapest token is the one you never carry
Agentic coding bills you for memory, not for thought. 95.9% of the tokens this project has ever spent were re-reads of a conversation it was already carrying. Here is where the money goes, what AIDLC does about it, and the two places it does not work yet.
v1.27.1 ·
The plus sign that meant two things
A refresh command rewrote nineteen files and said nothing about what it had taken away. The report described it precisely. Compiled phase skills are build artifacts, regenerated from project context…
v1.27.0 ·
The bill was never the thinking
Measured on this repo's 53 transcripts before writing anything: Two facts from that run drive the design and are stated here so the design does not have to assume them: 1. Repeats are pure…
v1.26.2 ·
Eleven reviews the gate could not see
aidlc review <instance> requirements writes requirements.review.md. The review gate looks for a findings entry keyed requirements.md. The two never meet, so a complete adversarial review — written,…
v1.26.1 ·
The suite told nine people somebody else broke it
A test suite is supposed 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 mechanism was a number. Two tests in…
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 the thing every agent reads before it reads any code. aidlc knowledge query costs one command; re-deriving the same fact costs a session. So the graph earns its keep by being…
v1.24.1 ·
Everything it needed was already on disk
scripts/release.sh discovers a rejected release blog post at the worst possible moment. By the time it runs the generator it has already bumped both package versions, written the release commit, and…
v1.24.0 ·
The refusal was working as designed
Two releases ago this project learned to project its roadmap onto GitHub Issues. One release ago it learned to write issue bodies worth reading. Both shipped working. Neither shipped findable. The…
v1.23.0 ·
Four gates that lied, and the one rule under them
Four lifecycle automations were reporting something that was not true. Two of them blocked work they should have allowed. The design review gate required a findings file for every required artifact…
v1.22.0 ·
The issue said nothing, and said it truthfully
One release earlier, this project shipped the ability to project its roadmap onto GitHub Issues. The first real output was read by the person who asked for it, and the verdict was two words: pretty…
v1.21.0 ·
The second write is the one that fails
.aidlc/roadmap/ is the right place for a roadmap: versioned with the code, readable by agents, reviewable in a diff. It is the wrong place for a roadmap to be seen. Two concrete gaps follow from…
v1.20.0 ·
The gates never checked that two files agree
Every gate in this framework asks the same kind of question, and it took a while to notice that none of them asks the one that matters most. The questions they ask are about existence. Does…
v1.19.0 ·
The graph knows where, not why
Forty-two instances have left forty-two folders of requirements, designs and retrospectives. Not one of them answers the question a person actually asks: how does this thing work? Three surfaces came…
v1.18.0 ·
The platform that was already half working
The honest version of this release starts with an embarrassment: GitHub Copilot was already half working, and nobody here knew. The question that opened it was simple enough — is AIDLC compatible…
v1.17.0 ·
An unassessed control is never a pass
Three problems stack on one cause: this framework already produces audit evidence, and has no idea that it does. Look at what a completed piece of work leaves behind. Numbered acceptance criteria. A…
v1.16.0 ·
The memory that outlived the code
This framework keeps a written memory of the codebase it works on. As work completes, it records what the code is made of — which parts exist, what they are responsible for, which decisions were…
v1.15.2 ·
The notes nobody threw away
When a coding session starts, the tool writes down a small note saying "this session is open, and it is working in this project". The note exists to answer one question later: when the session says…
v1.15.1 ·
The thirteenth prompt cannot forget
tty-prompt-guard made the interactivity check available everywhere (core/tty.ts exports isInteractive() and NOTTYREASON) and tiered all 16 @clack/prompts call sites. It did not make the check…
v1.15.0 ·
The link that spent three weeks as literal text
The website has one tutorial. getting-started is 64 lines: install, pick a template, run a session. It ends at the first instance and there is nothing after it. Everything past that first session is…
v1.14.5 ·
The number that was always missing by seven minutes
Each of these release posts carries a small card at the top with two numbers: what the work cost, and how long it took from the moment the work was created to the moment it was finished. For twelve…
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 derived cache — gitignored, disposable, regenerable at any time — so the command should have…
v1.14.3 ·
The clock that was measuring the wrong thing
A test suite is worth having only if a red run means something went wrong. This one had two ways of going red for reasons that had nothing to do with the code. Two website test files shared the real…
v1.14.2 ·
The lock that only kept out its owner
Two things in this release were broken in the same way, and it is a way that is hard to notice: the state was wrong, and nothing said so. The first was a lock. The framework lets two people work the…
v1.14.1 ·
The event that never fired because we followed the instructions
executeFinalCompletion's fired-once guard uses retrospective.md as proof the completion event already fired. The framework's documented completion order writes retrospective.md first. So obeying the…
v1.14.0 ·
The cost report that was billing another project
aidlc cost <instance> reports numbers nobody believes. For interactive-cli-menu: Three things are wrong with that table, and the roadmap item only identified one of them. 1. The time column measures…
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 in this tool asked the operating system "where am I?" and treated the answer as the…
v1.13.0 ·
A roadmap more than one person can write
AIDLC's idea backlog was built for one author capturing braindumps mid-session. It is a flat directory of markdown files with a three-value status field, no stable identifier, and conventions that…
v1.12.0 ·
The fix that deleted its own alarm
A fix for silent cost failure shipped a generated file that no clone can supply, then deleted the check that would have noticed it missing. Capture died for 41 hours while the status command read "installed".
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 that looked like it was working, was not, and nothing complained. The first was a check. packages/website's lint script was next lint, a…
v1.10.8 ·
The hook that could not say it was broken: fixing a silent failure without opening a security hole
The previous release described a cost-capture hook that could not run. This one fixes it, and the fix turned out to be more interesting than the defect. The hook command was two absolute paths,…
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 characters…
v1.10.5 ·
expected false to be true: a flake that stopped a release, and a prompt no one could answer
firePluginHooks and emit run hook/action commands with execSync(cmd, { input, stdio: ['pipe','pipe','pipe'], timeout: 30000 }). spawnSync forks first and writes the stdin payload afterwards, so a…
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 documents an artifact name, a file format, or a CLI behaviour that the code does not implement, the agent does what the skill says and the gate rejects it…
v1.10.1 ·
A front door for the CLI: bare `aidlc` opens a menu
Typing plain aidlc today is a dead end, and slightly worse than the source idea assumed. Commander's no-argument behaviour prints the help screen to stderr and exits 1 — verified: So a user's first…
v1.9.1 ·
The lifecycle tells its own story: a generated release trail
AIDLC ships roughly every day or two — 15 tags in the first ten days — and none of that history was visible to anyone outside the repo. The GitHub release notes are auto-generated one-liners: v1.7.0…
v1.9.0 ·
Skills the app owns: operational work as a lifecycle deliverable
Apps built with AIDLC need repeatable operational actions that are not features — a blog app needs "create a new MDX post about topic ABC" with correct frontmatter, slug/date conventions, image…
v1.8.0 ·
A site that runs the lifecycle, and a doctor for the repo
The AIDLC website was a Vite + React SPA with a generic indigo-on-Tailwind look, living in the monorepo as the aidlc-web package. It documented the framework but did not sell it — nothing about it…
v1.7.0 ·
The framework that learns from itself: retrospectives and the lessons layer
Nothing in AIDLC learns from finished instances. Every instance ends at Maintenance and its lessons evaporate: what surprised us, what took longer than estimated, which phase leaked the defect. The…
v1.6.0 ·
A design is not done until it is actionable: the task breakdown
The implementation skill says "break the implementation into discrete steps" — but the steps are not an artifact. The plan lives only in the session that wrote it: when the session ends, is…
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 — not because the work conflicted, but because the framework had one working directory, one checked-out branch, and…
v1.4.0 ·
From requirement to code and back: AC traceability
Acceptance criteria, tests, and code are linked only in prose. The requirements skill demands testable criteria and the testing skill says "each criterion needs at least one test," but the linkage…
v1.3.0 ·
What did this feature cost? Per-instance cost tracking
There is no way to know what a unit of work costs. The instance is AIDLC's unit of work and templates already classify it (bugfix, quick-feature, full-feature, micro-task, spike), so "what does a…
v1.2.1 ·
workspace:* on npm: the publish guard
v1.2.0 shipped to npm uninstallable. The dependency spec said workspace:*, which means nothing outside the monorepo — and the only real fix was making the mistake impossible to repeat.
v1.2.0 ·
Ideas that outlive the session: the backlog
The framework has no "just write it down" path. Capturing an idea today requires an instance (even a spike drags in claims and phase machinery), so ideas shared mid-task get dropped or derail the…
v1.1.0 ·
The framework that forgot everything: a local knowledge graph
AIDLC has no working memory of the codebase it operates on. Whenever the framework needs to understand the code — in any lifecycle phase — it re-explores from scratch: re-reading directories,…
v0.7.0 ·
Before the lifecycle ran itself: v0.2.0 to v0.7.0
Seven releases in six days, none of them recorded by the framework they were building. This is the only post on this blog with no lifecycle state behind it — which is the whole point of it.