Releases
DevArch evolved from itself.
Every shipped change, newest first. The rules were forged building the thing that enforces them, so the changelog is the case study.
v9.5.5Current
2026-09-14
Recurrence is counted before it is judged
Ending a session used to wait on a model. DevArch checks every session for bug categories that keep coming back, and that check ran as an AI agent on the path to every commit — the slow step before the push. Almost all of that work is arithmetic: the issue store already records which session each issue came from and what category it was, so counting them is counting, not reading. A shell step now does the counting at every finalize and files or closes what it finds on its own. The agent is called in only when a category actually crosses the threshold and someone has to judge whether the issues really share a root cause. In the common case, nothing waits.
v9.3.0
2026-09-12
Structured planning gets a front door
Two things in a session are called a plan, and only one is read by anything: Claude Code's own plan mode produces a draft that is gone at compaction, while DevArch's plan at docs/work/<slug>/plan.md is what plan-review, the work summary, standup and the dashboard all read. Until now the durable one was reachable only by implication. /devarch:session-plan <goal> is the explicit way in — it hands the goal to the same session-planner agent, refuses to plan inside native plan mode, offers to resume a plan that already has a current phase, and stops at the approval boundary. Rule 5 now names the skill and says to exit plan mode and use it when the harness starts planning on its own.
v9.2.1
2026-09-11
Bug fix
Reinstalling or updating DevArch used to delete and recreate the skills plugin directory, and every Claude Code session that was open at the time dropped the DevArch skills and answered Unknown skill until restarted, with nothing to say why. The installer now rebuilds the plugin in place — the directory and its manifest never disappear, each file lands by an atomic rename, and anything the new version no longer ships is pruned afterwards — and both install and update tell you that sessions already open need a restart to see the new version.
v9.2.0
2026-09-11
All three issue backends verified
The GitLab issue backend shipped in v9.1.0 with a header admitting it had never run. It has now been driven against a live GitLab project through the real glab CLI, and the run found five defects a stub would have hidden — a deprecation notice that corrupted every listing, a create that reported failure after filing, a not-found that read as unreachable, a silent 100-row page cap, and label order that differed between backends. All fixed, and labels now come back in one canonical order from every backend. The ledger sweep in devarch doctor consults GitLab as well as GitHub, through the same backend selection the issue store uses, and a forge with nothing open now reads not open rather than unresolved. Three verified backends; the one remaining caveat is that a self-hosted forge is still recognised by its host name.
v9.1.0
2026-09-11
Open items become issues
What a session left open used to live in a private list DevArch kept next to the issue tracker your repository already has. Now it is an issue: a citable id, an age, an assignee, a close with a reason, and a comment thread — reached through one adapter over GitHub, GitLab, or a committed local store for a repository with no forge. Session start drops from a page of diagnostics to five lines: last session, plan phase, open items, gates, focus. The health checks it used to read aloud move to finalize, where each finding files itself as an issue that is deduplicated by fingerprint, closes when the finding goes away, and reopens if it comes back. Recurring problems are counted every session now, across the whole repository, instead of only when a session ends blocked.
v9.0.1
2026-09-10
Bug Fixes
Two fixes to the session-start audit, both in the identifier-collision scan. A repository that keeps date-prefixed files anywhere — blog posts, QA notes — had those folders counted as ADR directories and the year read as an ADR number, so every session start reported a collision that did not exist; an ADR id is now recognized by shape. And the scan's findings were ordered by the developer's locale, so the same repository named its colliding files one way on a UTF-8 workstation and the other way under C; the scan is now pinned to byte collation and reports identically on macOS, Linux, and CI.
v9.0.0
2026-09-08
The proposal reads a Jira story
The hand-off from a product owner to a developer is declarative: a story goes in, a proposal comes out, and nothing is written back. /devarch:proposal now reads a Jira story, or a named set of them: it records where each story came from, copies the story's outcome sentence and bullets in verbatim, groups the bullets into items by the story's own headings, parks what fits nowhere, downloads the attachments beside the proposal, and sends a story that does not meet the story standard back to its reporter as questions instead of guessing. Nothing is written to Jira. Sessions, plans, ADRs, the open-items ledger, and async questions are untouched.
v8.2.0
2026-09-04
A push publishes; the conversation's end retires the session
Finalizing used to end the DevArch session the moment the push succeeded, so anything you did afterwards in the same conversation ran without a session: ledger writes were refused, file tracking stopped, and the hook that runs when the conversation ends found nothing left to retire. Now a push is just a push. Session state stays in place until the conversation actually ends, when the SessionEnd hook archives the event log and retires the gate, the state file, and the pointer through one shared accessor, so a follow-up commit or a ledger write after finalize carries the session's id like everything before it.
v8.1.0
2026-09-04
The ledger is now read and written for you
v8.0.1 gave open items a ledger and a command to write it. Now the agents do the writing and reading. Ending a session records each open item in the ledger and puts its id on the summary bullet, so an item can be followed from the session that raised it to the one that closed it. Starting a session tells you how many items are open, how many are unblocked, and which is oldest, read from the ledger rather than from prose. Recurring problems are counted from the same source, and duplicate ADR or proposal identifiers are caught before another session builds on the wrong file. Items still open from your last summary are carried into the ledger the first time you end a session on this release.
v8.0.1
2026-09-03
Open items get a ledger
What a session leaves open used to live only as prose in its summary, so nothing could say what was open and unblocked right now, and an item that stopped being carried forward looked the same as one that was resolved. `devarch items` now records each item as an append-only line in a committed per-developer ledger, with an id that cannot collide across sessions or developers, typed references to the item, decision, or question it waits on, and a `ready` query that works out from those artifacts which items are unblocked today. It lists; it never picks your next task. The agents that write to and read from the ledger arrive in the next releases.
v8.0.0
2026-09-01
The whole loop: product owner to project management to developer delivery
DevArch now governs the full arc of a project, not just the coding session. A product owner writes a charter in a project record, and one records repository, the book, can hold every charter the organization is running. Work repositories link to a charter. From then on plans name what they serve, and every phase a developer starts, finishes, or blocks is recorded as it happens, derived from the plan rather than typed. `devarch project beat` distills all of it into the record's heartbeat: progress, criteria as their owners state them, what is blocked, and which decisions the work is waiting on. The heartbeat reports facts, never recommendations. Venture puts the record in a browser: `devarch project serve` starts a local web face with nothing to install, where reading the heartbeat and editing the charter are one surface, and every edit lands as a git commit through the record's own hooks. When the work is settled, `devarch project close` records the disposition and opens the retrospective.
v7.1.1
2026-08-29
Bug fixes
v7.1.0
2026-08-25
Session state can no longer be wiped by its own hooks
Parallel tool calls and subagents all update the same per-session state file, and a collision between two of them could empty it for the rest of the session: budget warnings went quiet and the end-of-session summary lost its record of what you touched. Writes are now atomic and refuse to install an empty result. Ending a session also can no longer quietly leave its event log behind: it archives when it can identify the session, refuses rather than guesses when it cannot, and says so either way.
v7.0.0
2026-08-25
A question can leave the session and its answer can come back
Open questions used to wait on you to carry them to a colleague by hand and carry the answer back. DevArch can now post a question as a chat thread (Mattermost first, with Slack and Teams designed for as future transports), keep working, and surface the reply in your session when it lands, or at the next session start if you have moved on. The answer is recorded, never acted on: folding it into an ADR or proposal stays your call. This is DevArch's first external-service dependency and its first committed question ledger, which is why it is a major release; nothing changes in a repository until you add credentials.
v6.8.0
2026-08-22
A plan you parked on purpose stops being asked about
When you move on to a new plan, DevArch asks what to do with the old one, and one of your answers is that it is still live, just set aside. The sweep that watches for forgotten plans now recognizes that answer instead of asking again every session. A parked plan still shows up, marked as needing nothing from you and naming the plan it stepped aside for. If the plan it deferred to is gone, you get the full question back, along with the reason you are being asked.
v6.7.0
2026-08-18
A checkout can declare that it has no test suite
Some checkouts genuinely cannot run tests: a docs-only branch, or a clone with no toolchain installed. Your project profile can now state that, and why, and the commit gate accepts the declaration instead of hunting down a test script it has no way to run. The reason is required and lives in a committed file, so everyone working in the repository can see it. If the gate later finds a suite this checkout could actually run, it says so.
v6.6.0
2026-08-14
The folders DevArch relies on can't be moved by accident
DevArch finds your plans, summaries, and ADRs through a handful of specific directories. Deleting or renaming one of them never produced an error; everything just quietly stopped being found. A new gate blocks a command that moves or removes one of those directories, while leaving everything inside them free to move as usual. It only guards directories your repository actually has.
v6.5.0
2026-08-14
Session history that keeps itself
Every session records an event log, and that log is what a later session checks a summary against. Finishing a session with /devarch:finalize used to leave the log behind instead of filing it, so the history quietly stopped accumulating, and a related cleanup that depends on filed logs stopped running with it. Both work now, and the start-of-session audit checks that filing is still happening rather than assuming it. Session summaries also get their date from your clock rather than UTC, so an evening session is no longer filed under tomorrow. And when DevArch finishes a piece of work it now tells you the one thing it recommends doing next, instead of handing back a list of options.
v6.2.0
2026-08-08
Plans get a terminal state
Switching to a new plan used to strand the old one: only the plan the pointer names is ever updated, so repointing froze the outgoing plan's status for good. DevArch now stops and asks how to dispose of it first (finished, still live, or abandoned), and a new hook blocks the pointer write until you've answered, so the question can't be skipped. Installing is quieter too: it no longer scans your machine for repositories to initialize, and instead leaves that to a deliberate 'devarch init' per project. That init now asks one question, how far DevArch's documentation standard should reach in this repository, because the right answer differs between a new project and an established codebase, and the choice is stored with the repo so it's a team decision rather than a per-developer one.
v6.1.1
2026-08-07
Bug fixes
v6.1.0
2026-08-06
Environment setup, without leaving the session
Two new commands handle the setup work that used to interrupt a session. /devarch:add-tools installs helper tools (PDF text, image conversion, diagram rendering, media) from a menu your project curates in .devarch/tools.config.json, one at a time and verified after each, on macOS, Linux, or WSL. /devarch:add-api-key stores a service key at .api-keys/{service}-key with the gitignore entry written before the key itself, so it can't be committed even transiently, and never echoes it back. Also: /devarch:brainstorm now draws diagrams as it goes, and the start-of-session audit tells you which DevArch version you're running.
v6.0.1
2026-08-05
Bug fixes
v6.0.0
2026-08-02
The DDD facilitation surface is withdrawn, and license tokens are gone
DevArch no longer ships a domain-modeling surface: the five DDD skills, the agents behind them, and the ddd-discovery / domain-modeling capability tiers are removed (ADR-0017). Everything that was never DDD-dependent stays (Boundary Statements, command/event naming, bounded-context thinking), and installs with the old capability names get a warning on update, never a block. Also in this release, all licensing machinery is removed (ADR-0020): no more license tokens, no verification, no devarch license install. Your purchase ships the installer alone, your terms land as a plain-language LICENSE.md in ~/.devarch, and buying through Polar is unchanged.
v5.5.0
2026-07-29
The plan gate actually blocks
The session gate now genuinely blocks edits until the session-start process has run, fixing a defect where it never blocked at all (ADR-0015). Every gate is self-releasing, meaning a blocked session is told exactly what clears it, and a built-in valve auto-releases a wedged gate rather than stopping your work.
v5.4.0
2026-07-28
Objectives: business outcomes that can actually be evaluated
/devarch:objective captures a business outcome with a deadline, a falsification condition, and a measurement plan, including a baseline recorded before the work starts, the one thing that can't be recovered later (ADR-0014). Outcomes are graded for evaluability and only go active when an outsider could check them.
v5.3.0
2026-07-26
Quality-weighted test coverage assessment
/devarch:test-coverage-assessment answers what line coverage can't: how much of your codebase's state-changing behavior is actually verified (ADR-0013). It crosses your own coverage tooling with test-quality grading; the headline verified-behavior ratio is a number mock-only tests can't inflate.
v5.2.0
2026-07-24
Fix commit-script crash when no sessions are pending archival
A commit could abort when no session files were waiting to be archived. Archiving is advisory and can no longer take a commit down with it.
v5.1.1
2026-07-23
Namespaced command names in the docs
Claude Code claimed some bare command names (like /recap) for built-ins, so the docs now cite the namespaced forms: /devarch:recap and /devarch:finalize. No payload change; the installed skills were always namespaced.
v5.1.0
2026-07-20
Team mode: per-developer session context
A new team capability gives each developer their own session context in a shared repo, so summaries, recaps, and plans never collide between teammates (ADR-0012). The new /devarch:team-standup rolls up every developer's stream and flags blockers hitting more than one dev.
v5.0.0
2026-07-14
The harness spine: always-on event log and inline banners
Every session now writes an append-only event log with zero setup, and every hook reports through one consistent banner grammar (ADR-0011). Breaking: native Windows support is retired; Windows is WSL-only via the universal installer (ADR-0010). [Corrected 2026-09-13: ADR-0010 Decision 6 reinstates native Windows through Git Bash, with a .cmd bootstrapper that installs Git and jq via winget; WSL remains supported.]
v4.8.0
2026-07-14
Proposals and the ADR open-questions interview
/devarch:proposal turns a punch list, issue set, or PRD into tracked work items with a checkable done-when, automatically reviewed against your decision record (ADR-0008). ADRs can now carry open questions, resolved one at a time through /devarch:adr-interview (ADR-0009).
v4.7.0
2026-06-30
Canonical plan storage with a current-plan resolver
Plans now live in exactly one place, docs/work/<feature-slug>/plan.md, with a pointer every skill and hook resolves, retiring the old scattered copies (ADR-0007).
v4.6.0
2026-06-09
The rule-firing validation harness is now real
The rule-firing validation harness is now a runnable driver with a full fixture suite, so every new Claude model is a re-validation, not a guess.
v4.5.0
2026-06-09
DDD with three ways in, and a way to model from the code you already have
Domain modeling gained three entry paths: facilitated conversation, extraction from an existing codebase, or a question loop for your domain experts (ADR-0006). Withdrawn in v6.0.0.
v4.2.0
2026-06-06
Installer hardening + Unix hidden-file fixes
v4.1.0
2026-06-05
Decision-aware planning
session-planner now reads your recorded decisions first (ADRs, the project profile, the last session's open items) and lets them shape the plan. The new /devarch:plan-review checks every phase against them.
v4.0.0
2026-06-01
Self-contained installer, registry, and offline licensing: DevArch is now a product
DevArch becomes an installable product: a one-command, no-clone installer to ~/.devarch, a certbot-style registry, an isolated container kit, and seat-based purchase through Polar.
v3.3.0
2026-05-30
Tuned and validated for Claude Opus 4.8
Prompt-literalism guidance extends through Opus 4.8, re-validated by the rule-firing harness with no rule changes.
v3.2.0
2026-05-09
Session isolation and per-session file tracking
A per-session ID keeps concurrent sessions from colliding, and per-session file tracking gives work summaries an authoritative list of what changed.
v3.1.0
2026-05-08
Finalize skill audit and fix
v3.0.0
2026-05-05
Tuned for Claude Opus 4.7
Rules retuned for a model that follows instructions more literally: triggers, overrides, and templates sharpened.
v2.5.0
2026-05-01
Multi-ADR review mode
v2.3.0
2026-04-24
Rule 8b: Co-Located Wire-Type Sharing
v2.2.0
2026-04-23
Integration Reality: the No-Stub-Under-Test rule
A phase named after an integration must have a test that drives the real subprocess, runtime, or migration. A stub of an owned dependency can't be the acceptance gate.
v2.1.0
2026-04-23
Boundary Statements and the boundary-check hook
v1.8.0
2026-04-19
Trial license with IP protection
v1.7.0
2026-04-13
Deprecate project-level hooks in favor of user-level hooks
v1.6.0
2026-04-13
Hook paths resolved at install time
v1.5.0
2026-04-11
ADR conversation gate and /architect-review
v1.4.0
2026-04-06
Behavior Statements, Test Derivation, and Test Grading
Every side-effect function gets a Behavior Statement before tests are written; suites are graded RED / YELLOW / GREEN, and only GREEN ships.
v1.3.0
2026-03-19
Progressive Capability Activation
Deeper capabilities activate only when a project's complexity demands them, rather than carrying everything from day one.
v1.2.0
2026-03-14
Audit and cleanup
v1.1.x
2026-03-06 to 2026-03-14
Skills, hooks, and the plan-mode gate
v1.0.0
2026-03-05
Initial release: CLI, agents, and the lifecycle rules