github awslabs/aidlc-workflows v2.11.1
AI-DLC 2.11.1

2 hours ago

Summary

AI-DLC 2.11.1 rolls up the user-visible changes merged since 2.11.0: code kept in a git worktree, a nested checkout or a clone now reaches Code Generation's approval; with Guard Policy off a build carries on after the chat compacts; a jump back from the open Code Generation gate goes through on the first ask; a person who pauses the agent is not pushed on; plugins carry their author's own names, share one AI-DLC catalogue that stays put across updates, and compose without Bun on Cursor and Kiro IDE; a project on any release from 2.8.0 refreshes without stopping; and corrections at the plan question, the gates, resume and new chats, Construction, and on every harness.

Compatibility: breaking for scripts. Only scripts that build or install plugins are affected; see Script compatibility below.

Upgrade

aidlc update
cd /path/to/project
aidlc config --yes
aidlc doctor

Open work carries on through the refresh. When a project contains multiple harnesses, run aidlc config --harness <name> --yes for each harness you want to refresh.

Plugins: One step, only for people who use AI-DLC plugins in Claude Code or Codex: add AI-DLC's plugin catalogue once from its new folder with /plugin marketplace add <folder> or codex plugin marketplace add <folder> (on a native install the folder the installer prints and aidlc doctor --verbose names, ~/.local/share/aidlc/plugins or %LOCALAPPDATA%\aidlc\plugins on Windows; after an update made by 2.11.0's aidlc update, run aidlc use 2.11.1 once to create it; on a copied project, the runtime's plugins folder), and once the author of a plugin someone else built rebuilds it, install it under its new name and remove the old aidlc-<name>@aidlc-plugins copy that /aidlc plugin list names. A plugin added from a 2.11.0 folder keeps working until a later update removes that folder.

Manual-copy users must copy the complete runtime/<harness>/ tree from aidlc-copy-runtime-2.11.1.tar.gz. Copy it over the project following the copy-channel instructions. This installation path requires Bun 1.3.8 or newer but does not require the native aidlc executable.

Chat commands below use /aidlc; in Codex CLI, use $aidlc instead.

Fresh install

macOS and Linux

curl -fsSL https://github.com/awslabs/aidlc-workflows/releases/download/v2.11.1/install.sh | sh -s -- --version 2.11.1

Windows PowerShell

irm https://github.com/awslabs/aidlc-workflows/releases/download/v2.11.1/install.ps1 -OutFile install.ps1
./install.ps1 -Version 2.11.1

Highlights

Code where it lives, and Construction

  • Code Generation's approval question now opens when the code lives where the project's own git does not see it: a worktree in a child folder or under .worktrees/, a worktree of a repo kept outside the project and placed in a gitignored folder inside it, a clone, a submodule, a monorepo package, a junction or link to a checkout elsewhere, a worktree added after the work started, or code committed before the records. Where the review cannot see the code (a worktree in a harness folder such as .claude/worktrees/<name>, outside the project, or on another drive), the question says once AI-DLC found no source changes under <where it looked> and the person approves as usual or asks for changes, instead of a refusal with no way on. Under strict or relaxed the agent's first report is refused once with the way on and its next report opens the same question; the refusal stays only where nobody would answer the gate (autonomous Construction, the presence check off, an unattended run).
  • Construction: a plan of two or more Units asks once, as Inception ends, who builds them (Just me, or Several teams); a side-by-side batch lands (a conflict in a sibling repository says where and finishes landing) and runs the tests you already approved without asking again; "build them one at a time" builds each Unit from its approved plan; the first team step offers one approval per Unit; every AI-DLC git call runs with your own git setup (hooks, LFS, merge drivers, a file-system monitor) and Units land on the integration branch the team named; a sibling repo can be added or removed mid-work; a reopened plan no longer loops; the verification question names the tests it will not run and why, and the code summary lists tests not executed; .aidlc-source-paths.json can exclude a machine-local tree; and package-manager folders such as node_modules, plus .idea, .codegraph and DerivedData, stay outside the source boundary.
  • Build and Test and the checks: a requirement marked N/A with its reason, or built through its user stories, is no longer reported as unbuilt; traceability follows sub-requirements under their parent; a check that reads a whole stage reports once; on a native install without Bun the project's own TypeScript is type-checked instead of passing silently; a TypeScript ESLint config and any ESLint major version get a real lint verdict; Requirements Analysis cites the intent statement and scope document where they exist; and generated tests build their data from the project's own types and schemas.
  • Deployment Execution checks the AWS identity from the agent's own shell before it asks to deploy, when the AWS CLI is installed; a failure asks one question with the error and the fix, and deploys only after the check passes.

