<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Agentplane Blog</title>
        <link>https://agentplane.org/blog</link>
        <description>Agentplane Blog</description>
        <lastBuildDate>Thu, 14 May 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Context management: the LLM Wiki pattern inside the repo]]></title>
            <link>https://agentplane.org/blog/agentplane-0-6-context-management-llm-wiki</link>
            <guid>https://agentplane.org/blog/agentplane-0-6-context-management-llm-wiki</guid>
            <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Agentplane adapts Andrej Karpathy's LLM Wiki idea for software repositories, where context becomes a reviewed artifact instead of another cache.]]></description>
            <content:encoded><![CDATA[<p>Andrej Karpathy's <a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f" target="_blank" rel="noopener noreferrer" class="">LLM Wiki</a>
is a small idea with an annoying amount of truth in it. Plain RAG is good at finding passages. It
is much worse at keeping the synthesis alive after the answer is done.</p>
<p>That hurts in software work. A coding agent can read the release docs, scan the task history, find a
half-forgotten migration note, and still leave the next agent to repeat the same archaeology next
week. The useful part of the work was the cleaned-up map of what the project knows. The final answer
was just one expression of that map.</p>
<p>That is what the LLM Wiki pattern is really about: raw sources stay raw, and the model maintains a
wiki that gets better over time. Agentplane 0.6 takes that idea and makes it fit a Git repository.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-cache-is-not-the-memory">The cache is not the memory<a href="https://agentplane.org/blog/agentplane-0-6-context-management-llm-wiki#the-cache-is-not-the-memory" class="hash-link" aria-label="Direct link to The cache is not the memory" title="Direct link to The cache is not the memory" translate="no">​</a></h2>
<p>The tempting version of context management is to add a vector store and call the problem solved.
Search gets better, at least for a while. Then somebody asks why the model trusts an old note, which
source backed it, whether the note was superseded, or why two tasks disagree. The cache has no good
answer because it was never meant to be the record.</p>
<p>Agentplane puts the record somewhere boring on purpose:</p>
<div class="language-text codeBlockContainer_JABB theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_Cf4j"><pre tabindex="0" class="prism-code language-text codeBlock_Mb8G thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_kBK5"><div class="token-line" style="color:#bfc7d5"><span class="token plain">context/raw/**              raw source material</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">context/wiki/**             maintained markdown pages</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">context/facts/**/*.jsonl    sourced facts</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">context/graph/**/*.jsonl    entities and relationships</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">.agentplane/tasks/**        task intent, plan, checks, and ACR evidence</span><br></div></code></pre></div></div>
<p>The SQLite projection and generated context output are still useful. They make search fast. They
help agents retrieve the right material. But they are rebuildable. The durable memory is the
repository content that a reviewer can open, diff, and challenge.</p>
<p>This is the part of Karpathy's note that feels most important for engineering teams. The wiki is not
just a prettier answer format. It is a place where a project can accumulate synthesis without hiding
the raw evidence.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-agents-need-this-more-than-humans-do">Why agents need this more than humans do<a href="https://agentplane.org/blog/agentplane-0-6-context-management-llm-wiki#why-agents-need-this-more-than-humans-do" class="hash-link" aria-label="Direct link to Why agents need this more than humans do" title="Direct link to Why agents need this more than humans do" translate="no">​</a></h2>
<p>Humans carry messy background context in their heads. They remember that a release failed because a
generated file drifted, or that a policy rule exists because a branch-pr close once went sideways.
They also forget, but they forget slowly.</p>
<p>Agents forget immediately. Every session starts with a retrieval problem. If the only durable trail
is a diff and a few scattered docs, the agent has to infer the operating model again. That is how
the same mistake comes back wearing a different branch name.</p>
<p>Local context gives the agent a repo-owned place to learn from previous work. A completed task can
become source material. A release lesson can become a wiki page. A repeated failure can become a
sourced fact with a task reference. A relationship between policy, command behavior, and verification
can become a graph edge instead of a paragraph buried in a chat transcript.</p>
<p>The result is not magic memory. It is a more honest kind of memory: files, refs, provenance, and
checks.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-agentplane-adds-to-the-llm-wiki-idea">What Agentplane adds to the LLM Wiki idea<a href="https://agentplane.org/blog/agentplane-0-6-context-management-llm-wiki#what-agentplane-adds-to-the-llm-wiki-idea" class="hash-link" aria-label="Direct link to What Agentplane adds to the LLM Wiki idea" title="Direct link to What Agentplane adds to the LLM Wiki idea" translate="no">​</a></h2>
<p>Karpathy's version is personal and exploratory. Obsidian is the workspace. The LLM is the wiki
gardener. The schema file tells it how to behave.</p>
<p>Agentplane changes the setting. The workspace is a software repository. <code>AGENTS.md</code> is the policy
gateway. Task records and Agent Change Records are part of the evidence. Context changes can move
through the same lifecycle as code: task, plan, execution, verification, close.</p>
<p>That lifecycle matters because context can be wrong in ways that look confident. A bad wiki update
is not harmless if future agents use it to choose a migration path or skip a check. So Agentplane
keeps the context workflow conservative. It prefers source refs over memory vibes. It can write
proposals before promoting canon. It checks context-bearing tasks with <code>context verify-task</code> so wiki
pages, facts, graph edges, and capability notes do not quietly lose their sources.</p>
<p>The command surface is intentionally ordinary:</p>
<div class="language-bash codeBlockContainer_JABB theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_Cf4j"><pre tabindex="0" class="prism-code language-bash codeBlock_Mb8G thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_kBK5"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane context init</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane context learn changes</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane context learn files ./notes.md --run</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane context learn tasks --tag release --limit 20 --dry-run</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane context search "release checklist"</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane context check</span><br></div></code></pre></div></div>
<p>The interesting part is not the commands themselves. It is the boundary they create. Search is a
tool. Context is an artifact. Verification is the guard that keeps the artifact useful.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="completed-work-is-raw-material">Completed work is raw material<a href="https://agentplane.org/blog/agentplane-0-6-context-management-llm-wiki#completed-work-is-raw-material" class="hash-link" aria-label="Direct link to Completed work is raw material" title="Direct link to Completed work is raw material" translate="no">​</a></h2>
<p>One of the better sources of project knowledge is the work you already finished. Task READMEs know
what was asked. Plans know what was approved. Verification notes know what actually passed. ACRs
know which commits and checks were tied to the change.</p>
<p>Before 0.6, much of that history was evidence for review and closure. Now it can also become input
for future context. That does not mean every closed task should automatically rewrite the wiki.
Automatic promotion is how memory systems rot. It means completed work can be harvested, batched,
reviewed, and turned into sourced updates.</p>
<p>This is where Agentplane's version of the LLM Wiki becomes less like a notes app and more like
workflow infrastructure. The wiki is still readable markdown, but it is connected to task evidence,
fact rows, graph relationships, and verification gates.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-practical-shift">The practical shift<a href="https://agentplane.org/blog/agentplane-0-6-context-management-llm-wiki#the-practical-shift" class="hash-link" aria-label="Direct link to The practical shift" title="Direct link to The practical shift" translate="no">​</a></h2>
<p>The practical shift is simple: the next agent should not start from zero.</p>
<p>It should be able to search the local context, open the wiki page that explains the release path,
see which task created the claim, inspect the source ref, and decide whether the claim still applies.
If the answer is stale, that should become a context update with its own evidence.</p>
<p>That is slower than pretending the model remembers everything. It is also much safer.</p>
<p>Agentplane 0.6 is the point where context becomes part of the repository workflow. Not a side cache,
not a private note pile, not another dashboard. A reviewed memory layer, kept close to the code it
is supposed to explain.</p>]]></content:encoded>
            <category>Release</category>
            <category>Context</category>
            <category>Workflow</category>
        </item>
        <item>
            <title><![CDATA[Recipes: reusable agent behavior without copy-paste prompts]]></title>
            <link>https://agentplane.org/blog/recipes-reusable-agent-behavior</link>
            <guid>https://agentplane.org/blog/recipes-reusable-agent-behavior</guid>
            <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Recipes improve Agentplane by packaging repeatable agent behavior as inspectable repository assets instead of opaque prompt blobs.]]></description>
            <content:encoded><![CDATA[<p>Every team that works with coding agents eventually invents a small library of "the way we do
things here." A release has a shape. A code-map task has a shape. A review response has a shape.
Someone writes a prompt, someone else copies it, and a month later nobody knows which version is the
real one.</p>
<p>Recipes are Agentplane's answer to that drift.</p>
<p>They are not meant to replace the project policy. They are not a second agent framework hiding next
to the repo. A useful recipe is narrower than that: a reusable behavior package that can be
installed, inspected, checked, and kept inside the same task lifecycle as normal work.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-problem-with-copied-prompts">The problem with copied prompts<a href="https://agentplane.org/blog/recipes-reusable-agent-behavior#the-problem-with-copied-prompts" class="hash-link" aria-label="Direct link to The problem with copied prompts" title="Direct link to The problem with copied prompts" translate="no">​</a></h2>
<p>Copied prompts feel cheap at the start. They are easy to paste into an agent session and easy to
tweak when something feels off. The cost shows up later.</p>
<p>The prompt gets out of sync with the repository. It names files that moved. It describes checks that
no longer exist. It contains a good recovery rule, but only in the private notebook of the person
who wrote it. Another agent gets a slightly different version and behaves differently on the same
kind of task.</p>
<p>That is not a tooling problem in the abstract. It is a review problem. If behavior changes because a
prompt was copied badly, the repository has no good record of what changed.</p>
<p>Recipes make reusable behavior part of the repository story.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-modular-prompts-changed-the-recipe-story">Why modular prompts changed the recipe story<a href="https://agentplane.org/blog/recipes-reusable-agent-behavior#why-modular-prompts-changed-the-recipe-story" class="hash-link" aria-label="Direct link to Why modular prompts changed the recipe story" title="Direct link to Why modular prompts changed the recipe story" translate="no">​</a></h2>
<p>Agentplane's recipe work became much more useful once prompt material stopped being one large text
surface. With modular prompt assembly, behavior can be named, compiled, and checked as smaller
parts. A recipe can target a module instead of replacing an entire instruction file.</p>
<p>That changes the risk profile. Installing a recipe should not feel like letting an unknown prompt
rewrite the whole operating model. It should feel closer to adding a reviewed capability: here is
the behavior, here is where it binds, here is the policy it depends on, here is how to verify that
it landed cleanly.</p>
<p>The early recipe system is still intentionally conservative. That is fine. Extensibility is only
useful if teams can understand what they extended.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-recipes-make-better">What recipes make better<a href="https://agentplane.org/blog/recipes-reusable-agent-behavior#what-recipes-make-better" class="hash-link" aria-label="Direct link to What recipes make better" title="Direct link to What recipes make better" translate="no">​</a></h2>
<p>Recipes make repeated work less dependent on memory.</p>
<p>A code-map recipe can give agents a repeatable way to inspect a repository before changing it. A
release-oriented recipe can preserve the evidence habit that keeps publication safe. A future
review recipe can encode what kind of comments should become code changes, task findings, or
follow-up issues.</p>
<p>The important part is not that a recipe saves a few commands. The important part is that the
behavior becomes reviewable. It can be versioned. It can be discussed. It can be removed. It can be
checked against the project instead of living as a private prompt.</p>
<p>This is why recipes fit Agentplane's larger model. Agentplane is not trying to make agents more
mysterious. It is trying to make their work easier to inspect after the session is gone.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="recipes-and-policy-have-different-jobs">Recipes and policy have different jobs<a href="https://agentplane.org/blog/recipes-reusable-agent-behavior#recipes-and-policy-have-different-jobs" class="hash-link" aria-label="Direct link to Recipes and policy have different jobs" title="Direct link to Recipes and policy have different jobs" translate="no">​</a></h2>
<p>Policy says what must be true in this repository. Recipes add reusable ways to do work within those
constraints.</p>
<p>That distinction matters. If a rule is mandatory for every agent, it belongs in the gateway or a
canonical policy module. If a behavior is useful for a class of tasks, but optional or replaceable,
it belongs in recipe space.</p>
<p>Keeping that boundary clean prevents recipes from becoming a second policy system. It also keeps
projects honest about what they are installing. The recipe can help, but the repository still owns
the final rules.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-practical-shift">The practical shift<a href="https://agentplane.org/blog/recipes-reusable-agent-behavior#the-practical-shift" class="hash-link" aria-label="Direct link to The practical shift" title="Direct link to The practical shift" translate="no">​</a></h2>
<p>The practical shift is from prompt reuse to behavior reuse.</p>
<p>Prompt reuse is fragile because it depends on text staying correct outside the system that uses it.
Behavior reuse is stronger because it has a place in the repository, a version, and a verification
path.</p>
<p>That is what recipes add to Agentplane. They let teams build on repeated agent workflows without
turning those workflows into folklore. Less paste. Less guessing. More inspectable behavior close to
the code it affects.</p>]]></content:encoded>
            <category>Recipes</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Blueprints: routes for agent work that should not be improvised]]></title>
            <link>https://agentplane.org/blog/why-blueprints-matter</link>
            <guid>https://agentplane.org/blog/why-blueprints-matter</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Blueprints make Agentplane better by turning repeated work into explicit routes with scope, evidence, checks, and recovery paths.]]></description>
            <content:encoded><![CDATA[<p>The hardest part of agent work is rarely the first draft. The hard part is knowing whether the
agent is on the right route.</p>
<p>That sounds mundane until a task gets large. A release includes commits, but it also includes
publication evidence. A migration includes file edits, but it also includes compatibility and
rollback. A branch-pr close includes a merge, but the handoff matters just as much. Each of those
jobs has a shape: the sources to inspect, the evidence to record, the checks that matter, and the
point where the agent should stop instead of guessing.</p>
<p>Blueprints are Agentplane's way of making that shape explicit.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-route-matters-before-the-code-changes">The route matters before the code changes<a href="https://agentplane.org/blog/why-blueprints-matter#the-route-matters-before-the-code-changes" class="hash-link" aria-label="Direct link to The route matters before the code changes" title="Direct link to The route matters before the code changes" translate="no">​</a></h2>
<p>Without blueprints, a repository can have good policy and still leave too much room for improvising.
The agent sees a user request, loads some docs, picks a plan, and starts moving. If the task is
small, this can be fine. If the task touches release, workflow, policy, or integration, the first
wrong turn usually happens before the first code edit.</p>
<p>The wrong turn is subtle. The agent chooses a verification route that is too light. It treats a
docs-only task like a runtime change, or the other way around. It forgets that branch-pr integration
has a base-checkout phase. It records a plan, but not the evidence a reviewer will need later.</p>
<p>A blueprint gives the task a route before execution starts. It says what kind of work this is, which
surfaces are in scope, what evidence belongs to the task, and which checks are expected. It does not
remove judgment. It narrows the place where judgment is allowed to happen.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-this-made-agentplane-better">Why this made Agentplane better<a href="https://agentplane.org/blog/why-blueprints-matter#why-this-made-agentplane-better" class="hash-link" aria-label="Direct link to Why this made Agentplane better" title="Direct link to Why this made Agentplane better" translate="no">​</a></h2>
<p>Agentplane already had a task lifecycle: create a task, approve a plan, execute, verify, finish.
Blueprints made that lifecycle less generic.</p>
<p>That is the real improvement. A lifecycle without task shape can become ceremony. A task record says
that work happened, but it may not say whether the work followed the right path. Blueprints connect
the task type to a route that can be inspected.</p>
<p>For a docs change, that route is light. For a release, it is strict. For branch-pr work, it includes
separate implementation and integration phases. For runner or workflow changes, it needs stronger
evidence because a small mistake can change how future agents mutate the repo.</p>
<p>The value is not that Agentplane can print a nicer plan. The value is that repeated work stops being
reinvented in every session.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="a-blueprint-is-not-a-checklist">A blueprint is not a checklist<a href="https://agentplane.org/blog/why-blueprints-matter#a-blueprint-is-not-a-checklist" class="hash-link" aria-label="Direct link to A blueprint is not a checklist" title="Direct link to A blueprint is not a checklist" translate="no">​</a></h2>
<p>A checklist is easy to satisfy mechanically. Blueprints are more useful because they describe the
operating model around the task.</p>
<p>They carry assumptions about ownership, mutation scope, policy modules, evidence, and recovery. They
also make mismatches visible. If a task starts as "just docs" and then begins changing runtime code,
that is not a tiny detail. It is a route change. The task should stop, get re-approved, and use a
different verification contract.</p>
<p>This is exactly the kind of guardrail agents need. They are good at continuing. They are less good
at noticing that continuation has changed the category of work.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-reviewers-get">What reviewers get<a href="https://agentplane.org/blog/why-blueprints-matter#what-reviewers-get" class="hash-link" aria-label="Direct link to What reviewers get" title="Direct link to What reviewers get" translate="no">​</a></h2>
<p>Reviewers get a better question to ask.</p>
<p>Instead of asking only "is this diff correct?", they can ask "did this task follow the route that
matches its risk?" That question is much easier to answer when the route is recorded in the task
artifact and reflected in the checks.</p>
<p>This matters for long-running branches. It matters when several agents are working at once. It
matters when a task closes days after the original prompt is gone. The blueprint gives the reviewer
something more stable than memory and more specific than general policy.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-agents-get">What agents get<a href="https://agentplane.org/blog/why-blueprints-matter#what-agents-get" class="hash-link" aria-label="Direct link to What agents get" title="Direct link to What agents get" translate="no">​</a></h2>
<p>Agents get less freedom in the places where freedom is expensive.</p>
<p>That is a good trade. The agent still chooses how to solve the task inside the approved scope. But
the route tells it what not to skip: which docs are canonical, which verification gates matter, which
handoff belongs to the workflow, and where to record evidence.</p>
<p>The result is calmer work. Fewer surprise scope jumps. Fewer "green but not actually ready" endings.
Fewer clean-looking diffs that leave reviewers reconstructing intent from branch names.</p>
<p>Blueprints made Agentplane better because they moved process knowledge out of individual sessions
and into repository-owned routes. That is where it belongs.</p>]]></content:encoded>
            <category>Blueprints</category>
            <category>Docs</category>
            <category>Workflow</category>
        </item>
        <item>
            <title><![CDATA[Agent Change Record: evidence for agent work]]></title>
            <link>https://agentplane.org/blog/introducing-acr-v0-1</link>
            <guid>https://agentplane.org/blog/introducing-acr-v0-1</guid>
            <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[ACR v0.1 gives coding-agent work a deterministic, machine-readable evidence artifact.]]></description>
            <content:encoded><![CDATA[<p>Coding agents can now produce large, plausible diffs faster than reviewers can reconstruct the work
behind them. The missing object is not another dashboard. It is a durable artifact that travels with
the repository.</p>
<p>Agent Change Record v0.1 is that artifact.</p>
<!-- -->
<p>An ACR is a deterministic JSON projection of one Agentplane task. It records the task intent, the
accepted plan, the agent and toolchain context, policy decisions, changed files, verification
results, approvals, evidence pointers, and closure state. It is generated from the same task
lifecycle that Agentplane already writes into <code>.agentplane/tasks/&lt;task-id&gt;/</code>.</p>
<p>The point of naming it is practical. Review tools, CI gates, security scanners, and future agent
runners need a stable thing to parse. "The agent said it ran tests" is not stable. A repo-local
<code>acr.json</code> validated against an open schema is.</p>
<p>Generate one:</p>
<div class="language-bash codeBlockContainer_JABB theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_Cf4j"><pre tabindex="0" class="prism-code language-bash codeBlock_Mb8G thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_kBK5"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane acr generate &lt;task-id&gt; --work-commit HEAD --write</span><br></div></code></pre></div></div>
<p>Validate it:</p>
<div class="language-bash codeBlockContainer_JABB theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_Cf4j"><pre tabindex="0" class="prism-code language-bash codeBlock_Mb8G thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_kBK5"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane acr validate .agentplane/tasks/&lt;task-id&gt;/acr.json</span><br></div></code></pre></div></div>
<p>Use it as a merge gate:</p>
<div class="language-bash codeBlockContainer_JABB theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_Cf4j"><pre tabindex="0" class="prism-code language-bash codeBlock_Mb8G thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_kBK5"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agentplane acr check &lt;task-id&gt; --require-plan-approved --require-verification</span><br></div></code></pre></div></div>
<p>ACR v0.1 is intentionally narrow. It does not store prompts, transcripts, private tool output, or
model internals. It stores evidence pointers and hashes: enough for review, audit, and handoff
without turning agent context into a second source of truth.</p>
<p>The trust model stays local-first. The repository remains the record. Agentplane derives the ACR
from task files, policy state, verification evidence, and Git revisions, then validates the result
against <code>@agentplane/spec</code>.</p>
<p>The schema is public:</p>
<div class="language-text codeBlockContainer_JABB theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_Cf4j"><pre tabindex="0" class="prism-code language-text codeBlock_Mb8G thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_kBK5"><div class="token-line" style="color:#bfc7d5"><span class="token plain">https://agentplane.org/schemas/acr-v0.1.schema.json</span><br></div></code></pre></div></div>
<p>In 0.5, the runner work can build on this artifact instead of inventing a separate reporting layer.
Runner execution should produce the same kind of durable evidence that human-supervised agent work
does today. ACR is the shared record that makes that possible.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
        </item>
        <item>
            <title><![CDATA[Audit layer: why coding agents need evidence]]></title>
            <link>https://agentplane.org/blog/coding-agent-audit-layer-and-recipes</link>
            <guid>https://agentplane.org/blog/coding-agent-audit-layer-and-recipes</guid>
            <pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Agentplane's 0.4 recipe work is not just extensibility. It is the start of a repository-native audit layer for coding-agent changes.]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Agentplane audit-layer preview" src="https://agentplane.org/assets/images/header-8f33e802dc3636b146f9131e24e30de7.png" width="1560" height="840" class="img_w580"></p>
<p>Coding agents are already good enough to change real repositories.</p>
<p>The weak part is not always the code they write. The weak part is the trail around the code: why the task existed, which plan constrained it, who owned the execution, which checks ran, and what made the work safe to close.</p>
<!-- -->
<p>That is the product boundary Agentplane is built around. It is not another coding agent. It is the audit layer around coding-agent work.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-diff-is-too-small-a-record">The diff is too small a record<a href="https://agentplane.org/blog/coding-agent-audit-layer-and-recipes#the-diff-is-too-small-a-record" class="hash-link" aria-label="Direct link to The diff is too small a record" title="Direct link to The diff is too small a record" translate="no">​</a></h2>
<p>A pull request can show the final files. It usually cannot show the agent's full operating context.</p>
<p>That context matters when work is bigger than a one-line edit:</p>
<ul>
<li class="">a task needs a durable ID,</li>
<li class="">a plan needs approval before mutation,</li>
<li class="">an agent needs role-specific constraints,</li>
<li class="">verification needs evidence,</li>
<li class="">integration needs a clear handoff,</li>
<li class="">closure needs to say what actually passed.</li>
</ul>
<p>Without that trail, reviewers end up reconstructing intent from a diff, a branch name, and whatever still exists in a chat window.</p>
<p>Agentplane makes the trail a repository artifact.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-changed-in-04">What changed in 0.4<a href="https://agentplane.org/blog/coding-agent-audit-layer-and-recipes#what-changed-in-04" class="hash-link" aria-label="Direct link to What changed in 0.4" title="Direct link to What changed in 0.4" translate="no">​</a></h2>
<p>The <code>0.4</code> line moved Agentplane toward a more explicit recipe and prompt-module system.</p>
<p>The important part is not the internal architecture by itself. The important part is what it enables: narrow behavior modules that can be inspected, validated, and composed without replacing an entire instruction surface.</p>
<p>That matters for recipes because useful recipes should be specific.</p>
<p>A recipe should be able to add a code-map workflow, constrain a role, bind a policy module, or validate a prompt graph without asking the project to trust an opaque blob of instructions.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="recipes-are-audit-behavior">Recipes are audit behavior<a href="https://agentplane.org/blog/coding-agent-audit-layer-and-recipes#recipes-are-audit-behavior" class="hash-link" aria-label="Direct link to Recipes are audit behavior" title="Direct link to Recipes are audit behavior" translate="no">​</a></h2>
<p>Recipes are easy to describe as automation. That is incomplete.</p>
<p>In Agentplane, a useful recipe is repeatable audit behavior:</p>
<ul>
<li class="">it declares what behavior it adds,</li>
<li class="">it can be installed into a repository,</li>
<li class="">it can be checked against local policy,</li>
<li class="">it can produce reviewable task artifacts,</li>
<li class="">it can stay inside the same Git-based lifecycle as normal work.</li>
</ul>
<p>That is different from a script pile. The recipe is not only "run these commands." It is "add this repeatable behavior to the agent workflow and keep it inspectable."</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-this-belongs-in-the-repository">Why this belongs in the repository<a href="https://agentplane.org/blog/coding-agent-audit-layer-and-recipes#why-this-belongs-in-the-repository" class="hash-link" aria-label="Direct link to Why this belongs in the repository" title="Direct link to Why this belongs in the repository" translate="no">​</a></h2>
<p>Agent workflows become harder to trust when the durable record lives outside the repo.</p>
<p>Agentplane keeps the important parts close to the code:</p>
<ul>
<li class=""><code>AGENTS.md</code> is the policy gateway,</li>
<li class=""><code>.agentplane/policy/</code> holds canonical rules,</li>
<li class=""><code>.agentplane/tasks/&lt;task-id&gt;/</code> records task state and evidence,</li>
<li class="">branch and pull request artifacts connect work to Git review,</li>
<li class="">generated references and discovery files help humans and agents find the right path.</li>
</ul>
<p>The repository remains the source of truth. Hosted tools can still help, but the audit record does not depend on them.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="where-this-fits-with-coding-agents">Where this fits with coding agents<a href="https://agentplane.org/blog/coding-agent-audit-layer-and-recipes#where-this-fits-with-coding-agents" class="hash-link" aria-label="Direct link to Where this fits with coding agents" title="Direct link to Where this fits with coding agents" translate="no">​</a></h2>
<p>Claude Code, Codex, Cursor, and Aider are execution surfaces. They help generate, edit, and explain code.</p>
<p>Agentplane gives those agents an operating contract:</p>
<ol>
<li class="">load the right policy,</li>
<li class="">create or use a task,</li>
<li class="">approve the plan,</li>
<li class="">execute inside scope,</li>
<li class="">record verification,</li>
<li class="">hand off integration cleanly.</li>
</ol>
<p>That contract is intentionally boring. Boring is useful when an agent can mutate a repository.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-to-read-next">What to read next<a href="https://agentplane.org/blog/coding-agent-audit-layer-and-recipes#what-to-read-next" class="hash-link" aria-label="Direct link to What to read next" title="Direct link to What to read next" translate="no">​</a></h2>
<p>Start with the short product framing:</p>
<ul>
<li class=""><a class="" href="https://agentplane.org/docs/manifesto">Why Agentplane exists</a></li>
<li class=""><a class="" href="https://agentplane.org/docs/compare">How Agentplane compares</a></li>
<li class=""><a class="" href="https://agentplane.org/docs/recipes">Recipes overview</a></li>
<li class=""><a class="" href="https://agentplane.org/docs/releases/v0.4.0">Agentplane 0.4.0 release notes</a></li>
</ul>
<p>The practical test is simple: after the agent finishes, can another human or agent understand why the change happened and why it was closed?</p>
<p>If the answer is no, the workflow is missing an audit layer.</p>]]></content:encoded>
            <category>Workflow</category>
            <category>Operations</category>
            <category>Docs</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.4.1: hosted close and release evidence]]></title>
            <link>https://agentplane.org/blog/release-0-4-1-hosted-close-and-release-evidence</link>
            <guid>https://agentplane.org/blog/release-0-4-1-hosted-close-and-release-evidence</guid>
            <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Agentplane 0.4.1 tightened branch_pr closure, release evidence, and hosted PR handoff.]]></description>
            <content:encoded><![CDATA[<p>Agentplane 0.4.1 was a small release with one important theme: make closure easier to prove.</p>
<!-- -->
<p>The <code>branch_pr</code> workflow already separates implementation work from base-branch integration. 0.4.1
tightened the hosted-close path so protected <code>main</code> repositories can hand off to GitHub PR merges
without pretending that a local integrate command mutated the base branch.</p>
<p>The release also improved the evidence trail around publishing. Release tasks now preserve clearer
notes about what was checked, which artifact or channel was prepared, and what still requires a
hosted action. That matters because release failures are rarely one command. They are a chain of
version parity, generated assets, package metadata, remote checks, and final publication.</p>
<p>For users, the visible effect is quieter: fewer ambiguous close states, better release notes, and a
workflow that treats protected branches as a real boundary instead of a nuisance.</p>
<p>That is the direction of the 0.4 line: keep Agentplane local-first, but make every important state
transition explain itself.</p>]]></content:encoded>
            <category>Release</category>
        </item>
        <item>
            <title><![CDATA[Roadmap to 0.4: modular prompts and recipes]]></title>
            <link>https://agentplane.org/blog/agentplane-0-3-road-to-0-4</link>
            <guid>https://agentplane.org/blog/agentplane-0-3-road-to-0-4</guid>
            <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A short development note on what the 0.3 line changed, why it took so many patches, and why modular prompt assembly is the right boundary for 0.4.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3</code> ended up being less of a feature line and more of a discipline line.</p>
<p>It started with a policy gateway and stricter release records. It ended with branch PR closure evidence, publish hygiene, recipe groundwork, and the first real modular prompt assembly layer. That is a lot for a <code>0.3.x</code> series, but the pattern is easier to see in hindsight: every patch made the system less dependent on implicit agent judgment.</p>
<p>The final published <code>0.3</code> release is <code>v0.3.29</code>. A maintenance branch now preserves that line as <code>0.3</code>. The next release is being prepared as <code>0.4.0</code> because prompt modules are not just another patch. They introduce a new mental model for how Agentplane builds agent instructions.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-first-half-of-03-was-about-making-rules-executable">The first half of 0.3 was about making rules executable<a href="https://agentplane.org/blog/agentplane-0-3-road-to-0-4#the-first-half-of-03-was-about-making-rules-executable" class="hash-link" aria-label="Direct link to The first half of 0.3 was about making rules executable" title="Direct link to The first half of 0.3 was about making rules executable" translate="no">​</a></h2>
<p><code>0.3.0</code> moved the project from large, fuzzy instruction files toward a policy gateway with routed modules. That mattered because agents do not fail only when they lack rules. They also fail when the rule graph is too vague to load deterministically.</p>
<p>The early <code>0.3</code> releases tightened that surface:</p>
<ul>
<li class=""><code>AGENTS.md</code> became a compact gateway instead of the place where every procedure accumulates.</li>
<li class="">Policy modules became the canonical place for workflow, release, security, and DoD rules.</li>
<li class="">Routing checks started treating policy shape as something testable.</li>
<li class="">Release notes became real traceability records instead of generic summaries.</li>
</ul>
<p>The point was not documentation polish. It was execution control. If an agent can mutate a repository, it needs a small, checkable path from request to policy to task state to verification.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-middle-of-03-was-about-removing-release-optimism">The middle of 0.3 was about removing release optimism<a href="https://agentplane.org/blog/agentplane-0-3-road-to-0-4#the-middle-of-03-was-about-removing-release-optimism" class="hash-link" aria-label="Direct link to The middle of 0.3 was about removing release optimism" title="Direct link to The middle of 0.3 was about removing release optimism" translate="no">​</a></h2>
<p>Several <code>0.3</code> patches were boring in the best possible way: they turned release assumptions into release gates.</p>
<p>The clearest example was the <code>0.3.8</code> and <code>0.3.9</code> installability incident. A package with a leaked <code>workspace:</code> dependency made it to npm, and a fresh install failed before the CLI could start. The fix was not only to remove the bad dependency. The release process had to reject that class of package before publish.</p>
<p>That theme repeated through the line:</p>
<ul>
<li class="">package parity checks got stricter,</li>
<li class="">install smoke tests became more important,</li>
<li class="">publish recovery became less ad hoc,</li>
<li class="">generated references and task artifacts were checked more aggressively,</li>
<li class="">branch PR closure evidence had to reconcile with task state instead of relying on operator memory.</li>
</ul>
<p>This is why <code>0.3</code> has so many small releases. The product was not just gaining commands. It was learning which mistakes deserved a hard gate.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="branch-pr-became-the-default-shape-of-serious-work">Branch PR became the default shape of serious work<a href="https://agentplane.org/blog/agentplane-0-3-road-to-0-4#branch-pr-became-the-default-shape-of-serious-work" class="hash-link" aria-label="Direct link to Branch PR became the default shape of serious work" title="Direct link to Branch PR became the default shape of serious work" translate="no">​</a></h2>
<p>The later <code>0.3</code> work made <code>branch_pr</code> feel less like a workflow option and more like the right default for non-trivial changes.</p>
<p>That required a surprising amount of plumbing. PR artifact state had to be typed. PR opening had to become transactional. Integration needed to preserve branch history by default. Hosted close flows needed better reconciliation. Task branches and close branches needed clearer cleanup rules.</p>
<p>The result is not glamorous, but it is important: a task can move from plan to branch to PR to merge to closure with more of its evidence still attached.</p>
<p>That is the core operational idea in Agentplane. The repository should not have to trust that an agent remembers what happened. The evidence should be in the task, the PR artifacts, the branch history, and the release record.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="recipes-pushed-the-system-toward-modular-prompts">Recipes pushed the system toward modular prompts<a href="https://agentplane.org/blog/agentplane-0-3-road-to-0-4#recipes-pushed-the-system-toward-modular-prompts" class="hash-link" aria-label="Direct link to Recipes pushed the system toward modular prompts" title="Direct link to Recipes pushed the system toward modular prompts" translate="no">​</a></h2>
<p>Recipes were the pressure test.</p>
<p>As long as prompts are just large text files, a recipe can only do coarse things: replace a whole file, append a large instruction block, or hope that a textual patch lands in the right place. That is not a good substrate for agent-specific behavior.</p>
<p>The <code>0.3</code> line added enough recipe and prompt groundwork to make the next step obvious:</p>
<ul>
<li class="">recipe manifests gained prompt mutation concepts,</li>
<li class="">prompt fragments gained names and selectors,</li>
<li class="">prompt graphs gained diagnostics,</li>
<li class="">init and runner paths began compiling prompt material instead of copying it blindly.</li>
</ul>
<p>At that point, the old patch-release framing stopped fitting the change. A modular prompt layer is a platform boundary. It changes what recipes can target and how future agents can be assembled.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-04-starts-at-prompt-modules">Why 0.4 starts at prompt modules<a href="https://agentplane.org/blog/agentplane-0-3-road-to-0-4#why-04-starts-at-prompt-modules" class="hash-link" aria-label="Direct link to Why 0.4 starts at prompt modules" title="Direct link to Why 0.4 starts at prompt modules" translate="no">​</a></h2>
<p><code>0.4</code> is the right boundary because it names the new abstraction.</p>
<p>The work now moves from "make the old instruction surface safer" to "treat prompts as compiled, addressable modules." That unlocks a different kind of recipe: one that can patch a named behavior, bind a module, disable a specific fragment, or validate that a graph still contains the right policy pieces.</p>
<p>That does not make prompts magic. It makes them less opaque.</p>
<p>The practical target for <code>0.4</code> is simple:</p>
<ul>
<li class="">agent instructions should be assembled from named modules,</li>
<li class="">generated project files should come from the same module graph,</li>
<li class="">recipes should be able to target modules rather than whole prompt files,</li>
<li class="">diagnostics should explain graph drift before it becomes runtime confusion.</li>
</ul>
<p>That is enough of a conceptual shift to stop calling it another <code>0.3.x</code> patch.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-03-leaves-behind">What 0.3 leaves behind<a href="https://agentplane.org/blog/agentplane-0-3-road-to-0-4#what-03-leaves-behind" class="hash-link" aria-label="Direct link to What 0.3 leaves behind" title="Direct link to What 0.3 leaves behind" translate="no">​</a></h2>
<p>The useful lesson from <code>0.3</code> is that agent infrastructure improves when weak assumptions become executable checks.</p>
<p>The line started by making policy routing explicit. It then made releases, installability, task closure, PR artifacts, and recipe prompt behavior more testable. By the end, the remaining problem was no longer "where do we put the instructions?" It was "how do we let agents and recipes change the right part of the instruction graph without rewriting the whole thing?"</p>
<p>That is the road to <code>0.4</code>.</p>
<p>The formal source records remain the release notes under <a class="" href="https://agentplane.org/docs/releases"><code>/docs/releases</code></a>, with <code>v0.3.29</code> as the final published <code>0.3</code> release.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.4.0: modular prompts and recipe-ready agents]]></title>
            <link>https://agentplane.org/blog/release-0-4-0-modular-prompts-and-recipes</link>
            <guid>https://agentplane.org/blog/release-0-4-0-modular-prompts-and-recipes</guid>
            <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Agentplane 0.4.0 turns prompts into compiled, addressable modules so recipes can target behavior instead of replacing whole instruction files.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.4.0</code> is published.</p>
<p>The headline is modular prompt assembly: agent instructions, policy gateway material, generated agent profiles, and runner prompt inputs now move through a shared module graph instead of being treated as large prompt files copied from place to place.</p>
<p>That sounds internal, but it changes the shape of the product. It gives Agentplane a stable layer where future recipes can patch, bind, disable, or validate named behavior without rewriting an entire prompt surface.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-this-is-a-04-release">Why this is a 0.4 release<a href="https://agentplane.org/blog/release-0-4-0-modular-prompts-and-recipes#why-this-is-a-04-release" class="hash-link" aria-label="Direct link to Why this is a 0.4 release" title="Direct link to Why this is a 0.4 release" translate="no">​</a></h2>
<p>The final <code>0.3</code> line made the old workflow safer. It tightened policy routing, task closure, release evidence, package checks, and branch PR discipline.</p>
<p><code>0.4</code> starts because the core abstraction changed.</p>
<p>Before this release, a prompt was mostly a file boundary. If a recipe needed to adjust one behavior, it had to work against a broad text surface. That made small changes feel larger than they were and made diagnostics harder to trust.</p>
<p>In <code>0.4.0</code>, prompt material is organized as named fragments and compiled modules. The important boundary is no longer "which file contains this instruction?" It is "which module owns this behavior, and what is allowed to change it?"</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-changed">What changed<a href="https://agentplane.org/blog/release-0-4-0-modular-prompts-and-recipes#what-changed" class="hash-link" aria-label="Direct link to What changed" title="Direct link to What changed" translate="no">​</a></h2>
<p>This release adds the first production version of the modular prompt layer:</p>
<ul>
<li class="">prompt fragments have parser contracts and names,</li>
<li class="">prompt modules compile into deterministic generated assets,</li>
<li class="">the framework prompt registry is built from fragmented source material,</li>
<li class="">init compiles gateway policy and agent profiles from the same graph model,</li>
<li class="">runner prompt assembly can use module-aware prompt material,</li>
<li class="">recipe manifests can express prompt module declarations and mutations,</li>
<li class="">diagnostics can detect prompt graph drift before it becomes runtime confusion.</li>
</ul>
<p>The immediate user-facing result is quieter consistency. Generated <code>AGENTS.md</code>, policy modules, agent profiles, and runner prompt behavior now have one source model instead of several related but fragile surfaces.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-recipes-needed-this">Why recipes needed this<a href="https://agentplane.org/blog/release-0-4-0-modular-prompts-and-recipes#why-recipes-needed-this" class="hash-link" aria-label="Direct link to Why recipes needed this" title="Direct link to Why recipes needed this" translate="no">​</a></h2>
<p>Recipes are the reason this release matters.</p>
<p>A useful recipe should be able to say something precise: change this behavior, add this policy module, bind this agent-specific instruction, or validate that this prompt graph still contains a required safety rule.</p>
<p>That is hard if the only target is a whole prompt file.</p>
<p>With module-level prompt assembly, recipes can move toward narrower and more reviewable changes. The recipe layer is still being built out, but <code>0.4.0</code> gives it the substrate it needed: named modules, mutation boundaries, selectors, and graph diagnostics.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-notes">Upgrade notes<a href="https://agentplane.org/blog/release-0-4-0-modular-prompts-and-recipes#upgrade-notes" class="hash-link" aria-label="Direct link to Upgrade notes" title="Direct link to Upgrade notes" translate="no">​</a></h2>
<p>Existing <code>0.3.29</code> projects do not need a manual migration.</p>
<p>Projects that regenerate Agentplane assets through init or upgrade paths will receive prompt assets compiled from the modular prompt graph. Recipe authors can begin designing against prompt modules and selectors, while still following the documented recipe manifest contract.</p>
<p>The <code>0.3</code> maintenance branch remains pinned to <code>v0.3.29</code>. The modular prompt architecture starts in the <code>0.4</code> line.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="release-evidence">Release evidence<a href="https://agentplane.org/blog/release-0-4-0-modular-prompts-and-recipes#release-evidence" class="hash-link" aria-label="Direct link to Release evidence" title="Direct link to Release evidence" translate="no">​</a></h2>
<p>The release was published through the hosted branch PR route:</p>
<ul>
<li class=""><code>agentplane</code>, <code>@agentplaneorg/core</code>, and <code>@agentplaneorg/recipes</code> are all published as <code>0.4.0</code> on npm,</li>
<li class="">the remote tag <code>v0.4.0</code> resolves to <code>060b70ca465b780337c2ec9da035fc66e615803f</code>,</li>
<li class="">the GitHub Release <a href="https://github.com/basilisk-labs/agentplane/releases/tag/v0.4.0" target="_blank" rel="noopener noreferrer" class=""><code>v0.4.0</code></a> is published.</li>
</ul>
<p>The formal release notes are available at <a class="" href="https://agentplane.org/docs/releases/v0.4.0"><code>/docs/releases/v0.4.0</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.8 and 0.3.9: preparing 0.4 and fixing installability]]></title>
            <link>https://agentplane.org/blog/release-0-3-8-and-0-3-9-preparing-0-4-fixing-installability</link>
            <guid>https://agentplane.org/blog/release-0-3-8-and-0-3-9-preparing-0-4-fixing-installability</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why 0.3.8 spent its budget on internal cleanup for 0.4 and 0.5, how a leaked workspace dependency broke npm installs, and how 0.3.9 turned installability into a hard release gate.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.8</code> and <code>0.3.9</code> make more sense as one release story than as two separate announcements.</p>
<p><code>0.3.8</code> was the preparation patch. It split oversized modules, collapsed duplicated execution paths, and pushed the CLI, task lifecycle, backends, and runner toward shared contracts that <code>0.4</code> and <code>0.5</code> will need anyway.</p>
<p>Then the release itself exposed a hole in the publish contract. The npm artifact for <code>0.3.8</code> shipped with a <code>workspace:</code> dependency on <code>@agentplane/recipes</code>, so plain <code>npm install agentplane</code> failed with <code>EUNSUPPORTEDPROTOCOL</code> before the CLI could even start.</p>
<p><code>0.3.9</code> is the corrective half of that same work. It removes the leaked workspace dependency, adds a release parity guard that fails publishable manifests containing <code>workspace:</code> references, and tightens the hook-runner fallback used by release and upgrade flows.</p>
<p>That is why this is one release story. <code>0.3.8</code> showed where the codebase was going. <code>0.3.9</code> fixed the part that proved the release process was not strict enough yet.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="038-was-mostly-about-clearing-the-codebase-for-what-comes-next"><code>0.3.8</code> was mostly about clearing the codebase for what comes next<a href="https://agentplane.org/blog/release-0-3-8-and-0-3-9-preparing-0-4-fixing-installability#038-was-mostly-about-clearing-the-codebase-for-what-comes-next" class="hash-link" aria-label="Direct link to 038-was-mostly-about-clearing-the-codebase-for-what-comes-next" title="Direct link to 038-was-mostly-about-clearing-the-codebase-for-what-comes-next" translate="no">​</a></h2>
<p>There was no single marquee feature in <code>0.3.8</code>, and that was the point.</p>
<p>Most of the patch was internal convergence work:</p>
<ul>
<li class="">shared task-mutation and doc-mutation paths,</li>
<li class="">shared workflow-transition executors,</li>
<li class="">shared CLI emitters and output contracts,</li>
<li class="">smaller backend, upgrade, and runner modules,</li>
<li class="">less duplicated test scaffolding around those same seams.</li>
</ul>
<p>This kind of release is easy to undersell because the visible CLI surface barely moves. But it matters. <code>0.4</code> and <code>0.5</code> were going to land on a codebase that still had too many parallel paths for the same behavior, and that gets expensive fast once you start shipping larger features.</p>
<p>So <code>0.3.8</code> spent its budget where it would compound: fewer duplicated branches, narrower files, clearer contracts.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-important-failure-in-038-was-not-in-the-code-logic">The important failure in <code>0.3.8</code> was not in the code logic<a href="https://agentplane.org/blog/release-0-3-8-and-0-3-9-preparing-0-4-fixing-installability#the-important-failure-in-038-was-not-in-the-code-logic" class="hash-link" aria-label="Direct link to the-important-failure-in-038-was-not-in-the-code-logic" title="Direct link to the-important-failure-in-038-was-not-in-the-code-logic" translate="no">​</a></h2>
<p>The code in the repository was cleaner. The shipped package was not.</p>
<p>What escaped into npm was a publishable manifest that still referenced a private workspace package:</p>
<ul>
<li class=""><code>@agentplane/recipes=workspace:packages/recipes</code></li>
</ul>
<p>That is enough for <code>npm</code> to refuse the install entirely. No task flow was required to trigger it. No edge-case backend was involved. A fresh global install failed before users even reached <code>agentplane --help</code>.</p>
<p>That kind of failure changes the meaning of a patch release. Once installability is broken, the rest of the improvements do not matter until the package is valid again.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="039-turns-installability-into-part-of-the-release-contract"><code>0.3.9</code> turns installability into part of the release contract<a href="https://agentplane.org/blog/release-0-3-8-and-0-3-9-preparing-0-4-fixing-installability#039-turns-installability-into-part-of-the-release-contract" class="hash-link" aria-label="Direct link to 039-turns-installability-into-part-of-the-release-contract" title="Direct link to 039-turns-installability-into-part-of-the-release-contract" translate="no">​</a></h2>
<p><code>0.3.9</code> fixes the broken package, but the more important part is what changed around the fix.</p>
<p>This patch does three concrete things:</p>
<ul>
<li class="">removes the leaked workspace dependency from the published CLI package,</li>
<li class="">adds a release parity guard that rejects publishable manifests containing <code>workspace:</code> dependencies,</li>
<li class="">hardens hook-runner fallback behavior so release and upgrade smoke paths do not quietly depend on whatever global <code>agentplane</code> version happens to be on the machine.</li>
</ul>
<p>That last part matters more than it sounds. A release pipeline becomes fragile when local hooks, smoke tests, or upgrade checks accidentally borrow behavior from an unrelated globally installed binary. <code>0.3.9</code> reduces that ambiguity.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="read-038-and-039-together">Read <code>0.3.8</code> and <code>0.3.9</code> together<a href="https://agentplane.org/blog/release-0-3-8-and-0-3-9-preparing-0-4-fixing-installability#read-038-and-039-together" class="hash-link" aria-label="Direct link to read-038-and-039-together" title="Direct link to read-038-and-039-together" translate="no">​</a></h2>
<p>Taken separately, <code>0.3.8</code> looks like an internal prep patch and <code>0.3.9</code> looks like a narrow packaging fix.</p>
<p>Taken together, they say something more useful:</p>
<ol>
<li class="">the project is actively reducing internal duplication before the <code>0.4</code> and <code>0.5</code> line,</li>
<li class="">the release process is getting less forgiving about publish-time mistakes,</li>
<li class="">installability is now treated as a release invariant, not as a hopeful side effect of passing tests.</li>
</ol>
<p>That is the real outcome of this patch line.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-8-and-0-3-9-preparing-0-4-fixing-installability#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>If you are on <code>0.3.7</code>, skip <code>0.3.8</code> and move straight to <code>0.3.9</code>.</p>
<p>If you already tried <code>0.3.8</code> and hit the <code>EUNSUPPORTEDPROTOCOL</code> install failure, <code>0.3.9</code> is the corrective release. There is no intended workflow migration in this patch line. The user-facing point is simple: the package installs again, and the release path that produced the broken artifact is stricter than it was before.</p>
<p>The formal source records remain the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.8"><code>/docs/releases/v0.3.8</code></a> and <a class="" href="https://agentplane.org/docs/releases/v0.3.9"><code>/docs/releases/v0.3.9</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.7: legacy recovery and safer publishing]]></title>
            <link>https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish</link>
            <guid>https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish</guid>
            <pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What changed in Agentplane 0.3.7, in plain language: older repos recover more predictably, Redmine-backed task state gets less lossy, and the release path becomes stricter from local gate to npm.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.7</code> is a patch release about making the product behave more honestly when the repository is old, the backend is external, or the release path is under stress.</p>
<p>That sounds broad, but the theme is consistent. <code>0.3.7</code> removes a set of half-implicit transitions that were still too easy to treat as “probably fine”:</p>
<ul>
<li class="">legacy task docs that upgraded in two separate mental steps,</li>
<li class="">Redmine state that still behaved too much like a projection-only shadow,</li>
<li class="">release publication that needed stronger exact-SHA and artifact-backed recovery rules.</li>
</ul>
<p><code>0.3.7</code> makes those boundaries much sharper.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="legacy-recovery-is-closer-to-a-real-operator-path-now">Legacy recovery is closer to a real operator path now<a href="https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish#legacy-recovery-is-closer-to-a-real-operator-path-now" class="hash-link" aria-label="Direct link to Legacy recovery is closer to a real operator path now" title="Direct link to Legacy recovery is closer to a real operator path now" translate="no">​</a></h2>
<p>The most practical change in <code>0.3.7</code> is that older initialized repositories are no longer left in a fuzzy “upgrade mostly worked” state without a clear handoff.</p>
<p>The release tightens the supported recovery path for repositories that still carry legacy README v2 task docs or partial managed-tree drift:</p>
<ul>
<li class=""><code>agentplane doctor</code> reports the state more explicitly,</li>
<li class=""><code>agentplane upgrade --migrate-task-docs --yes</code> can bridge more of the recovery in one run,</li>
<li class="">and upgrade output now makes it clearer when <code>task migrate-doc</code> is still the next action.</li>
</ul>
<p>That is the right direction for a workflow tool. Recovery should be diagnosable and operational, not folklore.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="redmine-gets-closer-to-canonical-task-state">Redmine gets closer to canonical task state<a href="https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish#redmine-gets-closer-to-canonical-task-state" class="hash-link" aria-label="Direct link to Redmine gets closer to canonical task state" title="Direct link to Redmine gets closer to canonical task state" translate="no">​</a></h2>
<p><code>0.3.7</code> also pushes Redmine-backed repositories closer to the same canonical task-state model that local repositories already expect.</p>
<p>This release adds more of the missing plumbing around canonical state, revision-aware round trips, lifecycle metadata preservation, readiness checks, and live sync/conflict coverage. In plain language, that means Redmine-backed state is less dependent on lossy projections and better aligned with the same sections-and-revision model the local task system now treats as real state.</p>
<p>That matters because backend integration gets dangerous when users cannot tell whether the system owns a canonical record or merely a cached rendering of one.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="readme-v3-stops-feeling-like-a-migration-tail">README v3 stops feeling like a migration tail<a href="https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish#readme-v3-stops-feeling-like-a-migration-tail" class="hash-link" aria-label="Direct link to README v3 stops feeling like a migration tail" title="Direct link to README v3 stops feeling like a migration tail" translate="no">​</a></h2>
<p>Another smaller but important shift in <code>0.3.7</code> is that README v3 stops behaving like the “newer format that still leaks old edge-cases.”</p>
<p>Two visible fixes matter here:</p>
<ul>
<li class=""><code>task derive</code> can now carry <code>--verify</code> and seed implementation <code>Verify Steps</code> more like <code>task new</code>,</li>
<li class="">verification details keep multiline formatting instead of collapsing into literal escaped newlines.</li>
</ul>
<p>This is not a redesign. It is cleanup of the task surfaces people actually touch while working.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-release-line-itself-is-stricter-now">The release line itself is stricter now<a href="https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish#the-release-line-itself-is-stricter-now" class="hash-link" aria-label="Direct link to The release line itself is stricter now" title="Direct link to The release line itself is stricter now" translate="no">​</a></h2>
<p>The release machinery also got tighter in <code>0.3.7</code>.</p>
<p>This patch adds stronger release-ready and publish-result artifact use, exact-SHA recovery flows, and better parity between the local prepublish gate and the GitHub publish path. The result is a release process that is harder to fake, easier to recover, and less dependent on mutable assumptions about “the latest successful run.”</p>
<p>That is especially important for patch releases. The release system itself should not be the least trustworthy part of the release.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-practical-shift">The practical shift<a href="https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish#the-practical-shift" class="hash-link" aria-label="Direct link to The practical shift" title="Direct link to The practical shift" translate="no">​</a></h2>
<p><code>0.3.7</code> is a convergence release, but in a different way from <code>0.3.5</code>.</p>
<p>It makes three things truer than they were before:</p>
<ul>
<li class="">older repositories have a clearer supported recovery path,</li>
<li class="">Redmine-backed state is less projection-fragile,</li>
<li class="">release publication is stricter from local verification through GitHub and npm.</li>
</ul>
<p>That is exactly the kind of patch-line work that compounds well.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-7-legacy-recovery-redmine-and-safer-publish#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>There is no new breaking workflow-mode change in <code>0.3.7</code>.</p>
<p>If your repository is already on README v3 and current framework assets, the visible changes are mostly in recovery behavior, backend modeling, and release/runtime strictness.</p>
<p>If your repository is older, the practical path is now clearer:</p>
<ol>
<li class="">Run <code>agentplane doctor</code>.</li>
<li class="">If diagnostics call for it, run <code>agentplane upgrade --migrate-task-docs --yes</code>.</li>
<li class="">If legacy task docs still remain, follow the explicit handoff to <code>agentplane task migrate-doc --all</code>.</li>
</ol>
<p>The formal source record remains the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.7"><code>/docs/releases/v0.3.7</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Backend</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.5: README v3 and projection-first backends]]></title>
            <link>https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection</link>
            <guid>https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection</guid>
            <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What changed in Agentplane 0.3.5, in plain language: README v3 became the active contract, docs pages got calmer on wide layouts, and Redmine-backed repos stopped hiding network reads inside ordinary task commands.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.5</code> is the release where a few important surfaces stop behaving like half-finished transitions.</p>
<p>That matters because <code>0.3.x</code> has been doing two kinds of work at once: tightening the repository workflow contract, and making the public product behave like an installed tool instead of a framework-internal script bundle. In <code>0.3.5</code>, several of those moving parts finally line up.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="readme-v3-is-no-longer-the-new-shape-it-is-the-shape">README v3 is no longer “the new shape.” It is the shape.<a href="https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection#readme-v3-is-no-longer-the-new-shape-it-is-the-shape" class="hash-link" aria-label="Direct link to README v3 is no longer “the new shape.” It is the shape." title="Direct link to README v3 is no longer “the new shape.” It is the shape." translate="no">​</a></h2>
<p>The first practical change in <code>0.3.5</code> is that README v3 stops being one task-document format among several partially live ones.</p>
<p>The repository config, schema defaults, templates, migration tooling, and task-facing docs now point at the same active structure:</p>
<ul>
<li class=""><code>Summary</code></li>
<li class=""><code>Scope</code></li>
<li class=""><code>Plan</code></li>
<li class=""><code>Verify Steps</code></li>
<li class=""><code>Verification</code></li>
<li class=""><code>Rollback Plan</code></li>
<li class=""><code>Findings</code></li>
</ul>
<p>That sounds procedural. It is also important operational cleanup. A workflow tool should not make users guess which task-document contract is current.</p>
<p><code>0.3.5</code> closes the last mixed-contract gaps and makes migration behave more predictably for repositories that still carry legacy README v2 task records.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-docs-shell-stops-fighting-the-page">The docs shell stops fighting the page<a href="https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection#the-docs-shell-stops-fighting-the-page" class="hash-link" aria-label="Direct link to The docs shell stops fighting the page" title="Direct link to The docs shell stops fighting the page" translate="no">​</a></h2>
<p>Another visible improvement in <code>0.3.5</code> is the documentation frame itself.</p>
<p>This release hardens the docs shell so it depends on repo-owned hooks and stable wrappers instead of brittle theme-generated selectors. That sounds technical, but it shows up in user-facing ways:</p>
<ul>
<li class="">wider reading gutters on large layouts,</li>
<li class="">less decorative chrome around the docs frame,</li>
<li class="">no right-side subsection map competing for attention,</li>
<li class="">a sidebar that stays aligned under the navbar instead of drifting underneath it.</li>
</ul>
<p>This is the right kind of docs work for a patch release. Not a redesign. Just fewer layout oddities and less theme-fragile CSS.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="projection-first-backends-become-real-product-behavior">Projection-first backends become real product behavior<a href="https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection#projection-first-backends-become-real-product-behavior" class="hash-link" aria-label="Direct link to Projection-first backends become real product behavior" title="Direct link to Projection-first backends become real product behavior" translate="no">​</a></h2>
<p>The backend story also gets noticeably cleaner in <code>0.3.5</code>.</p>
<p>Before this release, external backends were still too easy to think about as “network-backed task commands with some local caching around them.” That is the wrong model for an install-first tool.</p>
<p><code>0.3.5</code> makes the intended contract more explicit:</p>
<ul>
<li class="">the backend owns a canonical source,</li>
<li class="">the repo keeps a local projection,</li>
<li class="">ordinary task reads happen from that projection,</li>
<li class="">explicit sync is the network boundary,</li>
<li class=""><code>.agentplane/tasks.json</code> is an export snapshot, not the canonical task source.</li>
</ul>
<p>In practical terms, Redmine-backed repos stop performing hidden refreshes during ordinary <code>task list</code>, <code>task show</code>, and <code>doctor</code> flows. Reads stay local until the operator explicitly runs a backend sync.</p>
<p>That is calmer, cheaper, and easier to reason about.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="doctor-and-migration-are-less-misleading-now">Doctor and migration are less misleading now<a href="https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection#doctor-and-migration-are-less-misleading-now" class="hash-link" aria-label="Direct link to Doctor and migration are less misleading now" title="Direct link to Doctor and migration are less misleading now" translate="no">​</a></h2>
<p>Two smaller fixes in this release matter more than they sound.</p>
<p>First, <code>doctor</code> now evaluates migration state from the right backend-aware projection path instead of trusting a possibly stale export snapshot.</p>
<p>Second, <code>task migrate-doc</code> now keeps the exported task snapshot synchronized through the active backend flow instead of depending on a <code>local</code>-only special case.</p>
<p>Together, those changes reduce a class of “everything looks clean, but the repo is actually out of sync” problems that are disproportionately annoying in patch-level workflow tooling.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-practical-shift">The practical shift<a href="https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection#the-practical-shift" class="hash-link" aria-label="Direct link to The practical shift" title="Direct link to The practical shift" translate="no">​</a></h2>
<p><code>0.3.5</code> is not a feature-spike release. It is a convergence release.</p>
<p>It makes three things truer than they were before:</p>
<ul>
<li class="">README v3 is the actual active contract,</li>
<li class="">docs pages are less fragile and easier to read,</li>
<li class="">external backends behave like projection-first runtime surfaces instead of implicit network clients.</li>
</ul>
<p>That is exactly the kind of tightening a patch line should deliver.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-5-readme-v3-docs-shell-and-backend-projection#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>There is no breaking workflow-mode change in <code>0.3.5</code>.</p>
<p>Repositories already on README v3 do not need a new manual migration step. Repositories that still carry legacy README v2 task docs can continue to use <code>agentplane task migrate-doc --all</code>, and the migration flow now keeps the projection snapshot synchronized through the active backend path.</p>
<p>If you use Redmine, the intended boundary is now sharper: ordinary reads stay local, while <code>agentplane backend sync redmine --direction pull</code> remains the explicit refresh path.</p>
<p>The formal source record remains the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.5"><code>/docs/releases/v0.3.5</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Docs</category>
            <category>Backend</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.4: install-first startup and upgrade repair]]></title>
            <link>https://agentplane.org/blog/release-0-3-4-install-first-startup-and-upgrade-repair</link>
            <guid>https://agentplane.org/blog/release-0-3-4-install-first-startup-and-upgrade-repair</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What changed in Agentplane 0.3.4, in plain language: npm-installed startup got self-contained, upgrade now restores workflow artifacts, and role guidance lines up with installed prompts.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.4</code> is the version where the product finally stops assuming that users live inside the framework repository.</p>
<p>That sounds obvious, but it matters. The main distribution path is <code>npm i -g agentplane</code>, not “clone the framework repo and learn its internal file layout.” Once that becomes the real product lens, a few behaviors that looked acceptable from inside the framework stop being acceptable at all.</p>
<p><code>0.3.4</code> fixes that.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-startup-path-is-self-contained-now">The startup path is self-contained now<a href="https://agentplane.org/blog/release-0-3-4-install-first-startup-and-upgrade-repair#the-startup-path-is-self-contained-now" class="hash-link" aria-label="Direct link to The startup path is self-contained now" title="Direct link to The startup path is self-contained now" translate="no">​</a></h2>
<p>The most important repair in <code>0.3.4</code> is simple: installed runtime guidance no longer points users at repo-only docs artifacts.</p>
<p>That bug was subtle in one sense and obvious in another. The startup flow worked fine as long as you were standing inside the framework repo, where generated docs files already existed. But for a normal npm-installed user, a startup surface that points to a non-installed local docs file is just broken.</p>
<p><code>0.3.4</code> cleans this up by making the startup path self-contained again:</p>
<ul>
<li class=""><code>AGENTS.md</code>,</li>
<li class=""><code>agentplane quickstart</code>,</li>
<li class=""><code>agentplane role &lt;ROLE&gt;</code>,</li>
<li class="">and the installed runtime guidance all line up around files and commands that actually exist in the user repo.</li>
</ul>
<p>That is the right direction. Public product behavior should not depend on framework-internal artifacts.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-finally-restores-the-workflow-shell">Upgrade finally restores the workflow shell<a href="https://agentplane.org/blog/release-0-3-4-install-first-startup-and-upgrade-repair#upgrade-finally-restores-the-workflow-shell" class="hash-link" aria-label="Direct link to Upgrade finally restores the workflow shell" title="Direct link to Upgrade finally restores the workflow shell" translate="no">​</a></h2>
<p>The second big fix is in <code>upgrade</code>.</p>
<p>Older initialized repositories could update managed files and still miss workflow runtime artifacts such as:</p>
<ul>
<li class=""><code>.agentplane/WORKFLOW.md</code></li>
<li class=""><code>.agentplane/workflows/last-known-good.md</code></li>
</ul>
<p>That meant the repo was “upgraded” in one sense but still incomplete in another.</p>
<p><code>0.3.4</code> closes that gap. If the repository is initialized enough to own the workflow surface, <code>agentplane upgrade --yes</code> now restores those runtime artifacts as part of the normal upgrade path.</p>
<p>This is exactly the kind of thing users should not have to discover manually after the fact.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="role-help-and-installed-prompts-now-describe-the-same-world">Role help and installed prompts now describe the same world<a href="https://agentplane.org/blog/release-0-3-4-install-first-startup-and-upgrade-repair#role-help-and-installed-prompts-now-describe-the-same-world" class="hash-link" aria-label="Direct link to Role help and installed prompts now describe the same world" title="Direct link to Role help and installed prompts now describe the same world" translate="no">​</a></h2>
<p>Another good repair in <code>0.3.4</code> is the alignment between installed prompts and CLI role help.</p>
<p>Earlier in the <code>0.3.x</code> line, these surfaces were both improving, but they were still not the same surface. That leaves room for drift: the installed agent profile says one thing, while <code>agentplane role CODER</code> explains the same role a little differently.</p>
<p><code>0.3.4</code> tightens that by making installed profiles the primary surface for role help, with CLI-specific notes layered on top instead of a separate competing guide.</p>
<p>That sounds like polish. It is also operational clarity.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-practical-shift">The practical shift<a href="https://agentplane.org/blog/release-0-3-4-install-first-startup-and-upgrade-repair#the-practical-shift" class="hash-link" aria-label="Direct link to The practical shift" title="Direct link to The practical shift" translate="no">​</a></h2>
<p>This is not a flashy release. It is a product-boundary release.</p>
<p>It makes three things truer than they were before:</p>
<ul>
<li class="">the installed startup path is self-contained,</li>
<li class="">upgrade can bring an older initialized repo back to a complete workflow state,</li>
<li class="">installed prompts and role help describe one coherent operating model.</li>
</ul>
<p>That is exactly the kind of patch release you want in a tool like this. Less accidental framework leakage. Fewer half-upgraded states. Less drift between what the tool says and what it actually installs.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-4-install-first-startup-and-upgrade-repair#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>There are no breaking workflow-mode changes in <code>0.3.4</code>.</p>
<p>If you maintain older initialized repositories, <code>agentplane upgrade --yes</code> is now more complete than it was in earlier <code>0.3.x</code> builds because it restores required workflow runtime artifacts when the repository already owns the managed workflow tree.</p>
<p>The formal source record remains the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.4"><code>/docs/releases/v0.3.4</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.3: runtime hardening and README v3]]></title>
            <link>https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3</link>
            <guid>https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3</guid>
            <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What changed in Agentplane 0.3.3, in plain language: clearer runtime diagnostics, a real README v3 migration path, and less friction in local development.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.3</code> is the release where a lot of framework-internal friction finally turned into explicit product behavior.</p>
<p>Before this version, several important things still worked more by convention than by contract. Runtime selection inside the framework repo could be confusing. Task docs carried too much historical baggage. Local CI was correct but expensive. Release recovery was real, but not fully codified.</p>
<p><code>0.3.3</code> tightens all of that.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-runtime-got-easier-to-trust">The runtime got easier to trust<a href="https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3#the-runtime-got-easier-to-trust" class="hash-link" aria-label="Direct link to The runtime got easier to trust" title="Direct link to The runtime got easier to trust" translate="no">​</a></h2>
<p>The biggest shift in <code>0.3.3</code> is runtime visibility.</p>
<p>This release adds <code>agentplane runtime explain</code>, which sounds small until you hit the class of failure it removes. When a repo expects one CLI version and the machine is running another, or when a framework checkout is quietly using the wrong binary from <code>PATH</code>, a lot of confusion follows from that single mismatch.</p>
<p><code>0.3.3</code> makes that state explicit:</p>
<ul>
<li class="">which binary is actually running,</li>
<li class="">which framework source it resolves to,</li>
<li class="">which version the repository expects,</li>
<li class="">and what to do if those things do not line up.</li>
</ul>
<p>That is less glamorous than new commands usually sound, but more valuable. Good tooling should tell you which reality you are in before it asks you to debug anything else.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="readme-v3-became-the-real-task-doc-contract">README v3 became the real task-doc contract<a href="https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3#readme-v3-became-the-real-task-doc-contract" class="hash-link" aria-label="Direct link to README v3 became the real task-doc contract" title="Direct link to README v3 became the real task-doc contract" translate="no">​</a></h2>
<p>This release also completes the task README transition in a serious way.</p>
<p>Older task docs were still readable, but the system needed a cleaner target format. <code>README v3</code> becomes that target in <code>0.3.3</code>, with a better split between plan, verification, rollback, and local findings.</p>
<p>The important part is not just the new layout. The important part is that migration is now treated as a real path:</p>
<ul>
<li class="">legacy README v2 tasks still read correctly,</li>
<li class="">new tasks default to README v3,</li>
<li class=""><code>agentplane task migrate-doc</code> exists as a normal upgrade step,</li>
<li class="">docs and diagnostics explain the recovery flow instead of assuming a pristine repo.</li>
</ul>
<p>That matters because task docs are not decorative. They are part of the operational state of the repository.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="release-and-recovery-got-stricter-in-the-right-places">Release and recovery got stricter in the right places<a href="https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3#release-and-recovery-got-stricter-in-the-right-places" class="hash-link" aria-label="Direct link to Release and recovery got stricter in the right places" title="Direct link to Release and recovery got stricter in the right places" translate="no">​</a></h2>
<p><code>0.3.3</code> also hardens the release path itself.</p>
<p>This release closes a few annoying but expensive failure classes:</p>
<ul>
<li class="">release apply recursing into local <code>pre-push</code>,</li>
<li class="">generated docs drifting during release mutation,</li>
<li class="">the repository silently expecting a newer CLI than the one the user is running,</li>
<li class="">partial publish states without a clear recovery path.</li>
</ul>
<p>The pattern underneath all of these fixes is the same: release behavior should be explicit before things go wrong, not only diagnosable afterward.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="local-feedback-got-lighter">Local feedback got lighter<a href="https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3#local-feedback-got-lighter" class="hash-link" aria-label="Direct link to Local feedback got lighter" title="Direct link to Local feedback got lighter" translate="no">​</a></h2>
<p>Another practical gain in <code>0.3.3</code> is the local developer loop.</p>
<p>The repo now does a better job of routing smaller changes through narrower validation buckets. That does not remove the heavy path for broad changes, but it does stop every narrow docs or CLI-help edit from paying the same price as a release-sensitive code change.</p>
<p><code>doctor</code> also became less noisy and faster on large historical archives, which matters more than it sounds once a repository has accumulated real history.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="practical-outcome">Practical outcome<a href="https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3#practical-outcome" class="hash-link" aria-label="Direct link to Practical outcome" title="Direct link to Practical outcome" translate="no">​</a></h2>
<p>For everyday use, <code>0.3.3</code> means:</p>
<ul>
<li class="">runtime state is easier to inspect,</li>
<li class="">older repositories have a real task-doc migration path,</li>
<li class="">releases and recoveries are harder to fake and easier to reason about,</li>
<li class="">local feedback loops waste less time on obviously narrow changes.</li>
</ul>
<p>That is a broad release, but it is not unfocused. The thread is consistent: make hidden operational state visible, then make the normal path shorter.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-3-runtime-hardening-and-readme-v3#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>There are no breaking workflow-mode changes in <code>0.3.3</code>.</p>
<p>If your repository still contains legacy task docs, run <code>agentplane doctor</code> and follow the recovery path it gives you. In practice that usually means upgrading the framework and then migrating task docs to README v3 where needed.</p>
<p>The formal source record remains the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.3"><code>/docs/releases/v0.3.3</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.2: smoother upgrades and cleaner finish]]></title>
            <link>https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev</link>
            <guid>https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev</guid>
            <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What Agentplane 0.3.2 changes in everyday terms: easier upgrades, automatic clean closure in direct mode, and saner behavior inside the framework repo.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.2</code> is a cleanup release, but in the good sense. A bunch of things that had been treated like “yeah, that’s annoying, we know” finally got fixed properly.</p>
<p>The biggest wins landed in upgrades, direct-mode task closure, and framework development inside the Agentplane repo itself.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrades-became-more-direct">Upgrades became more direct<a href="https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev#upgrades-became-more-direct" class="hash-link" aria-label="Direct link to Upgrades became more direct" title="Direct link to Upgrades became more direct" translate="no">​</a></h2>
<p>Before <code>0.3.2</code>, upgrade behavior still carried older assumptions from an earlier model. By that point the framework already owned the managed files, but the UX had not fully caught up.</p>
<p><code>0.3.2</code> shifts the default in a more practical direction:</p>
<ul>
<li class="">managed framework files now apply by default,</li>
<li class=""><code>doctor</code> gives better guidance when a repository is only partially upgraded,</li>
<li class="">docs explain more clearly which files belong to the framework and which local file is still meant for local incidents and overrides.</li>
</ul>
<p>The practical result is simple: fewer half-upgraded states, less guessing, less “why is this repo in a weird hybrid mode?” energy.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="finishing-a-task-no-longer-dirties-the-tree-by-default">Finishing a task no longer dirties the tree by default<a href="https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev#finishing-a-task-no-longer-dirties-the-tree-by-default" class="hash-link" aria-label="Direct link to Finishing a task no longer dirties the tree by default" title="Direct link to Finishing a task no longer dirties the tree by default" translate="no">​</a></h2>
<p>This release also tightens the direct workflow.</p>
<p>In normal direct-mode use, <code>finish</code> now records task metadata and creates the close commit automatically unless you opt out. That removes a long-running annoyance where the task looked done but the repo still had a dirty README sitting there.</p>
<p>This is a small change, but I would not call it minor. A task marked done should leave the repo looking done.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="framework-development-got-less-misleading">Framework development got less misleading<a href="https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev#framework-development-got-less-misleading" class="hash-link" aria-label="Direct link to Framework development got less misleading" title="Direct link to Framework development got less misleading" translate="no">​</a></h2>
<p>One of the most practical changes in <code>0.3.2</code> is for people working on Agentplane itself.</p>
<p>If <code>agentplane</code> from <code>PATH</code> is launched inside the framework repository, it now hands off to the repo-local binary by default instead of quietly using an older global install. There is still an opt-out, but the default is finally closer to what a developer expects.</p>
<p>That matters because mixed runtime sources create very confusing failures:</p>
<ul>
<li class="">the docs in the checkout say one thing,</li>
<li class="">the code in the checkout says the same thing,</li>
<li class="">but the executed binary still behaves like an older version.</li>
</ul>
<p><code>0.3.2</code> does not erase that class of confusion completely, but it cuts out the worst trap.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="release-and-docs-discipline-also-improved">Release and docs discipline also improved<a href="https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev#release-and-docs-discipline-also-improved" class="hash-link" aria-label="Direct link to Release and docs discipline also improved" title="Direct link to Release and docs discipline also improved" translate="no">​</a></h2>
<p>The same release also cleaned up the release path and the agent-facing docs layer.</p>
<p>It fixed a case where <code>release apply --push --yes</code> could hang after creating the commit and tag, improved the test coverage around that path, and aligned the main bootstrap surfaces so agents see one clearer startup path instead of several competing ones.</p>
<p>That may sound internal, but users feel it anyway. A tool is easier to trust when its docs, startup help, and release behavior stop drifting apart.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="practical-outcome">Practical outcome<a href="https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev#practical-outcome" class="hash-link" aria-label="Direct link to Practical outcome" title="Direct link to Practical outcome" translate="no">​</a></h2>
<p>For most users, <code>0.3.2</code> means:</p>
<ul>
<li class="">upgrading older or partially patched repositories is easier to recover,</li>
<li class="">finishing work in direct mode leaves fewer cleanup surprises,</li>
<li class="">framework contributors are less likely to accidentally run the wrong binary,</li>
<li class="">startup guidance across CLI and docs is more consistent.</li>
</ul>
<p>This is not a flashy release. Fine. It removes real friction from the actual workflow, which is more valuable.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-2-smoother-upgrades-and-framework-dev#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>There are no breaking API or workflow-mode changes in <code>0.3.2</code>.</p>
<p>Framework developers should update their installed CLI if they want the new repo-local handoff behavior inside the framework checkout. Older initialized repositories should run <code>agentplane doctor</code> after upgrade and follow the suggested recovery command if the managed policy tree is incomplete.</p>
<p>The formal source record remains the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.2"><code>/docs/releases/v0.3.2</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.0: policy gateway and stricter release discipline]]></title>
            <link>https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline</link>
            <guid>https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline</guid>
            <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What changed in Agentplane 0.3.0, in plain language: clearer policy routing, better release notes, and safer reruns.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.0</code> is where the policy layer stopped feeling like scaffolding and started acting like product surface. Before that, the rules could work and still be hard to follow. This release cleaned that up.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-actually-changed">What actually changed<a href="https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline#what-actually-changed" class="hash-link" aria-label="Direct link to What actually changed" title="Direct link to What actually changed" translate="no">​</a></h2>
<p>Earlier releases mostly tightened specific commands. <code>0.3.0</code> went one level up and tightened the layer that tells agents which rules to load, when to load them, and how those rules connect to task state and verification.</p>
<p>That was overdue. Policy sprawl creates a very annoying failure mode: a repo looks governed, but agents still load the wrong docs or skip the right ones.</p>
<p><code>0.3.0</code> cuts a lot of that ambiguity out.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-became-explicit">What became explicit<a href="https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline#what-became-explicit" class="hash-link" aria-label="Direct link to What became explicit" title="Direct link to What became explicit" translate="no">​</a></h2>
<p>The headline change is the policy-gateway refactor.</p>
<p>Before <code>0.3.0</code>, it was too easy for the policy surface to get fuzzy over time. One repo might load too many rules. Another might skip the important ones. A third might keep a huge <code>AGENTS.md</code> that looked authoritative while the real logic had already drifted somewhere else.</p>
<p><code>0.3.0</code> makes that structure more explicit.</p>
<p>The <code>AGENTS.md</code> gateway was rebuilt around clearer routing into dedicated policy modules, with stronger rules for conditional loading and stricter checks that the routed policy graph actually matches the repository rules.</p>
<p>In practice, this release pushes three things into the open:</p>
<ul>
<li class="">the gateway is treated as real product surface, not throwaway scaffolding,</li>
<li class="">routing checks are tied more directly to task-document quality gates,</li>
<li class="">incident logging now has one canonical place instead of several half-official ones.</li>
</ul>
<p>This is not about prettier docs. It is about making execution rules easier to reason about.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="release-notes-had-to-get-better-too">Release notes had to get better too<a href="https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline#release-notes-had-to-get-better-too" class="hash-link" aria-label="Direct link to Release notes had to get better too" title="Direct link to Release notes had to get better too" translate="no">​</a></h2>
<p><code>0.3.0</code> also tightened the release path itself. Release-note validation now expects real coverage instead of vague summaries that technically pass but tell you almost nothing.</p>
<p>That change is less glamorous than it sounds, but it matters. Weak release notes are not just boring. They break traceability. If a release changes routing, startup defaults, or publish behavior, the written record has to say so plainly.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="setup-and-startup-got-cleaner">Setup and startup got cleaner<a href="https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline#setup-and-startup-got-cleaner" class="hash-link" aria-label="Direct link to Setup and startup got cleaner" title="Direct link to Setup and startup got cleaner" translate="no">​</a></h2>
<p>There were also a few practical ergonomics fixes underneath the bigger policy work.</p>
<p>Light-profile users now get simpler startup behavior, with hooks disabled by default and a less noisy initial experience. Linked global CLI usage was also relaxed by reducing stale-dist friction outside the framework checkout.</p>
<p>That combination matters. The workflow got stricter, but the common setup path got less annoying.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="publishing-is-more-rerunnable">Publishing is more rerunnable<a href="https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline#publishing-is-more-rerunnable" class="hash-link" aria-label="Direct link to Publishing is more rerunnable" title="Direct link to Publishing is more rerunnable" translate="no">​</a></h2>
<p>The release also made publish reruns less brittle.</p>
<p>Two related problems were addressed:</p>
<ul>
<li class="">publish reruns should not fail only because a release tag already exists on origin,</li>
<li class="">release continuation should remain possible when tags were created earlier in the flow.</li>
</ul>
<p>That is a small operational fix, but a good one. Automation should be able to tell the difference between a real integrity problem and a safe retry.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="practical-outcome">Practical outcome<a href="https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline#practical-outcome" class="hash-link" aria-label="Direct link to Practical outcome" title="Direct link to Practical outcome" translate="no">​</a></h2>
<p>For users, the net effect is pretty clear: governance became easier to read and easier to trust.</p>
<p>After this release, the workflow should be easier to reason about because:</p>
<ul>
<li class="">policy loading is more explicit,</li>
<li class="">gateway structure is easier to verify,</li>
<li class="">release records are expected to be more concrete,</li>
<li class="">install and startup behavior are less brittle for common setups,</li>
<li class="">publish flows are more tolerant of safe reruns.</li>
</ul>
<p>That is the thread running through the whole release. Fewer fuzzy edges. Fewer hidden rules.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-0-policy-gateway-and-release-discipline#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>There are no breaking API changes called out for <code>0.3.0</code>, but repositories using policy modules should still run routing checks after upgrade to make sure local customizations did not drift.</p>
<p>The formal source record remains the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.0"><code>/docs/releases/v0.3.0</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.3.1: publish recovery and cleaner docs]]></title>
            <link>https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface</link>
            <guid>https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface</guid>
            <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical look at Agentplane 0.3.1: fixing the blocked 0.3.x publish path and cleaning up docs and website surfaces.]]></description>
            <content:encoded><![CDATA[<p>Agentplane <code>0.3.1</code> is a recovery release in the most literal sense. It exists because the <code>0.3.0</code> npm path was already burned, and pretending otherwise would have made the release story worse, not better.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-031-had-to-happen">Why <code>0.3.1</code> had to happen<a href="https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface#why-031-had-to-happen" class="hash-link" aria-label="Direct link to why-031-had-to-happen" title="Direct link to why-031-had-to-happen" translate="no">​</a></h2>
<p>The problem was not subtle. <code>0.3.0</code> had already been burned in npm history, so trying to ram the same version through again would have been the wrong fix.</p>
<p><code>0.3.1</code> takes the practical path instead:</p>
<ul>
<li class="">move the release line forward to the next valid version,</li>
<li class="">repair the publish and release notes flow,</li>
<li class="">clean up the public docs and website surfaces around that release.</li>
</ul>
<p>That is what release discipline looks like in real life. Not just writing better code, but refusing to fake a clean publish path when the registry has already said no.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-release-pipeline-was-recovered-not-papered-over">The release pipeline was recovered, not papered over<a href="https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface#the-release-pipeline-was-recovered-not-papered-over" class="hash-link" aria-label="Direct link to The release pipeline was recovered, not papered over" title="Direct link to The release pipeline was recovered, not papered over" translate="no">​</a></h2>
<p>The best thing about <code>0.3.1</code> is that it stays honest.</p>
<p>Instead of trying to reuse <code>0.3.0</code>, the release process moved to <code>0.3.1</code> and documented the situation clearly. That is a better model for teams because it preserves traceability:</p>
<ul>
<li class="">which version was attempted,</li>
<li class="">which one actually shipped,</li>
<li class="">which recovery steps were required to get back to a clean release path.</li>
</ul>
<p>This sounds procedural until you are the person debugging upgrades later. Clean release metadata saves a lot of guesswork.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="task-doc-updates-became-less-awkward">Task-doc updates became less awkward<a href="https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface#task-doc-updates-became-less-awkward" class="hash-link" aria-label="Direct link to Task-doc updates became less awkward" title="Direct link to Task-doc updates became less awkward" translate="no">​</a></h2>
<p><code>0.3.1</code> also cleaned up a smaller but real annoyance: batched task-doc updates.</p>
<p>The written guidance now explicitly allows agents to update task-doc sections in one grouped turn before approval starts. The sequencing rule still stays strict where it matters: approval and start-ready must still happen in order.</p>
<p>So the guidance got easier to use without turning the lifecycle into mush.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="the-website-got-quieter-again">The website got quieter again<a href="https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface#the-website-got-quieter-again" class="hash-link" aria-label="Direct link to The website got quieter again" title="Direct link to The website got quieter again" translate="no">​</a></h2>
<p>Part of <code>0.3.1</code> was also admitting that the website had drifted in a bad direction.</p>
<p>The release tightened the docs shell, improved spacing and left-aligned reading flow, simplified the blog index, and then intentionally restored the homepage to a quieter placeholder-style landing.</p>
<p>I think that was the right decision. This product does not need a loud marketing front page if the real value is operational clarity.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="practical-outcome">Practical outcome<a href="https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface#practical-outcome" class="hash-link" aria-label="Direct link to Practical outcome" title="Direct link to Practical outcome" translate="no">​</a></h2>
<p>For users, <code>0.3.1</code> means three things:</p>
<ul>
<li class="">the <code>0.3.x</code> line is publishable again on a clean version path,</li>
<li class="">task-doc guidance is clearer for normal use,</li>
<li class="">the docs and blog surfaces are less noisy and easier to scan.</li>
</ul>
<p>It is not a big release. It is a useful one. It removes confusion in exactly the places where confusion tends to multiply.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="upgrade-note">Upgrade note<a href="https://agentplane.org/blog/release-0-3-1-publish-recovery-and-quieter-surface#upgrade-note" class="hash-link" aria-label="Direct link to Upgrade note" title="Direct link to Upgrade note" translate="no">​</a></h2>
<p>There are no breaking API or workflow-mode changes in <code>0.3.1</code>.</p>
<p>If your repository consumes framework policy templates, it is still worth syncing or upgrading them so the clarified batched task-doc guidance lands locally as well.</p>
<p>The formal source record remains the release notes at <a class="" href="https://agentplane.org/docs/releases/v0.3.1"><code>/docs/releases/v0.3.1</code></a>.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Agentplane 0.2.25: safer commits and cleaner release flow]]></title>
            <link>https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow</link>
            <guid>https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow</guid>
            <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How the previous release tightened commit scope, publish validation, and documentation checks.]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Agentplane release 0.2.25 abstract illustration" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAwIiBoZWlnaHQ9IjkwMCIgdmlld0JveD0iMCAwIDE2MDAgOTAwIj4KICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmZmZmIiAvPgogIDxyZWN0IHg9IjExNiIgeT0iOTIiIHdpZHRoPSIxMzY4IiBoZWlnaHQ9IjcxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMGEwYTBhIiBzdHJva2Utd2lkdGg9IjIiIG9wYWNpdHk9IjAuNDIiIC8+CiAgPGxpbmUgeDE9IjIxMCIgeTE9IjY4MCIgeDI9IjEyODAiIHkyPSIyMTAiIHN0cm9rZT0iIzBhMGEwYSIgc3Ryb2tlLXdpZHRoPSI0IiBvcGFjaXR5PSIwLjY2IiAvPgogIDxjaXJjbGUgY3g9IjQ2OCIgY3k9IjMzMCIgcj0iMTY0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwYTBhMGEiIHN0cm9rZS13aWR0aD0iMyIgb3BhY2l0eT0iMC43MiIgLz4KICA8Y2lyY2xlIGN4PSI0NjgiIGN5PSIzMzAiIHI9IjE4IiBmaWxsPSIjMGEwYTBhIiBvcGFjaXR5PSIwLjkyIiAvPgogIDxyZWN0IHg9IjkxMCIgeT0iMjM4IiB3aWR0aD0iMzc4IiBoZWlnaHQ9Ijk2IiBmaWxsPSIjMDA4NGI4IiBvcGFjaXR5PSIwLjE0IiAvPgogIDxwb2x5Z29uIHBvaW50cz0iOTkwLDQ5MiAxMzI4LDU0MCAxMTE4LDcyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMGEwYTBhIiBzdHJva2Utd2lkdGg9IjMiIG9wYWNpdHk9IjAuNzQiIC8+CiAgPGxpbmUgeDE9IjMwNCIgeTE9IjIxOCIgeDI9Ijc5NiIgeTI9IjIxOCIgc3Ryb2tlPSIjMGEwYTBhIiBzdHJva2Utd2lkdGg9IjIiIG9wYWNpdHk9IjAuMzgiIC8+CiAgPHRleHQgeD0iMTY4IiB5PSIxNDYiIGZvbnQtZmFtaWx5PSJtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjQiIGxldHRlci1zcGFjaW5nPSIyIiBmaWxsPSIjMGEwYTBhIiBvcGFjaXR5PSIwLjc4Ij5BTExPV0xJU1Qg4oCiIFZFUklGWSDigKIgUFVCTElTSDwvdGV4dD4KICA8dGV4dCB4PSIxNjgiIHk9Ijc4NiIgZm9udC1mYW1pbHk9Im1vbm9zcGFjZSIgZm9udC1zaXplPSIyMCIgZmlsbD0iIzBhMGEwYSIgb3BhY2l0eT0iMC43Ij5hZ2VudHBsYW5lIHJlbGVhc2UgMC4yLjI1PC90ZXh0Pgo8L3N2Zz4K" width="1600" height="900" class="img_w580"></p>
<p>Agentplane <code>0.2.25</code> was the sort of release that looks small until you have to trust it. No shiny headline feature. Just a stricter workflow, fewer accidental commits, and a cleaner release path.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-this-one-mattered">Why this one mattered<a href="https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow#why-this-one-mattered" class="hash-link" aria-label="Direct link to Why this one mattered" title="Direct link to Why this one mattered" translate="no">​</a></h2>
<p>The underlying problem was simple: agents could still do more than the task really allowed.</p>
<p>In practice that risk shows up in three places:</p>
<ul>
<li class="">commit scope expands beyond the files a task should touch,</li>
<li class="">release operations run with weak pre-publish validation,</li>
<li class="">documentation drifts away from the actual CLI and process rules.</li>
</ul>
<p><code>0.2.25</code> tightened all three at once.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="safer-commit-boundaries">Safer commit boundaries<a href="https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow#safer-commit-boundaries" class="hash-link" aria-label="Direct link to Safer commit boundaries" title="Direct link to Safer commit boundaries" translate="no">​</a></h2>
<p>The main change was stricter commit behavior. The workflow moved toward explicit allowlists, so unrelated files are much less likely to get staged by accident.</p>
<p>That sounds mechanical, but it changes the social side too. Once a team thinks the agent might quietly scoop up unrelated files, every automated step starts to feel suspicious.</p>
<p>The release pushes the tool toward a cleaner rule: touch only what the task allows, and make that boundary visible.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="cleaner-release-flow">Cleaner release flow<a href="https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow#cleaner-release-flow" class="hash-link" aria-label="Direct link to Cleaner release flow" title="Direct link to Cleaner release flow" translate="no">​</a></h2>
<p>The release path got stricter too. Pre-publish validation and CI gates were tightened so a version is less likely to ship from partial or drifting state.</p>
<p>Operationally, this reduces two classes of failure:</p>
<ul>
<li class="">publishing before the expected checks have actually passed,</li>
<li class="">shipping a version whose notes, docs, or package state do not match.</li>
</ul>
<p>That is the right tradeoff here. A slower release is fine. A blurry one is not.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="documentation-parity">Documentation parity<a href="https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow#documentation-parity" class="hash-link" aria-label="Direct link to Documentation parity" title="Direct link to Documentation parity" translate="no">​</a></h2>
<p>The release also tightened docs and website consistency checks. That sounds secondary until you trip over bad guidance in a real repo.</p>
<p>For a policy-heavy workflow tool, docs drift is not an editorial blemish. It is a contract bug. If help text and real behavior split apart, people will do the wrong thing very confidently.</p>
<p>So <code>0.2.25</code> treated documentation quality as part of runtime reliability, not as bonus polish.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="practical-outcome">Practical outcome<a href="https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow#practical-outcome" class="hash-link" aria-label="Direct link to Practical outcome" title="Direct link to Practical outcome" translate="no">​</a></h2>
<p>If you run Agentplane in a policy-sensitive repo, this release mostly improves one thing: trust.</p>
<p>The intended workflow after <code>0.2.25</code> is more constrained:</p>
<ul>
<li class="">commits should stay closer to approved task scope,</li>
<li class="">releases should be blocked earlier when validation is incomplete,</li>
<li class="">docs should reflect the system that users actually execute.</li>
</ul>
<p>It is a narrower system. Good. Narrow beats fuzzy when a tool can mutate your repo.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="next-path">Next path<a href="https://agentplane.org/blog/release-0-2-25-safer-commits-cleaner-release-flow#next-path" class="hash-link" aria-label="Direct link to Next path" title="Direct link to Next path" translate="no">​</a></h2>
<p>If you want the formal version record, the release notes are at <a class="" href="https://agentplane.org/docs/releases/v0.2.25"><code>/docs/releases/v0.2.25</code></a>. The broader direction is in the roadmap entry.</p>]]></content:encoded>
            <category>Release</category>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
        <item>
            <title><![CDATA[Roadmap to 0.5: blueprints and cloud backend]]></title>
            <link>https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend</link>
            <guid>https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend</guid>
            <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Agentplane roadmap abstract illustration]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Agentplane roadmap abstract illustration" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAwIiBoZWlnaHQ9IjkwMCIgdmlld0JveD0iMCAwIDE2MDAgOTAwIj4KICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIiAvPgogIDxyZWN0IHg9IjExMCIgeT0iODQiIHdpZHRoPSIxMzgwIiBoZWlnaHQ9IjczMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjIiIG9wYWNpdHk9IjAuNDUiIC8+CiAgPGNpcmNsZSBjeD0iNDMwIiBjeT0iMzU1IiByPSIxOTAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIzIiBvcGFjaXR5PSIwLjc4IiAvPgogIDxjaXJjbGUgY3g9IjQzMCIgY3k9IjM1NSIgcj0iMTIiIGZpbGw9IiMwMDAiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIwIiBvcGFjaXR5PSIwLjkiIC8+CiAgPGxpbmUgeDE9IjI3MCIgeTE9IjY0MCIgeDI9IjEyMzAiIHkyPSIyMDUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI0IiBvcGFjaXR5PSIwLjY1IiAvPgogIDxwb2x5Z29uIHBvaW50cz0iMTA0MCw0ODAgMTI5MCw1MjAgMTEyMCw3MDAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIzIiBvcGFjaXR5PSIwLjcyIiAvPgogIDxyZWN0IHg9Ijk2MCIgeT0iMjIwIiB3aWR0aD0iNDIwIiBoZWlnaHQ9Ijg4IiBmaWxsPSIjMDAwIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMCIgb3BhY2l0eT0iMC4xMiIgLz4KICA8dGV4dCB4PSIxNzAiIHk9IjE0MCIgZm9udC1mYW1pbHk9Im1vbm9zcGFjZSIgZm9udC1zaXplPSIyNCIgbGV0dGVyLXNwYWNpbmc9IjIiIGZpbGw9IiMwMDAiIG9wYWNpdHk9IjAuNzUiPlBMQU4g4oaSIFZFUklGWSDihpIgRVhQT1JUPC90ZXh0PgogIDx0ZXh0IHg9IjE3MCIgeT0iNzg1IiBmb250LWZhbWlseT0ibW9ub3NwYWNlIiBmb250LXNpemU9IjIwIiBmaWxsPSIjMDAwIiBvcGFjaXR5PSIwLjciPmFnZW50cGxhbmUgcm9hZG1hcDogMC4xIOKGkiAwLjU8L3RleHQ+Cjwvc3ZnPgo=" width="1600" height="900" class="img_w580"></p>
<p>Agentplane started as a CLI that keeps repository work honest. The roadmap to <code>0.5</code> is not about turning it into a vague “AI platform.” It is about adding explicit execution-route contracts and a cloud backend option without losing the audit trail or the policy boundaries that make the tool usable in a real repo.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="why-this-roadmap-exists">Why this roadmap exists<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#why-this-roadmap-exists" class="hash-link" aria-label="Direct link to Why this roadmap exists" title="Direct link to Why this roadmap exists" translate="no">​</a></h2>
<p>Three pressures keep showing up:</p>
<ul>
<li class="">teams want more automation, but they do not want agents freelancing in the repo;</li>
<li class="">task state needs to move between local repositories and external planning surfaces without making every integration a core backend;</li>
<li class="">prompt quality and execution quality have to be treated like product design, not prompt tinkering;</li>
<li class="">extension points need to be explicit, otherwise every serious team ends up forking the framework.</li>
</ul>
<p>So the order matters. Foundation first. Then contracts. Then extension. Then a blueprint layer that can explain the route a task is taking. Only after that does it make sense to talk about more autonomous execution.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="version-by-version-roadmap">Version-by-Version Roadmap<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#version-by-version-roadmap" class="hash-link" aria-label="Direct link to Version-by-Version Roadmap" title="Direct link to Version-by-Version Roadmap" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="01-foundation-and-baseline-workflow">0.1 Foundation and Baseline Workflow<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#01-foundation-and-baseline-workflow" class="hash-link" aria-label="Direct link to 0.1 Foundation and Baseline Workflow" title="Direct link to 0.1 Foundation and Baseline Workflow" translate="no">​</a></h2>
<ul>
<li class="">Establish the initial Agentplane CLI baseline and project structure.</li>
<li class="">Define the first end-to-end task lifecycle for local execution.</li>
<li class="">Introduce core task tracking, verification logging, and export conventions.</li>
</ul>
<p>What that means in practice:</p>
<ul>
<li class="">a team can run a local workflow with explicit task state and an audit trail that actually survives inspection.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="02-architecture-and-codebase-formalization">0.2 Architecture and Codebase Formalization<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#02-architecture-and-codebase-formalization" class="hash-link" aria-label="Direct link to 0.2 Architecture and Codebase Formalization" title="Direct link to 0.2 Architecture and Codebase Formalization" translate="no">​</a></h2>
<ul>
<li class="">Formalize architecture boundaries and core codebase contracts.</li>
<li class="">Modularize subsystems to keep scaling simple and predictable.</li>
<li class="">Formalize operational processes at the CLI level.</li>
</ul>
<p>What that means in practice:</p>
<ul>
<li class="">less hidden coupling and fewer “why does this command know about that file?” moments.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="03-prompt-system-improvements">0.3 Prompt System Improvements<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#03-prompt-system-improvements" class="hash-link" aria-label="Direct link to 0.3 Prompt System Improvements" title="Direct link to 0.3 Prompt System Improvements" translate="no">​</a></h2>
<ul>
<li class="">Improve agent prompts for better determinism and execution quality.</li>
<li class="">Formalize process contracts at the agent-prompt level.</li>
<li class="">Deliver a dedicated Claude Code-compatible version.</li>
</ul>
<p>What that means in practice:</p>
<ul>
<li class="">agents behave more predictably under real repo constraints, not just in clean demos.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="04-recipes-and-plugin-extension-model">0.4 Recipes and Plugin Extension Model<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#04-recipes-and-plugin-extension-model" class="hash-link" aria-label="Direct link to 0.4 Recipes and Plugin Extension Model" title="Direct link to 0.4 Recipes and Plugin Extension Model" translate="no">​</a></h2>
<ul>
<li class="">Support custom agents, tools/SKILLS, and scenarios through recipes.</li>
<li class="">Define recipe packaging, versioning, and compatibility rules.</li>
<li class="">Add recipe discovery, installation, and validation flows in CLI.</li>
</ul>
<p>What that means in practice:</p>
<ul>
<li class="">teams can add domain-specific behavior without patching core every time they need one more tool or scenario.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="05-blueprints-and-cloud-backend">0.5 Blueprints and Cloud Backend<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#05-blueprints-and-cloud-backend" class="hash-link" aria-label="Direct link to 0.5 Blueprints and Cloud Backend" title="Direct link to 0.5 Blueprints and Cloud Backend" translate="no">​</a></h2>
<ul>
<li class="">Add typed blueprint contracts for task execution routes.</li>
<li class="">Ship built-in blueprint definitions, validation, resolver output, and explanation surfaces.</li>
<li class="">Make selected routes visible in task evidence before repository mutation.</li>
<li class="">Allow projects to choose a cloud backend during initialization or configuration.</li>
<li class="">Keep external platform sync behind the cloud backend boundary so GitHub Projects, Redmine, or other planning systems can evolve outside the repo-local task store.</li>
</ul>
<p>What that means in practice:</p>
<ul>
<li class="">task routing becomes explicit before runner autonomy increases, and cloud-backed projects get one stable Agentplane backend surface for external platform synchronization.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="06-agentplane-runner">0.6 Agentplane Runner<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#06-agentplane-runner" class="hash-link" aria-label="Direct link to 0.6 Agentplane Runner" title="Direct link to 0.6 Agentplane Runner" translate="no">​</a></h2>
<ul>
<li class="">Build Agentplane Runner on top of resolved blueprints.</li>
<li class="">Enable coordinated multi-agent execution through blueprint-aware task routes.</li>
<li class="">Provide orchestration primitives for reliable autonomous runs without weakening repo-local policy gates.</li>
</ul>
<p>What that means in practice:</p>
<ul>
<li class="">autonomous execution starts from a route contract the agent can explain, verify, and record.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="07-evaluation-and-recursive-improvement">0.7 Evaluation and Recursive Improvement<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#07-evaluation-and-recursive-improvement" class="hash-link" aria-label="Direct link to 0.7 Evaluation and Recursive Improvement" title="Direct link to 0.7 Evaluation and Recursive Improvement" translate="no">​</a></h2>
<ul>
<li class="">Define repeatable evaluations for agents, recipes, prompt modules, blueprint resolution, runner behavior, and lifecycle flows.</li>
<li class="">Run scenario-based evaluations with reproducible inputs, structured evidence, deterministic gates, and baseline-vs-candidate comparison.</li>
<li class="">Support recursive prompt and recipe improvement only when quality improves without critical regressions.</li>
</ul>
<p>What that means in practice:</p>
<ul>
<li class="">evals become a release-quality system after the execution route and runner layers are stable enough to measure.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-changes-for-users">What changes for users<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#what-changes-for-users" class="hash-link" aria-label="Direct link to What changes for users" title="Direct link to What changes for users" translate="no">​</a></h2>
<p>If the roadmap lands the way it should, users get:</p>
<ul>
<li class="">Faster execution loops with clearer policy boundaries.</li>
<li class="">Clearer task route explanations before mutation.</li>
<li class="">A cloud backend option for teams that want external platform synchronization without replacing repo-local policy.</li>
<li class="">Better reproducibility for planning, implementation, and verification paths.</li>
<li class="">Lower overhead when introducing custom automation patterns.</li>
<li class="">Stronger traceability from intent to repository mutation.</li>
</ul>
<p>That is the optimistic version. The harder part is making sure the system stays legible while it grows.</p>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="risks-and-open-questions">Risks and open questions<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#risks-and-open-questions" class="hash-link" aria-label="Direct link to Risks and open questions" title="Direct link to Risks and open questions" translate="no">​</a></h2>
<p>The main risks are not mysterious:</p>
<ul>
<li class="">Over-complex extension surfaces can reduce adoption if plugin contracts are not strict enough.</li>
<li class="">Cloud sync can create conflicting sources of truth if the managed backend does not preserve canonical task state and sync timestamps.</li>
<li class="">Autonomous execution can increase failure blast radius if guardrails are not enforced at runtime and tied to the resolved blueprint.</li>
<li class="">Prompt formalization must remain aligned with real execution constraints, not only prompt style.</li>
</ul>
<p>There are also a few design questions we have not earned the right to hand-wave away:</p>
<ul>
<li class="">Blueprint resolver behavior when task intent, workflow mode, and available backend capabilities point to different routes.</li>
<li class="">Cloud backend connection and sync semantics under intermittent network or external platform changes.</li>
<li class="">Runner execution model under mixed local/remote tool constraints.</li>
<li class="">Cross-recipe compatibility guarantees and version pinning strategy.</li>
<li class="">Default observability contract for multi-agent runs and external sync decisions.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_YZKM" id="what-comes-next">What comes next<a href="https://agentplane.org/blog/roadmap-0-5-blueprints-cloud-backend#what-comes-next" class="hash-link" aria-label="Direct link to What comes next" title="Direct link to What comes next" translate="no">​</a></h2>
<p>The near-term work is more grounded than a runner-first roadmap would suggest:</p>
<ul>
<li class="">finish the contract surfaces,</li>
<li class="">ship the blueprint layer,</li>
<li class="">expose the cloud backend choice cleanly,</li>
<li class="">ship the milestones one by one,</li>
<li class="">keep the release notes honest as each part lands.</li>
</ul>
<p>The direction is simple enough. More automation, yes. Sloppier governance, no.</p>]]></content:encoded>
            <category>Workflow</category>
            <category>Operations</category>
        </item>
    </channel>
</rss>