Shipped and released
Now
Page 6 of 14. Every release ever published is still here — across these pages, in theAtom feed, and at its own permanent link. Nothing is dropped as it ages.
Released highlights, page 6
- The
creative-directionskill now exposes five named operations —frame,explore,visualize,converge, andrefine— each with a dedicated reference, so craft detail loads only when the operation needs it. - A route rule (
inherit,extend,originate) selects how much invention the work warrants;inheritruns no divergence and no visual step when a direction already exists for the surface. - Divergence generation in
exploredraws referents from the audience's own world — publications, instruments, maps, architecture, packaging, signage — rather than from other software products, so candidate directions stop converging on the category default. - The visual step in
visualizeis capability-gated: it defaults to a text schematic in any harness that cannot produce images, with a named skip rather than a blocker, and produces a rendered comp only on theoriginateroute when the harness supports it. - Asking to refine an existing direction now reaches the skill and amends the document in place, instead of starting a second direction for the same surface.
- The
- Three re-entry edges now require a wave reopen before you re-enter implementation. When gates fail, a code review finds remaining issues, or a blocker is applied, the loop now refuses the edge and names the tasks that still hold a live dispatch record. Run
loop-cohort wave reopen <spec-dir> --expect-run-id <id>to mark the current wave's records superseded and unblock the edge.
- Three re-entry edges now require a wave reopen before you re-enter implementation. When gates fail, a code review finds remaining issues, or a blocker is applied, the loop now refuses the edge and names the tasks that still hold a live dispatch record. Run
- An intent that says the work is finished now has to say who decided that and on what evidence.
Status: Fulfilledrequires both anAccepted:and aFulfilled:record, andStatus: CancelledrequiresAccepted:. Intents that passed the corpus lint yesterday can fail today, so this is a gate change to plan for rather than a new option to adopt.
- An intent that says the work is finished now has to say who decided that and on what evidence.
- A review finding is now blockable when something outside it establishes the defect — a test, a lint, a schema, a resolvable reference or a stated constraint that disagrees with the target — even when several repairs would fix it. The old wording asked instead whether the fix was fully determined, so a finding like "this count says three where the tree holds five" could be capped at Concern purely because you could change the count, add a baseline, or drop the claim. How much that mattered depended on which model read the rule. Two models were asked which of the same 50 recorded blocking findings should have been capped: under the old wording they answered 2 and 8, and under the new one both answered 1.
- `new-adr`'s infra mode no longer claims its seven topics cover the whole governance index. Each of the seven maps to a domain, and
observabilityis named as the domain with no authoring topic of its own — so you can see the gap instead of assuming the list is complete.
- `new-adr`'s infra mode no longer claims its seven topics cover the whole governance index. Each of the seven maps to a domain, and
- Superseding part of a decision record is now explained where you write it. The four supersession fields shipped with the ability to carve one numbered constraint out of an older ADR, and the shape check has always enforced it — but the template's one-line examples never said whose D-IDs each half names, so the only way to get it right was to find an existing pair and copy it. The template now states the rule beside the fields: both halves name D-IDs defined by the *older* record, and a partially superseded record keeps
Status: Accepted.
- Superseding part of a decision record is now explained where you write it. The four supersession fields shipped with the ability to carve one numbered constraint out of an older ADR, and the shape check has always enforced it — but the template's one-line examples never said whose D-IDs each half names, so the only way to get it right was to find an existing pair and copy it. The template now states the rule beside the fields: both halves name D-IDs defined by the *older* record, and a partially superseded record keeps
- The `align-value-stream` layout page now names every skill that reads its output setting. It lists all eight
[product]readers, calls outlean-canvas's scan-only read, and makes clear thatux-writingreads[design]instead.
- The `align-value-stream` layout page now names every skill that reads its output setting. It lists all eight
- Saying that an intent was replaced now takes two plain fields instead of one packed line: the status reads
Superseded, and aSuperseded by:field names the bet that took over. Each is refused without the other, so a pointer can no longer be left behind when a status moves on. - The
Accepted:andFulfilled:lines now have to carry more than a date. Each takes a date, a space, and text — a date on its own is refused, because these lines exist to hold the reasoning. What that text should say, who decided and on what evidence, is for you; the check asks only that it is there.
- Saying that an intent was replaced now takes two plain fields instead of one packed line: the status reads
- A surface now declares how much contract it owes, and `explore` is the default. The journey opens by asking you to pick the risk tier, then tells you the contract fields, the states, the gates and the captures that tier carries. A tooltip and a checkout flow walk the same stages at different depths, so the cheap path is a stated choice rather than a corner cut.
- The cheap tier never drops an accessible surface. Every state whose absence fails WCAG 2.2 AA is either already in the
exploreset or binds conditionally wherever its trigger fires. Depth buys evidence and completeness; it does not buy a surface someone cannot use.
- The say-this table now tells you which steps you can skip. Every row carries one optionality verdict, resolved against the how-to guide that owns that skill, so the two surfaces can no longer disagree about whether a step is optional.
- A named minimal viable thread replaces guessing at what to drop. Four steps make the output coherent; the journey says so, and says what a skipped step actually costs rather than warning against shortcuts in the abstract.
- The contract this pack carries now defines what each depth owes. Its copy of the experience contract gained the shared state-coverage map and the
frontend-engineeringowner label, so a team reading the contract alongside an intent finds one definition of a risk tier rather than a bare word. The pack's skills are unchanged and still do not read the contract themselves.
- The contract this pack carries now defines what each depth owes. Its copy of the experience contract gained the shared state-coverage map and the
- The contract this pack carries now defines what each depth owes. Its copy of the experience contract gained the shared state-coverage map and the
frontend-engineeringowner label, so the tier annotations a strategist reads there mean one thing across all four packs. The pack's skills are unchanged and still do not read the contract themselves.
- The contract this pack carries now defines what each depth owes. Its copy of the experience contract gained the shared state-coverage map and the
- `agentbundle catalogue sync` can now bring a derived catalogue up to date, not just check it. Run it with neither
--dry-runnor--checkand it asks once for confirmation, then applies the plan: unedited files update, your edits keep their bytes with the source's version saved beside them, and paths the source dropped are removed — guarded so a run never touches anything outside what the catalogue already recorded. Four new flags —--pack,--profile,--guides,--package— let you sync just part of the catalogue, and--yesskips the prompt for a script or CI job.
- `agentbundle catalogue sync` can now bring a derived catalogue up to date, not just check it. Run it with neither
- A reference from one artifact to another now names exactly one target, and an ambiguous name is refused rather than guessed. A pointer written as a bare name used to be resolved by picking the alphabetically first match when several fitted. Nothing told the author a choice had been made. Such a name is now reported with every candidate it matched, so the author decides rather than the sort order.
- You can now check a derived catalogue against its source without touching a file.
agentbundle catalogue sync --dry-runprints what would update, what would keep your edits behind a companion file, and what the source no longer has.agentbundle catalogue sync --checkanswers whether your catalogue still matches its source. Neither writes anything.
- You can now check a derived catalogue against its source without touching a file.
- An intent now states who owns it, what altitude it sits at, and where it stands — and a check refuses one that does not. Reading an intent's opening lines used to leave the important questions open: two of the fields a reader needs most were optional, and one was buried in the body. Anyone can now learn who is accountable, how high the bet sits, whether it is still live, and whether it has been tested and broken down, without reading further.
- A stopped bet can say so. An intent that was withdrawn or cancelled now records that as its own standing, rather than being indistinguishable from one still waiting. A rollup that counted a cancelled bet as delivered is the outcome this prevents.
- A brief produced from the shipped template now carries the mode the next skill reads.
copy-directiontakescommunication_modefrom the brief to decide whether its anti-AI-smell scan applies to the copy goals it names. The template had no slot for the field, so an author following it produced a brief that skill could not route, and the eval harness did not catch it.
- A brief produced from the shipped template now carries the mode the next skill reads.
- The intent template now seeds every field an intent is required to carry, and three that record how far its shaping got. An author filling the template in produces something the checks accept, instead of discovering the gaps afterwards.
- arXiv searches now find the paper you asked for. Free text used to be pasted straight into arXiv's query language, where a phrase quietly became a loose word match: asking about instruction adherence in agent config files returned 124,103 papers with an unrelated one first. The retriever now composes the query properly and widens it only as far as it must, returning 97 matches with the right paper at the top — and it tells you which attempt produced them, so you can see when a match was loose.
- You can ask arXiv precise questions. Search by title, author, abstract or category, combine them, sort by newest or by relevance, and restrict to a submission-date window. If you already know arXiv's own query syntax, pass it through untouched.
- Fetch one paper exactly, instead of searching for it. Give the retriever an arXiv identifier or a link and it returns that record — including papers from before 2015 and the older slashed identifiers — with its abstract, authors, categories, DOI and journal reference where arXiv publishes them. Ask for the full text and you get named sections within a stated budget rather than a whole paper.
- A paper's submission date and its revision date are now separate. The previous version showed only one, so a 2017 paper revised in 2023 could be read as a 2023 paper.
- Rate limits no longer end a research session. Requests are spaced and retried, so the retriever keeps working where it previously became unavailable mid-investigation.
- A knowledge topic can now be recorded as a durable lesson that owns no file. Some lessons are about how a tool behaves, not about a defect living in particular bytes, and pinning them to a file made them go stale on every unrelated edit to it. Such a topic can now be written with no owning source at all, which is a state the store could already hold and read but its writer could not produce.