You drive the workflow

  • A person who pauses the agent in their own words ("hold on", "stop for today") is not pushed on by AI-DLC's end-of-turn line, and the agent never asks whether to continue, pause or take a break, however long the run has been; the person can say stop at any time. A park names where the work stands and the way back: Paused at <Stage> with everything saved. Pick it back up any time here, or with /aidlc --resume in a new chat.
  • At the open Code Generation approval question, asking to go back to an earlier stage, or to redo the stage, goes through on the first ask under every Guard Policy, instead of a refusal in engine words and the question shown again (which on Kiro CLI read as Request Changes and started a new attempt). On GitHub Copilot the first ask is still refused once and the next step carries it, as before.
  • With Guard Policy off (the default on every shipped scope but enterprise), a chat that compacts mid-build carries on with the build step on record (a write, a command, the brief and the developer handoff) instead of refusing in engine words; a Unit whose repeat review never finished opens its gate on the earlier ready review (under relaxed too); and two Guard Policy lines that disagree, such as one written by a teammate on a release before 2.10.0, are settled to one, with a line only when the record cannot say which was set last.
  • The plan question waits for your reply before work starts, also when your message never reached AI-DLC; a change you ask for in the message that raises it is read as your answer; Code Generation completes only from an approved plan; and an AI-DLC update after approval never asks again. While the plan waits, reads, scans, test runs and AI-DLC's own commands (an update you asked for included) still run. The approval step says what a build left out, "build it anyway" works in your own words, and approving a custom plan creates it even when its command carries an empty --skip or --add.
  • At a gate the agent goes on from a recorded review to the approval question instead of stopping; every stage start says which stage of how many; the review block says only what changed since the last review; a review that did not finish says so once; one more check is offered when review passes are used up and the work changed; and the summary confirmation names only the files it creates, with no "why now" line. Skipping a stage at its own question, or while it runs, skips it and names the command that runs it again, and an approval and a skip typed in one message both happen, once each.
  • Your words: "2" in a new chat at a Unit or batch checkpoint is Request Changes; "skip Functional Design and approve the rest" approves the rest too; a bare /aidlc in a new chat asks again a question you were asked but never answered; a question answered from your words says what it took; a project-type change states the words it came from, and saying it is existing code in the message that started the work is not asked again; and a question logged after your reply says so, instead of saying your answer was lost.
  • Two chats and new chats: each piece of work keeps its own selections, so two chats never overwrite each other's picks; parked work in a fresh clone carries on without a second resume; words near finished work report it as finished with the way back; a chat that has not joined the work gets the steps to join it; a verification command question asked in one chat can be answered from a new chat; and your /aidlc line decides whether open work picks up or your words start something new.
  • Checks you switch: turning one off applies at once and offers to turn it off everywhere; turning one back on clears your own local override and says so, never changes the team's committed settings file, and says which setting still keeps it off. A missing hand-off, a late source change or a review cap is the agent's own step, not your question, and on Kiro CLI and Kiro IDE a push or a recursive delete asks first instead of being refused.
  • Plans and spaces: the plan offer says how big the plan is and lists the other plans, a proposed plan says whether it splits the work into Units, a plan name typed alone asks what the work is for, a new questions file names who would answer each question and keeps each trade's questions together, a new space, or one created before its phase rules shipped, gets them so its first stage starts, and switching spaces writes a git-ignored copy of the method instead of rewriting your tracked includes. The scopes guide shows how to start a small change with express or bugfix plus a stage, and how to start a plan with learnings and summary confirmation off.

Plugins

  • A plugin someone else builds now shows in Claude Code and Codex under the names its author chose: its manifest name, in the catalogue named by the new optional "aidlc": {"marketplace": "<name>"} field (the plugin's own name when left out), so two teams' plugins install side by side. AI-DLC's own plugins keep aidlc-<name>@aidlc-plugins (test-pro stays aidlc-test-pro@aidlc-plugins, now at 0.1.1 as its content changed since 2.11.0), and aidlc plugin validate and aidlc plugin build refuse a catalogue named aidlc or starting aidlc-, in any letter case. While the old copy and the rebuilt one are both installed, AI-DLC uses the rebuilt one, and plugin sync, plugin list and doctor name the old copy's remove command (/plugin uninstall aidlc-<name>@aidlc-plugins, or codex plugin remove aidlc-<name>@aidlc-plugins).
  • AI-DLC's own plugins share one aidlc-plugins catalogue, added once. On a native install it sits in a folder that stays put across aidlc update, aidlc use and aidlc rollback (~/.local/share/aidlc/plugins, under $XDG_DATA_HOME/aidlc/ when that is set, %LOCALAPPDATA%\aidlc\plugins on Windows), so a plugin added from it no longer stops loading two updates later; the installer prints the path (Plugin marketplace for Claude Code and Codex: <path> (add it once; updates keep it current)) and aidlc doctor --verbose names it under Machine. On Codex a plugin folder is added as a marketplace, with its catalogue under .agents/plugins/.
  • On Kiro a plugin is dropped with cp -r <projection>/.kiro <project>/ and lands in .kiro/aidlc-plugins/<name>/, so a second plugin never overwrites the first; a plugin dropped before this release keeps working where it is.
  • A plugin installed in Cursor or dropped for Kiro IDE now composes at session start on a native install without Bun. A plugin built with 2.11.0 keeps its Bun-only session-start hook, so it still needs Bun on PATH until its author rebuilds it with this release and the person reinstalls it (Cursor) or drops the new projection (Kiro IDE).
  • Plugins stay composed: an upgrade (sync puts back what it lost), aidlc config after a plugin update, two session starts at once, a switch from Kiro CLI to Kiro IDE, and a Windows-line-ending checkout no longer drop a plugin's additions. Turning a plugin or its base off with plugin select or aidlc config removes what it added, turning it back on says how it comes back, and every line that sends the person to plugin sync names a command that works on their tool, Kiro CLI and opencode included.
  • For plugin authors: aidlc plugin validate and aidlc plugin build work natively on every harness; a team plugin can lead a stage with its base's agent (aidlc plugin validate --with <base root> checks it) and run its base's stages by name in a scope's include_stages; a team plugin composes after its base and pauses while its base is off; a contribution can add prose to a core persona or require a stage (adds.requires_stage); and a build ignores another user's leftover lock folder in /tmp.

Setup, configuration, and lifecycle

  • A project on any release from 2.8.0 to 2.11.0, a composed plugin included, refreshes to this one without stopping; an update that changes how a finished stage works never asks to redo that stage; and the line after an update names the refresh step and says open work carries on.
  • aidlc update --channel preview now reads the releases list in pages, so it keeps working once the list passes 1 MiB. On 2.11.0 itself that command fails with exceeds the 1048576 byte download limit; aidlc update --version <id> is the way past it.
  • aidlc version reports 2.11.1 on Claude Code, Codex CLI, GitHub Copilot, Cursor, Kiro CLI, Kiro IDE, and opencode.
  • install.sh and aidlc uninstall take an opt-in --allow-root (or AIDLC_ALLOW_ROOT=1) for containers and CI jobs where root is the only user; without it, and under sudo, root is still refused. A project's .env file no longer reaches the engine or the tools it starts, and the native engine never runs a project's bunfig preload.
  • First-run setup lists the Kiro options as "Kiro CLI (V2)" and "Kiro", with Enter choosing Kiro CLI (V2); a preset you pick is kept when you change the harness and change it back; and AI-DLC's status line is your choice, asked once, with nothing replacing your own setting unasked.
  • aidlc config: a refresh stops instead of overwriting an agent file you edited to set its model or effort, keeps a team AGENTS.md that already mentions AI-DLC (adding AI-DLC's block after it), leaves a non-UTF-8 root file untouched and names it, and never runs the repository's fsmonitor program. A conflict names the exact config command that takes --force, carrying a download already agreed to; a project command run from another folder names the project folder or --project-dir right after aidlc; aidlc config set|get|list work at a terminal, a clear of a switch no file records says so, and one undo form is named everywhere; and turning a check back on in a file that does not record it says which file keeps it off.
  • /aidlc --status names each piece of open work on a clone with nothing selected, counts only the stages you were shown, names the exact Unit step, and reads paused or finished work as such with the way back. Doctor warns when replies are not getting recorded, names a Kiro hook switched off under Agent Hooks, no longer reports a missing git as stale branches, and on Kiro the trust row passes, and a switch to Kiro IDE goes through, with a plugin dropped from 2.11.0.
  • --help on an aidlc engine subcommand prints its flags instead of an error.
  • The guides: Getting Started is one real run from nothing with every screen captured; the everyday, Core Concepts and CLI Commands pages show what AI-DLC prints today; the install guide says how to go back to an earlier version; and the install pages say Bun and Node.js are not required.

Harness by harness

  • Claude Code and Codex: /aidlc --help is answered by the prompt hook with no command run first, and one hook process runs the checks before a tool call or shell command. On Claude Code the carry-on line shows as Stop hook feedback, not a Stop hook error. On Codex a reply typed again with the same words seconds later in one turn (a second 1 while the turn is closing) is recorded as your reply instead of being dropped as a repeat delivery; a turn the Stop hook keeps holding with no progress is let go at the cap instead of showing the first block again; a side-by-side build starts its workers as Codex subagents without permission asks, an approvals setting of "never" included; the hook replay cache lives in the project, size-bounded; and a project copied from 2.11.0 refreshes with its own tool, leaving config.toml untouched.
  • GitHub Copilot runs the four guard checks in one hook process, so one permission prompt instead of five; words typed after /aidlc reach the work; and a headless copilot -p run needs only a trusted folder. Cursor's native setup leaves no AI-DLC file at the project root, and a crashed guard refuses nothing. On Copilot and Cursor, aidlc config models --check leaves a shared effort setting to the session, as doctor does. On opencode two chats in one window each act on their own work, the /aidlc command carries the whole skill past opencode's 50 KiB cut, a team's opencode.jsonc gets AI-DLC's entries, and the only ask is before a recursive delete or a push.
  • Kiro CLI: after Kiro's 3.0 upgrade AI-DLC's own commands stay pre-allowed and its agents write only what Kiro CLI 2 permits; the AI-DLC chat and its specialist agents use the MCP servers you add, asking before each call, and config keeps .kiro/settings/mcp.json; aidlc leads the agent picker; agents start on your saved model; the Kiro CLI guide says how to lower Kiro's helper idle deadline (api.subagentTimeout, default 3600 seconds, which AI-DLC does not set) in your own settings when a helper that never starts holds a stage for an hour; and on Windows a word with & | < > ^ or an apostrophe reaches the engine whole.
  • Kiro IDE: one agent's model and effort, and a Unit reviewer that reads only its Unit, apply by default; an MCP lookup runs while the code plan is written; a plan's name typed alone starts its first step on the Default agent; one hook card shows per message, write and command; saying yes really turns Kiro IDE Workflows off; and on Windows a request PowerShell or Command Prompt would alter reaches the engine unchanged, with a Command Prompt setup offered a one-time switch to PowerShell.
  • On Windows a Unit approved on another OS stays approved, a Windows-line-ending checkout keeps every approval, a sensor's script stays in the tools folder, and an IDE open during install is told to quit and reopen.

Script compatibility

  • aidlc plugin validate and aidlc plugin build now exit 1 for a plugin whose stage names another plugin's stage or agent (requires_stage, lead_agent, support_agents, reviewer) without that plugin in dependencies; on 2.11.0 the same plugin validated and built. The error names the fix: add that plugin to dependencies next to "core" (as "<base>@^1.2.0"), or correct the name.
  • aidlc plugin build of a plugin AI-DLC does not ship names the host plugin by its manifest name and its catalogue by aidlc.marketplace (the plugin's name when left out), no longer aidlc-<name> in aidlc-plugins; a script that installs the build's output as aidlc-<name>@aidlc-plugins must install <name>@<catalogue>.
  • a plugin's own folder (dist/plugins/<name>/<harness> in a checkout, plugins/<name>/<harness> in the copy runtime) no longer carries a marketplace.json; a script that runs /plugin marketplace add or codex plugin marketplace add on that path, as 2.11.0's test-pro README showed, must add the plugins folder instead (on a native install, the catalogue folder above). On Codex a folder replaced in place makes codex plugin list say marketplace root does not contain a supported manifest until that one add.

Contributors

Thank you to everyone who contributed to this release: @wowzoo, @Marukome0743, @vivibui, @szsunyuan, @scottschreckengaust, @leandrodamascena, @sandeepveldi, @mdanialqureshi, @glannebere, @harmjeff, @fsatsuki, @zsqiii, @louisffan, @krokoko, @ishanrp83, @gpmattoo, @briensea, @anitalewis.

New Contributors

Promoted from v2.11.1-preview.20261019.1, source ca8dabde6cc3479cbacfac4e66f2f6971496a9d0.

Full Changelog: v2.11.0...v2.11.1

Don't miss a new aidlc-workflows release

NewReleases is sending notifications on new releases.